From 2f1c6897823a356ce615f8763c7db77f5f9ec5c2 Mon Sep 17 00:00:00 2001 From: Paul Maddox Date: Wed, 27 Feb 2019 11:41:27 +0400 Subject: [PATCH 01/37] Workaround for AWS CloudFormation specification that currently reports a field as Map when it should be Json --- generate/property.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/generate/property.go b/generate/property.go index b4fceb2fba..d49f8d6ecd 100644 --- a/generate/property.go +++ b/generate/property.go @@ -228,6 +228,8 @@ func convertTypeToGo(pt string) string { return "string" case "Json": return "interface{}" + case "Map": + return "interface{}" default: return pt } @@ -249,6 +251,8 @@ func convertTypeToJSON(name string) string { return "string" case "Json": return "object" + case "Map": + return "object" default: return name } From e1a8c9b2a7baf0c237d3c2c013264352171505c7 Mon Sep 17 00:00:00 2001 From: Paul Maddox Date: Wed, 27 Feb 2019 11:50:48 +0400 Subject: [PATCH 02/37] Fixed AWS::Serverless::Api.Auth.Authorizers which had a String field not specified as a primitive --- generate/sam-2016-10-31.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/generate/sam-2016-10-31.json b/generate/sam-2016-10-31.json index 79cc801a7e..aa0d482bff 100644 --- a/generate/sam-2016-10-31.json +++ b/generate/sam-2016-10-31.json @@ -237,7 +237,7 @@ "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication", "Required": true, "PrimitiveType": "String", - "Types": [ "ApplicationLocation" ], + "Types": ["ApplicationLocation"], "UpdateType": "Immutable" }, "Parameters": { @@ -752,7 +752,7 @@ "Authorizers": { "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api-auth-object", "Required": false, - "Type": "String", + "PrimitiveType": "String", "UpdateType": "Immutable" } } From ddd955935631d287fa76c34ca27cad33527eb221 Mon Sep 17 00:00:00 2001 From: Paul Maddox Date: Sun, 3 Mar 2019 20:09:46 +0400 Subject: [PATCH 03/37] Ran go generate --- cloudformation/alexa-ask-skill.go | 29 +- cloudformation/all.go | 700 +- cloudformation/aws-amazonmq-broker.go | 34 +- .../aws-amazonmq-broker_tagsentry.go | 60 + cloudformation/aws-amazonmq-configuration.go | 34 +- .../aws-amazonmq-configuration_tagsentry.go | 60 + .../aws-amazonmq-configurationassociation.go | 175 + ...onfigurationassociation_configurationid.go | 60 + cloudformation/aws-apigateway-account.go | 29 +- cloudformation/aws-apigateway-apikey.go | 34 +- cloudformation/aws-apigateway-authorizer.go | 31 +- .../aws-apigateway-basepathmapping.go | 29 +- .../aws-apigateway-clientcertificate.go | 29 +- cloudformation/aws-apigateway-deployment.go | 29 +- .../aws-apigateway-documentationpart.go | 29 +- .../aws-apigateway-documentationversion.go | 29 +- cloudformation/aws-apigateway-domainname.go | 29 +- .../aws-apigateway-gatewayresponse.go | 29 +- cloudformation/aws-apigateway-method.go | 29 +- cloudformation/aws-apigateway-model.go | 29 +- .../aws-apigateway-requestvalidator.go | 29 +- cloudformation/aws-apigateway-resource.go | 29 +- cloudformation/aws-apigateway-restapi.go | 29 +- cloudformation/aws-apigateway-stage.go | 29 +- cloudformation/aws-apigateway-usageplan.go | 29 +- cloudformation/aws-apigateway-usageplankey.go | 29 +- cloudformation/aws-apigateway-vpclink.go | 29 +- cloudformation/aws-apigatewayv2-api.go | 200 + cloudformation/aws-apigatewayv2-authorizer.go | 205 + cloudformation/aws-apigatewayv2-deployment.go | 180 + .../aws-apigatewayv2-integration.go | 230 + .../aws-apigatewayv2-integrationresponse.go | 200 + cloudformation/aws-apigatewayv2-model.go | 190 + cloudformation/aws-apigatewayv2-route.go | 225 + ...apigatewayv2-route_parameterconstraints.go | 55 + .../aws-apigatewayv2-routeresponse.go | 195 + ...ayv2-routeresponse_parameterconstraints.go | 55 + cloudformation/aws-apigatewayv2-stage.go | 210 + ...ws-apigatewayv2-stage_accesslogsettings.go | 60 + .../aws-apigatewayv2-stage_routesettings.go | 75 + ...s-applicationautoscaling-scalabletarget.go | 29 +- ...ws-applicationautoscaling-scalingpolicy.go | 29 +- .../aws-appstream-directoryconfig.go | 29 +- cloudformation/aws-appstream-fleet.go | 29 +- cloudformation/aws-appstream-imagebuilder.go | 29 +- cloudformation/aws-appstream-stack.go | 29 +- .../aws-appstream-stackfleetassociation.go | 29 +- .../aws-appstream-stackuserassociation.go | 29 +- cloudformation/aws-appstream-user.go | 29 +- cloudformation/aws-appsync-apikey.go | 29 +- cloudformation/aws-appsync-datasource.go | 29 +- .../aws-appsync-functionconfiguration.go | 29 +- cloudformation/aws-appsync-graphqlapi.go | 29 +- cloudformation/aws-appsync-graphqlschema.go | 29 +- cloudformation/aws-appsync-resolver.go | 29 +- cloudformation/aws-athena-namedquery.go | 29 +- .../aws-autoscaling-autoscalinggroup.go | 29 +- .../aws-autoscaling-launchconfiguration.go | 29 +- .../aws-autoscaling-lifecyclehook.go | 29 +- .../aws-autoscaling-scalingpolicy.go | 29 +- .../aws-autoscaling-scheduledaction.go | 29 +- .../aws-autoscalingplans-scalingplan.go | 29 +- .../aws-batch-computeenvironment.go | 29 +- cloudformation/aws-batch-jobdefinition.go | 29 +- cloudformation/aws-batch-jobqueue.go | 29 +- cloudformation/aws-budgets-budget.go | 29 +- .../aws-certificatemanager-certificate.go | 29 +- cloudformation/aws-cloud9-environmentec2.go | 29 +- .../aws-cloudformation-customresource.go | 29 +- cloudformation/aws-cloudformation-macro.go | 29 +- cloudformation/aws-cloudformation-stack.go | 29 +- .../aws-cloudformation-waitcondition.go | 29 +- .../aws-cloudformation-waitconditionhandle.go | 29 +- ...oudfront-cloudfrontoriginaccessidentity.go | 29 +- cloudformation/aws-cloudfront-distribution.go | 29 +- .../aws-cloudfront-streamingdistribution.go | 29 +- cloudformation/aws-cloudtrail-trail.go | 29 +- cloudformation/aws-cloudwatch-alarm.go | 34 +- cloudformation/aws-cloudwatch-alarm_metric.go | 65 + .../aws-cloudwatch-alarm_metricdataquery.go | 75 + .../aws-cloudwatch-alarm_metricstat.go | 70 + cloudformation/aws-cloudwatch-dashboard.go | 29 +- cloudformation/aws-codebuild-project.go | 29 +- .../aws-codebuild-project_environment.go | 10 + .../aws-codebuild-project_filtergroup.go | 50 + .../aws-codebuild-project_projectcache.go | 5 + .../aws-codebuild-project_projecttriggers.go | 5 + ...ws-codebuild-project_registrycredential.go | 60 + .../aws-codebuild-project_webhookfilter.go | 65 + cloudformation/aws-codecommit-repository.go | 29 +- cloudformation/aws-codedeploy-application.go | 29 +- .../aws-codedeploy-deploymentconfig.go | 29 +- .../aws-codedeploy-deploymentgroup.go | 29 +- .../aws-codepipeline-customactiontype.go | 29 +- cloudformation/aws-codepipeline-pipeline.go | 29 +- cloudformation/aws-codepipeline-webhook.go | 29 +- cloudformation/aws-cognito-identitypool.go | 29 +- .../aws-cognito-identitypoolroleattachment.go | 29 +- cloudformation/aws-cognito-userpool.go | 29 +- cloudformation/aws-cognito-userpoolclient.go | 29 +- cloudformation/aws-cognito-userpoolgroup.go | 29 +- cloudformation/aws-cognito-userpooluser.go | 29 +- ...s-cognito-userpoolusertogroupattachment.go | 29 +- .../aws-config-aggregationauthorization.go | 29 +- cloudformation/aws-config-configrule.go | 29 +- .../aws-config-configurationaggregator.go | 29 +- .../aws-config-configurationrecorder.go | 29 +- cloudformation/aws-config-deliverychannel.go | 29 +- cloudformation/aws-datapipeline-pipeline.go | 29 +- cloudformation/aws-dax-cluster.go | 29 +- cloudformation/aws-dax-parametergroup.go | 29 +- cloudformation/aws-dax-subnetgroup.go | 29 +- .../aws-directoryservice-microsoftad.go | 29 +- .../aws-directoryservice-simplead.go | 29 +- cloudformation/aws-dlm-lifecyclepolicy.go | 29 +- cloudformation/aws-dms-certificate.go | 29 +- cloudformation/aws-dms-endpoint.go | 39 +- .../aws-dms-endpoint_elasticsearchsettings.go | 70 + .../aws-dms-endpoint_kinesissettings.go | 65 + cloudformation/aws-dms-eventsubscription.go | 29 +- cloudformation/aws-dms-replicationinstance.go | 29 +- .../aws-dms-replicationsubnetgroup.go | 29 +- cloudformation/aws-dms-replicationtask.go | 29 +- cloudformation/aws-docdb-dbcluster.go | 245 + .../aws-docdb-dbclusterparametergroup.go | 190 + cloudformation/aws-docdb-dbinstance.go | 200 + cloudformation/aws-docdb-dbsubnetgroup.go | 185 + cloudformation/aws-dynamodb-table.go | 29 +- cloudformation/aws-ec2-customergateway.go | 29 +- cloudformation/aws-ec2-dhcpoptions.go | 29 +- cloudformation/aws-ec2-ec2fleet.go | 33 +- .../aws-ec2-egressonlyinternetgateway.go | 29 +- cloudformation/aws-ec2-eip.go | 29 +- cloudformation/aws-ec2-eipassociation.go | 29 +- cloudformation/aws-ec2-flowlog.go | 29 +- cloudformation/aws-ec2-host.go | 29 +- cloudformation/aws-ec2-instance.go | 29 +- cloudformation/aws-ec2-internetgateway.go | 29 +- cloudformation/aws-ec2-launchtemplate.go | 29 +- ...htemplate_capacityreservationpreference.go | 50 + ...mplate_capacityreservationspecification.go | 60 + ...aunchtemplate_capacityreservationtarget.go | 55 + .../aws-ec2-launchtemplate_cpuoptions.go | 60 + ...s-ec2-launchtemplate_hibernationoptions.go | 55 + ...s-ec2-launchtemplate_launchtemplatedata.go | 25 + ...unchtemplateelasticinferenceaccelerator.go | 55 + ...ec2-launchtemplate_licensespecification.go | 55 + cloudformation/aws-ec2-natgateway.go | 29 +- cloudformation/aws-ec2-networkacl.go | 29 +- cloudformation/aws-ec2-networkaclentry.go | 29 +- cloudformation/aws-ec2-networkinterface.go | 29 +- .../aws-ec2-networkinterfaceattachment.go | 29 +- .../aws-ec2-networkinterfacepermission.go | 29 +- cloudformation/aws-ec2-placementgroup.go | 29 +- cloudformation/aws-ec2-route.go | 29 +- cloudformation/aws-ec2-routetable.go | 29 +- cloudformation/aws-ec2-securitygroup.go | 29 +- cloudformation/aws-ec2-securitygroupegress.go | 29 +- .../aws-ec2-securitygroupingress.go | 29 +- cloudformation/aws-ec2-spotfleet.go | 29 +- cloudformation/aws-ec2-subnet.go | 29 +- cloudformation/aws-ec2-subnetcidrblock.go | 29 +- .../aws-ec2-subnetnetworkaclassociation.go | 29 +- .../aws-ec2-subnetroutetableassociation.go | 29 +- cloudformation/aws-ec2-transitgateway.go | 29 +- .../aws-ec2-transitgatewayattachment.go | 29 +- cloudformation/aws-ec2-transitgatewayroute.go | 29 +- .../aws-ec2-transitgatewayroutetable.go | 29 +- ...ec2-transitgatewayroutetableassociation.go | 29 +- ...ec2-transitgatewayroutetablepropagation.go | 29 +- .../aws-ec2-trunkinterfaceassociation.go | 29 +- cloudformation/aws-ec2-volume.go | 29 +- cloudformation/aws-ec2-volumeattachment.go | 29 +- cloudformation/aws-ec2-vpc.go | 29 +- cloudformation/aws-ec2-vpccidrblock.go | 29 +- .../aws-ec2-vpcdhcpoptionsassociation.go | 29 +- cloudformation/aws-ec2-vpcendpoint.go | 33 +- ...s-ec2-vpcendpointconnectionnotification.go | 29 +- .../aws-ec2-vpcendpointservicepermissions.go | 29 +- .../aws-ec2-vpcgatewayattachment.go | 29 +- .../aws-ec2-vpcpeeringconnection.go | 29 +- cloudformation/aws-ec2-vpnconnection.go | 29 +- cloudformation/aws-ec2-vpnconnectionroute.go | 29 +- cloudformation/aws-ec2-vpngateway.go | 29 +- .../aws-ec2-vpngatewayroutepropagation.go | 29 +- cloudformation/aws-ecr-repository.go | 29 +- cloudformation/aws-ecs-cluster.go | 29 +- cloudformation/aws-ecs-service.go | 29 +- cloudformation/aws-ecs-taskdefinition.go | 29 +- cloudformation/aws-efs-filesystem.go | 29 +- cloudformation/aws-efs-mounttarget.go | 29 +- cloudformation/aws-eks-cluster.go | 29 +- .../aws-elasticache-cachecluster.go | 29 +- .../aws-elasticache-parametergroup.go | 29 +- .../aws-elasticache-replicationgroup.go | 29 +- .../aws-elasticache-securitygroup.go | 29 +- .../aws-elasticache-securitygroupingress.go | 29 +- cloudformation/aws-elasticache-subnetgroup.go | 29 +- .../aws-elasticbeanstalk-application.go | 29 +- ...aws-elasticbeanstalk-applicationversion.go | 29 +- ...-elasticbeanstalk-configurationtemplate.go | 29 +- .../aws-elasticbeanstalk-environment.go | 29 +- .../aws-elasticloadbalancing-loadbalancer.go | 29 +- .../aws-elasticloadbalancingv2-listener.go | 29 +- ...sticloadbalancingv2-listenercertificate.go | 29 +- ...aws-elasticloadbalancingv2-listenerrule.go | 29 +- ...aws-elasticloadbalancingv2-loadbalancer.go | 29 +- .../aws-elasticloadbalancingv2-targetgroup.go | 42 +- cloudformation/aws-elasticsearch-domain.go | 34 +- ...arch-domain_nodetonodeencryptionoptions.go | 55 + cloudformation/aws-emr-cluster.go | 29 +- cloudformation/aws-emr-instancefleetconfig.go | 29 +- cloudformation/aws-emr-instancegroupconfig.go | 29 +- .../aws-emr-securityconfiguration.go | 29 +- cloudformation/aws-emr-step.go | 29 +- cloudformation/aws-events-eventbuspolicy.go | 29 +- cloudformation/aws-events-rule.go | 29 +- cloudformation/aws-fsx-filesystem.go | 210 + .../aws-fsx-filesystem_lustreconfiguration.go | 70 + cloudformation/aws-fsx-filesystem_tagentry.go | 60 + ...aws-fsx-filesystem_windowsconfiguration.go | 80 + cloudformation/aws-gamelift-alias.go | 29 +- cloudformation/aws-gamelift-build.go | 29 +- cloudformation/aws-gamelift-fleet.go | 29 +- cloudformation/aws-glue-classifier.go | 29 +- cloudformation/aws-glue-connection.go | 29 +- cloudformation/aws-glue-crawler.go | 29 +- cloudformation/aws-glue-database.go | 29 +- cloudformation/aws-glue-devendpoint.go | 29 +- cloudformation/aws-glue-job.go | 29 +- cloudformation/aws-glue-partition.go | 29 +- cloudformation/aws-glue-table.go | 29 +- cloudformation/aws-glue-trigger.go | 29 +- cloudformation/aws-guardduty-detector.go | 29 +- cloudformation/aws-guardduty-filter.go | 29 +- cloudformation/aws-guardduty-ipset.go | 29 +- cloudformation/aws-guardduty-master.go | 29 +- cloudformation/aws-guardduty-member.go | 29 +- .../aws-guardduty-threatintelset.go | 29 +- cloudformation/aws-iam-accesskey.go | 29 +- cloudformation/aws-iam-group.go | 29 +- cloudformation/aws-iam-instanceprofile.go | 29 +- cloudformation/aws-iam-managedpolicy.go | 29 +- cloudformation/aws-iam-policy.go | 29 +- cloudformation/aws-iam-role.go | 29 +- cloudformation/aws-iam-servicelinkedrole.go | 29 +- cloudformation/aws-iam-user.go | 29 +- cloudformation/aws-iam-usertogroupaddition.go | 29 +- .../aws-inspector-assessmenttarget.go | 31 +- .../aws-inspector-assessmenttemplate.go | 29 +- cloudformation/aws-inspector-resourcegroup.go | 29 +- cloudformation/aws-iot-certificate.go | 29 +- cloudformation/aws-iot-policy.go | 29 +- .../aws-iot-policyprincipalattachment.go | 29 +- cloudformation/aws-iot-thing.go | 29 +- .../aws-iot-thingprincipalattachment.go | 29 +- cloudformation/aws-iot-topicrule.go | 29 +- cloudformation/aws-iot1click-device.go | 29 +- cloudformation/aws-iot1click-placement.go | 29 +- cloudformation/aws-iot1click-project.go | 29 +- cloudformation/aws-iotanalytics-channel.go | 180 + ...ws-iotanalytics-channel_retentionperiod.go | 60 + cloudformation/aws-iotanalytics-dataset.go | 190 + .../aws-iotanalytics-dataset_action.go | 65 + ...ws-iotanalytics-dataset_containeraction.go | 70 + ...tics-dataset_datasetcontentversionvalue.go | 55 + .../aws-iotanalytics-dataset_deltatime.go | 60 + .../aws-iotanalytics-dataset_filter.go | 55 + ...iotanalytics-dataset_outputfileurivalue.go | 55 + .../aws-iotanalytics-dataset_queryaction.go | 60 + ...analytics-dataset_resourceconfiguration.go | 60 + ...ws-iotanalytics-dataset_retentionperiod.go | 60 + .../aws-iotanalytics-dataset_schedule.go | 55 + .../aws-iotanalytics-dataset_trigger.go | 60 + ...-iotanalytics-dataset_triggeringdataset.go | 55 + .../aws-iotanalytics-dataset_variable.go | 75 + cloudformation/aws-iotanalytics-datastore.go | 180 + ...-iotanalytics-datastore_retentionperiod.go | 60 + cloudformation/aws-iotanalytics-pipeline.go | 180 + .../aws-iotanalytics-pipeline_activity.go | 100 + ...aws-iotanalytics-pipeline_addattributes.go | 65 + .../aws-iotanalytics-pipeline_channel.go | 65 + .../aws-iotanalytics-pipeline_datastore.go | 60 + ...analytics-pipeline_deviceregistryenrich.go | 75 + ...otanalytics-pipeline_deviceshadowenrich.go | 75 + .../aws-iotanalytics-pipeline_filter.go | 65 + .../aws-iotanalytics-pipeline_lambda.go | 70 + .../aws-iotanalytics-pipeline_math.go | 70 + ...-iotanalytics-pipeline_removeattributes.go | 65 + ...-iotanalytics-pipeline_selectattributes.go | 65 + cloudformation/aws-kinesis-stream.go | 29 +- cloudformation/aws-kinesis-streamconsumer.go | 29 +- .../aws-kinesisanalytics-application.go | 29 +- .../aws-kinesisanalytics-applicationoutput.go | 29 +- ...nalytics-applicationreferencedatasource.go | 29 +- .../aws-kinesisanalyticsv2-application.go | 190 + ...pplication_applicationcodeconfiguration.go | 60 + ...v2-application_applicationconfiguration.go | 75 + ...cation_applicationsnapshotconfiguration.go | 55 + ...sv2-application_checkpointconfiguration.go | 70 + ...esisanalyticsv2-application_codecontent.go | 65 + ...ticsv2-application_csvmappingparameters.go | 60 + ...icsv2-application_environmentproperties.go | 55 + ...plication_flinkapplicationconfiguration.go | 65 + ...ws-kinesisanalyticsv2-application_input.go | 80 + ...ticsv2-application_inputlambdaprocessor.go | 55 + ...nalyticsv2-application_inputparallelism.go | 55 + ...pplication_inputprocessingconfiguration.go | 55 + ...esisanalyticsv2-application_inputschema.go | 65 + ...icsv2-application_jsonmappingparameters.go | 55 + ...ticsv2-application_kinesisfirehoseinput.go | 55 + ...yticsv2-application_kinesisstreamsinput.go | 55 + ...alyticsv2-application_mappingparameters.go | 60 + ...sv2-application_monitoringconfiguration.go | 65 + ...v2-application_parallelismconfiguration.go | 70 + ...isanalyticsv2-application_propertygroup.go | 60 + ...sisanalyticsv2-application_recordcolumn.go | 65 + ...sisanalyticsv2-application_recordformat.go | 60 + ...alyticsv2-application_s3contentlocation.go | 65 + ...application_sqlapplicationconfiguration.go | 55 + ...csv2-applicationcloudwatchloggingoption.go | 175 + ...chloggingoption_cloudwatchloggingoption.go | 55 + ...ws-kinesisanalyticsv2-applicationoutput.go | 175 + ...sv2-applicationoutput_destinationschema.go | 55 + ...applicationoutput_kinesisfirehoseoutput.go | 55 + ...-applicationoutput_kinesisstreamsoutput.go | 55 + ...lyticsv2-applicationoutput_lambdaoutput.go | 55 + ...sisanalyticsv2-applicationoutput_output.go | 75 + ...lyticsv2-applicationreferencedatasource.go | 175 + ...eferencedatasource_csvmappingparameters.go | 60 + ...ferencedatasource_jsonmappingparameters.go | 55 + ...onreferencedatasource_mappingparameters.go | 60 + ...icationreferencedatasource_recordcolumn.go | 65 + ...icationreferencedatasource_recordformat.go | 60 + ...referencedatasource_referencedatasource.go | 65 + ...tionreferencedatasource_referenceschema.go | 65 + ...ferencedatasource_s3referencedatasource.go | 60 + .../aws-kinesisfirehose-deliverystream.go | 29 +- cloudformation/aws-kms-alias.go | 29 +- cloudformation/aws-kms-key.go | 29 +- cloudformation/aws-lambda-alias.go | 29 +- .../aws-lambda-eventsourcemapping.go | 29 +- cloudformation/aws-lambda-function.go | 29 +- cloudformation/aws-lambda-layerversion.go | 190 + .../aws-lambda-layerversion_content.go | 65 + .../aws-lambda-layerversionpermission.go | 185 + cloudformation/aws-lambda-permission.go | 29 +- cloudformation/aws-lambda-version.go | 29 +- cloudformation/aws-logs-destination.go | 29 +- cloudformation/aws-logs-loggroup.go | 29 +- cloudformation/aws-logs-logstream.go | 29 +- cloudformation/aws-logs-metricfilter.go | 29 +- cloudformation/aws-logs-subscriptionfilter.go | 29 +- cloudformation/aws-neptune-dbcluster.go | 29 +- .../aws-neptune-dbclusterparametergroup.go | 29 +- cloudformation/aws-neptune-dbinstance.go | 29 +- .../aws-neptune-dbparametergroup.go | 29 +- cloudformation/aws-neptune-dbsubnetgroup.go | 29 +- cloudformation/aws-opsworks-app.go | 29 +- ...-opsworks-elasticloadbalancerattachment.go | 29 +- cloudformation/aws-opsworks-instance.go | 29 +- cloudformation/aws-opsworks-layer.go | 29 +- cloudformation/aws-opsworks-stack.go | 29 +- cloudformation/aws-opsworks-userprofile.go | 29 +- cloudformation/aws-opsworks-volume.go | 29 +- cloudformation/aws-opsworkscm-server.go | 250 + .../aws-opsworkscm-server_engineattribute.go | 60 + cloudformation/aws-ram-resourceshare.go | 190 + cloudformation/aws-rds-dbcluster.go | 34 +- .../aws-rds-dbclusterparametergroup.go | 29 +- cloudformation/aws-rds-dbinstance.go | 34 +- cloudformation/aws-rds-dbparametergroup.go | 29 +- cloudformation/aws-rds-dbsecuritygroup.go | 29 +- .../aws-rds-dbsecuritygroupingress.go | 29 +- cloudformation/aws-rds-dbsubnetgroup.go | 29 +- cloudformation/aws-rds-eventsubscription.go | 29 +- cloudformation/aws-rds-optiongroup.go | 29 +- cloudformation/aws-redshift-cluster.go | 29 +- .../aws-redshift-clusterparametergroup.go | 29 +- .../aws-redshift-clustersecuritygroup.go | 29 +- ...ws-redshift-clustersecuritygroupingress.go | 29 +- .../aws-redshift-clustersubnetgroup.go | 29 +- cloudformation/aws-robomaker-fleet.go | 175 + cloudformation/aws-robomaker-robot.go | 190 + .../aws-robomaker-robotapplication.go | 190 + ...ker-robotapplication_robotsoftwaresuite.go | 60 + ...robomaker-robotapplication_sourceconfig.go | 65 + .../aws-robomaker-robotapplicationversion.go | 175 + .../aws-robomaker-simulationapplication.go | 200 + ...r-simulationapplication_renderingengine.go | 60 + ...imulationapplication_robotsoftwaresuite.go | 60 + ...tionapplication_simulationsoftwaresuite.go | 60 + ...aker-simulationapplication_sourceconfig.go | 65 + ...-robomaker-simulationapplicationversion.go | 175 + cloudformation/aws-route53-healthcheck.go | 29 +- cloudformation/aws-route53-hostedzone.go | 29 +- cloudformation/aws-route53-recordset.go | 29 +- cloudformation/aws-route53-recordsetgroup.go | 29 +- .../aws-route53resolver-resolverendpoint.go | 29 +- .../aws-route53resolver-resolverrule.go | 29 +- ...route53resolver-resolverruleassociation.go | 180 + cloudformation/aws-s3-bucket.go | 29 +- cloudformation/aws-s3-bucketpolicy.go | 29 +- cloudformation/aws-sagemaker-endpoint.go | 29 +- .../aws-sagemaker-endpointconfig.go | 29 +- ...emaker-endpointconfig_productionvariant.go | 5 + cloudformation/aws-sagemaker-model.go | 36 +- .../aws-sagemaker-notebookinstance.go | 29 +- ...gemaker-notebookinstancelifecycleconfig.go | 29 +- cloudformation/aws-sdb-domain.go | 29 +- .../aws-secretsmanager-resourcepolicy.go | 29 +- .../aws-secretsmanager-rotationschedule.go | 29 +- cloudformation/aws-secretsmanager-secret.go | 29 +- ...s-secretsmanager-secrettargetattachment.go | 29 +- cloudformation/aws-serverless-api.go | 49 +- cloudformation/aws-serverless-api_auth.go | 60 + cloudformation/aws-serverless-application.go | 190 + ...verless-application_applicationlocation.go | 60 + cloudformation/aws-serverless-function.go | 49 +- ...erverless-function_deploymentpreference.go | 75 + cloudformation/aws-serverless-layerversion.go | 195 + cloudformation/aws-serverless-simpletable.go | 44 +- ...serverless-simpletable_ssespecification.go | 55 + ...s-servicecatalog-acceptedportfolioshare.go | 29 +- ...ws-servicecatalog-cloudformationproduct.go | 29 +- ...atalog-cloudformationprovisionedproduct.go | 29 +- ...icecatalog-launchnotificationconstraint.go | 29 +- ...aws-servicecatalog-launchroleconstraint.go | 29 +- ...servicecatalog-launchtemplateconstraint.go | 29 +- .../aws-servicecatalog-portfolio.go | 29 +- ...cecatalog-portfolioprincipalassociation.go | 29 +- ...vicecatalog-portfolioproductassociation.go | 29 +- .../aws-servicecatalog-portfolioshare.go | 29 +- .../aws-servicecatalog-tagoption.go | 29 +- ...aws-servicecatalog-tagoptionassociation.go | 29 +- .../aws-servicediscovery-httpnamespace.go | 29 +- .../aws-servicediscovery-instance.go | 29 +- ...ws-servicediscovery-privatednsnamespace.go | 29 +- ...aws-servicediscovery-publicdnsnamespace.go | 29 +- .../aws-servicediscovery-service.go | 29 +- cloudformation/aws-ses-configurationset.go | 29 +- ...ws-ses-configurationseteventdestination.go | 29 +- cloudformation/aws-ses-receiptfilter.go | 29 +- cloudformation/aws-ses-receiptrule.go | 29 +- cloudformation/aws-ses-receiptruleset.go | 29 +- cloudformation/aws-ses-template.go | 29 +- cloudformation/aws-sns-subscription.go | 33 +- cloudformation/aws-sns-topic.go | 29 +- cloudformation/aws-sns-topicpolicy.go | 29 +- cloudformation/aws-sqs-queue.go | 29 +- cloudformation/aws-sqs-queuepolicy.go | 29 +- cloudformation/aws-ssm-association.go | 29 +- cloudformation/aws-ssm-document.go | 29 +- cloudformation/aws-ssm-maintenancewindow.go | 34 +- .../aws-ssm-maintenancewindowtask.go | 29 +- cloudformation/aws-ssm-parameter.go | 29 +- cloudformation/aws-ssm-patchbaseline.go | 29 +- cloudformation/aws-ssm-resourcedatasync.go | 29 +- cloudformation/aws-stepfunctions-activity.go | 29 +- .../aws-stepfunctions-statemachine.go | 29 +- cloudformation/aws-waf-bytematchset.go | 29 +- cloudformation/aws-waf-ipset.go | 29 +- cloudformation/aws-waf-rule.go | 29 +- cloudformation/aws-waf-sizeconstraintset.go | 29 +- .../aws-waf-sqlinjectionmatchset.go | 29 +- cloudformation/aws-waf-webacl.go | 29 +- cloudformation/aws-waf-xssmatchset.go | 29 +- .../aws-wafregional-bytematchset.go | 29 +- cloudformation/aws-wafregional-ipset.go | 29 +- cloudformation/aws-wafregional-rule.go | 29 +- .../aws-wafregional-sizeconstraintset.go | 29 +- .../aws-wafregional-sqlinjectionmatchset.go | 29 +- cloudformation/aws-wafregional-webacl.go | 29 +- .../aws-wafregional-webaclassociation.go | 29 +- cloudformation/aws-wafregional-xssmatchset.go | 29 +- cloudformation/aws-workspaces-workspace.go | 29 +- .../awsserverlessapplication_location.go | 54 + schema/cloudformation.go | 26691 ++++++++------- schema/cloudformation.schema.json | 26691 ++++++++------- schema/sam.go | 27270 +++++++++------- schema/sam.schema.json | 27270 +++++++++------- 481 files changed, 82373 insertions(+), 49437 deletions(-) create mode 100644 cloudformation/aws-amazonmq-broker_tagsentry.go create mode 100644 cloudformation/aws-amazonmq-configuration_tagsentry.go create mode 100644 cloudformation/aws-amazonmq-configurationassociation.go create mode 100644 cloudformation/aws-amazonmq-configurationassociation_configurationid.go create mode 100644 cloudformation/aws-apigatewayv2-api.go create mode 100644 cloudformation/aws-apigatewayv2-authorizer.go create mode 100644 cloudformation/aws-apigatewayv2-deployment.go create mode 100644 cloudformation/aws-apigatewayv2-integration.go create mode 100644 cloudformation/aws-apigatewayv2-integrationresponse.go create mode 100644 cloudformation/aws-apigatewayv2-model.go create mode 100644 cloudformation/aws-apigatewayv2-route.go create mode 100644 cloudformation/aws-apigatewayv2-route_parameterconstraints.go create mode 100644 cloudformation/aws-apigatewayv2-routeresponse.go create mode 100644 cloudformation/aws-apigatewayv2-routeresponse_parameterconstraints.go create mode 100644 cloudformation/aws-apigatewayv2-stage.go create mode 100644 cloudformation/aws-apigatewayv2-stage_accesslogsettings.go create mode 100644 cloudformation/aws-apigatewayv2-stage_routesettings.go create mode 100644 cloudformation/aws-cloudwatch-alarm_metric.go create mode 100644 cloudformation/aws-cloudwatch-alarm_metricdataquery.go create mode 100644 cloudformation/aws-cloudwatch-alarm_metricstat.go create mode 100644 cloudformation/aws-codebuild-project_filtergroup.go create mode 100644 cloudformation/aws-codebuild-project_registrycredential.go create mode 100644 cloudformation/aws-codebuild-project_webhookfilter.go create mode 100644 cloudformation/aws-dms-endpoint_elasticsearchsettings.go create mode 100644 cloudformation/aws-dms-endpoint_kinesissettings.go create mode 100644 cloudformation/aws-docdb-dbcluster.go create mode 100644 cloudformation/aws-docdb-dbclusterparametergroup.go create mode 100644 cloudformation/aws-docdb-dbinstance.go create mode 100644 cloudformation/aws-docdb-dbsubnetgroup.go create mode 100644 cloudformation/aws-ec2-launchtemplate_capacityreservationpreference.go create mode 100644 cloudformation/aws-ec2-launchtemplate_capacityreservationspecification.go create mode 100644 cloudformation/aws-ec2-launchtemplate_capacityreservationtarget.go create mode 100644 cloudformation/aws-ec2-launchtemplate_cpuoptions.go create mode 100644 cloudformation/aws-ec2-launchtemplate_hibernationoptions.go create mode 100644 cloudformation/aws-ec2-launchtemplate_launchtemplateelasticinferenceaccelerator.go create mode 100644 cloudformation/aws-ec2-launchtemplate_licensespecification.go create mode 100644 cloudformation/aws-elasticsearch-domain_nodetonodeencryptionoptions.go create mode 100644 cloudformation/aws-fsx-filesystem.go create mode 100644 cloudformation/aws-fsx-filesystem_lustreconfiguration.go create mode 100644 cloudformation/aws-fsx-filesystem_tagentry.go create mode 100644 cloudformation/aws-fsx-filesystem_windowsconfiguration.go create mode 100644 cloudformation/aws-iotanalytics-channel.go create mode 100644 cloudformation/aws-iotanalytics-channel_retentionperiod.go create mode 100644 cloudformation/aws-iotanalytics-dataset.go create mode 100644 cloudformation/aws-iotanalytics-dataset_action.go create mode 100644 cloudformation/aws-iotanalytics-dataset_containeraction.go create mode 100644 cloudformation/aws-iotanalytics-dataset_datasetcontentversionvalue.go create mode 100644 cloudformation/aws-iotanalytics-dataset_deltatime.go create mode 100644 cloudformation/aws-iotanalytics-dataset_filter.go create mode 100644 cloudformation/aws-iotanalytics-dataset_outputfileurivalue.go create mode 100644 cloudformation/aws-iotanalytics-dataset_queryaction.go create mode 100644 cloudformation/aws-iotanalytics-dataset_resourceconfiguration.go create mode 100644 cloudformation/aws-iotanalytics-dataset_retentionperiod.go create mode 100644 cloudformation/aws-iotanalytics-dataset_schedule.go create mode 100644 cloudformation/aws-iotanalytics-dataset_trigger.go create mode 100644 cloudformation/aws-iotanalytics-dataset_triggeringdataset.go create mode 100644 cloudformation/aws-iotanalytics-dataset_variable.go create mode 100644 cloudformation/aws-iotanalytics-datastore.go create mode 100644 cloudformation/aws-iotanalytics-datastore_retentionperiod.go create mode 100644 cloudformation/aws-iotanalytics-pipeline.go create mode 100644 cloudformation/aws-iotanalytics-pipeline_activity.go create mode 100644 cloudformation/aws-iotanalytics-pipeline_addattributes.go create mode 100644 cloudformation/aws-iotanalytics-pipeline_channel.go create mode 100644 cloudformation/aws-iotanalytics-pipeline_datastore.go create mode 100644 cloudformation/aws-iotanalytics-pipeline_deviceregistryenrich.go create mode 100644 cloudformation/aws-iotanalytics-pipeline_deviceshadowenrich.go create mode 100644 cloudformation/aws-iotanalytics-pipeline_filter.go create mode 100644 cloudformation/aws-iotanalytics-pipeline_lambda.go create mode 100644 cloudformation/aws-iotanalytics-pipeline_math.go create mode 100644 cloudformation/aws-iotanalytics-pipeline_removeattributes.go create mode 100644 cloudformation/aws-iotanalytics-pipeline_selectattributes.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_applicationcodeconfiguration.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_applicationconfiguration.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_applicationsnapshotconfiguration.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_checkpointconfiguration.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_codecontent.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_csvmappingparameters.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_environmentproperties.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_flinkapplicationconfiguration.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_input.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_inputlambdaprocessor.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_inputparallelism.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_inputprocessingconfiguration.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_inputschema.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_jsonmappingparameters.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_kinesisfirehoseinput.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_kinesisstreamsinput.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_mappingparameters.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_monitoringconfiguration.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_parallelismconfiguration.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_propertygroup.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_recordcolumn.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_recordformat.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_s3contentlocation.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-application_sqlapplicationconfiguration.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption_cloudwatchloggingoption.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-applicationoutput.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-applicationoutput_destinationschema.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-applicationoutput_kinesisfirehoseoutput.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-applicationoutput_kinesisstreamsoutput.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-applicationoutput_lambdaoutput.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-applicationoutput_output.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_csvmappingparameters.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_jsonmappingparameters.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_mappingparameters.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_recordcolumn.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_recordformat.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_referencedatasource.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_referenceschema.go create mode 100644 cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_s3referencedatasource.go create mode 100644 cloudformation/aws-lambda-layerversion.go create mode 100644 cloudformation/aws-lambda-layerversion_content.go create mode 100644 cloudformation/aws-lambda-layerversionpermission.go create mode 100644 cloudformation/aws-opsworkscm-server.go create mode 100644 cloudformation/aws-opsworkscm-server_engineattribute.go create mode 100644 cloudformation/aws-ram-resourceshare.go create mode 100644 cloudformation/aws-robomaker-fleet.go create mode 100644 cloudformation/aws-robomaker-robot.go create mode 100644 cloudformation/aws-robomaker-robotapplication.go create mode 100644 cloudformation/aws-robomaker-robotapplication_robotsoftwaresuite.go create mode 100644 cloudformation/aws-robomaker-robotapplication_sourceconfig.go create mode 100644 cloudformation/aws-robomaker-robotapplicationversion.go create mode 100644 cloudformation/aws-robomaker-simulationapplication.go create mode 100644 cloudformation/aws-robomaker-simulationapplication_renderingengine.go create mode 100644 cloudformation/aws-robomaker-simulationapplication_robotsoftwaresuite.go create mode 100644 cloudformation/aws-robomaker-simulationapplication_simulationsoftwaresuite.go create mode 100644 cloudformation/aws-robomaker-simulationapplication_sourceconfig.go create mode 100644 cloudformation/aws-robomaker-simulationapplicationversion.go create mode 100644 cloudformation/aws-route53resolver-resolverruleassociation.go create mode 100644 cloudformation/aws-serverless-api_auth.go create mode 100644 cloudformation/aws-serverless-application.go create mode 100644 cloudformation/aws-serverless-application_applicationlocation.go create mode 100644 cloudformation/aws-serverless-function_deploymentpreference.go create mode 100644 cloudformation/aws-serverless-layerversion.go create mode 100644 cloudformation/aws-serverless-simpletable_ssespecification.go create mode 100644 cloudformation/awsserverlessapplication_location.go diff --git a/cloudformation/alexa-ask-skill.go b/cloudformation/alexa-ask-skill.go index f0ff6c25b6..f6925261f8 100644 --- a/cloudformation/alexa-ask-skill.go +++ b/cloudformation/alexa-ask-skill.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AlexaASKSkill) SetDeletionPolicy(policy DeletionPolicy) { // 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 AlexaASKSkill) MarshalJSON() ([]byte, error) { +func (r *AlexaASKSkill) MarshalJSON() ([]byte, error) { type Properties AlexaASKSkill return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AlexaASKSkill) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AlexaASKSkill) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AlexaASKSkill) UnmarshalJSON(b []byte) error { } // GetAllAlexaASKSkillResources retrieves all AlexaASKSkill items from an AWS CloudFormation template -func (t *Template) GetAllAlexaASKSkillResources() map[string]AlexaASKSkill { - results := map[string]AlexaASKSkill{} +func (t *Template) GetAllAlexaASKSkillResources() map[string]*AlexaASKSkill { + results := map[string]*AlexaASKSkill{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AlexaASKSkill: + case *AlexaASKSkill: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAlexaASKSkillResources() map[string]AlexaASKSkill { if b, err := json.Marshal(resource); err == nil { var result AlexaASKSkill if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAlexaASKSkillResources() map[string]AlexaASKSkill { // GetAlexaASKSkillWithName retrieves all AlexaASKSkill items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAlexaASKSkillWithName(name string) (AlexaASKSkill, error) { +func (t *Template) GetAlexaASKSkillWithName(name string) (*AlexaASKSkill, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AlexaASKSkill: + case *AlexaASKSkill: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAlexaASKSkillWithName(name string) (AlexaASKSkill, error) if b, err := json.Marshal(resource); err == nil { var result AlexaASKSkill if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AlexaASKSkill{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/all.go b/cloudformation/all.go index 4ea80bc4f8..4b302cdbb4 100644 --- a/cloudformation/all.go +++ b/cloudformation/all.go @@ -3,337 +3,373 @@ package cloudformation // AllResources fetches an iterable map all CloudFormation and SAM resources func AllResources() map[string]interface{} { return map[string]interface{}{ - "AWS::AmazonMQ::Broker": AWSAmazonMQBroker{}, - "AWS::AmazonMQ::Configuration": AWSAmazonMQConfiguration{}, - "AWS::ApiGateway::Account": AWSApiGatewayAccount{}, - "AWS::ApiGateway::ApiKey": AWSApiGatewayApiKey{}, - "AWS::ApiGateway::Authorizer": AWSApiGatewayAuthorizer{}, - "AWS::ApiGateway::BasePathMapping": AWSApiGatewayBasePathMapping{}, - "AWS::ApiGateway::ClientCertificate": AWSApiGatewayClientCertificate{}, - "AWS::ApiGateway::Deployment": AWSApiGatewayDeployment{}, - "AWS::ApiGateway::DocumentationPart": AWSApiGatewayDocumentationPart{}, - "AWS::ApiGateway::DocumentationVersion": AWSApiGatewayDocumentationVersion{}, - "AWS::ApiGateway::DomainName": AWSApiGatewayDomainName{}, - "AWS::ApiGateway::GatewayResponse": AWSApiGatewayGatewayResponse{}, - "AWS::ApiGateway::Method": AWSApiGatewayMethod{}, - "AWS::ApiGateway::Model": AWSApiGatewayModel{}, - "AWS::ApiGateway::RequestValidator": AWSApiGatewayRequestValidator{}, - "AWS::ApiGateway::Resource": AWSApiGatewayResource{}, - "AWS::ApiGateway::RestApi": AWSApiGatewayRestApi{}, - "AWS::ApiGateway::Stage": AWSApiGatewayStage{}, - "AWS::ApiGateway::UsagePlan": AWSApiGatewayUsagePlan{}, - "AWS::ApiGateway::UsagePlanKey": AWSApiGatewayUsagePlanKey{}, - "AWS::ApiGateway::VpcLink": AWSApiGatewayVpcLink{}, - "AWS::AppStream::DirectoryConfig": AWSAppStreamDirectoryConfig{}, - "AWS::AppStream::Fleet": AWSAppStreamFleet{}, - "AWS::AppStream::ImageBuilder": AWSAppStreamImageBuilder{}, - "AWS::AppStream::Stack": AWSAppStreamStack{}, - "AWS::AppStream::StackFleetAssociation": AWSAppStreamStackFleetAssociation{}, - "AWS::AppStream::StackUserAssociation": AWSAppStreamStackUserAssociation{}, - "AWS::AppStream::User": AWSAppStreamUser{}, - "AWS::AppSync::ApiKey": AWSAppSyncApiKey{}, - "AWS::AppSync::DataSource": AWSAppSyncDataSource{}, - "AWS::AppSync::FunctionConfiguration": AWSAppSyncFunctionConfiguration{}, - "AWS::AppSync::GraphQLApi": AWSAppSyncGraphQLApi{}, - "AWS::AppSync::GraphQLSchema": AWSAppSyncGraphQLSchema{}, - "AWS::AppSync::Resolver": AWSAppSyncResolver{}, - "AWS::ApplicationAutoScaling::ScalableTarget": AWSApplicationAutoScalingScalableTarget{}, - "AWS::ApplicationAutoScaling::ScalingPolicy": AWSApplicationAutoScalingScalingPolicy{}, - "AWS::Athena::NamedQuery": AWSAthenaNamedQuery{}, - "AWS::AutoScaling::AutoScalingGroup": AWSAutoScalingAutoScalingGroup{}, - "AWS::AutoScaling::LaunchConfiguration": AWSAutoScalingLaunchConfiguration{}, - "AWS::AutoScaling::LifecycleHook": AWSAutoScalingLifecycleHook{}, - "AWS::AutoScaling::ScalingPolicy": AWSAutoScalingScalingPolicy{}, - "AWS::AutoScaling::ScheduledAction": AWSAutoScalingScheduledAction{}, - "AWS::AutoScalingPlans::ScalingPlan": AWSAutoScalingPlansScalingPlan{}, - "AWS::Batch::ComputeEnvironment": AWSBatchComputeEnvironment{}, - "AWS::Batch::JobDefinition": AWSBatchJobDefinition{}, - "AWS::Batch::JobQueue": AWSBatchJobQueue{}, - "AWS::Budgets::Budget": AWSBudgetsBudget{}, - "AWS::CertificateManager::Certificate": AWSCertificateManagerCertificate{}, - "AWS::Cloud9::EnvironmentEC2": AWSCloud9EnvironmentEC2{}, - "AWS::CloudFormation::CustomResource": AWSCloudFormationCustomResource{}, - "AWS::CloudFormation::Macro": AWSCloudFormationMacro{}, - "AWS::CloudFormation::Stack": AWSCloudFormationStack{}, - "AWS::CloudFormation::WaitCondition": AWSCloudFormationWaitCondition{}, - "AWS::CloudFormation::WaitConditionHandle": AWSCloudFormationWaitConditionHandle{}, - "AWS::CloudFront::CloudFrontOriginAccessIdentity": AWSCloudFrontCloudFrontOriginAccessIdentity{}, - "AWS::CloudFront::Distribution": AWSCloudFrontDistribution{}, - "AWS::CloudFront::StreamingDistribution": AWSCloudFrontStreamingDistribution{}, - "AWS::CloudTrail::Trail": AWSCloudTrailTrail{}, - "AWS::CloudWatch::Alarm": AWSCloudWatchAlarm{}, - "AWS::CloudWatch::Dashboard": AWSCloudWatchDashboard{}, - "AWS::CodeBuild::Project": AWSCodeBuildProject{}, - "AWS::CodeCommit::Repository": AWSCodeCommitRepository{}, - "AWS::CodeDeploy::Application": AWSCodeDeployApplication{}, - "AWS::CodeDeploy::DeploymentConfig": AWSCodeDeployDeploymentConfig{}, - "AWS::CodeDeploy::DeploymentGroup": AWSCodeDeployDeploymentGroup{}, - "AWS::CodePipeline::CustomActionType": AWSCodePipelineCustomActionType{}, - "AWS::CodePipeline::Pipeline": AWSCodePipelinePipeline{}, - "AWS::CodePipeline::Webhook": AWSCodePipelineWebhook{}, - "AWS::Cognito::IdentityPool": AWSCognitoIdentityPool{}, - "AWS::Cognito::IdentityPoolRoleAttachment": AWSCognitoIdentityPoolRoleAttachment{}, - "AWS::Cognito::UserPool": AWSCognitoUserPool{}, - "AWS::Cognito::UserPoolClient": AWSCognitoUserPoolClient{}, - "AWS::Cognito::UserPoolGroup": AWSCognitoUserPoolGroup{}, - "AWS::Cognito::UserPoolUser": AWSCognitoUserPoolUser{}, - "AWS::Cognito::UserPoolUserToGroupAttachment": AWSCognitoUserPoolUserToGroupAttachment{}, - "AWS::Config::AggregationAuthorization": AWSConfigAggregationAuthorization{}, - "AWS::Config::ConfigRule": AWSConfigConfigRule{}, - "AWS::Config::ConfigurationAggregator": AWSConfigConfigurationAggregator{}, - "AWS::Config::ConfigurationRecorder": AWSConfigConfigurationRecorder{}, - "AWS::Config::DeliveryChannel": AWSConfigDeliveryChannel{}, - "AWS::DAX::Cluster": AWSDAXCluster{}, - "AWS::DAX::ParameterGroup": AWSDAXParameterGroup{}, - "AWS::DAX::SubnetGroup": AWSDAXSubnetGroup{}, - "AWS::DLM::LifecyclePolicy": AWSDLMLifecyclePolicy{}, - "AWS::DMS::Certificate": AWSDMSCertificate{}, - "AWS::DMS::Endpoint": AWSDMSEndpoint{}, - "AWS::DMS::EventSubscription": AWSDMSEventSubscription{}, - "AWS::DMS::ReplicationInstance": AWSDMSReplicationInstance{}, - "AWS::DMS::ReplicationSubnetGroup": AWSDMSReplicationSubnetGroup{}, - "AWS::DMS::ReplicationTask": AWSDMSReplicationTask{}, - "AWS::DataPipeline::Pipeline": AWSDataPipelinePipeline{}, - "AWS::DirectoryService::MicrosoftAD": AWSDirectoryServiceMicrosoftAD{}, - "AWS::DirectoryService::SimpleAD": AWSDirectoryServiceSimpleAD{}, - "AWS::DynamoDB::Table": AWSDynamoDBTable{}, - "AWS::EC2::CustomerGateway": AWSEC2CustomerGateway{}, - "AWS::EC2::DHCPOptions": AWSEC2DHCPOptions{}, - "AWS::EC2::EC2Fleet": AWSEC2EC2Fleet{}, - "AWS::EC2::EIP": AWSEC2EIP{}, - "AWS::EC2::EIPAssociation": AWSEC2EIPAssociation{}, - "AWS::EC2::EgressOnlyInternetGateway": AWSEC2EgressOnlyInternetGateway{}, - "AWS::EC2::FlowLog": AWSEC2FlowLog{}, - "AWS::EC2::Host": AWSEC2Host{}, - "AWS::EC2::Instance": AWSEC2Instance{}, - "AWS::EC2::InternetGateway": AWSEC2InternetGateway{}, - "AWS::EC2::LaunchTemplate": AWSEC2LaunchTemplate{}, - "AWS::EC2::NatGateway": AWSEC2NatGateway{}, - "AWS::EC2::NetworkAcl": AWSEC2NetworkAcl{}, - "AWS::EC2::NetworkAclEntry": AWSEC2NetworkAclEntry{}, - "AWS::EC2::NetworkInterface": AWSEC2NetworkInterface{}, - "AWS::EC2::NetworkInterfaceAttachment": AWSEC2NetworkInterfaceAttachment{}, - "AWS::EC2::NetworkInterfacePermission": AWSEC2NetworkInterfacePermission{}, - "AWS::EC2::PlacementGroup": AWSEC2PlacementGroup{}, - "AWS::EC2::Route": AWSEC2Route{}, - "AWS::EC2::RouteTable": AWSEC2RouteTable{}, - "AWS::EC2::SecurityGroup": AWSEC2SecurityGroup{}, - "AWS::EC2::SecurityGroupEgress": AWSEC2SecurityGroupEgress{}, - "AWS::EC2::SecurityGroupIngress": AWSEC2SecurityGroupIngress{}, - "AWS::EC2::SpotFleet": AWSEC2SpotFleet{}, - "AWS::EC2::Subnet": AWSEC2Subnet{}, - "AWS::EC2::SubnetCidrBlock": AWSEC2SubnetCidrBlock{}, - "AWS::EC2::SubnetNetworkAclAssociation": AWSEC2SubnetNetworkAclAssociation{}, - "AWS::EC2::SubnetRouteTableAssociation": AWSEC2SubnetRouteTableAssociation{}, - "AWS::EC2::TransitGateway": AWSEC2TransitGateway{}, - "AWS::EC2::TransitGatewayAttachment": AWSEC2TransitGatewayAttachment{}, - "AWS::EC2::TransitGatewayRoute": AWSEC2TransitGatewayRoute{}, - "AWS::EC2::TransitGatewayRouteTable": AWSEC2TransitGatewayRouteTable{}, - "AWS::EC2::TransitGatewayRouteTableAssociation": AWSEC2TransitGatewayRouteTableAssociation{}, - "AWS::EC2::TransitGatewayRouteTablePropagation": AWSEC2TransitGatewayRouteTablePropagation{}, - "AWS::EC2::TrunkInterfaceAssociation": AWSEC2TrunkInterfaceAssociation{}, - "AWS::EC2::VPC": AWSEC2VPC{}, - "AWS::EC2::VPCCidrBlock": AWSEC2VPCCidrBlock{}, - "AWS::EC2::VPCDHCPOptionsAssociation": AWSEC2VPCDHCPOptionsAssociation{}, - "AWS::EC2::VPCEndpoint": AWSEC2VPCEndpoint{}, - "AWS::EC2::VPCEndpointConnectionNotification": AWSEC2VPCEndpointConnectionNotification{}, - "AWS::EC2::VPCEndpointServicePermissions": AWSEC2VPCEndpointServicePermissions{}, - "AWS::EC2::VPCGatewayAttachment": AWSEC2VPCGatewayAttachment{}, - "AWS::EC2::VPCPeeringConnection": AWSEC2VPCPeeringConnection{}, - "AWS::EC2::VPNConnection": AWSEC2VPNConnection{}, - "AWS::EC2::VPNConnectionRoute": AWSEC2VPNConnectionRoute{}, - "AWS::EC2::VPNGateway": AWSEC2VPNGateway{}, - "AWS::EC2::VPNGatewayRoutePropagation": AWSEC2VPNGatewayRoutePropagation{}, - "AWS::EC2::Volume": AWSEC2Volume{}, - "AWS::EC2::VolumeAttachment": AWSEC2VolumeAttachment{}, - "AWS::ECR::Repository": AWSECRRepository{}, - "AWS::ECS::Cluster": AWSECSCluster{}, - "AWS::ECS::Service": AWSECSService{}, - "AWS::ECS::TaskDefinition": AWSECSTaskDefinition{}, - "AWS::EFS::FileSystem": AWSEFSFileSystem{}, - "AWS::EFS::MountTarget": AWSEFSMountTarget{}, - "AWS::EKS::Cluster": AWSEKSCluster{}, - "AWS::EMR::Cluster": AWSEMRCluster{}, - "AWS::EMR::InstanceFleetConfig": AWSEMRInstanceFleetConfig{}, - "AWS::EMR::InstanceGroupConfig": AWSEMRInstanceGroupConfig{}, - "AWS::EMR::SecurityConfiguration": AWSEMRSecurityConfiguration{}, - "AWS::EMR::Step": AWSEMRStep{}, - "AWS::ElastiCache::CacheCluster": AWSElastiCacheCacheCluster{}, - "AWS::ElastiCache::ParameterGroup": AWSElastiCacheParameterGroup{}, - "AWS::ElastiCache::ReplicationGroup": AWSElastiCacheReplicationGroup{}, - "AWS::ElastiCache::SecurityGroup": AWSElastiCacheSecurityGroup{}, - "AWS::ElastiCache::SecurityGroupIngress": AWSElastiCacheSecurityGroupIngress{}, - "AWS::ElastiCache::SubnetGroup": AWSElastiCacheSubnetGroup{}, - "AWS::ElasticBeanstalk::Application": AWSElasticBeanstalkApplication{}, - "AWS::ElasticBeanstalk::ApplicationVersion": AWSElasticBeanstalkApplicationVersion{}, - "AWS::ElasticBeanstalk::ConfigurationTemplate": AWSElasticBeanstalkConfigurationTemplate{}, - "AWS::ElasticBeanstalk::Environment": AWSElasticBeanstalkEnvironment{}, - "AWS::ElasticLoadBalancing::LoadBalancer": AWSElasticLoadBalancingLoadBalancer{}, - "AWS::ElasticLoadBalancingV2::Listener": AWSElasticLoadBalancingV2Listener{}, - "AWS::ElasticLoadBalancingV2::ListenerCertificate": AWSElasticLoadBalancingV2ListenerCertificate{}, - "AWS::ElasticLoadBalancingV2::ListenerRule": AWSElasticLoadBalancingV2ListenerRule{}, - "AWS::ElasticLoadBalancingV2::LoadBalancer": AWSElasticLoadBalancingV2LoadBalancer{}, - "AWS::ElasticLoadBalancingV2::TargetGroup": AWSElasticLoadBalancingV2TargetGroup{}, - "AWS::Elasticsearch::Domain": AWSElasticsearchDomain{}, - "AWS::Events::EventBusPolicy": AWSEventsEventBusPolicy{}, - "AWS::Events::Rule": AWSEventsRule{}, - "AWS::GameLift::Alias": AWSGameLiftAlias{}, - "AWS::GameLift::Build": AWSGameLiftBuild{}, - "AWS::GameLift::Fleet": AWSGameLiftFleet{}, - "AWS::Glue::Classifier": AWSGlueClassifier{}, - "AWS::Glue::Connection": AWSGlueConnection{}, - "AWS::Glue::Crawler": AWSGlueCrawler{}, - "AWS::Glue::Database": AWSGlueDatabase{}, - "AWS::Glue::DevEndpoint": AWSGlueDevEndpoint{}, - "AWS::Glue::Job": AWSGlueJob{}, - "AWS::Glue::Partition": AWSGluePartition{}, - "AWS::Glue::Table": AWSGlueTable{}, - "AWS::Glue::Trigger": AWSGlueTrigger{}, - "AWS::GuardDuty::Detector": AWSGuardDutyDetector{}, - "AWS::GuardDuty::Filter": AWSGuardDutyFilter{}, - "AWS::GuardDuty::IPSet": AWSGuardDutyIPSet{}, - "AWS::GuardDuty::Master": AWSGuardDutyMaster{}, - "AWS::GuardDuty::Member": AWSGuardDutyMember{}, - "AWS::GuardDuty::ThreatIntelSet": AWSGuardDutyThreatIntelSet{}, - "AWS::IAM::AccessKey": AWSIAMAccessKey{}, - "AWS::IAM::Group": AWSIAMGroup{}, - "AWS::IAM::InstanceProfile": AWSIAMInstanceProfile{}, - "AWS::IAM::ManagedPolicy": AWSIAMManagedPolicy{}, - "AWS::IAM::Policy": AWSIAMPolicy{}, - "AWS::IAM::Role": AWSIAMRole{}, - "AWS::IAM::ServiceLinkedRole": AWSIAMServiceLinkedRole{}, - "AWS::IAM::User": AWSIAMUser{}, - "AWS::IAM::UserToGroupAddition": AWSIAMUserToGroupAddition{}, - "AWS::Inspector::AssessmentTarget": AWSInspectorAssessmentTarget{}, - "AWS::Inspector::AssessmentTemplate": AWSInspectorAssessmentTemplate{}, - "AWS::Inspector::ResourceGroup": AWSInspectorResourceGroup{}, - "AWS::IoT1Click::Device": AWSIoT1ClickDevice{}, - "AWS::IoT1Click::Placement": AWSIoT1ClickPlacement{}, - "AWS::IoT1Click::Project": AWSIoT1ClickProject{}, - "AWS::IoT::Certificate": AWSIoTCertificate{}, - "AWS::IoT::Policy": AWSIoTPolicy{}, - "AWS::IoT::PolicyPrincipalAttachment": AWSIoTPolicyPrincipalAttachment{}, - "AWS::IoT::Thing": AWSIoTThing{}, - "AWS::IoT::ThingPrincipalAttachment": AWSIoTThingPrincipalAttachment{}, - "AWS::IoT::TopicRule": AWSIoTTopicRule{}, - "AWS::KMS::Alias": AWSKMSAlias{}, - "AWS::KMS::Key": AWSKMSKey{}, - "AWS::Kinesis::Stream": AWSKinesisStream{}, - "AWS::Kinesis::StreamConsumer": AWSKinesisStreamConsumer{}, - "AWS::KinesisAnalytics::Application": AWSKinesisAnalyticsApplication{}, - "AWS::KinesisAnalytics::ApplicationOutput": AWSKinesisAnalyticsApplicationOutput{}, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource": AWSKinesisAnalyticsApplicationReferenceDataSource{}, - "AWS::KinesisFirehose::DeliveryStream": AWSKinesisFirehoseDeliveryStream{}, - "AWS::Lambda::Alias": AWSLambdaAlias{}, - "AWS::Lambda::EventSourceMapping": AWSLambdaEventSourceMapping{}, - "AWS::Lambda::Function": AWSLambdaFunction{}, - "AWS::Lambda::Permission": AWSLambdaPermission{}, - "AWS::Lambda::Version": AWSLambdaVersion{}, - "AWS::Logs::Destination": AWSLogsDestination{}, - "AWS::Logs::LogGroup": AWSLogsLogGroup{}, - "AWS::Logs::LogStream": AWSLogsLogStream{}, - "AWS::Logs::MetricFilter": AWSLogsMetricFilter{}, - "AWS::Logs::SubscriptionFilter": AWSLogsSubscriptionFilter{}, - "AWS::Neptune::DBCluster": AWSNeptuneDBCluster{}, - "AWS::Neptune::DBClusterParameterGroup": AWSNeptuneDBClusterParameterGroup{}, - "AWS::Neptune::DBInstance": AWSNeptuneDBInstance{}, - "AWS::Neptune::DBParameterGroup": AWSNeptuneDBParameterGroup{}, - "AWS::Neptune::DBSubnetGroup": AWSNeptuneDBSubnetGroup{}, - "AWS::OpsWorks::App": AWSOpsWorksApp{}, - "AWS::OpsWorks::ElasticLoadBalancerAttachment": AWSOpsWorksElasticLoadBalancerAttachment{}, - "AWS::OpsWorks::Instance": AWSOpsWorksInstance{}, - "AWS::OpsWorks::Layer": AWSOpsWorksLayer{}, - "AWS::OpsWorks::Stack": AWSOpsWorksStack{}, - "AWS::OpsWorks::UserProfile": AWSOpsWorksUserProfile{}, - "AWS::OpsWorks::Volume": AWSOpsWorksVolume{}, - "AWS::RDS::DBCluster": AWSRDSDBCluster{}, - "AWS::RDS::DBClusterParameterGroup": AWSRDSDBClusterParameterGroup{}, - "AWS::RDS::DBInstance": AWSRDSDBInstance{}, - "AWS::RDS::DBParameterGroup": AWSRDSDBParameterGroup{}, - "AWS::RDS::DBSecurityGroup": AWSRDSDBSecurityGroup{}, - "AWS::RDS::DBSecurityGroupIngress": AWSRDSDBSecurityGroupIngress{}, - "AWS::RDS::DBSubnetGroup": AWSRDSDBSubnetGroup{}, - "AWS::RDS::EventSubscription": AWSRDSEventSubscription{}, - "AWS::RDS::OptionGroup": AWSRDSOptionGroup{}, - "AWS::Redshift::Cluster": AWSRedshiftCluster{}, - "AWS::Redshift::ClusterParameterGroup": AWSRedshiftClusterParameterGroup{}, - "AWS::Redshift::ClusterSecurityGroup": AWSRedshiftClusterSecurityGroup{}, - "AWS::Redshift::ClusterSecurityGroupIngress": AWSRedshiftClusterSecurityGroupIngress{}, - "AWS::Redshift::ClusterSubnetGroup": AWSRedshiftClusterSubnetGroup{}, - "AWS::Route53::HealthCheck": AWSRoute53HealthCheck{}, - "AWS::Route53::HostedZone": AWSRoute53HostedZone{}, - "AWS::Route53::RecordSet": AWSRoute53RecordSet{}, - "AWS::Route53::RecordSetGroup": AWSRoute53RecordSetGroup{}, - "AWS::Route53Resolver::ResolverEndpoint": AWSRoute53ResolverResolverEndpoint{}, - "AWS::Route53Resolver::ResolverRule": AWSRoute53ResolverResolverRule{}, - "AWS::S3::Bucket": AWSS3Bucket{}, - "AWS::S3::BucketPolicy": AWSS3BucketPolicy{}, - "AWS::SDB::Domain": AWSSDBDomain{}, - "AWS::SES::ConfigurationSet": AWSSESConfigurationSet{}, - "AWS::SES::ConfigurationSetEventDestination": AWSSESConfigurationSetEventDestination{}, - "AWS::SES::ReceiptFilter": AWSSESReceiptFilter{}, - "AWS::SES::ReceiptRule": AWSSESReceiptRule{}, - "AWS::SES::ReceiptRuleSet": AWSSESReceiptRuleSet{}, - "AWS::SES::Template": AWSSESTemplate{}, - "AWS::SNS::Subscription": AWSSNSSubscription{}, - "AWS::SNS::Topic": AWSSNSTopic{}, - "AWS::SNS::TopicPolicy": AWSSNSTopicPolicy{}, - "AWS::SQS::Queue": AWSSQSQueue{}, - "AWS::SQS::QueuePolicy": AWSSQSQueuePolicy{}, - "AWS::SSM::Association": AWSSSMAssociation{}, - "AWS::SSM::Document": AWSSSMDocument{}, - "AWS::SSM::MaintenanceWindow": AWSSSMMaintenanceWindow{}, - "AWS::SSM::MaintenanceWindowTask": AWSSSMMaintenanceWindowTask{}, - "AWS::SSM::Parameter": AWSSSMParameter{}, - "AWS::SSM::PatchBaseline": AWSSSMPatchBaseline{}, - "AWS::SSM::ResourceDataSync": AWSSSMResourceDataSync{}, - "AWS::SageMaker::Endpoint": AWSSageMakerEndpoint{}, - "AWS::SageMaker::EndpointConfig": AWSSageMakerEndpointConfig{}, - "AWS::SageMaker::Model": AWSSageMakerModel{}, - "AWS::SageMaker::NotebookInstance": AWSSageMakerNotebookInstance{}, - "AWS::SageMaker::NotebookInstanceLifecycleConfig": AWSSageMakerNotebookInstanceLifecycleConfig{}, - "AWS::SecretsManager::ResourcePolicy": AWSSecretsManagerResourcePolicy{}, - "AWS::SecretsManager::RotationSchedule": AWSSecretsManagerRotationSchedule{}, - "AWS::SecretsManager::Secret": AWSSecretsManagerSecret{}, - "AWS::SecretsManager::SecretTargetAttachment": AWSSecretsManagerSecretTargetAttachment{}, - "AWS::Serverless::Api": AWSServerlessApi{}, - "AWS::Serverless::Function": AWSServerlessFunction{}, - "AWS::Serverless::SimpleTable": AWSServerlessSimpleTable{}, - "AWS::ServiceCatalog::AcceptedPortfolioShare": AWSServiceCatalogAcceptedPortfolioShare{}, - "AWS::ServiceCatalog::CloudFormationProduct": AWSServiceCatalogCloudFormationProduct{}, - "AWS::ServiceCatalog::CloudFormationProvisionedProduct": AWSServiceCatalogCloudFormationProvisionedProduct{}, - "AWS::ServiceCatalog::LaunchNotificationConstraint": AWSServiceCatalogLaunchNotificationConstraint{}, - "AWS::ServiceCatalog::LaunchRoleConstraint": AWSServiceCatalogLaunchRoleConstraint{}, - "AWS::ServiceCatalog::LaunchTemplateConstraint": AWSServiceCatalogLaunchTemplateConstraint{}, - "AWS::ServiceCatalog::Portfolio": AWSServiceCatalogPortfolio{}, - "AWS::ServiceCatalog::PortfolioPrincipalAssociation": AWSServiceCatalogPortfolioPrincipalAssociation{}, - "AWS::ServiceCatalog::PortfolioProductAssociation": AWSServiceCatalogPortfolioProductAssociation{}, - "AWS::ServiceCatalog::PortfolioShare": AWSServiceCatalogPortfolioShare{}, - "AWS::ServiceCatalog::TagOption": AWSServiceCatalogTagOption{}, - "AWS::ServiceCatalog::TagOptionAssociation": AWSServiceCatalogTagOptionAssociation{}, - "AWS::ServiceDiscovery::HttpNamespace": AWSServiceDiscoveryHttpNamespace{}, - "AWS::ServiceDiscovery::Instance": AWSServiceDiscoveryInstance{}, - "AWS::ServiceDiscovery::PrivateDnsNamespace": AWSServiceDiscoveryPrivateDnsNamespace{}, - "AWS::ServiceDiscovery::PublicDnsNamespace": AWSServiceDiscoveryPublicDnsNamespace{}, - "AWS::ServiceDiscovery::Service": AWSServiceDiscoveryService{}, - "AWS::StepFunctions::Activity": AWSStepFunctionsActivity{}, - "AWS::StepFunctions::StateMachine": AWSStepFunctionsStateMachine{}, - "AWS::WAF::ByteMatchSet": AWSWAFByteMatchSet{}, - "AWS::WAF::IPSet": AWSWAFIPSet{}, - "AWS::WAF::Rule": AWSWAFRule{}, - "AWS::WAF::SizeConstraintSet": AWSWAFSizeConstraintSet{}, - "AWS::WAF::SqlInjectionMatchSet": AWSWAFSqlInjectionMatchSet{}, - "AWS::WAF::WebACL": AWSWAFWebACL{}, - "AWS::WAF::XssMatchSet": AWSWAFXssMatchSet{}, - "AWS::WAFRegional::ByteMatchSet": AWSWAFRegionalByteMatchSet{}, - "AWS::WAFRegional::IPSet": AWSWAFRegionalIPSet{}, - "AWS::WAFRegional::Rule": AWSWAFRegionalRule{}, - "AWS::WAFRegional::SizeConstraintSet": AWSWAFRegionalSizeConstraintSet{}, - "AWS::WAFRegional::SqlInjectionMatchSet": AWSWAFRegionalSqlInjectionMatchSet{}, - "AWS::WAFRegional::WebACL": AWSWAFRegionalWebACL{}, - "AWS::WAFRegional::WebACLAssociation": AWSWAFRegionalWebACLAssociation{}, - "AWS::WAFRegional::XssMatchSet": AWSWAFRegionalXssMatchSet{}, - "AWS::WorkSpaces::Workspace": AWSWorkSpacesWorkspace{}, - "Alexa::ASK::Skill": AlexaASKSkill{}, + "AWS::AmazonMQ::Broker": AWSAmazonMQBroker{}, + "AWS::AmazonMQ::Configuration": AWSAmazonMQConfiguration{}, + "AWS::AmazonMQ::ConfigurationAssociation": AWSAmazonMQConfigurationAssociation{}, + "AWS::ApiGateway::Account": AWSApiGatewayAccount{}, + "AWS::ApiGateway::ApiKey": AWSApiGatewayApiKey{}, + "AWS::ApiGateway::Authorizer": AWSApiGatewayAuthorizer{}, + "AWS::ApiGateway::BasePathMapping": AWSApiGatewayBasePathMapping{}, + "AWS::ApiGateway::ClientCertificate": AWSApiGatewayClientCertificate{}, + "AWS::ApiGateway::Deployment": AWSApiGatewayDeployment{}, + "AWS::ApiGateway::DocumentationPart": AWSApiGatewayDocumentationPart{}, + "AWS::ApiGateway::DocumentationVersion": AWSApiGatewayDocumentationVersion{}, + "AWS::ApiGateway::DomainName": AWSApiGatewayDomainName{}, + "AWS::ApiGateway::GatewayResponse": AWSApiGatewayGatewayResponse{}, + "AWS::ApiGateway::Method": AWSApiGatewayMethod{}, + "AWS::ApiGateway::Model": AWSApiGatewayModel{}, + "AWS::ApiGateway::RequestValidator": AWSApiGatewayRequestValidator{}, + "AWS::ApiGateway::Resource": AWSApiGatewayResource{}, + "AWS::ApiGateway::RestApi": AWSApiGatewayRestApi{}, + "AWS::ApiGateway::Stage": AWSApiGatewayStage{}, + "AWS::ApiGateway::UsagePlan": AWSApiGatewayUsagePlan{}, + "AWS::ApiGateway::UsagePlanKey": AWSApiGatewayUsagePlanKey{}, + "AWS::ApiGateway::VpcLink": AWSApiGatewayVpcLink{}, + "AWS::ApiGatewayV2::Api": AWSApiGatewayV2Api{}, + "AWS::ApiGatewayV2::Authorizer": AWSApiGatewayV2Authorizer{}, + "AWS::ApiGatewayV2::Deployment": AWSApiGatewayV2Deployment{}, + "AWS::ApiGatewayV2::Integration": AWSApiGatewayV2Integration{}, + "AWS::ApiGatewayV2::IntegrationResponse": AWSApiGatewayV2IntegrationResponse{}, + "AWS::ApiGatewayV2::Model": AWSApiGatewayV2Model{}, + "AWS::ApiGatewayV2::Route": AWSApiGatewayV2Route{}, + "AWS::ApiGatewayV2::RouteResponse": AWSApiGatewayV2RouteResponse{}, + "AWS::ApiGatewayV2::Stage": AWSApiGatewayV2Stage{}, + "AWS::AppStream::DirectoryConfig": AWSAppStreamDirectoryConfig{}, + "AWS::AppStream::Fleet": AWSAppStreamFleet{}, + "AWS::AppStream::ImageBuilder": AWSAppStreamImageBuilder{}, + "AWS::AppStream::Stack": AWSAppStreamStack{}, + "AWS::AppStream::StackFleetAssociation": AWSAppStreamStackFleetAssociation{}, + "AWS::AppStream::StackUserAssociation": AWSAppStreamStackUserAssociation{}, + "AWS::AppStream::User": AWSAppStreamUser{}, + "AWS::AppSync::ApiKey": AWSAppSyncApiKey{}, + "AWS::AppSync::DataSource": AWSAppSyncDataSource{}, + "AWS::AppSync::FunctionConfiguration": AWSAppSyncFunctionConfiguration{}, + "AWS::AppSync::GraphQLApi": AWSAppSyncGraphQLApi{}, + "AWS::AppSync::GraphQLSchema": AWSAppSyncGraphQLSchema{}, + "AWS::AppSync::Resolver": AWSAppSyncResolver{}, + "AWS::ApplicationAutoScaling::ScalableTarget": AWSApplicationAutoScalingScalableTarget{}, + "AWS::ApplicationAutoScaling::ScalingPolicy": AWSApplicationAutoScalingScalingPolicy{}, + "AWS::Athena::NamedQuery": AWSAthenaNamedQuery{}, + "AWS::AutoScaling::AutoScalingGroup": AWSAutoScalingAutoScalingGroup{}, + "AWS::AutoScaling::LaunchConfiguration": AWSAutoScalingLaunchConfiguration{}, + "AWS::AutoScaling::LifecycleHook": AWSAutoScalingLifecycleHook{}, + "AWS::AutoScaling::ScalingPolicy": AWSAutoScalingScalingPolicy{}, + "AWS::AutoScaling::ScheduledAction": AWSAutoScalingScheduledAction{}, + "AWS::AutoScalingPlans::ScalingPlan": AWSAutoScalingPlansScalingPlan{}, + "AWS::Batch::ComputeEnvironment": AWSBatchComputeEnvironment{}, + "AWS::Batch::JobDefinition": AWSBatchJobDefinition{}, + "AWS::Batch::JobQueue": AWSBatchJobQueue{}, + "AWS::Budgets::Budget": AWSBudgetsBudget{}, + "AWS::CertificateManager::Certificate": AWSCertificateManagerCertificate{}, + "AWS::Cloud9::EnvironmentEC2": AWSCloud9EnvironmentEC2{}, + "AWS::CloudFormation::CustomResource": AWSCloudFormationCustomResource{}, + "AWS::CloudFormation::Macro": AWSCloudFormationMacro{}, + "AWS::CloudFormation::Stack": AWSCloudFormationStack{}, + "AWS::CloudFormation::WaitCondition": AWSCloudFormationWaitCondition{}, + "AWS::CloudFormation::WaitConditionHandle": AWSCloudFormationWaitConditionHandle{}, + "AWS::CloudFront::CloudFrontOriginAccessIdentity": AWSCloudFrontCloudFrontOriginAccessIdentity{}, + "AWS::CloudFront::Distribution": AWSCloudFrontDistribution{}, + "AWS::CloudFront::StreamingDistribution": AWSCloudFrontStreamingDistribution{}, + "AWS::CloudTrail::Trail": AWSCloudTrailTrail{}, + "AWS::CloudWatch::Alarm": AWSCloudWatchAlarm{}, + "AWS::CloudWatch::Dashboard": AWSCloudWatchDashboard{}, + "AWS::CodeBuild::Project": AWSCodeBuildProject{}, + "AWS::CodeCommit::Repository": AWSCodeCommitRepository{}, + "AWS::CodeDeploy::Application": AWSCodeDeployApplication{}, + "AWS::CodeDeploy::DeploymentConfig": AWSCodeDeployDeploymentConfig{}, + "AWS::CodeDeploy::DeploymentGroup": AWSCodeDeployDeploymentGroup{}, + "AWS::CodePipeline::CustomActionType": AWSCodePipelineCustomActionType{}, + "AWS::CodePipeline::Pipeline": AWSCodePipelinePipeline{}, + "AWS::CodePipeline::Webhook": AWSCodePipelineWebhook{}, + "AWS::Cognito::IdentityPool": AWSCognitoIdentityPool{}, + "AWS::Cognito::IdentityPoolRoleAttachment": AWSCognitoIdentityPoolRoleAttachment{}, + "AWS::Cognito::UserPool": AWSCognitoUserPool{}, + "AWS::Cognito::UserPoolClient": AWSCognitoUserPoolClient{}, + "AWS::Cognito::UserPoolGroup": AWSCognitoUserPoolGroup{}, + "AWS::Cognito::UserPoolUser": AWSCognitoUserPoolUser{}, + "AWS::Cognito::UserPoolUserToGroupAttachment": AWSCognitoUserPoolUserToGroupAttachment{}, + "AWS::Config::AggregationAuthorization": AWSConfigAggregationAuthorization{}, + "AWS::Config::ConfigRule": AWSConfigConfigRule{}, + "AWS::Config::ConfigurationAggregator": AWSConfigConfigurationAggregator{}, + "AWS::Config::ConfigurationRecorder": AWSConfigConfigurationRecorder{}, + "AWS::Config::DeliveryChannel": AWSConfigDeliveryChannel{}, + "AWS::DAX::Cluster": AWSDAXCluster{}, + "AWS::DAX::ParameterGroup": AWSDAXParameterGroup{}, + "AWS::DAX::SubnetGroup": AWSDAXSubnetGroup{}, + "AWS::DLM::LifecyclePolicy": AWSDLMLifecyclePolicy{}, + "AWS::DMS::Certificate": AWSDMSCertificate{}, + "AWS::DMS::Endpoint": AWSDMSEndpoint{}, + "AWS::DMS::EventSubscription": AWSDMSEventSubscription{}, + "AWS::DMS::ReplicationInstance": AWSDMSReplicationInstance{}, + "AWS::DMS::ReplicationSubnetGroup": AWSDMSReplicationSubnetGroup{}, + "AWS::DMS::ReplicationTask": AWSDMSReplicationTask{}, + "AWS::DataPipeline::Pipeline": AWSDataPipelinePipeline{}, + "AWS::DirectoryService::MicrosoftAD": AWSDirectoryServiceMicrosoftAD{}, + "AWS::DirectoryService::SimpleAD": AWSDirectoryServiceSimpleAD{}, + "AWS::DocDB::DBCluster": AWSDocDBDBCluster{}, + "AWS::DocDB::DBClusterParameterGroup": AWSDocDBDBClusterParameterGroup{}, + "AWS::DocDB::DBInstance": AWSDocDBDBInstance{}, + "AWS::DocDB::DBSubnetGroup": AWSDocDBDBSubnetGroup{}, + "AWS::DynamoDB::Table": AWSDynamoDBTable{}, + "AWS::EC2::CustomerGateway": AWSEC2CustomerGateway{}, + "AWS::EC2::DHCPOptions": AWSEC2DHCPOptions{}, + "AWS::EC2::EC2Fleet": AWSEC2EC2Fleet{}, + "AWS::EC2::EIP": AWSEC2EIP{}, + "AWS::EC2::EIPAssociation": AWSEC2EIPAssociation{}, + "AWS::EC2::EgressOnlyInternetGateway": AWSEC2EgressOnlyInternetGateway{}, + "AWS::EC2::FlowLog": AWSEC2FlowLog{}, + "AWS::EC2::Host": AWSEC2Host{}, + "AWS::EC2::Instance": AWSEC2Instance{}, + "AWS::EC2::InternetGateway": AWSEC2InternetGateway{}, + "AWS::EC2::LaunchTemplate": AWSEC2LaunchTemplate{}, + "AWS::EC2::NatGateway": AWSEC2NatGateway{}, + "AWS::EC2::NetworkAcl": AWSEC2NetworkAcl{}, + "AWS::EC2::NetworkAclEntry": AWSEC2NetworkAclEntry{}, + "AWS::EC2::NetworkInterface": AWSEC2NetworkInterface{}, + "AWS::EC2::NetworkInterfaceAttachment": AWSEC2NetworkInterfaceAttachment{}, + "AWS::EC2::NetworkInterfacePermission": AWSEC2NetworkInterfacePermission{}, + "AWS::EC2::PlacementGroup": AWSEC2PlacementGroup{}, + "AWS::EC2::Route": AWSEC2Route{}, + "AWS::EC2::RouteTable": AWSEC2RouteTable{}, + "AWS::EC2::SecurityGroup": AWSEC2SecurityGroup{}, + "AWS::EC2::SecurityGroupEgress": AWSEC2SecurityGroupEgress{}, + "AWS::EC2::SecurityGroupIngress": AWSEC2SecurityGroupIngress{}, + "AWS::EC2::SpotFleet": AWSEC2SpotFleet{}, + "AWS::EC2::Subnet": AWSEC2Subnet{}, + "AWS::EC2::SubnetCidrBlock": AWSEC2SubnetCidrBlock{}, + "AWS::EC2::SubnetNetworkAclAssociation": AWSEC2SubnetNetworkAclAssociation{}, + "AWS::EC2::SubnetRouteTableAssociation": AWSEC2SubnetRouteTableAssociation{}, + "AWS::EC2::TransitGateway": AWSEC2TransitGateway{}, + "AWS::EC2::TransitGatewayAttachment": AWSEC2TransitGatewayAttachment{}, + "AWS::EC2::TransitGatewayRoute": AWSEC2TransitGatewayRoute{}, + "AWS::EC2::TransitGatewayRouteTable": AWSEC2TransitGatewayRouteTable{}, + "AWS::EC2::TransitGatewayRouteTableAssociation": AWSEC2TransitGatewayRouteTableAssociation{}, + "AWS::EC2::TransitGatewayRouteTablePropagation": AWSEC2TransitGatewayRouteTablePropagation{}, + "AWS::EC2::TrunkInterfaceAssociation": AWSEC2TrunkInterfaceAssociation{}, + "AWS::EC2::VPC": AWSEC2VPC{}, + "AWS::EC2::VPCCidrBlock": AWSEC2VPCCidrBlock{}, + "AWS::EC2::VPCDHCPOptionsAssociation": AWSEC2VPCDHCPOptionsAssociation{}, + "AWS::EC2::VPCEndpoint": AWSEC2VPCEndpoint{}, + "AWS::EC2::VPCEndpointConnectionNotification": AWSEC2VPCEndpointConnectionNotification{}, + "AWS::EC2::VPCEndpointServicePermissions": AWSEC2VPCEndpointServicePermissions{}, + "AWS::EC2::VPCGatewayAttachment": AWSEC2VPCGatewayAttachment{}, + "AWS::EC2::VPCPeeringConnection": AWSEC2VPCPeeringConnection{}, + "AWS::EC2::VPNConnection": AWSEC2VPNConnection{}, + "AWS::EC2::VPNConnectionRoute": AWSEC2VPNConnectionRoute{}, + "AWS::EC2::VPNGateway": AWSEC2VPNGateway{}, + "AWS::EC2::VPNGatewayRoutePropagation": AWSEC2VPNGatewayRoutePropagation{}, + "AWS::EC2::Volume": AWSEC2Volume{}, + "AWS::EC2::VolumeAttachment": AWSEC2VolumeAttachment{}, + "AWS::ECR::Repository": AWSECRRepository{}, + "AWS::ECS::Cluster": AWSECSCluster{}, + "AWS::ECS::Service": AWSECSService{}, + "AWS::ECS::TaskDefinition": AWSECSTaskDefinition{}, + "AWS::EFS::FileSystem": AWSEFSFileSystem{}, + "AWS::EFS::MountTarget": AWSEFSMountTarget{}, + "AWS::EKS::Cluster": AWSEKSCluster{}, + "AWS::EMR::Cluster": AWSEMRCluster{}, + "AWS::EMR::InstanceFleetConfig": AWSEMRInstanceFleetConfig{}, + "AWS::EMR::InstanceGroupConfig": AWSEMRInstanceGroupConfig{}, + "AWS::EMR::SecurityConfiguration": AWSEMRSecurityConfiguration{}, + "AWS::EMR::Step": AWSEMRStep{}, + "AWS::ElastiCache::CacheCluster": AWSElastiCacheCacheCluster{}, + "AWS::ElastiCache::ParameterGroup": AWSElastiCacheParameterGroup{}, + "AWS::ElastiCache::ReplicationGroup": AWSElastiCacheReplicationGroup{}, + "AWS::ElastiCache::SecurityGroup": AWSElastiCacheSecurityGroup{}, + "AWS::ElastiCache::SecurityGroupIngress": AWSElastiCacheSecurityGroupIngress{}, + "AWS::ElastiCache::SubnetGroup": AWSElastiCacheSubnetGroup{}, + "AWS::ElasticBeanstalk::Application": AWSElasticBeanstalkApplication{}, + "AWS::ElasticBeanstalk::ApplicationVersion": AWSElasticBeanstalkApplicationVersion{}, + "AWS::ElasticBeanstalk::ConfigurationTemplate": AWSElasticBeanstalkConfigurationTemplate{}, + "AWS::ElasticBeanstalk::Environment": AWSElasticBeanstalkEnvironment{}, + "AWS::ElasticLoadBalancing::LoadBalancer": AWSElasticLoadBalancingLoadBalancer{}, + "AWS::ElasticLoadBalancingV2::Listener": AWSElasticLoadBalancingV2Listener{}, + "AWS::ElasticLoadBalancingV2::ListenerCertificate": AWSElasticLoadBalancingV2ListenerCertificate{}, + "AWS::ElasticLoadBalancingV2::ListenerRule": AWSElasticLoadBalancingV2ListenerRule{}, + "AWS::ElasticLoadBalancingV2::LoadBalancer": AWSElasticLoadBalancingV2LoadBalancer{}, + "AWS::ElasticLoadBalancingV2::TargetGroup": AWSElasticLoadBalancingV2TargetGroup{}, + "AWS::Elasticsearch::Domain": AWSElasticsearchDomain{}, + "AWS::Events::EventBusPolicy": AWSEventsEventBusPolicy{}, + "AWS::Events::Rule": AWSEventsRule{}, + "AWS::FSx::FileSystem": AWSFSxFileSystem{}, + "AWS::GameLift::Alias": AWSGameLiftAlias{}, + "AWS::GameLift::Build": AWSGameLiftBuild{}, + "AWS::GameLift::Fleet": AWSGameLiftFleet{}, + "AWS::Glue::Classifier": AWSGlueClassifier{}, + "AWS::Glue::Connection": AWSGlueConnection{}, + "AWS::Glue::Crawler": AWSGlueCrawler{}, + "AWS::Glue::Database": AWSGlueDatabase{}, + "AWS::Glue::DevEndpoint": AWSGlueDevEndpoint{}, + "AWS::Glue::Job": AWSGlueJob{}, + "AWS::Glue::Partition": AWSGluePartition{}, + "AWS::Glue::Table": AWSGlueTable{}, + "AWS::Glue::Trigger": AWSGlueTrigger{}, + "AWS::GuardDuty::Detector": AWSGuardDutyDetector{}, + "AWS::GuardDuty::Filter": AWSGuardDutyFilter{}, + "AWS::GuardDuty::IPSet": AWSGuardDutyIPSet{}, + "AWS::GuardDuty::Master": AWSGuardDutyMaster{}, + "AWS::GuardDuty::Member": AWSGuardDutyMember{}, + "AWS::GuardDuty::ThreatIntelSet": AWSGuardDutyThreatIntelSet{}, + "AWS::IAM::AccessKey": AWSIAMAccessKey{}, + "AWS::IAM::Group": AWSIAMGroup{}, + "AWS::IAM::InstanceProfile": AWSIAMInstanceProfile{}, + "AWS::IAM::ManagedPolicy": AWSIAMManagedPolicy{}, + "AWS::IAM::Policy": AWSIAMPolicy{}, + "AWS::IAM::Role": AWSIAMRole{}, + "AWS::IAM::ServiceLinkedRole": AWSIAMServiceLinkedRole{}, + "AWS::IAM::User": AWSIAMUser{}, + "AWS::IAM::UserToGroupAddition": AWSIAMUserToGroupAddition{}, + "AWS::Inspector::AssessmentTarget": AWSInspectorAssessmentTarget{}, + "AWS::Inspector::AssessmentTemplate": AWSInspectorAssessmentTemplate{}, + "AWS::Inspector::ResourceGroup": AWSInspectorResourceGroup{}, + "AWS::IoT1Click::Device": AWSIoT1ClickDevice{}, + "AWS::IoT1Click::Placement": AWSIoT1ClickPlacement{}, + "AWS::IoT1Click::Project": AWSIoT1ClickProject{}, + "AWS::IoT::Certificate": AWSIoTCertificate{}, + "AWS::IoT::Policy": AWSIoTPolicy{}, + "AWS::IoT::PolicyPrincipalAttachment": AWSIoTPolicyPrincipalAttachment{}, + "AWS::IoT::Thing": AWSIoTThing{}, + "AWS::IoT::ThingPrincipalAttachment": AWSIoTThingPrincipalAttachment{}, + "AWS::IoT::TopicRule": AWSIoTTopicRule{}, + "AWS::IoTAnalytics::Channel": AWSIoTAnalyticsChannel{}, + "AWS::IoTAnalytics::Dataset": AWSIoTAnalyticsDataset{}, + "AWS::IoTAnalytics::Datastore": AWSIoTAnalyticsDatastore{}, + "AWS::IoTAnalytics::Pipeline": AWSIoTAnalyticsPipeline{}, + "AWS::KMS::Alias": AWSKMSAlias{}, + "AWS::KMS::Key": AWSKMSKey{}, + "AWS::Kinesis::Stream": AWSKinesisStream{}, + "AWS::Kinesis::StreamConsumer": AWSKinesisStreamConsumer{}, + "AWS::KinesisAnalytics::Application": AWSKinesisAnalyticsApplication{}, + "AWS::KinesisAnalytics::ApplicationOutput": AWSKinesisAnalyticsApplicationOutput{}, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource": AWSKinesisAnalyticsApplicationReferenceDataSource{}, + "AWS::KinesisAnalyticsV2::Application": AWSKinesisAnalyticsV2Application{}, + "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption": AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption{}, + "AWS::KinesisAnalyticsV2::ApplicationOutput": AWSKinesisAnalyticsV2ApplicationOutput{}, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource": AWSKinesisAnalyticsV2ApplicationReferenceDataSource{}, + "AWS::KinesisFirehose::DeliveryStream": AWSKinesisFirehoseDeliveryStream{}, + "AWS::Lambda::Alias": AWSLambdaAlias{}, + "AWS::Lambda::EventSourceMapping": AWSLambdaEventSourceMapping{}, + "AWS::Lambda::Function": AWSLambdaFunction{}, + "AWS::Lambda::LayerVersion": AWSLambdaLayerVersion{}, + "AWS::Lambda::LayerVersionPermission": AWSLambdaLayerVersionPermission{}, + "AWS::Lambda::Permission": AWSLambdaPermission{}, + "AWS::Lambda::Version": AWSLambdaVersion{}, + "AWS::Logs::Destination": AWSLogsDestination{}, + "AWS::Logs::LogGroup": AWSLogsLogGroup{}, + "AWS::Logs::LogStream": AWSLogsLogStream{}, + "AWS::Logs::MetricFilter": AWSLogsMetricFilter{}, + "AWS::Logs::SubscriptionFilter": AWSLogsSubscriptionFilter{}, + "AWS::Neptune::DBCluster": AWSNeptuneDBCluster{}, + "AWS::Neptune::DBClusterParameterGroup": AWSNeptuneDBClusterParameterGroup{}, + "AWS::Neptune::DBInstance": AWSNeptuneDBInstance{}, + "AWS::Neptune::DBParameterGroup": AWSNeptuneDBParameterGroup{}, + "AWS::Neptune::DBSubnetGroup": AWSNeptuneDBSubnetGroup{}, + "AWS::OpsWorks::App": AWSOpsWorksApp{}, + "AWS::OpsWorks::ElasticLoadBalancerAttachment": AWSOpsWorksElasticLoadBalancerAttachment{}, + "AWS::OpsWorks::Instance": AWSOpsWorksInstance{}, + "AWS::OpsWorks::Layer": AWSOpsWorksLayer{}, + "AWS::OpsWorks::Stack": AWSOpsWorksStack{}, + "AWS::OpsWorks::UserProfile": AWSOpsWorksUserProfile{}, + "AWS::OpsWorks::Volume": AWSOpsWorksVolume{}, + "AWS::OpsWorksCM::Server": AWSOpsWorksCMServer{}, + "AWS::RAM::ResourceShare": AWSRAMResourceShare{}, + "AWS::RDS::DBCluster": AWSRDSDBCluster{}, + "AWS::RDS::DBClusterParameterGroup": AWSRDSDBClusterParameterGroup{}, + "AWS::RDS::DBInstance": AWSRDSDBInstance{}, + "AWS::RDS::DBParameterGroup": AWSRDSDBParameterGroup{}, + "AWS::RDS::DBSecurityGroup": AWSRDSDBSecurityGroup{}, + "AWS::RDS::DBSecurityGroupIngress": AWSRDSDBSecurityGroupIngress{}, + "AWS::RDS::DBSubnetGroup": AWSRDSDBSubnetGroup{}, + "AWS::RDS::EventSubscription": AWSRDSEventSubscription{}, + "AWS::RDS::OptionGroup": AWSRDSOptionGroup{}, + "AWS::Redshift::Cluster": AWSRedshiftCluster{}, + "AWS::Redshift::ClusterParameterGroup": AWSRedshiftClusterParameterGroup{}, + "AWS::Redshift::ClusterSecurityGroup": AWSRedshiftClusterSecurityGroup{}, + "AWS::Redshift::ClusterSecurityGroupIngress": AWSRedshiftClusterSecurityGroupIngress{}, + "AWS::Redshift::ClusterSubnetGroup": AWSRedshiftClusterSubnetGroup{}, + "AWS::RoboMaker::Fleet": AWSRoboMakerFleet{}, + "AWS::RoboMaker::Robot": AWSRoboMakerRobot{}, + "AWS::RoboMaker::RobotApplication": AWSRoboMakerRobotApplication{}, + "AWS::RoboMaker::RobotApplicationVersion": AWSRoboMakerRobotApplicationVersion{}, + "AWS::RoboMaker::SimulationApplication": AWSRoboMakerSimulationApplication{}, + "AWS::RoboMaker::SimulationApplicationVersion": AWSRoboMakerSimulationApplicationVersion{}, + "AWS::Route53::HealthCheck": AWSRoute53HealthCheck{}, + "AWS::Route53::HostedZone": AWSRoute53HostedZone{}, + "AWS::Route53::RecordSet": AWSRoute53RecordSet{}, + "AWS::Route53::RecordSetGroup": AWSRoute53RecordSetGroup{}, + "AWS::Route53Resolver::ResolverEndpoint": AWSRoute53ResolverResolverEndpoint{}, + "AWS::Route53Resolver::ResolverRule": AWSRoute53ResolverResolverRule{}, + "AWS::Route53Resolver::ResolverRuleAssociation": AWSRoute53ResolverResolverRuleAssociation{}, + "AWS::S3::Bucket": AWSS3Bucket{}, + "AWS::S3::BucketPolicy": AWSS3BucketPolicy{}, + "AWS::SDB::Domain": AWSSDBDomain{}, + "AWS::SES::ConfigurationSet": AWSSESConfigurationSet{}, + "AWS::SES::ConfigurationSetEventDestination": AWSSESConfigurationSetEventDestination{}, + "AWS::SES::ReceiptFilter": AWSSESReceiptFilter{}, + "AWS::SES::ReceiptRule": AWSSESReceiptRule{}, + "AWS::SES::ReceiptRuleSet": AWSSESReceiptRuleSet{}, + "AWS::SES::Template": AWSSESTemplate{}, + "AWS::SNS::Subscription": AWSSNSSubscription{}, + "AWS::SNS::Topic": AWSSNSTopic{}, + "AWS::SNS::TopicPolicy": AWSSNSTopicPolicy{}, + "AWS::SQS::Queue": AWSSQSQueue{}, + "AWS::SQS::QueuePolicy": AWSSQSQueuePolicy{}, + "AWS::SSM::Association": AWSSSMAssociation{}, + "AWS::SSM::Document": AWSSSMDocument{}, + "AWS::SSM::MaintenanceWindow": AWSSSMMaintenanceWindow{}, + "AWS::SSM::MaintenanceWindowTask": AWSSSMMaintenanceWindowTask{}, + "AWS::SSM::Parameter": AWSSSMParameter{}, + "AWS::SSM::PatchBaseline": AWSSSMPatchBaseline{}, + "AWS::SSM::ResourceDataSync": AWSSSMResourceDataSync{}, + "AWS::SageMaker::Endpoint": AWSSageMakerEndpoint{}, + "AWS::SageMaker::EndpointConfig": AWSSageMakerEndpointConfig{}, + "AWS::SageMaker::Model": AWSSageMakerModel{}, + "AWS::SageMaker::NotebookInstance": AWSSageMakerNotebookInstance{}, + "AWS::SageMaker::NotebookInstanceLifecycleConfig": AWSSageMakerNotebookInstanceLifecycleConfig{}, + "AWS::SecretsManager::ResourcePolicy": AWSSecretsManagerResourcePolicy{}, + "AWS::SecretsManager::RotationSchedule": AWSSecretsManagerRotationSchedule{}, + "AWS::SecretsManager::Secret": AWSSecretsManagerSecret{}, + "AWS::SecretsManager::SecretTargetAttachment": AWSSecretsManagerSecretTargetAttachment{}, + "AWS::Serverless::Api": AWSServerlessApi{}, + "AWS::Serverless::Application": AWSServerlessApplication{}, + "AWS::Serverless::Function": AWSServerlessFunction{}, + "AWS::Serverless::LayerVersion": AWSServerlessLayerVersion{}, + "AWS::Serverless::SimpleTable": AWSServerlessSimpleTable{}, + "AWS::ServiceCatalog::AcceptedPortfolioShare": AWSServiceCatalogAcceptedPortfolioShare{}, + "AWS::ServiceCatalog::CloudFormationProduct": AWSServiceCatalogCloudFormationProduct{}, + "AWS::ServiceCatalog::CloudFormationProvisionedProduct": AWSServiceCatalogCloudFormationProvisionedProduct{}, + "AWS::ServiceCatalog::LaunchNotificationConstraint": AWSServiceCatalogLaunchNotificationConstraint{}, + "AWS::ServiceCatalog::LaunchRoleConstraint": AWSServiceCatalogLaunchRoleConstraint{}, + "AWS::ServiceCatalog::LaunchTemplateConstraint": AWSServiceCatalogLaunchTemplateConstraint{}, + "AWS::ServiceCatalog::Portfolio": AWSServiceCatalogPortfolio{}, + "AWS::ServiceCatalog::PortfolioPrincipalAssociation": AWSServiceCatalogPortfolioPrincipalAssociation{}, + "AWS::ServiceCatalog::PortfolioProductAssociation": AWSServiceCatalogPortfolioProductAssociation{}, + "AWS::ServiceCatalog::PortfolioShare": AWSServiceCatalogPortfolioShare{}, + "AWS::ServiceCatalog::TagOption": AWSServiceCatalogTagOption{}, + "AWS::ServiceCatalog::TagOptionAssociation": AWSServiceCatalogTagOptionAssociation{}, + "AWS::ServiceDiscovery::HttpNamespace": AWSServiceDiscoveryHttpNamespace{}, + "AWS::ServiceDiscovery::Instance": AWSServiceDiscoveryInstance{}, + "AWS::ServiceDiscovery::PrivateDnsNamespace": AWSServiceDiscoveryPrivateDnsNamespace{}, + "AWS::ServiceDiscovery::PublicDnsNamespace": AWSServiceDiscoveryPublicDnsNamespace{}, + "AWS::ServiceDiscovery::Service": AWSServiceDiscoveryService{}, + "AWS::StepFunctions::Activity": AWSStepFunctionsActivity{}, + "AWS::StepFunctions::StateMachine": AWSStepFunctionsStateMachine{}, + "AWS::WAF::ByteMatchSet": AWSWAFByteMatchSet{}, + "AWS::WAF::IPSet": AWSWAFIPSet{}, + "AWS::WAF::Rule": AWSWAFRule{}, + "AWS::WAF::SizeConstraintSet": AWSWAFSizeConstraintSet{}, + "AWS::WAF::SqlInjectionMatchSet": AWSWAFSqlInjectionMatchSet{}, + "AWS::WAF::WebACL": AWSWAFWebACL{}, + "AWS::WAF::XssMatchSet": AWSWAFXssMatchSet{}, + "AWS::WAFRegional::ByteMatchSet": AWSWAFRegionalByteMatchSet{}, + "AWS::WAFRegional::IPSet": AWSWAFRegionalIPSet{}, + "AWS::WAFRegional::Rule": AWSWAFRegionalRule{}, + "AWS::WAFRegional::SizeConstraintSet": AWSWAFRegionalSizeConstraintSet{}, + "AWS::WAFRegional::SqlInjectionMatchSet": AWSWAFRegionalSqlInjectionMatchSet{}, + "AWS::WAFRegional::WebACL": AWSWAFRegionalWebACL{}, + "AWS::WAFRegional::WebACLAssociation": AWSWAFRegionalWebACLAssociation{}, + "AWS::WAFRegional::XssMatchSet": AWSWAFRegionalXssMatchSet{}, + "AWS::WorkSpaces::Workspace": AWSWorkSpacesWorkspace{}, + "Alexa::ASK::Skill": AlexaASKSkill{}, } } diff --git a/cloudformation/aws-amazonmq-broker.go b/cloudformation/aws-amazonmq-broker.go index 015aeff580..922f0def10 100644 --- a/cloudformation/aws-amazonmq-broker.go +++ b/cloudformation/aws-amazonmq-broker.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -70,6 +71,11 @@ type AWSAmazonMQBroker struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-subnetids SubnetIds []string `json:"SubnetIds,omitempty"` + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-tags + Tags []AWSAmazonMQBroker_TagsEntry `json:"Tags,omitempty"` + // Users AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-users @@ -122,7 +128,7 @@ func (r *AWSAmazonMQBroker) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSAmazonMQBroker) MarshalJSON() ([]byte, error) { +func (r *AWSAmazonMQBroker) MarshalJSON() ([]byte, error) { type Properties AWSAmazonMQBroker return json.Marshal(&struct { Type string @@ -132,7 +138,7 @@ func (r AWSAmazonMQBroker) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -149,7 +155,11 @@ func (r *AWSAmazonMQBroker) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -169,11 +179,11 @@ func (r *AWSAmazonMQBroker) UnmarshalJSON(b []byte) error { } // GetAllAWSAmazonMQBrokerResources retrieves all AWSAmazonMQBroker items from an AWS CloudFormation template -func (t *Template) GetAllAWSAmazonMQBrokerResources() map[string]AWSAmazonMQBroker { - results := map[string]AWSAmazonMQBroker{} +func (t *Template) GetAllAWSAmazonMQBrokerResources() map[string]*AWSAmazonMQBroker { + results := map[string]*AWSAmazonMQBroker{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSAmazonMQBroker: + case *AWSAmazonMQBroker: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -185,7 +195,8 @@ func (t *Template) GetAllAWSAmazonMQBrokerResources() map[string]AWSAmazonMQBrok if b, err := json.Marshal(resource); err == nil { var result AWSAmazonMQBroker if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -197,10 +208,10 @@ func (t *Template) GetAllAWSAmazonMQBrokerResources() map[string]AWSAmazonMQBrok // GetAWSAmazonMQBrokerWithName retrieves all AWSAmazonMQBroker items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAmazonMQBrokerWithName(name string) (AWSAmazonMQBroker, error) { +func (t *Template) GetAWSAmazonMQBrokerWithName(name string) (*AWSAmazonMQBroker, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSAmazonMQBroker: + case *AWSAmazonMQBroker: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -212,12 +223,13 @@ func (t *Template) GetAWSAmazonMQBrokerWithName(name string) (AWSAmazonMQBroker, if b, err := json.Marshal(resource); err == nil { var result AWSAmazonMQBroker if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSAmazonMQBroker{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-amazonmq-broker_tagsentry.go b/cloudformation/aws-amazonmq-broker_tagsentry.go new file mode 100644 index 0000000000..4ca5ae0f2a --- /dev/null +++ b/cloudformation/aws-amazonmq-broker_tagsentry.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSAmazonMQBroker_TagsEntry AWS CloudFormation Resource (AWS::AmazonMQ::Broker.TagsEntry) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-tagsentry.html +type AWSAmazonMQBroker_TagsEntry struct { + + // Key AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-tagsentry.html#cfn-amazonmq-broker-tagsentry-key + Key string `json:"Key,omitempty"` + + // Value AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-tagsentry.html#cfn-amazonmq-broker-tagsentry-value + Value string `json:"Value,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSAmazonMQBroker_TagsEntry) AWSCloudFormationType() string { + return "AWS::AmazonMQ::Broker.TagsEntry" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSAmazonMQBroker_TagsEntry) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSAmazonMQBroker_TagsEntry) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSAmazonMQBroker_TagsEntry) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSAmazonMQBroker_TagsEntry) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSAmazonMQBroker_TagsEntry) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-amazonmq-configuration.go b/cloudformation/aws-amazonmq-configuration.go index 2cc2094609..554823a00d 100644 --- a/cloudformation/aws-amazonmq-configuration.go +++ b/cloudformation/aws-amazonmq-configuration.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -35,6 +36,11 @@ type AWSAmazonMQConfiguration struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configuration.html#cfn-amazonmq-configuration-name Name string `json:"Name,omitempty"` + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configuration.html#cfn-amazonmq-configuration-tags + Tags []AWSAmazonMQConfiguration_TagsEntry `json:"Tags,omitempty"` + // _deletionPolicy represents a CloudFormation DeletionPolicy _deletionPolicy DeletionPolicy @@ -82,7 +88,7 @@ func (r *AWSAmazonMQConfiguration) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSAmazonMQConfiguration) MarshalJSON() ([]byte, error) { +func (r *AWSAmazonMQConfiguration) MarshalJSON() ([]byte, error) { type Properties AWSAmazonMQConfiguration return json.Marshal(&struct { Type string @@ -92,7 +98,7 @@ func (r AWSAmazonMQConfiguration) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +115,11 @@ func (r *AWSAmazonMQConfiguration) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +139,11 @@ func (r *AWSAmazonMQConfiguration) UnmarshalJSON(b []byte) error { } // GetAllAWSAmazonMQConfigurationResources retrieves all AWSAmazonMQConfiguration items from an AWS CloudFormation template -func (t *Template) GetAllAWSAmazonMQConfigurationResources() map[string]AWSAmazonMQConfiguration { - results := map[string]AWSAmazonMQConfiguration{} +func (t *Template) GetAllAWSAmazonMQConfigurationResources() map[string]*AWSAmazonMQConfiguration { + results := map[string]*AWSAmazonMQConfiguration{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSAmazonMQConfiguration: + case *AWSAmazonMQConfiguration: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +155,8 @@ func (t *Template) GetAllAWSAmazonMQConfigurationResources() map[string]AWSAmazo if b, err := json.Marshal(resource); err == nil { var result AWSAmazonMQConfiguration if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +168,10 @@ func (t *Template) GetAllAWSAmazonMQConfigurationResources() map[string]AWSAmazo // GetAWSAmazonMQConfigurationWithName retrieves all AWSAmazonMQConfiguration items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAmazonMQConfigurationWithName(name string) (AWSAmazonMQConfiguration, error) { +func (t *Template) GetAWSAmazonMQConfigurationWithName(name string) (*AWSAmazonMQConfiguration, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSAmazonMQConfiguration: + case *AWSAmazonMQConfiguration: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +183,13 @@ func (t *Template) GetAWSAmazonMQConfigurationWithName(name string) (AWSAmazonMQ if b, err := json.Marshal(resource); err == nil { var result AWSAmazonMQConfiguration if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSAmazonMQConfiguration{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-amazonmq-configuration_tagsentry.go b/cloudformation/aws-amazonmq-configuration_tagsentry.go new file mode 100644 index 0000000000..73c61c5a88 --- /dev/null +++ b/cloudformation/aws-amazonmq-configuration_tagsentry.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSAmazonMQConfiguration_TagsEntry AWS CloudFormation Resource (AWS::AmazonMQ::Configuration.TagsEntry) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-configuration-tagsentry.html +type AWSAmazonMQConfiguration_TagsEntry struct { + + // Key AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-configuration-tagsentry.html#cfn-amazonmq-configuration-tagsentry-key + Key string `json:"Key,omitempty"` + + // Value AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-configuration-tagsentry.html#cfn-amazonmq-configuration-tagsentry-value + Value string `json:"Value,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSAmazonMQConfiguration_TagsEntry) AWSCloudFormationType() string { + return "AWS::AmazonMQ::Configuration.TagsEntry" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSAmazonMQConfiguration_TagsEntry) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSAmazonMQConfiguration_TagsEntry) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSAmazonMQConfiguration_TagsEntry) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSAmazonMQConfiguration_TagsEntry) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSAmazonMQConfiguration_TagsEntry) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-amazonmq-configurationassociation.go b/cloudformation/aws-amazonmq-configurationassociation.go new file mode 100644 index 0000000000..ba36bfef76 --- /dev/null +++ b/cloudformation/aws-amazonmq-configurationassociation.go @@ -0,0 +1,175 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSAmazonMQConfigurationAssociation AWS CloudFormation Resource (AWS::AmazonMQ::ConfigurationAssociation) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configurationassociation.html +type AWSAmazonMQConfigurationAssociation struct { + + // Broker AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configurationassociation.html#cfn-amazonmq-configurationassociation-broker + Broker string `json:"Broker,omitempty"` + + // Configuration AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configurationassociation.html#cfn-amazonmq-configurationassociation-configuration + Configuration *AWSAmazonMQConfigurationAssociation_ConfigurationId `json:"Configuration,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSAmazonMQConfigurationAssociation) AWSCloudFormationType() string { + return "AWS::AmazonMQ::ConfigurationAssociation" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSAmazonMQConfigurationAssociation) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSAmazonMQConfigurationAssociation) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSAmazonMQConfigurationAssociation) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSAmazonMQConfigurationAssociation) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSAmazonMQConfigurationAssociation) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSAmazonMQConfigurationAssociation) MarshalJSON() ([]byte, error) { + type Properties AWSAmazonMQConfigurationAssociation + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSAmazonMQConfigurationAssociation) UnmarshalJSON(b []byte) error { + type Properties AWSAmazonMQConfigurationAssociation + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSAmazonMQConfigurationAssociation(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSAmazonMQConfigurationAssociationResources retrieves all AWSAmazonMQConfigurationAssociation items from an AWS CloudFormation template +func (t *Template) GetAllAWSAmazonMQConfigurationAssociationResources() map[string]*AWSAmazonMQConfigurationAssociation { + results := map[string]*AWSAmazonMQConfigurationAssociation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAmazonMQConfigurationAssociation: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::AmazonMQ::ConfigurationAssociation" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSAmazonMQConfigurationAssociation + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSAmazonMQConfigurationAssociationWithName retrieves all AWSAmazonMQConfigurationAssociation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAmazonMQConfigurationAssociationWithName(name string) (*AWSAmazonMQConfigurationAssociation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAmazonMQConfigurationAssociation: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::AmazonMQ::ConfigurationAssociation" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSAmazonMQConfigurationAssociation + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-amazonmq-configurationassociation_configurationid.go b/cloudformation/aws-amazonmq-configurationassociation_configurationid.go new file mode 100644 index 0000000000..1df0fd80b7 --- /dev/null +++ b/cloudformation/aws-amazonmq-configurationassociation_configurationid.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSAmazonMQConfigurationAssociation_ConfigurationId AWS CloudFormation Resource (AWS::AmazonMQ::ConfigurationAssociation.ConfigurationId) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-configurationassociation-configurationid.html +type AWSAmazonMQConfigurationAssociation_ConfigurationId struct { + + // Id AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-configurationassociation-configurationid.html#cfn-amazonmq-configurationassociation-configurationid-id + Id string `json:"Id,omitempty"` + + // Revision AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-configurationassociation-configurationid.html#cfn-amazonmq-configurationassociation-configurationid-revision + Revision int `json:"Revision"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSAmazonMQConfigurationAssociation_ConfigurationId) AWSCloudFormationType() string { + return "AWS::AmazonMQ::ConfigurationAssociation.ConfigurationId" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSAmazonMQConfigurationAssociation_ConfigurationId) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSAmazonMQConfigurationAssociation_ConfigurationId) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSAmazonMQConfigurationAssociation_ConfigurationId) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSAmazonMQConfigurationAssociation_ConfigurationId) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSAmazonMQConfigurationAssociation_ConfigurationId) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-apigateway-account.go b/cloudformation/aws-apigateway-account.go index 88611ed045..60000a3881 100644 --- a/cloudformation/aws-apigateway-account.go +++ b/cloudformation/aws-apigateway-account.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -62,7 +63,7 @@ func (r *AWSApiGatewayAccount) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSApiGatewayAccount) MarshalJSON() ([]byte, error) { +func (r *AWSApiGatewayAccount) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayAccount return json.Marshal(&struct { Type string @@ -72,7 +73,7 @@ func (r AWSApiGatewayAccount) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -89,7 +90,11 @@ func (r *AWSApiGatewayAccount) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -109,11 +114,11 @@ func (r *AWSApiGatewayAccount) UnmarshalJSON(b []byte) error { } // GetAllAWSApiGatewayAccountResources retrieves all AWSApiGatewayAccount items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayAccountResources() map[string]AWSApiGatewayAccount { - results := map[string]AWSApiGatewayAccount{} +func (t *Template) GetAllAWSApiGatewayAccountResources() map[string]*AWSApiGatewayAccount { + results := map[string]*AWSApiGatewayAccount{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSApiGatewayAccount: + case *AWSApiGatewayAccount: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -125,7 +130,8 @@ func (t *Template) GetAllAWSApiGatewayAccountResources() map[string]AWSApiGatewa if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayAccount if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -137,10 +143,10 @@ func (t *Template) GetAllAWSApiGatewayAccountResources() map[string]AWSApiGatewa // GetAWSApiGatewayAccountWithName retrieves all AWSApiGatewayAccount items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayAccountWithName(name string) (AWSApiGatewayAccount, error) { +func (t *Template) GetAWSApiGatewayAccountWithName(name string) (*AWSApiGatewayAccount, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSApiGatewayAccount: + case *AWSApiGatewayAccount: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -152,12 +158,13 @@ func (t *Template) GetAWSApiGatewayAccountWithName(name string) (AWSApiGatewayAc if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayAccount if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSApiGatewayAccount{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-apigateway-apikey.go b/cloudformation/aws-apigateway-apikey.go index 18bb9bbefd..28cf3b9ef1 100644 --- a/cloudformation/aws-apigateway-apikey.go +++ b/cloudformation/aws-apigateway-apikey.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -40,6 +41,11 @@ type AWSApiGatewayApiKey struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-stagekeys StageKeys []AWSApiGatewayApiKey_StageKey `json:"StageKeys,omitempty"` + // Value AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-value + Value string `json:"Value,omitempty"` + // _deletionPolicy represents a CloudFormation DeletionPolicy _deletionPolicy DeletionPolicy @@ -87,7 +93,7 @@ func (r *AWSApiGatewayApiKey) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSApiGatewayApiKey) MarshalJSON() ([]byte, error) { +func (r *AWSApiGatewayApiKey) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayApiKey return json.Marshal(&struct { Type string @@ -97,7 +103,7 @@ func (r AWSApiGatewayApiKey) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -114,7 +120,11 @@ func (r *AWSApiGatewayApiKey) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -134,11 +144,11 @@ func (r *AWSApiGatewayApiKey) UnmarshalJSON(b []byte) error { } // GetAllAWSApiGatewayApiKeyResources retrieves all AWSApiGatewayApiKey items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayApiKeyResources() map[string]AWSApiGatewayApiKey { - results := map[string]AWSApiGatewayApiKey{} +func (t *Template) GetAllAWSApiGatewayApiKeyResources() map[string]*AWSApiGatewayApiKey { + results := map[string]*AWSApiGatewayApiKey{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSApiGatewayApiKey: + case *AWSApiGatewayApiKey: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -150,7 +160,8 @@ func (t *Template) GetAllAWSApiGatewayApiKeyResources() map[string]AWSApiGateway if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayApiKey if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -162,10 +173,10 @@ func (t *Template) GetAllAWSApiGatewayApiKeyResources() map[string]AWSApiGateway // GetAWSApiGatewayApiKeyWithName retrieves all AWSApiGatewayApiKey items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayApiKeyWithName(name string) (AWSApiGatewayApiKey, error) { +func (t *Template) GetAWSApiGatewayApiKeyWithName(name string) (*AWSApiGatewayApiKey, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSApiGatewayApiKey: + case *AWSApiGatewayApiKey: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -177,12 +188,13 @@ func (t *Template) GetAWSApiGatewayApiKeyWithName(name string) (AWSApiGatewayApi if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayApiKey if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSApiGatewayApiKey{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-apigateway-authorizer.go b/cloudformation/aws-apigateway-authorizer.go index f188084bcc..aa06afb803 100644 --- a/cloudformation/aws-apigateway-authorizer.go +++ b/cloudformation/aws-apigateway-authorizer.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -56,7 +57,7 @@ type AWSApiGatewayAuthorizer struct { RestApiId string `json:"RestApiId,omitempty"` // Type AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-type Type string `json:"Type,omitempty"` @@ -107,7 +108,7 @@ func (r *AWSApiGatewayAuthorizer) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSApiGatewayAuthorizer) MarshalJSON() ([]byte, error) { +func (r *AWSApiGatewayAuthorizer) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayAuthorizer return json.Marshal(&struct { Type string @@ -117,7 +118,7 @@ func (r AWSApiGatewayAuthorizer) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -134,7 +135,11 @@ func (r *AWSApiGatewayAuthorizer) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -154,11 +159,11 @@ func (r *AWSApiGatewayAuthorizer) UnmarshalJSON(b []byte) error { } // GetAllAWSApiGatewayAuthorizerResources retrieves all AWSApiGatewayAuthorizer items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayAuthorizerResources() map[string]AWSApiGatewayAuthorizer { - results := map[string]AWSApiGatewayAuthorizer{} +func (t *Template) GetAllAWSApiGatewayAuthorizerResources() map[string]*AWSApiGatewayAuthorizer { + results := map[string]*AWSApiGatewayAuthorizer{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSApiGatewayAuthorizer: + case *AWSApiGatewayAuthorizer: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -170,7 +175,8 @@ func (t *Template) GetAllAWSApiGatewayAuthorizerResources() map[string]AWSApiGat if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayAuthorizer if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -182,10 +188,10 @@ func (t *Template) GetAllAWSApiGatewayAuthorizerResources() map[string]AWSApiGat // GetAWSApiGatewayAuthorizerWithName retrieves all AWSApiGatewayAuthorizer items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayAuthorizerWithName(name string) (AWSApiGatewayAuthorizer, error) { +func (t *Template) GetAWSApiGatewayAuthorizerWithName(name string) (*AWSApiGatewayAuthorizer, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSApiGatewayAuthorizer: + case *AWSApiGatewayAuthorizer: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -197,12 +203,13 @@ func (t *Template) GetAWSApiGatewayAuthorizerWithName(name string) (AWSApiGatewa if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayAuthorizer if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSApiGatewayAuthorizer{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-apigateway-basepathmapping.go b/cloudformation/aws-apigateway-basepathmapping.go index 980dc607a3..843a42cb6e 100644 --- a/cloudformation/aws-apigateway-basepathmapping.go +++ b/cloudformation/aws-apigateway-basepathmapping.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSApiGatewayBasePathMapping) SetDeletionPolicy(policy DeletionPolicy) // 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 AWSApiGatewayBasePathMapping) MarshalJSON() ([]byte, error) { +func (r *AWSApiGatewayBasePathMapping) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayBasePathMapping return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSApiGatewayBasePathMapping) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSApiGatewayBasePathMapping) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSApiGatewayBasePathMapping) UnmarshalJSON(b []byte) error { } // GetAllAWSApiGatewayBasePathMappingResources retrieves all AWSApiGatewayBasePathMapping items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayBasePathMappingResources() map[string]AWSApiGatewayBasePathMapping { - results := map[string]AWSApiGatewayBasePathMapping{} +func (t *Template) GetAllAWSApiGatewayBasePathMappingResources() map[string]*AWSApiGatewayBasePathMapping { + results := map[string]*AWSApiGatewayBasePathMapping{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSApiGatewayBasePathMapping: + case *AWSApiGatewayBasePathMapping: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSApiGatewayBasePathMappingResources() map[string]AWSA if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayBasePathMapping if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSApiGatewayBasePathMappingResources() map[string]AWSA // GetAWSApiGatewayBasePathMappingWithName retrieves all AWSApiGatewayBasePathMapping items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayBasePathMappingWithName(name string) (AWSApiGatewayBasePathMapping, error) { +func (t *Template) GetAWSApiGatewayBasePathMappingWithName(name string) (*AWSApiGatewayBasePathMapping, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSApiGatewayBasePathMapping: + case *AWSApiGatewayBasePathMapping: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSApiGatewayBasePathMappingWithName(name string) (AWSApiG if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayBasePathMapping if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSApiGatewayBasePathMapping{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-apigateway-clientcertificate.go b/cloudformation/aws-apigateway-clientcertificate.go index a294503215..d7c33c1b54 100644 --- a/cloudformation/aws-apigateway-clientcertificate.go +++ b/cloudformation/aws-apigateway-clientcertificate.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -62,7 +63,7 @@ func (r *AWSApiGatewayClientCertificate) SetDeletionPolicy(policy DeletionPolicy // 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 AWSApiGatewayClientCertificate) MarshalJSON() ([]byte, error) { +func (r *AWSApiGatewayClientCertificate) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayClientCertificate return json.Marshal(&struct { Type string @@ -72,7 +73,7 @@ func (r AWSApiGatewayClientCertificate) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -89,7 +90,11 @@ func (r *AWSApiGatewayClientCertificate) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -109,11 +114,11 @@ func (r *AWSApiGatewayClientCertificate) UnmarshalJSON(b []byte) error { } // GetAllAWSApiGatewayClientCertificateResources retrieves all AWSApiGatewayClientCertificate items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayClientCertificateResources() map[string]AWSApiGatewayClientCertificate { - results := map[string]AWSApiGatewayClientCertificate{} +func (t *Template) GetAllAWSApiGatewayClientCertificateResources() map[string]*AWSApiGatewayClientCertificate { + results := map[string]*AWSApiGatewayClientCertificate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSApiGatewayClientCertificate: + case *AWSApiGatewayClientCertificate: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -125,7 +130,8 @@ func (t *Template) GetAllAWSApiGatewayClientCertificateResources() map[string]AW if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayClientCertificate if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -137,10 +143,10 @@ func (t *Template) GetAllAWSApiGatewayClientCertificateResources() map[string]AW // GetAWSApiGatewayClientCertificateWithName retrieves all AWSApiGatewayClientCertificate items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayClientCertificateWithName(name string) (AWSApiGatewayClientCertificate, error) { +func (t *Template) GetAWSApiGatewayClientCertificateWithName(name string) (*AWSApiGatewayClientCertificate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSApiGatewayClientCertificate: + case *AWSApiGatewayClientCertificate: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -152,12 +158,13 @@ func (t *Template) GetAWSApiGatewayClientCertificateWithName(name string) (AWSAp if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayClientCertificate if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSApiGatewayClientCertificate{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-apigateway-deployment.go b/cloudformation/aws-apigateway-deployment.go index 85353706ab..f9564cd0e3 100644 --- a/cloudformation/aws-apigateway-deployment.go +++ b/cloudformation/aws-apigateway-deployment.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSApiGatewayDeployment) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSApiGatewayDeployment) MarshalJSON() ([]byte, error) { +func (r *AWSApiGatewayDeployment) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayDeployment return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSApiGatewayDeployment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSApiGatewayDeployment) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSApiGatewayDeployment) UnmarshalJSON(b []byte) error { } // GetAllAWSApiGatewayDeploymentResources retrieves all AWSApiGatewayDeployment items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayDeploymentResources() map[string]AWSApiGatewayDeployment { - results := map[string]AWSApiGatewayDeployment{} +func (t *Template) GetAllAWSApiGatewayDeploymentResources() map[string]*AWSApiGatewayDeployment { + results := map[string]*AWSApiGatewayDeployment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSApiGatewayDeployment: + case *AWSApiGatewayDeployment: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSApiGatewayDeploymentResources() map[string]AWSApiGat if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayDeployment if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSApiGatewayDeploymentResources() map[string]AWSApiGat // GetAWSApiGatewayDeploymentWithName retrieves all AWSApiGatewayDeployment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayDeploymentWithName(name string) (AWSApiGatewayDeployment, error) { +func (t *Template) GetAWSApiGatewayDeploymentWithName(name string) (*AWSApiGatewayDeployment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSApiGatewayDeployment: + case *AWSApiGatewayDeployment: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSApiGatewayDeploymentWithName(name string) (AWSApiGatewa if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayDeployment if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSApiGatewayDeployment{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-apigateway-documentationpart.go b/cloudformation/aws-apigateway-documentationpart.go index 8a3551fcf3..a672a6e1e6 100644 --- a/cloudformation/aws-apigateway-documentationpart.go +++ b/cloudformation/aws-apigateway-documentationpart.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSApiGatewayDocumentationPart) SetDeletionPolicy(policy DeletionPolicy // 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 AWSApiGatewayDocumentationPart) MarshalJSON() ([]byte, error) { +func (r *AWSApiGatewayDocumentationPart) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayDocumentationPart return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSApiGatewayDocumentationPart) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSApiGatewayDocumentationPart) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSApiGatewayDocumentationPart) UnmarshalJSON(b []byte) error { } // GetAllAWSApiGatewayDocumentationPartResources retrieves all AWSApiGatewayDocumentationPart items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayDocumentationPartResources() map[string]AWSApiGatewayDocumentationPart { - results := map[string]AWSApiGatewayDocumentationPart{} +func (t *Template) GetAllAWSApiGatewayDocumentationPartResources() map[string]*AWSApiGatewayDocumentationPart { + results := map[string]*AWSApiGatewayDocumentationPart{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSApiGatewayDocumentationPart: + case *AWSApiGatewayDocumentationPart: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSApiGatewayDocumentationPartResources() map[string]AW if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayDocumentationPart if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSApiGatewayDocumentationPartResources() map[string]AW // GetAWSApiGatewayDocumentationPartWithName retrieves all AWSApiGatewayDocumentationPart items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayDocumentationPartWithName(name string) (AWSApiGatewayDocumentationPart, error) { +func (t *Template) GetAWSApiGatewayDocumentationPartWithName(name string) (*AWSApiGatewayDocumentationPart, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSApiGatewayDocumentationPart: + case *AWSApiGatewayDocumentationPart: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSApiGatewayDocumentationPartWithName(name string) (AWSAp if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayDocumentationPart if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSApiGatewayDocumentationPart{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-apigateway-documentationversion.go b/cloudformation/aws-apigateway-documentationversion.go index eba9346f11..763a137241 100644 --- a/cloudformation/aws-apigateway-documentationversion.go +++ b/cloudformation/aws-apigateway-documentationversion.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSApiGatewayDocumentationVersion) SetDeletionPolicy(policy DeletionPol // 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 AWSApiGatewayDocumentationVersion) MarshalJSON() ([]byte, error) { +func (r *AWSApiGatewayDocumentationVersion) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayDocumentationVersion return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSApiGatewayDocumentationVersion) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSApiGatewayDocumentationVersion) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSApiGatewayDocumentationVersion) UnmarshalJSON(b []byte) error { } // GetAllAWSApiGatewayDocumentationVersionResources retrieves all AWSApiGatewayDocumentationVersion items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayDocumentationVersionResources() map[string]AWSApiGatewayDocumentationVersion { - results := map[string]AWSApiGatewayDocumentationVersion{} +func (t *Template) GetAllAWSApiGatewayDocumentationVersionResources() map[string]*AWSApiGatewayDocumentationVersion { + results := map[string]*AWSApiGatewayDocumentationVersion{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSApiGatewayDocumentationVersion: + case *AWSApiGatewayDocumentationVersion: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSApiGatewayDocumentationVersionResources() map[string if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayDocumentationVersion if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSApiGatewayDocumentationVersionResources() map[string // GetAWSApiGatewayDocumentationVersionWithName retrieves all AWSApiGatewayDocumentationVersion items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayDocumentationVersionWithName(name string) (AWSApiGatewayDocumentationVersion, error) { +func (t *Template) GetAWSApiGatewayDocumentationVersionWithName(name string) (*AWSApiGatewayDocumentationVersion, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSApiGatewayDocumentationVersion: + case *AWSApiGatewayDocumentationVersion: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSApiGatewayDocumentationVersionWithName(name string) (AW if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayDocumentationVersion if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSApiGatewayDocumentationVersion{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-apigateway-domainname.go b/cloudformation/aws-apigateway-domainname.go index 1fcdf9a173..22accef38f 100644 --- a/cloudformation/aws-apigateway-domainname.go +++ b/cloudformation/aws-apigateway-domainname.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSApiGatewayDomainName) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSApiGatewayDomainName) MarshalJSON() ([]byte, error) { +func (r *AWSApiGatewayDomainName) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayDomainName return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSApiGatewayDomainName) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSApiGatewayDomainName) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSApiGatewayDomainName) UnmarshalJSON(b []byte) error { } // GetAllAWSApiGatewayDomainNameResources retrieves all AWSApiGatewayDomainName items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayDomainNameResources() map[string]AWSApiGatewayDomainName { - results := map[string]AWSApiGatewayDomainName{} +func (t *Template) GetAllAWSApiGatewayDomainNameResources() map[string]*AWSApiGatewayDomainName { + results := map[string]*AWSApiGatewayDomainName{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSApiGatewayDomainName: + case *AWSApiGatewayDomainName: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSApiGatewayDomainNameResources() map[string]AWSApiGat if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayDomainName if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSApiGatewayDomainNameResources() map[string]AWSApiGat // GetAWSApiGatewayDomainNameWithName retrieves all AWSApiGatewayDomainName items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayDomainNameWithName(name string) (AWSApiGatewayDomainName, error) { +func (t *Template) GetAWSApiGatewayDomainNameWithName(name string) (*AWSApiGatewayDomainName, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSApiGatewayDomainName: + case *AWSApiGatewayDomainName: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSApiGatewayDomainNameWithName(name string) (AWSApiGatewa if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayDomainName if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSApiGatewayDomainName{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-apigateway-gatewayresponse.go b/cloudformation/aws-apigateway-gatewayresponse.go index 8e724c750f..1fbf10b217 100644 --- a/cloudformation/aws-apigateway-gatewayresponse.go +++ b/cloudformation/aws-apigateway-gatewayresponse.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSApiGatewayGatewayResponse) SetDeletionPolicy(policy DeletionPolicy) // 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 AWSApiGatewayGatewayResponse) MarshalJSON() ([]byte, error) { +func (r *AWSApiGatewayGatewayResponse) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayGatewayResponse return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSApiGatewayGatewayResponse) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSApiGatewayGatewayResponse) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSApiGatewayGatewayResponse) UnmarshalJSON(b []byte) error { } // GetAllAWSApiGatewayGatewayResponseResources retrieves all AWSApiGatewayGatewayResponse items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayGatewayResponseResources() map[string]AWSApiGatewayGatewayResponse { - results := map[string]AWSApiGatewayGatewayResponse{} +func (t *Template) GetAllAWSApiGatewayGatewayResponseResources() map[string]*AWSApiGatewayGatewayResponse { + results := map[string]*AWSApiGatewayGatewayResponse{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSApiGatewayGatewayResponse: + case *AWSApiGatewayGatewayResponse: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSApiGatewayGatewayResponseResources() map[string]AWSA if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayGatewayResponse if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSApiGatewayGatewayResponseResources() map[string]AWSA // GetAWSApiGatewayGatewayResponseWithName retrieves all AWSApiGatewayGatewayResponse items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayGatewayResponseWithName(name string) (AWSApiGatewayGatewayResponse, error) { +func (t *Template) GetAWSApiGatewayGatewayResponseWithName(name string) (*AWSApiGatewayGatewayResponse, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSApiGatewayGatewayResponse: + case *AWSApiGatewayGatewayResponse: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSApiGatewayGatewayResponseWithName(name string) (AWSApiG if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayGatewayResponse if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSApiGatewayGatewayResponse{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-apigateway-method.go b/cloudformation/aws-apigateway-method.go index 2f08850e0c..796b176d37 100644 --- a/cloudformation/aws-apigateway-method.go +++ b/cloudformation/aws-apigateway-method.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -122,7 +123,7 @@ func (r *AWSApiGatewayMethod) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSApiGatewayMethod) MarshalJSON() ([]byte, error) { +func (r *AWSApiGatewayMethod) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayMethod return json.Marshal(&struct { Type string @@ -132,7 +133,7 @@ func (r AWSApiGatewayMethod) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -149,7 +150,11 @@ func (r *AWSApiGatewayMethod) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -169,11 +174,11 @@ func (r *AWSApiGatewayMethod) UnmarshalJSON(b []byte) error { } // GetAllAWSApiGatewayMethodResources retrieves all AWSApiGatewayMethod items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayMethodResources() map[string]AWSApiGatewayMethod { - results := map[string]AWSApiGatewayMethod{} +func (t *Template) GetAllAWSApiGatewayMethodResources() map[string]*AWSApiGatewayMethod { + results := map[string]*AWSApiGatewayMethod{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSApiGatewayMethod: + case *AWSApiGatewayMethod: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -185,7 +190,8 @@ func (t *Template) GetAllAWSApiGatewayMethodResources() map[string]AWSApiGateway if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayMethod if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -197,10 +203,10 @@ func (t *Template) GetAllAWSApiGatewayMethodResources() map[string]AWSApiGateway // GetAWSApiGatewayMethodWithName retrieves all AWSApiGatewayMethod items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayMethodWithName(name string) (AWSApiGatewayMethod, error) { +func (t *Template) GetAWSApiGatewayMethodWithName(name string) (*AWSApiGatewayMethod, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSApiGatewayMethod: + case *AWSApiGatewayMethod: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -212,12 +218,13 @@ func (t *Template) GetAWSApiGatewayMethodWithName(name string) (AWSApiGatewayMet if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayMethod if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSApiGatewayMethod{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-apigateway-model.go b/cloudformation/aws-apigateway-model.go index 7fd61e0c39..ff7ebe18f2 100644 --- a/cloudformation/aws-apigateway-model.go +++ b/cloudformation/aws-apigateway-model.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSApiGatewayModel) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSApiGatewayModel) MarshalJSON() ([]byte, error) { +func (r *AWSApiGatewayModel) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayModel return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSApiGatewayModel) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSApiGatewayModel) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSApiGatewayModel) UnmarshalJSON(b []byte) error { } // GetAllAWSApiGatewayModelResources retrieves all AWSApiGatewayModel items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayModelResources() map[string]AWSApiGatewayModel { - results := map[string]AWSApiGatewayModel{} +func (t *Template) GetAllAWSApiGatewayModelResources() map[string]*AWSApiGatewayModel { + results := map[string]*AWSApiGatewayModel{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSApiGatewayModel: + case *AWSApiGatewayModel: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSApiGatewayModelResources() map[string]AWSApiGatewayM if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayModel if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSApiGatewayModelResources() map[string]AWSApiGatewayM // GetAWSApiGatewayModelWithName retrieves all AWSApiGatewayModel items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayModelWithName(name string) (AWSApiGatewayModel, error) { +func (t *Template) GetAWSApiGatewayModelWithName(name string) (*AWSApiGatewayModel, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSApiGatewayModel: + case *AWSApiGatewayModel: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSApiGatewayModelWithName(name string) (AWSApiGatewayMode if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayModel if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSApiGatewayModel{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-apigateway-requestvalidator.go b/cloudformation/aws-apigateway-requestvalidator.go index 2328669879..b993079c1a 100644 --- a/cloudformation/aws-apigateway-requestvalidator.go +++ b/cloudformation/aws-apigateway-requestvalidator.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSApiGatewayRequestValidator) SetDeletionPolicy(policy DeletionPolicy) // 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 AWSApiGatewayRequestValidator) MarshalJSON() ([]byte, error) { +func (r *AWSApiGatewayRequestValidator) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayRequestValidator return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSApiGatewayRequestValidator) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSApiGatewayRequestValidator) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSApiGatewayRequestValidator) UnmarshalJSON(b []byte) error { } // GetAllAWSApiGatewayRequestValidatorResources retrieves all AWSApiGatewayRequestValidator items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayRequestValidatorResources() map[string]AWSApiGatewayRequestValidator { - results := map[string]AWSApiGatewayRequestValidator{} +func (t *Template) GetAllAWSApiGatewayRequestValidatorResources() map[string]*AWSApiGatewayRequestValidator { + results := map[string]*AWSApiGatewayRequestValidator{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSApiGatewayRequestValidator: + case *AWSApiGatewayRequestValidator: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSApiGatewayRequestValidatorResources() map[string]AWS if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayRequestValidator if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSApiGatewayRequestValidatorResources() map[string]AWS // GetAWSApiGatewayRequestValidatorWithName retrieves all AWSApiGatewayRequestValidator items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayRequestValidatorWithName(name string) (AWSApiGatewayRequestValidator, error) { +func (t *Template) GetAWSApiGatewayRequestValidatorWithName(name string) (*AWSApiGatewayRequestValidator, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSApiGatewayRequestValidator: + case *AWSApiGatewayRequestValidator: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSApiGatewayRequestValidatorWithName(name string) (AWSApi if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayRequestValidator if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSApiGatewayRequestValidator{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-apigateway-resource.go b/cloudformation/aws-apigateway-resource.go index a23d3b1e94..325175f58d 100644 --- a/cloudformation/aws-apigateway-resource.go +++ b/cloudformation/aws-apigateway-resource.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSApiGatewayResource) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSApiGatewayResource) MarshalJSON() ([]byte, error) { +func (r *AWSApiGatewayResource) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayResource return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSApiGatewayResource) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSApiGatewayResource) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSApiGatewayResource) UnmarshalJSON(b []byte) error { } // GetAllAWSApiGatewayResourceResources retrieves all AWSApiGatewayResource items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayResourceResources() map[string]AWSApiGatewayResource { - results := map[string]AWSApiGatewayResource{} +func (t *Template) GetAllAWSApiGatewayResourceResources() map[string]*AWSApiGatewayResource { + results := map[string]*AWSApiGatewayResource{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSApiGatewayResource: + case *AWSApiGatewayResource: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSApiGatewayResourceResources() map[string]AWSApiGatew if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayResource if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSApiGatewayResourceResources() map[string]AWSApiGatew // GetAWSApiGatewayResourceWithName retrieves all AWSApiGatewayResource items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayResourceWithName(name string) (AWSApiGatewayResource, error) { +func (t *Template) GetAWSApiGatewayResourceWithName(name string) (*AWSApiGatewayResource, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSApiGatewayResource: + case *AWSApiGatewayResource: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSApiGatewayResourceWithName(name string) (AWSApiGatewayR if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayResource if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSApiGatewayResource{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-apigateway-restapi.go b/cloudformation/aws-apigateway-restapi.go index 09099c9d2d..b1dcd84818 100644 --- a/cloudformation/aws-apigateway-restapi.go +++ b/cloudformation/aws-apigateway-restapi.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -117,7 +118,7 @@ func (r *AWSApiGatewayRestApi) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSApiGatewayRestApi) MarshalJSON() ([]byte, error) { +func (r *AWSApiGatewayRestApi) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayRestApi return json.Marshal(&struct { Type string @@ -127,7 +128,7 @@ func (r AWSApiGatewayRestApi) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -144,7 +145,11 @@ func (r *AWSApiGatewayRestApi) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -164,11 +169,11 @@ func (r *AWSApiGatewayRestApi) UnmarshalJSON(b []byte) error { } // GetAllAWSApiGatewayRestApiResources retrieves all AWSApiGatewayRestApi items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayRestApiResources() map[string]AWSApiGatewayRestApi { - results := map[string]AWSApiGatewayRestApi{} +func (t *Template) GetAllAWSApiGatewayRestApiResources() map[string]*AWSApiGatewayRestApi { + results := map[string]*AWSApiGatewayRestApi{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSApiGatewayRestApi: + case *AWSApiGatewayRestApi: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -180,7 +185,8 @@ func (t *Template) GetAllAWSApiGatewayRestApiResources() map[string]AWSApiGatewa if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayRestApi if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -192,10 +198,10 @@ func (t *Template) GetAllAWSApiGatewayRestApiResources() map[string]AWSApiGatewa // GetAWSApiGatewayRestApiWithName retrieves all AWSApiGatewayRestApi items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayRestApiWithName(name string) (AWSApiGatewayRestApi, error) { +func (t *Template) GetAWSApiGatewayRestApiWithName(name string) (*AWSApiGatewayRestApi, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSApiGatewayRestApi: + case *AWSApiGatewayRestApi: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -207,12 +213,13 @@ func (t *Template) GetAWSApiGatewayRestApiWithName(name string) (AWSApiGatewayRe if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayRestApi if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSApiGatewayRestApi{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-apigateway-stage.go b/cloudformation/aws-apigateway-stage.go index 2bdf394b25..3947989918 100644 --- a/cloudformation/aws-apigateway-stage.go +++ b/cloudformation/aws-apigateway-stage.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -127,7 +128,7 @@ func (r *AWSApiGatewayStage) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSApiGatewayStage) MarshalJSON() ([]byte, error) { +func (r *AWSApiGatewayStage) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayStage return json.Marshal(&struct { Type string @@ -137,7 +138,7 @@ func (r AWSApiGatewayStage) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -154,7 +155,11 @@ func (r *AWSApiGatewayStage) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -174,11 +179,11 @@ func (r *AWSApiGatewayStage) UnmarshalJSON(b []byte) error { } // GetAllAWSApiGatewayStageResources retrieves all AWSApiGatewayStage items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayStageResources() map[string]AWSApiGatewayStage { - results := map[string]AWSApiGatewayStage{} +func (t *Template) GetAllAWSApiGatewayStageResources() map[string]*AWSApiGatewayStage { + results := map[string]*AWSApiGatewayStage{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSApiGatewayStage: + case *AWSApiGatewayStage: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -190,7 +195,8 @@ func (t *Template) GetAllAWSApiGatewayStageResources() map[string]AWSApiGatewayS if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayStage if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -202,10 +208,10 @@ func (t *Template) GetAllAWSApiGatewayStageResources() map[string]AWSApiGatewayS // GetAWSApiGatewayStageWithName retrieves all AWSApiGatewayStage items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayStageWithName(name string) (AWSApiGatewayStage, error) { +func (t *Template) GetAWSApiGatewayStageWithName(name string) (*AWSApiGatewayStage, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSApiGatewayStage: + case *AWSApiGatewayStage: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -217,12 +223,13 @@ func (t *Template) GetAWSApiGatewayStageWithName(name string) (AWSApiGatewayStag if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayStage if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSApiGatewayStage{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-apigateway-usageplan.go b/cloudformation/aws-apigateway-usageplan.go index e35dbaff50..100fe7d46b 100644 --- a/cloudformation/aws-apigateway-usageplan.go +++ b/cloudformation/aws-apigateway-usageplan.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSApiGatewayUsagePlan) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSApiGatewayUsagePlan) MarshalJSON() ([]byte, error) { +func (r *AWSApiGatewayUsagePlan) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayUsagePlan return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSApiGatewayUsagePlan) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSApiGatewayUsagePlan) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSApiGatewayUsagePlan) UnmarshalJSON(b []byte) error { } // GetAllAWSApiGatewayUsagePlanResources retrieves all AWSApiGatewayUsagePlan items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayUsagePlanResources() map[string]AWSApiGatewayUsagePlan { - results := map[string]AWSApiGatewayUsagePlan{} +func (t *Template) GetAllAWSApiGatewayUsagePlanResources() map[string]*AWSApiGatewayUsagePlan { + results := map[string]*AWSApiGatewayUsagePlan{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSApiGatewayUsagePlan: + case *AWSApiGatewayUsagePlan: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSApiGatewayUsagePlanResources() map[string]AWSApiGate if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayUsagePlan if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSApiGatewayUsagePlanResources() map[string]AWSApiGate // GetAWSApiGatewayUsagePlanWithName retrieves all AWSApiGatewayUsagePlan items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayUsagePlanWithName(name string) (AWSApiGatewayUsagePlan, error) { +func (t *Template) GetAWSApiGatewayUsagePlanWithName(name string) (*AWSApiGatewayUsagePlan, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSApiGatewayUsagePlan: + case *AWSApiGatewayUsagePlan: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSApiGatewayUsagePlanWithName(name string) (AWSApiGateway if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayUsagePlan if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSApiGatewayUsagePlan{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-apigateway-usageplankey.go b/cloudformation/aws-apigateway-usageplankey.go index 2148dff558..9edff276c1 100644 --- a/cloudformation/aws-apigateway-usageplankey.go +++ b/cloudformation/aws-apigateway-usageplankey.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSApiGatewayUsagePlanKey) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSApiGatewayUsagePlanKey) MarshalJSON() ([]byte, error) { +func (r *AWSApiGatewayUsagePlanKey) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayUsagePlanKey return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSApiGatewayUsagePlanKey) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSApiGatewayUsagePlanKey) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSApiGatewayUsagePlanKey) UnmarshalJSON(b []byte) error { } // GetAllAWSApiGatewayUsagePlanKeyResources retrieves all AWSApiGatewayUsagePlanKey items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayUsagePlanKeyResources() map[string]AWSApiGatewayUsagePlanKey { - results := map[string]AWSApiGatewayUsagePlanKey{} +func (t *Template) GetAllAWSApiGatewayUsagePlanKeyResources() map[string]*AWSApiGatewayUsagePlanKey { + results := map[string]*AWSApiGatewayUsagePlanKey{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSApiGatewayUsagePlanKey: + case *AWSApiGatewayUsagePlanKey: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSApiGatewayUsagePlanKeyResources() map[string]AWSApiG if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayUsagePlanKey if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSApiGatewayUsagePlanKeyResources() map[string]AWSApiG // GetAWSApiGatewayUsagePlanKeyWithName retrieves all AWSApiGatewayUsagePlanKey items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayUsagePlanKeyWithName(name string) (AWSApiGatewayUsagePlanKey, error) { +func (t *Template) GetAWSApiGatewayUsagePlanKeyWithName(name string) (*AWSApiGatewayUsagePlanKey, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSApiGatewayUsagePlanKey: + case *AWSApiGatewayUsagePlanKey: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSApiGatewayUsagePlanKeyWithName(name string) (AWSApiGate if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayUsagePlanKey if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSApiGatewayUsagePlanKey{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-apigateway-vpclink.go b/cloudformation/aws-apigateway-vpclink.go index 18d34181e2..b5d2de0bd4 100644 --- a/cloudformation/aws-apigateway-vpclink.go +++ b/cloudformation/aws-apigateway-vpclink.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSApiGatewayVpcLink) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSApiGatewayVpcLink) MarshalJSON() ([]byte, error) { +func (r *AWSApiGatewayVpcLink) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayVpcLink return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSApiGatewayVpcLink) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSApiGatewayVpcLink) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSApiGatewayVpcLink) UnmarshalJSON(b []byte) error { } // GetAllAWSApiGatewayVpcLinkResources retrieves all AWSApiGatewayVpcLink items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayVpcLinkResources() map[string]AWSApiGatewayVpcLink { - results := map[string]AWSApiGatewayVpcLink{} +func (t *Template) GetAllAWSApiGatewayVpcLinkResources() map[string]*AWSApiGatewayVpcLink { + results := map[string]*AWSApiGatewayVpcLink{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSApiGatewayVpcLink: + case *AWSApiGatewayVpcLink: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSApiGatewayVpcLinkResources() map[string]AWSApiGatewa if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayVpcLink if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSApiGatewayVpcLinkResources() map[string]AWSApiGatewa // GetAWSApiGatewayVpcLinkWithName retrieves all AWSApiGatewayVpcLink items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayVpcLinkWithName(name string) (AWSApiGatewayVpcLink, error) { +func (t *Template) GetAWSApiGatewayVpcLinkWithName(name string) (*AWSApiGatewayVpcLink, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSApiGatewayVpcLink: + case *AWSApiGatewayVpcLink: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSApiGatewayVpcLinkWithName(name string) (AWSApiGatewayVp if b, err := json.Marshal(resource); err == nil { var result AWSApiGatewayVpcLink if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSApiGatewayVpcLink{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-apigatewayv2-api.go b/cloudformation/aws-apigatewayv2-api.go new file mode 100644 index 0000000000..e5ca7f5bc6 --- /dev/null +++ b/cloudformation/aws-apigatewayv2-api.go @@ -0,0 +1,200 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSApiGatewayV2Api AWS CloudFormation Resource (AWS::ApiGatewayV2::Api) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html +type AWSApiGatewayV2Api struct { + + // ApiKeySelectionExpression AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-apikeyselectionexpression + ApiKeySelectionExpression string `json:"ApiKeySelectionExpression,omitempty"` + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-description + Description string `json:"Description,omitempty"` + + // DisableSchemaValidation AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableschemavalidation + DisableSchemaValidation bool `json:"DisableSchemaValidation,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-name + Name string `json:"Name,omitempty"` + + // ProtocolType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-protocoltype + ProtocolType string `json:"ProtocolType,omitempty"` + + // RouteSelectionExpression AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-routeselectionexpression + RouteSelectionExpression string `json:"RouteSelectionExpression,omitempty"` + + // Version AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-version + Version string `json:"Version,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSApiGatewayV2Api) AWSCloudFormationType() string { + return "AWS::ApiGatewayV2::Api" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2Api) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2Api) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2Api) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2Api) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSApiGatewayV2Api) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSApiGatewayV2Api) MarshalJSON() ([]byte, error) { + type Properties AWSApiGatewayV2Api + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSApiGatewayV2Api) UnmarshalJSON(b []byte) error { + type Properties AWSApiGatewayV2Api + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSApiGatewayV2Api(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSApiGatewayV2ApiResources retrieves all AWSApiGatewayV2Api items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayV2ApiResources() map[string]*AWSApiGatewayV2Api { + results := map[string]*AWSApiGatewayV2Api{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Api: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::ApiGatewayV2::Api" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSApiGatewayV2Api + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSApiGatewayV2ApiWithName retrieves all AWSApiGatewayV2Api items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayV2ApiWithName(name string) (*AWSApiGatewayV2Api, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Api: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::ApiGatewayV2::Api" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSApiGatewayV2Api + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-apigatewayv2-authorizer.go b/cloudformation/aws-apigatewayv2-authorizer.go new file mode 100644 index 0000000000..a160986d04 --- /dev/null +++ b/cloudformation/aws-apigatewayv2-authorizer.go @@ -0,0 +1,205 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSApiGatewayV2Authorizer AWS CloudFormation Resource (AWS::ApiGatewayV2::Authorizer) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html +type AWSApiGatewayV2Authorizer struct { + + // ApiId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-apiid + ApiId string `json:"ApiId,omitempty"` + + // AuthorizerCredentialsArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-authorizercredentialsarn + AuthorizerCredentialsArn string `json:"AuthorizerCredentialsArn,omitempty"` + + // AuthorizerResultTtlInSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-authorizerresultttlinseconds + AuthorizerResultTtlInSeconds int `json:"AuthorizerResultTtlInSeconds,omitempty"` + + // AuthorizerType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-authorizertype + AuthorizerType string `json:"AuthorizerType,omitempty"` + + // AuthorizerUri AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-authorizeruri + AuthorizerUri string `json:"AuthorizerUri,omitempty"` + + // IdentitySource AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-identitysource + IdentitySource []string `json:"IdentitySource,omitempty"` + + // IdentityValidationExpression AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-identityvalidationexpression + IdentityValidationExpression string `json:"IdentityValidationExpression,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-name + Name string `json:"Name,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSApiGatewayV2Authorizer) AWSCloudFormationType() string { + return "AWS::ApiGatewayV2::Authorizer" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2Authorizer) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2Authorizer) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2Authorizer) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2Authorizer) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSApiGatewayV2Authorizer) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSApiGatewayV2Authorizer) MarshalJSON() ([]byte, error) { + type Properties AWSApiGatewayV2Authorizer + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSApiGatewayV2Authorizer) UnmarshalJSON(b []byte) error { + type Properties AWSApiGatewayV2Authorizer + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSApiGatewayV2Authorizer(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSApiGatewayV2AuthorizerResources retrieves all AWSApiGatewayV2Authorizer items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayV2AuthorizerResources() map[string]*AWSApiGatewayV2Authorizer { + results := map[string]*AWSApiGatewayV2Authorizer{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Authorizer: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::ApiGatewayV2::Authorizer" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSApiGatewayV2Authorizer + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSApiGatewayV2AuthorizerWithName retrieves all AWSApiGatewayV2Authorizer items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayV2AuthorizerWithName(name string) (*AWSApiGatewayV2Authorizer, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Authorizer: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::ApiGatewayV2::Authorizer" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSApiGatewayV2Authorizer + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-apigatewayv2-deployment.go b/cloudformation/aws-apigatewayv2-deployment.go new file mode 100644 index 0000000000..5960e463d7 --- /dev/null +++ b/cloudformation/aws-apigatewayv2-deployment.go @@ -0,0 +1,180 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSApiGatewayV2Deployment AWS CloudFormation Resource (AWS::ApiGatewayV2::Deployment) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-deployment.html +type AWSApiGatewayV2Deployment struct { + + // ApiId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-deployment.html#cfn-apigatewayv2-deployment-apiid + ApiId string `json:"ApiId,omitempty"` + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-deployment.html#cfn-apigatewayv2-deployment-description + Description string `json:"Description,omitempty"` + + // StageName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-deployment.html#cfn-apigatewayv2-deployment-stagename + StageName string `json:"StageName,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSApiGatewayV2Deployment) AWSCloudFormationType() string { + return "AWS::ApiGatewayV2::Deployment" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2Deployment) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2Deployment) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2Deployment) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2Deployment) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSApiGatewayV2Deployment) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSApiGatewayV2Deployment) MarshalJSON() ([]byte, error) { + type Properties AWSApiGatewayV2Deployment + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSApiGatewayV2Deployment) UnmarshalJSON(b []byte) error { + type Properties AWSApiGatewayV2Deployment + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSApiGatewayV2Deployment(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSApiGatewayV2DeploymentResources retrieves all AWSApiGatewayV2Deployment items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayV2DeploymentResources() map[string]*AWSApiGatewayV2Deployment { + results := map[string]*AWSApiGatewayV2Deployment{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Deployment: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::ApiGatewayV2::Deployment" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSApiGatewayV2Deployment + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSApiGatewayV2DeploymentWithName retrieves all AWSApiGatewayV2Deployment items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayV2DeploymentWithName(name string) (*AWSApiGatewayV2Deployment, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Deployment: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::ApiGatewayV2::Deployment" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSApiGatewayV2Deployment + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-apigatewayv2-integration.go b/cloudformation/aws-apigatewayv2-integration.go new file mode 100644 index 0000000000..0be17b1094 --- /dev/null +++ b/cloudformation/aws-apigatewayv2-integration.go @@ -0,0 +1,230 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSApiGatewayV2Integration AWS CloudFormation Resource (AWS::ApiGatewayV2::Integration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html +type AWSApiGatewayV2Integration struct { + + // ApiId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-apiid + ApiId string `json:"ApiId,omitempty"` + + // ConnectionType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-connectiontype + ConnectionType string `json:"ConnectionType,omitempty"` + + // ContentHandlingStrategy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-contenthandlingstrategy + ContentHandlingStrategy string `json:"ContentHandlingStrategy,omitempty"` + + // CredentialsArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-credentialsarn + CredentialsArn string `json:"CredentialsArn,omitempty"` + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-description + Description string `json:"Description,omitempty"` + + // IntegrationMethod AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-integrationmethod + IntegrationMethod string `json:"IntegrationMethod,omitempty"` + + // IntegrationType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-integrationtype + IntegrationType string `json:"IntegrationType,omitempty"` + + // IntegrationUri AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-integrationuri + IntegrationUri string `json:"IntegrationUri,omitempty"` + + // PassthroughBehavior AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-passthroughbehavior + PassthroughBehavior string `json:"PassthroughBehavior,omitempty"` + + // RequestParameters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-requestparameters + RequestParameters interface{} `json:"RequestParameters,omitempty"` + + // RequestTemplates AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-requesttemplates + RequestTemplates interface{} `json:"RequestTemplates,omitempty"` + + // TemplateSelectionExpression AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-templateselectionexpression + TemplateSelectionExpression string `json:"TemplateSelectionExpression,omitempty"` + + // TimeoutInMillis AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-timeoutinmillis + TimeoutInMillis int `json:"TimeoutInMillis,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSApiGatewayV2Integration) AWSCloudFormationType() string { + return "AWS::ApiGatewayV2::Integration" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2Integration) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2Integration) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2Integration) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2Integration) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSApiGatewayV2Integration) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSApiGatewayV2Integration) MarshalJSON() ([]byte, error) { + type Properties AWSApiGatewayV2Integration + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSApiGatewayV2Integration) UnmarshalJSON(b []byte) error { + type Properties AWSApiGatewayV2Integration + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSApiGatewayV2Integration(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSApiGatewayV2IntegrationResources retrieves all AWSApiGatewayV2Integration items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayV2IntegrationResources() map[string]*AWSApiGatewayV2Integration { + results := map[string]*AWSApiGatewayV2Integration{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Integration: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::ApiGatewayV2::Integration" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSApiGatewayV2Integration + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSApiGatewayV2IntegrationWithName retrieves all AWSApiGatewayV2Integration items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayV2IntegrationWithName(name string) (*AWSApiGatewayV2Integration, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Integration: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::ApiGatewayV2::Integration" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSApiGatewayV2Integration + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-apigatewayv2-integrationresponse.go b/cloudformation/aws-apigatewayv2-integrationresponse.go new file mode 100644 index 0000000000..5e4a723b7c --- /dev/null +++ b/cloudformation/aws-apigatewayv2-integrationresponse.go @@ -0,0 +1,200 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSApiGatewayV2IntegrationResponse AWS CloudFormation Resource (AWS::ApiGatewayV2::IntegrationResponse) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html +type AWSApiGatewayV2IntegrationResponse struct { + + // ApiId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html#cfn-apigatewayv2-integrationresponse-apiid + ApiId string `json:"ApiId,omitempty"` + + // ContentHandlingStrategy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html#cfn-apigatewayv2-integrationresponse-contenthandlingstrategy + ContentHandlingStrategy string `json:"ContentHandlingStrategy,omitempty"` + + // IntegrationId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html#cfn-apigatewayv2-integrationresponse-integrationid + IntegrationId string `json:"IntegrationId,omitempty"` + + // IntegrationResponseKey AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html#cfn-apigatewayv2-integrationresponse-integrationresponsekey + IntegrationResponseKey string `json:"IntegrationResponseKey,omitempty"` + + // ResponseParameters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html#cfn-apigatewayv2-integrationresponse-responseparameters + ResponseParameters interface{} `json:"ResponseParameters,omitempty"` + + // ResponseTemplates AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html#cfn-apigatewayv2-integrationresponse-responsetemplates + ResponseTemplates interface{} `json:"ResponseTemplates,omitempty"` + + // TemplateSelectionExpression AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html#cfn-apigatewayv2-integrationresponse-templateselectionexpression + TemplateSelectionExpression string `json:"TemplateSelectionExpression,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSApiGatewayV2IntegrationResponse) AWSCloudFormationType() string { + return "AWS::ApiGatewayV2::IntegrationResponse" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2IntegrationResponse) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2IntegrationResponse) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2IntegrationResponse) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2IntegrationResponse) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSApiGatewayV2IntegrationResponse) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSApiGatewayV2IntegrationResponse) MarshalJSON() ([]byte, error) { + type Properties AWSApiGatewayV2IntegrationResponse + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSApiGatewayV2IntegrationResponse) UnmarshalJSON(b []byte) error { + type Properties AWSApiGatewayV2IntegrationResponse + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSApiGatewayV2IntegrationResponse(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSApiGatewayV2IntegrationResponseResources retrieves all AWSApiGatewayV2IntegrationResponse items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayV2IntegrationResponseResources() map[string]*AWSApiGatewayV2IntegrationResponse { + results := map[string]*AWSApiGatewayV2IntegrationResponse{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayV2IntegrationResponse: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::ApiGatewayV2::IntegrationResponse" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSApiGatewayV2IntegrationResponse + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSApiGatewayV2IntegrationResponseWithName retrieves all AWSApiGatewayV2IntegrationResponse items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayV2IntegrationResponseWithName(name string) (*AWSApiGatewayV2IntegrationResponse, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayV2IntegrationResponse: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::ApiGatewayV2::IntegrationResponse" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSApiGatewayV2IntegrationResponse + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-apigatewayv2-model.go b/cloudformation/aws-apigatewayv2-model.go new file mode 100644 index 0000000000..b33babfdcf --- /dev/null +++ b/cloudformation/aws-apigatewayv2-model.go @@ -0,0 +1,190 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSApiGatewayV2Model AWS CloudFormation Resource (AWS::ApiGatewayV2::Model) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-model.html +type AWSApiGatewayV2Model struct { + + // ApiId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-model.html#cfn-apigatewayv2-model-apiid + ApiId string `json:"ApiId,omitempty"` + + // ContentType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-model.html#cfn-apigatewayv2-model-contenttype + ContentType string `json:"ContentType,omitempty"` + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-model.html#cfn-apigatewayv2-model-description + Description string `json:"Description,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-model.html#cfn-apigatewayv2-model-name + Name string `json:"Name,omitempty"` + + // Schema AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-model.html#cfn-apigatewayv2-model-schema + Schema interface{} `json:"Schema,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSApiGatewayV2Model) AWSCloudFormationType() string { + return "AWS::ApiGatewayV2::Model" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2Model) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2Model) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2Model) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2Model) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSApiGatewayV2Model) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSApiGatewayV2Model) MarshalJSON() ([]byte, error) { + type Properties AWSApiGatewayV2Model + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSApiGatewayV2Model) UnmarshalJSON(b []byte) error { + type Properties AWSApiGatewayV2Model + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSApiGatewayV2Model(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSApiGatewayV2ModelResources retrieves all AWSApiGatewayV2Model items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayV2ModelResources() map[string]*AWSApiGatewayV2Model { + results := map[string]*AWSApiGatewayV2Model{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Model: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::ApiGatewayV2::Model" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSApiGatewayV2Model + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSApiGatewayV2ModelWithName retrieves all AWSApiGatewayV2Model items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayV2ModelWithName(name string) (*AWSApiGatewayV2Model, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Model: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::ApiGatewayV2::Model" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSApiGatewayV2Model + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-apigatewayv2-route.go b/cloudformation/aws-apigatewayv2-route.go new file mode 100644 index 0000000000..2cd9753165 --- /dev/null +++ b/cloudformation/aws-apigatewayv2-route.go @@ -0,0 +1,225 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSApiGatewayV2Route AWS CloudFormation Resource (AWS::ApiGatewayV2::Route) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html +type AWSApiGatewayV2Route struct { + + // ApiId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-apiid + ApiId string `json:"ApiId,omitempty"` + + // ApiKeyRequired AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-apikeyrequired + ApiKeyRequired bool `json:"ApiKeyRequired,omitempty"` + + // AuthorizationScopes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-authorizationscopes + AuthorizationScopes []string `json:"AuthorizationScopes,omitempty"` + + // AuthorizationType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-authorizationtype + AuthorizationType string `json:"AuthorizationType,omitempty"` + + // AuthorizerId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-authorizerid + AuthorizerId string `json:"AuthorizerId,omitempty"` + + // ModelSelectionExpression AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-modelselectionexpression + ModelSelectionExpression string `json:"ModelSelectionExpression,omitempty"` + + // OperationName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-operationname + OperationName string `json:"OperationName,omitempty"` + + // RequestModels AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-requestmodels + RequestModels interface{} `json:"RequestModels,omitempty"` + + // RequestParameters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-requestparameters + RequestParameters interface{} `json:"RequestParameters,omitempty"` + + // RouteKey AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-routekey + RouteKey string `json:"RouteKey,omitempty"` + + // RouteResponseSelectionExpression AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-routeresponseselectionexpression + RouteResponseSelectionExpression string `json:"RouteResponseSelectionExpression,omitempty"` + + // Target AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-target + Target string `json:"Target,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSApiGatewayV2Route) AWSCloudFormationType() string { + return "AWS::ApiGatewayV2::Route" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2Route) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2Route) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2Route) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2Route) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSApiGatewayV2Route) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSApiGatewayV2Route) MarshalJSON() ([]byte, error) { + type Properties AWSApiGatewayV2Route + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSApiGatewayV2Route) UnmarshalJSON(b []byte) error { + type Properties AWSApiGatewayV2Route + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSApiGatewayV2Route(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSApiGatewayV2RouteResources retrieves all AWSApiGatewayV2Route items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayV2RouteResources() map[string]*AWSApiGatewayV2Route { + results := map[string]*AWSApiGatewayV2Route{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Route: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::ApiGatewayV2::Route" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSApiGatewayV2Route + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSApiGatewayV2RouteWithName retrieves all AWSApiGatewayV2Route items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayV2RouteWithName(name string) (*AWSApiGatewayV2Route, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Route: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::ApiGatewayV2::Route" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSApiGatewayV2Route + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-apigatewayv2-route_parameterconstraints.go b/cloudformation/aws-apigatewayv2-route_parameterconstraints.go new file mode 100644 index 0000000000..9a36b5ea98 --- /dev/null +++ b/cloudformation/aws-apigatewayv2-route_parameterconstraints.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSApiGatewayV2Route_ParameterConstraints AWS CloudFormation Resource (AWS::ApiGatewayV2::Route.ParameterConstraints) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-route-parameterconstraints.html +type AWSApiGatewayV2Route_ParameterConstraints struct { + + // Required AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-route-parameterconstraints.html#cfn-apigatewayv2-route-parameterconstraints-required + Required bool `json:"Required"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSApiGatewayV2Route_ParameterConstraints) AWSCloudFormationType() string { + return "AWS::ApiGatewayV2::Route.ParameterConstraints" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2Route_ParameterConstraints) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2Route_ParameterConstraints) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2Route_ParameterConstraints) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2Route_ParameterConstraints) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSApiGatewayV2Route_ParameterConstraints) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-apigatewayv2-routeresponse.go b/cloudformation/aws-apigatewayv2-routeresponse.go new file mode 100644 index 0000000000..9fd29bc540 --- /dev/null +++ b/cloudformation/aws-apigatewayv2-routeresponse.go @@ -0,0 +1,195 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSApiGatewayV2RouteResponse AWS CloudFormation Resource (AWS::ApiGatewayV2::RouteResponse) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html +type AWSApiGatewayV2RouteResponse struct { + + // ApiId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-apiid + ApiId string `json:"ApiId,omitempty"` + + // ModelSelectionExpression AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-modelselectionexpression + ModelSelectionExpression string `json:"ModelSelectionExpression,omitempty"` + + // ResponseModels AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-responsemodels + ResponseModels interface{} `json:"ResponseModels,omitempty"` + + // ResponseParameters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-responseparameters + ResponseParameters interface{} `json:"ResponseParameters,omitempty"` + + // RouteId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-routeid + RouteId string `json:"RouteId,omitempty"` + + // RouteResponseKey AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-routeresponsekey + RouteResponseKey string `json:"RouteResponseKey,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSApiGatewayV2RouteResponse) AWSCloudFormationType() string { + return "AWS::ApiGatewayV2::RouteResponse" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2RouteResponse) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2RouteResponse) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2RouteResponse) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2RouteResponse) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSApiGatewayV2RouteResponse) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSApiGatewayV2RouteResponse) MarshalJSON() ([]byte, error) { + type Properties AWSApiGatewayV2RouteResponse + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSApiGatewayV2RouteResponse) UnmarshalJSON(b []byte) error { + type Properties AWSApiGatewayV2RouteResponse + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSApiGatewayV2RouteResponse(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSApiGatewayV2RouteResponseResources retrieves all AWSApiGatewayV2RouteResponse items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayV2RouteResponseResources() map[string]*AWSApiGatewayV2RouteResponse { + results := map[string]*AWSApiGatewayV2RouteResponse{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayV2RouteResponse: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::ApiGatewayV2::RouteResponse" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSApiGatewayV2RouteResponse + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSApiGatewayV2RouteResponseWithName retrieves all AWSApiGatewayV2RouteResponse items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayV2RouteResponseWithName(name string) (*AWSApiGatewayV2RouteResponse, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayV2RouteResponse: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::ApiGatewayV2::RouteResponse" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSApiGatewayV2RouteResponse + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-apigatewayv2-routeresponse_parameterconstraints.go b/cloudformation/aws-apigatewayv2-routeresponse_parameterconstraints.go new file mode 100644 index 0000000000..87f2ca831d --- /dev/null +++ b/cloudformation/aws-apigatewayv2-routeresponse_parameterconstraints.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSApiGatewayV2RouteResponse_ParameterConstraints AWS CloudFormation Resource (AWS::ApiGatewayV2::RouteResponse.ParameterConstraints) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-routeresponse-parameterconstraints.html +type AWSApiGatewayV2RouteResponse_ParameterConstraints struct { + + // Required AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-routeresponse-parameterconstraints.html#cfn-apigatewayv2-routeresponse-parameterconstraints-required + Required bool `json:"Required"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSApiGatewayV2RouteResponse_ParameterConstraints) AWSCloudFormationType() string { + return "AWS::ApiGatewayV2::RouteResponse.ParameterConstraints" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2RouteResponse_ParameterConstraints) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2RouteResponse_ParameterConstraints) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2RouteResponse_ParameterConstraints) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2RouteResponse_ParameterConstraints) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSApiGatewayV2RouteResponse_ParameterConstraints) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-apigatewayv2-stage.go b/cloudformation/aws-apigatewayv2-stage.go new file mode 100644 index 0000000000..c8036d87e3 --- /dev/null +++ b/cloudformation/aws-apigatewayv2-stage.go @@ -0,0 +1,210 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSApiGatewayV2Stage AWS CloudFormation Resource (AWS::ApiGatewayV2::Stage) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html +type AWSApiGatewayV2Stage struct { + + // AccessLogSettings AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings + AccessLogSettings *AWSApiGatewayV2Stage_AccessLogSettings `json:"AccessLogSettings,omitempty"` + + // ApiId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-apiid + ApiId string `json:"ApiId,omitempty"` + + // ClientCertificateId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-clientcertificateid + ClientCertificateId string `json:"ClientCertificateId,omitempty"` + + // DefaultRouteSettings AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-defaultroutesettings + DefaultRouteSettings *AWSApiGatewayV2Stage_RouteSettings `json:"DefaultRouteSettings,omitempty"` + + // DeploymentId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-deploymentid + DeploymentId string `json:"DeploymentId,omitempty"` + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-description + Description string `json:"Description,omitempty"` + + // RouteSettings AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings + RouteSettings interface{} `json:"RouteSettings,omitempty"` + + // StageName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagename + StageName string `json:"StageName,omitempty"` + + // StageVariables AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables + StageVariables interface{} `json:"StageVariables,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSApiGatewayV2Stage) AWSCloudFormationType() string { + return "AWS::ApiGatewayV2::Stage" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2Stage) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2Stage) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2Stage) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2Stage) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSApiGatewayV2Stage) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSApiGatewayV2Stage) MarshalJSON() ([]byte, error) { + type Properties AWSApiGatewayV2Stage + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSApiGatewayV2Stage) UnmarshalJSON(b []byte) error { + type Properties AWSApiGatewayV2Stage + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSApiGatewayV2Stage(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSApiGatewayV2StageResources retrieves all AWSApiGatewayV2Stage items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayV2StageResources() map[string]*AWSApiGatewayV2Stage { + results := map[string]*AWSApiGatewayV2Stage{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Stage: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::ApiGatewayV2::Stage" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSApiGatewayV2Stage + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSApiGatewayV2StageWithName retrieves all AWSApiGatewayV2Stage items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayV2StageWithName(name string) (*AWSApiGatewayV2Stage, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Stage: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::ApiGatewayV2::Stage" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSApiGatewayV2Stage + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-apigatewayv2-stage_accesslogsettings.go b/cloudformation/aws-apigatewayv2-stage_accesslogsettings.go new file mode 100644 index 0000000000..931eb97044 --- /dev/null +++ b/cloudformation/aws-apigatewayv2-stage_accesslogsettings.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSApiGatewayV2Stage_AccessLogSettings AWS CloudFormation Resource (AWS::ApiGatewayV2::Stage.AccessLogSettings) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-accesslogsettings.html +type AWSApiGatewayV2Stage_AccessLogSettings struct { + + // DestinationArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-accesslogsettings.html#cfn-apigatewayv2-stage-accesslogsettings-destinationarn + DestinationArn string `json:"DestinationArn,omitempty"` + + // Format AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-accesslogsettings.html#cfn-apigatewayv2-stage-accesslogsettings-format + Format string `json:"Format,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSApiGatewayV2Stage_AccessLogSettings) AWSCloudFormationType() string { + return "AWS::ApiGatewayV2::Stage.AccessLogSettings" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2Stage_AccessLogSettings) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2Stage_AccessLogSettings) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2Stage_AccessLogSettings) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2Stage_AccessLogSettings) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSApiGatewayV2Stage_AccessLogSettings) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-apigatewayv2-stage_routesettings.go b/cloudformation/aws-apigatewayv2-stage_routesettings.go new file mode 100644 index 0000000000..ffb67d7a53 --- /dev/null +++ b/cloudformation/aws-apigatewayv2-stage_routesettings.go @@ -0,0 +1,75 @@ +package cloudformation + +// AWSApiGatewayV2Stage_RouteSettings AWS CloudFormation Resource (AWS::ApiGatewayV2::Stage.RouteSettings) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html +type AWSApiGatewayV2Stage_RouteSettings struct { + + // DataTraceEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-datatraceenabled + DataTraceEnabled bool `json:"DataTraceEnabled,omitempty"` + + // DetailedMetricsEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-detailedmetricsenabled + DetailedMetricsEnabled bool `json:"DetailedMetricsEnabled,omitempty"` + + // LoggingLevel AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-logginglevel + LoggingLevel string `json:"LoggingLevel,omitempty"` + + // ThrottlingBurstLimit AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-throttlingburstlimit + ThrottlingBurstLimit int `json:"ThrottlingBurstLimit,omitempty"` + + // ThrottlingRateLimit AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-throttlingratelimit + ThrottlingRateLimit float64 `json:"ThrottlingRateLimit,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSApiGatewayV2Stage_RouteSettings) AWSCloudFormationType() string { + return "AWS::ApiGatewayV2::Stage.RouteSettings" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2Stage_RouteSettings) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSApiGatewayV2Stage_RouteSettings) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2Stage_RouteSettings) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSApiGatewayV2Stage_RouteSettings) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSApiGatewayV2Stage_RouteSettings) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-applicationautoscaling-scalabletarget.go b/cloudformation/aws-applicationautoscaling-scalabletarget.go index b761cea42a..2b5e52e80d 100644 --- a/cloudformation/aws-applicationautoscaling-scalabletarget.go +++ b/cloudformation/aws-applicationautoscaling-scalabletarget.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -92,7 +93,7 @@ func (r *AWSApplicationAutoScalingScalableTarget) SetDeletionPolicy(policy Delet // 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 AWSApplicationAutoScalingScalableTarget) MarshalJSON() ([]byte, error) { +func (r *AWSApplicationAutoScalingScalableTarget) MarshalJSON() ([]byte, error) { type Properties AWSApplicationAutoScalingScalableTarget return json.Marshal(&struct { Type string @@ -102,7 +103,7 @@ func (r AWSApplicationAutoScalingScalableTarget) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -119,7 +120,11 @@ func (r *AWSApplicationAutoScalingScalableTarget) UnmarshalJSON(b []byte) error DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -139,11 +144,11 @@ func (r *AWSApplicationAutoScalingScalableTarget) UnmarshalJSON(b []byte) error } // GetAllAWSApplicationAutoScalingScalableTargetResources retrieves all AWSApplicationAutoScalingScalableTarget items from an AWS CloudFormation template -func (t *Template) GetAllAWSApplicationAutoScalingScalableTargetResources() map[string]AWSApplicationAutoScalingScalableTarget { - results := map[string]AWSApplicationAutoScalingScalableTarget{} +func (t *Template) GetAllAWSApplicationAutoScalingScalableTargetResources() map[string]*AWSApplicationAutoScalingScalableTarget { + results := map[string]*AWSApplicationAutoScalingScalableTarget{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSApplicationAutoScalingScalableTarget: + case *AWSApplicationAutoScalingScalableTarget: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -155,7 +160,8 @@ func (t *Template) GetAllAWSApplicationAutoScalingScalableTargetResources() map[ if b, err := json.Marshal(resource); err == nil { var result AWSApplicationAutoScalingScalableTarget if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -167,10 +173,10 @@ func (t *Template) GetAllAWSApplicationAutoScalingScalableTargetResources() map[ // GetAWSApplicationAutoScalingScalableTargetWithName retrieves all AWSApplicationAutoScalingScalableTarget items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApplicationAutoScalingScalableTargetWithName(name string) (AWSApplicationAutoScalingScalableTarget, error) { +func (t *Template) GetAWSApplicationAutoScalingScalableTargetWithName(name string) (*AWSApplicationAutoScalingScalableTarget, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSApplicationAutoScalingScalableTarget: + case *AWSApplicationAutoScalingScalableTarget: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -182,12 +188,13 @@ func (t *Template) GetAWSApplicationAutoScalingScalableTargetWithName(name strin if b, err := json.Marshal(resource); err == nil { var result AWSApplicationAutoScalingScalableTarget if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSApplicationAutoScalingScalableTarget{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-applicationautoscaling-scalingpolicy.go b/cloudformation/aws-applicationautoscaling-scalingpolicy.go index 3803af912f..63e588a08a 100644 --- a/cloudformation/aws-applicationautoscaling-scalingpolicy.go +++ b/cloudformation/aws-applicationautoscaling-scalingpolicy.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -97,7 +98,7 @@ func (r *AWSApplicationAutoScalingScalingPolicy) SetDeletionPolicy(policy Deleti // 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 AWSApplicationAutoScalingScalingPolicy) MarshalJSON() ([]byte, error) { +func (r *AWSApplicationAutoScalingScalingPolicy) MarshalJSON() ([]byte, error) { type Properties AWSApplicationAutoScalingScalingPolicy return json.Marshal(&struct { Type string @@ -107,7 +108,7 @@ func (r AWSApplicationAutoScalingScalingPolicy) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -124,7 +125,11 @@ func (r *AWSApplicationAutoScalingScalingPolicy) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -144,11 +149,11 @@ func (r *AWSApplicationAutoScalingScalingPolicy) UnmarshalJSON(b []byte) error { } // GetAllAWSApplicationAutoScalingScalingPolicyResources retrieves all AWSApplicationAutoScalingScalingPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSApplicationAutoScalingScalingPolicyResources() map[string]AWSApplicationAutoScalingScalingPolicy { - results := map[string]AWSApplicationAutoScalingScalingPolicy{} +func (t *Template) GetAllAWSApplicationAutoScalingScalingPolicyResources() map[string]*AWSApplicationAutoScalingScalingPolicy { + results := map[string]*AWSApplicationAutoScalingScalingPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSApplicationAutoScalingScalingPolicy: + case *AWSApplicationAutoScalingScalingPolicy: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -160,7 +165,8 @@ func (t *Template) GetAllAWSApplicationAutoScalingScalingPolicyResources() map[s if b, err := json.Marshal(resource); err == nil { var result AWSApplicationAutoScalingScalingPolicy if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -172,10 +178,10 @@ func (t *Template) GetAllAWSApplicationAutoScalingScalingPolicyResources() map[s // GetAWSApplicationAutoScalingScalingPolicyWithName retrieves all AWSApplicationAutoScalingScalingPolicy items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApplicationAutoScalingScalingPolicyWithName(name string) (AWSApplicationAutoScalingScalingPolicy, error) { +func (t *Template) GetAWSApplicationAutoScalingScalingPolicyWithName(name string) (*AWSApplicationAutoScalingScalingPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSApplicationAutoScalingScalingPolicy: + case *AWSApplicationAutoScalingScalingPolicy: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -187,12 +193,13 @@ func (t *Template) GetAWSApplicationAutoScalingScalingPolicyWithName(name string if b, err := json.Marshal(resource); err == nil { var result AWSApplicationAutoScalingScalingPolicy if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSApplicationAutoScalingScalingPolicy{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-appstream-directoryconfig.go b/cloudformation/aws-appstream-directoryconfig.go index 001eeaa3f9..d58b9654a4 100644 --- a/cloudformation/aws-appstream-directoryconfig.go +++ b/cloudformation/aws-appstream-directoryconfig.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSAppStreamDirectoryConfig) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSAppStreamDirectoryConfig) MarshalJSON() ([]byte, error) { +func (r *AWSAppStreamDirectoryConfig) MarshalJSON() ([]byte, error) { type Properties AWSAppStreamDirectoryConfig return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSAppStreamDirectoryConfig) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSAppStreamDirectoryConfig) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSAppStreamDirectoryConfig) UnmarshalJSON(b []byte) error { } // GetAllAWSAppStreamDirectoryConfigResources retrieves all AWSAppStreamDirectoryConfig items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppStreamDirectoryConfigResources() map[string]AWSAppStreamDirectoryConfig { - results := map[string]AWSAppStreamDirectoryConfig{} +func (t *Template) GetAllAWSAppStreamDirectoryConfigResources() map[string]*AWSAppStreamDirectoryConfig { + results := map[string]*AWSAppStreamDirectoryConfig{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSAppStreamDirectoryConfig: + case *AWSAppStreamDirectoryConfig: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSAppStreamDirectoryConfigResources() map[string]AWSAp if b, err := json.Marshal(resource); err == nil { var result AWSAppStreamDirectoryConfig if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSAppStreamDirectoryConfigResources() map[string]AWSAp // GetAWSAppStreamDirectoryConfigWithName retrieves all AWSAppStreamDirectoryConfig items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppStreamDirectoryConfigWithName(name string) (AWSAppStreamDirectoryConfig, error) { +func (t *Template) GetAWSAppStreamDirectoryConfigWithName(name string) (*AWSAppStreamDirectoryConfig, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSAppStreamDirectoryConfig: + case *AWSAppStreamDirectoryConfig: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSAppStreamDirectoryConfigWithName(name string) (AWSAppSt if b, err := json.Marshal(resource); err == nil { var result AWSAppStreamDirectoryConfig if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSAppStreamDirectoryConfig{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-appstream-fleet.go b/cloudformation/aws-appstream-fleet.go index 56d6c1d0e3..abc9fb145a 100644 --- a/cloudformation/aws-appstream-fleet.go +++ b/cloudformation/aws-appstream-fleet.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -122,7 +123,7 @@ func (r *AWSAppStreamFleet) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSAppStreamFleet) MarshalJSON() ([]byte, error) { +func (r *AWSAppStreamFleet) MarshalJSON() ([]byte, error) { type Properties AWSAppStreamFleet return json.Marshal(&struct { Type string @@ -132,7 +133,7 @@ func (r AWSAppStreamFleet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -149,7 +150,11 @@ func (r *AWSAppStreamFleet) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -169,11 +174,11 @@ func (r *AWSAppStreamFleet) UnmarshalJSON(b []byte) error { } // GetAllAWSAppStreamFleetResources retrieves all AWSAppStreamFleet items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppStreamFleetResources() map[string]AWSAppStreamFleet { - results := map[string]AWSAppStreamFleet{} +func (t *Template) GetAllAWSAppStreamFleetResources() map[string]*AWSAppStreamFleet { + results := map[string]*AWSAppStreamFleet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSAppStreamFleet: + case *AWSAppStreamFleet: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -185,7 +190,8 @@ func (t *Template) GetAllAWSAppStreamFleetResources() map[string]AWSAppStreamFle if b, err := json.Marshal(resource); err == nil { var result AWSAppStreamFleet if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -197,10 +203,10 @@ func (t *Template) GetAllAWSAppStreamFleetResources() map[string]AWSAppStreamFle // GetAWSAppStreamFleetWithName retrieves all AWSAppStreamFleet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppStreamFleetWithName(name string) (AWSAppStreamFleet, error) { +func (t *Template) GetAWSAppStreamFleetWithName(name string) (*AWSAppStreamFleet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSAppStreamFleet: + case *AWSAppStreamFleet: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -212,12 +218,13 @@ func (t *Template) GetAWSAppStreamFleetWithName(name string) (AWSAppStreamFleet, if b, err := json.Marshal(resource); err == nil { var result AWSAppStreamFleet if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSAppStreamFleet{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-appstream-imagebuilder.go b/cloudformation/aws-appstream-imagebuilder.go index 99976c9730..059de1a470 100644 --- a/cloudformation/aws-appstream-imagebuilder.go +++ b/cloudformation/aws-appstream-imagebuilder.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -107,7 +108,7 @@ func (r *AWSAppStreamImageBuilder) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSAppStreamImageBuilder) MarshalJSON() ([]byte, error) { +func (r *AWSAppStreamImageBuilder) MarshalJSON() ([]byte, error) { type Properties AWSAppStreamImageBuilder return json.Marshal(&struct { Type string @@ -117,7 +118,7 @@ func (r AWSAppStreamImageBuilder) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -134,7 +135,11 @@ func (r *AWSAppStreamImageBuilder) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -154,11 +159,11 @@ func (r *AWSAppStreamImageBuilder) UnmarshalJSON(b []byte) error { } // GetAllAWSAppStreamImageBuilderResources retrieves all AWSAppStreamImageBuilder items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppStreamImageBuilderResources() map[string]AWSAppStreamImageBuilder { - results := map[string]AWSAppStreamImageBuilder{} +func (t *Template) GetAllAWSAppStreamImageBuilderResources() map[string]*AWSAppStreamImageBuilder { + results := map[string]*AWSAppStreamImageBuilder{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSAppStreamImageBuilder: + case *AWSAppStreamImageBuilder: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -170,7 +175,8 @@ func (t *Template) GetAllAWSAppStreamImageBuilderResources() map[string]AWSAppSt if b, err := json.Marshal(resource); err == nil { var result AWSAppStreamImageBuilder if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -182,10 +188,10 @@ func (t *Template) GetAllAWSAppStreamImageBuilderResources() map[string]AWSAppSt // GetAWSAppStreamImageBuilderWithName retrieves all AWSAppStreamImageBuilder items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppStreamImageBuilderWithName(name string) (AWSAppStreamImageBuilder, error) { +func (t *Template) GetAWSAppStreamImageBuilderWithName(name string) (*AWSAppStreamImageBuilder, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSAppStreamImageBuilder: + case *AWSAppStreamImageBuilder: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -197,12 +203,13 @@ func (t *Template) GetAWSAppStreamImageBuilderWithName(name string) (AWSAppStrea if b, err := json.Marshal(resource); err == nil { var result AWSAppStreamImageBuilder if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSAppStreamImageBuilder{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-appstream-stack.go b/cloudformation/aws-appstream-stack.go index f8901607f8..0ed826026c 100644 --- a/cloudformation/aws-appstream-stack.go +++ b/cloudformation/aws-appstream-stack.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -107,7 +108,7 @@ func (r *AWSAppStreamStack) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSAppStreamStack) MarshalJSON() ([]byte, error) { +func (r *AWSAppStreamStack) MarshalJSON() ([]byte, error) { type Properties AWSAppStreamStack return json.Marshal(&struct { Type string @@ -117,7 +118,7 @@ func (r AWSAppStreamStack) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -134,7 +135,11 @@ func (r *AWSAppStreamStack) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -154,11 +159,11 @@ func (r *AWSAppStreamStack) UnmarshalJSON(b []byte) error { } // GetAllAWSAppStreamStackResources retrieves all AWSAppStreamStack items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppStreamStackResources() map[string]AWSAppStreamStack { - results := map[string]AWSAppStreamStack{} +func (t *Template) GetAllAWSAppStreamStackResources() map[string]*AWSAppStreamStack { + results := map[string]*AWSAppStreamStack{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSAppStreamStack: + case *AWSAppStreamStack: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -170,7 +175,8 @@ func (t *Template) GetAllAWSAppStreamStackResources() map[string]AWSAppStreamSta if b, err := json.Marshal(resource); err == nil { var result AWSAppStreamStack if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -182,10 +188,10 @@ func (t *Template) GetAllAWSAppStreamStackResources() map[string]AWSAppStreamSta // GetAWSAppStreamStackWithName retrieves all AWSAppStreamStack items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppStreamStackWithName(name string) (AWSAppStreamStack, error) { +func (t *Template) GetAWSAppStreamStackWithName(name string) (*AWSAppStreamStack, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSAppStreamStack: + case *AWSAppStreamStack: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -197,12 +203,13 @@ func (t *Template) GetAWSAppStreamStackWithName(name string) (AWSAppStreamStack, if b, err := json.Marshal(resource); err == nil { var result AWSAppStreamStack if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSAppStreamStack{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-appstream-stackfleetassociation.go b/cloudformation/aws-appstream-stackfleetassociation.go index 032b2d8ae6..98d7fcf7d4 100644 --- a/cloudformation/aws-appstream-stackfleetassociation.go +++ b/cloudformation/aws-appstream-stackfleetassociation.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSAppStreamStackFleetAssociation) SetDeletionPolicy(policy DeletionPol // 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 AWSAppStreamStackFleetAssociation) MarshalJSON() ([]byte, error) { +func (r *AWSAppStreamStackFleetAssociation) MarshalJSON() ([]byte, error) { type Properties AWSAppStreamStackFleetAssociation return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSAppStreamStackFleetAssociation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSAppStreamStackFleetAssociation) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSAppStreamStackFleetAssociation) UnmarshalJSON(b []byte) error { } // GetAllAWSAppStreamStackFleetAssociationResources retrieves all AWSAppStreamStackFleetAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppStreamStackFleetAssociationResources() map[string]AWSAppStreamStackFleetAssociation { - results := map[string]AWSAppStreamStackFleetAssociation{} +func (t *Template) GetAllAWSAppStreamStackFleetAssociationResources() map[string]*AWSAppStreamStackFleetAssociation { + results := map[string]*AWSAppStreamStackFleetAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSAppStreamStackFleetAssociation: + case *AWSAppStreamStackFleetAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSAppStreamStackFleetAssociationResources() map[string if b, err := json.Marshal(resource); err == nil { var result AWSAppStreamStackFleetAssociation if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSAppStreamStackFleetAssociationResources() map[string // GetAWSAppStreamStackFleetAssociationWithName retrieves all AWSAppStreamStackFleetAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppStreamStackFleetAssociationWithName(name string) (AWSAppStreamStackFleetAssociation, error) { +func (t *Template) GetAWSAppStreamStackFleetAssociationWithName(name string) (*AWSAppStreamStackFleetAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSAppStreamStackFleetAssociation: + case *AWSAppStreamStackFleetAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSAppStreamStackFleetAssociationWithName(name string) (AW if b, err := json.Marshal(resource); err == nil { var result AWSAppStreamStackFleetAssociation if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSAppStreamStackFleetAssociation{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-appstream-stackuserassociation.go b/cloudformation/aws-appstream-stackuserassociation.go index 40b39c1204..20eb59ad59 100644 --- a/cloudformation/aws-appstream-stackuserassociation.go +++ b/cloudformation/aws-appstream-stackuserassociation.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSAppStreamStackUserAssociation) SetDeletionPolicy(policy DeletionPoli // 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 AWSAppStreamStackUserAssociation) MarshalJSON() ([]byte, error) { +func (r *AWSAppStreamStackUserAssociation) MarshalJSON() ([]byte, error) { type Properties AWSAppStreamStackUserAssociation return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSAppStreamStackUserAssociation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSAppStreamStackUserAssociation) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSAppStreamStackUserAssociation) UnmarshalJSON(b []byte) error { } // GetAllAWSAppStreamStackUserAssociationResources retrieves all AWSAppStreamStackUserAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppStreamStackUserAssociationResources() map[string]AWSAppStreamStackUserAssociation { - results := map[string]AWSAppStreamStackUserAssociation{} +func (t *Template) GetAllAWSAppStreamStackUserAssociationResources() map[string]*AWSAppStreamStackUserAssociation { + results := map[string]*AWSAppStreamStackUserAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSAppStreamStackUserAssociation: + case *AWSAppStreamStackUserAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSAppStreamStackUserAssociationResources() map[string] if b, err := json.Marshal(resource); err == nil { var result AWSAppStreamStackUserAssociation if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSAppStreamStackUserAssociationResources() map[string] // GetAWSAppStreamStackUserAssociationWithName retrieves all AWSAppStreamStackUserAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppStreamStackUserAssociationWithName(name string) (AWSAppStreamStackUserAssociation, error) { +func (t *Template) GetAWSAppStreamStackUserAssociationWithName(name string) (*AWSAppStreamStackUserAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSAppStreamStackUserAssociation: + case *AWSAppStreamStackUserAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSAppStreamStackUserAssociationWithName(name string) (AWS if b, err := json.Marshal(resource); err == nil { var result AWSAppStreamStackUserAssociation if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSAppStreamStackUserAssociation{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-appstream-user.go b/cloudformation/aws-appstream-user.go index 634330ed6f..2aba13637a 100644 --- a/cloudformation/aws-appstream-user.go +++ b/cloudformation/aws-appstream-user.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSAppStreamUser) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSAppStreamUser) MarshalJSON() ([]byte, error) { +func (r *AWSAppStreamUser) MarshalJSON() ([]byte, error) { type Properties AWSAppStreamUser return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSAppStreamUser) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSAppStreamUser) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSAppStreamUser) UnmarshalJSON(b []byte) error { } // GetAllAWSAppStreamUserResources retrieves all AWSAppStreamUser items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppStreamUserResources() map[string]AWSAppStreamUser { - results := map[string]AWSAppStreamUser{} +func (t *Template) GetAllAWSAppStreamUserResources() map[string]*AWSAppStreamUser { + results := map[string]*AWSAppStreamUser{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSAppStreamUser: + case *AWSAppStreamUser: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSAppStreamUserResources() map[string]AWSAppStreamUser if b, err := json.Marshal(resource); err == nil { var result AWSAppStreamUser if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSAppStreamUserResources() map[string]AWSAppStreamUser // GetAWSAppStreamUserWithName retrieves all AWSAppStreamUser items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppStreamUserWithName(name string) (AWSAppStreamUser, error) { +func (t *Template) GetAWSAppStreamUserWithName(name string) (*AWSAppStreamUser, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSAppStreamUser: + case *AWSAppStreamUser: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSAppStreamUserWithName(name string) (AWSAppStreamUser, e if b, err := json.Marshal(resource); err == nil { var result AWSAppStreamUser if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSAppStreamUser{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-appsync-apikey.go b/cloudformation/aws-appsync-apikey.go index d9c55503d5..f9287becc8 100644 --- a/cloudformation/aws-appsync-apikey.go +++ b/cloudformation/aws-appsync-apikey.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSAppSyncApiKey) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSAppSyncApiKey) MarshalJSON() ([]byte, error) { +func (r *AWSAppSyncApiKey) MarshalJSON() ([]byte, error) { type Properties AWSAppSyncApiKey return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSAppSyncApiKey) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSAppSyncApiKey) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSAppSyncApiKey) UnmarshalJSON(b []byte) error { } // GetAllAWSAppSyncApiKeyResources retrieves all AWSAppSyncApiKey items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppSyncApiKeyResources() map[string]AWSAppSyncApiKey { - results := map[string]AWSAppSyncApiKey{} +func (t *Template) GetAllAWSAppSyncApiKeyResources() map[string]*AWSAppSyncApiKey { + results := map[string]*AWSAppSyncApiKey{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSAppSyncApiKey: + case *AWSAppSyncApiKey: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSAppSyncApiKeyResources() map[string]AWSAppSyncApiKey if b, err := json.Marshal(resource); err == nil { var result AWSAppSyncApiKey if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSAppSyncApiKeyResources() map[string]AWSAppSyncApiKey // GetAWSAppSyncApiKeyWithName retrieves all AWSAppSyncApiKey items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppSyncApiKeyWithName(name string) (AWSAppSyncApiKey, error) { +func (t *Template) GetAWSAppSyncApiKeyWithName(name string) (*AWSAppSyncApiKey, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSAppSyncApiKey: + case *AWSAppSyncApiKey: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSAppSyncApiKeyWithName(name string) (AWSAppSyncApiKey, e if b, err := json.Marshal(resource); err == nil { var result AWSAppSyncApiKey if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSAppSyncApiKey{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-appsync-datasource.go b/cloudformation/aws-appsync-datasource.go index 048c8c070b..b46ef3c009 100644 --- a/cloudformation/aws-appsync-datasource.go +++ b/cloudformation/aws-appsync-datasource.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -107,7 +108,7 @@ func (r *AWSAppSyncDataSource) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSAppSyncDataSource) MarshalJSON() ([]byte, error) { +func (r *AWSAppSyncDataSource) MarshalJSON() ([]byte, error) { type Properties AWSAppSyncDataSource return json.Marshal(&struct { Type string @@ -117,7 +118,7 @@ func (r AWSAppSyncDataSource) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -134,7 +135,11 @@ func (r *AWSAppSyncDataSource) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -154,11 +159,11 @@ func (r *AWSAppSyncDataSource) UnmarshalJSON(b []byte) error { } // GetAllAWSAppSyncDataSourceResources retrieves all AWSAppSyncDataSource items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppSyncDataSourceResources() map[string]AWSAppSyncDataSource { - results := map[string]AWSAppSyncDataSource{} +func (t *Template) GetAllAWSAppSyncDataSourceResources() map[string]*AWSAppSyncDataSource { + results := map[string]*AWSAppSyncDataSource{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSAppSyncDataSource: + case *AWSAppSyncDataSource: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -170,7 +175,8 @@ func (t *Template) GetAllAWSAppSyncDataSourceResources() map[string]AWSAppSyncDa if b, err := json.Marshal(resource); err == nil { var result AWSAppSyncDataSource if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -182,10 +188,10 @@ func (t *Template) GetAllAWSAppSyncDataSourceResources() map[string]AWSAppSyncDa // GetAWSAppSyncDataSourceWithName retrieves all AWSAppSyncDataSource items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppSyncDataSourceWithName(name string) (AWSAppSyncDataSource, error) { +func (t *Template) GetAWSAppSyncDataSourceWithName(name string) (*AWSAppSyncDataSource, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSAppSyncDataSource: + case *AWSAppSyncDataSource: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -197,12 +203,13 @@ func (t *Template) GetAWSAppSyncDataSourceWithName(name string) (AWSAppSyncDataS if b, err := json.Marshal(resource); err == nil { var result AWSAppSyncDataSource if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSAppSyncDataSource{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-appsync-functionconfiguration.go b/cloudformation/aws-appsync-functionconfiguration.go index e7b556c051..943543679d 100644 --- a/cloudformation/aws-appsync-functionconfiguration.go +++ b/cloudformation/aws-appsync-functionconfiguration.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -102,7 +103,7 @@ func (r *AWSAppSyncFunctionConfiguration) SetDeletionPolicy(policy DeletionPolic // 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 AWSAppSyncFunctionConfiguration) MarshalJSON() ([]byte, error) { +func (r *AWSAppSyncFunctionConfiguration) MarshalJSON() ([]byte, error) { type Properties AWSAppSyncFunctionConfiguration return json.Marshal(&struct { Type string @@ -112,7 +113,7 @@ func (r AWSAppSyncFunctionConfiguration) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -129,7 +130,11 @@ func (r *AWSAppSyncFunctionConfiguration) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -149,11 +154,11 @@ func (r *AWSAppSyncFunctionConfiguration) UnmarshalJSON(b []byte) error { } // GetAllAWSAppSyncFunctionConfigurationResources retrieves all AWSAppSyncFunctionConfiguration items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppSyncFunctionConfigurationResources() map[string]AWSAppSyncFunctionConfiguration { - results := map[string]AWSAppSyncFunctionConfiguration{} +func (t *Template) GetAllAWSAppSyncFunctionConfigurationResources() map[string]*AWSAppSyncFunctionConfiguration { + results := map[string]*AWSAppSyncFunctionConfiguration{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSAppSyncFunctionConfiguration: + case *AWSAppSyncFunctionConfiguration: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -165,7 +170,8 @@ func (t *Template) GetAllAWSAppSyncFunctionConfigurationResources() map[string]A if b, err := json.Marshal(resource); err == nil { var result AWSAppSyncFunctionConfiguration if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -177,10 +183,10 @@ func (t *Template) GetAllAWSAppSyncFunctionConfigurationResources() map[string]A // GetAWSAppSyncFunctionConfigurationWithName retrieves all AWSAppSyncFunctionConfiguration items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppSyncFunctionConfigurationWithName(name string) (AWSAppSyncFunctionConfiguration, error) { +func (t *Template) GetAWSAppSyncFunctionConfigurationWithName(name string) (*AWSAppSyncFunctionConfiguration, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSAppSyncFunctionConfiguration: + case *AWSAppSyncFunctionConfiguration: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -192,12 +198,13 @@ func (t *Template) GetAWSAppSyncFunctionConfigurationWithName(name string) (AWSA if b, err := json.Marshal(resource); err == nil { var result AWSAppSyncFunctionConfiguration if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSAppSyncFunctionConfiguration{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-appsync-graphqlapi.go b/cloudformation/aws-appsync-graphqlapi.go index d4f5886855..c8122e2ce4 100644 --- a/cloudformation/aws-appsync-graphqlapi.go +++ b/cloudformation/aws-appsync-graphqlapi.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSAppSyncGraphQLApi) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSAppSyncGraphQLApi) MarshalJSON() ([]byte, error) { +func (r *AWSAppSyncGraphQLApi) MarshalJSON() ([]byte, error) { type Properties AWSAppSyncGraphQLApi return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSAppSyncGraphQLApi) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSAppSyncGraphQLApi) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSAppSyncGraphQLApi) UnmarshalJSON(b []byte) error { } // GetAllAWSAppSyncGraphQLApiResources retrieves all AWSAppSyncGraphQLApi items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppSyncGraphQLApiResources() map[string]AWSAppSyncGraphQLApi { - results := map[string]AWSAppSyncGraphQLApi{} +func (t *Template) GetAllAWSAppSyncGraphQLApiResources() map[string]*AWSAppSyncGraphQLApi { + results := map[string]*AWSAppSyncGraphQLApi{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSAppSyncGraphQLApi: + case *AWSAppSyncGraphQLApi: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSAppSyncGraphQLApiResources() map[string]AWSAppSyncGr if b, err := json.Marshal(resource); err == nil { var result AWSAppSyncGraphQLApi if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSAppSyncGraphQLApiResources() map[string]AWSAppSyncGr // GetAWSAppSyncGraphQLApiWithName retrieves all AWSAppSyncGraphQLApi items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppSyncGraphQLApiWithName(name string) (AWSAppSyncGraphQLApi, error) { +func (t *Template) GetAWSAppSyncGraphQLApiWithName(name string) (*AWSAppSyncGraphQLApi, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSAppSyncGraphQLApi: + case *AWSAppSyncGraphQLApi: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSAppSyncGraphQLApiWithName(name string) (AWSAppSyncGraph if b, err := json.Marshal(resource); err == nil { var result AWSAppSyncGraphQLApi if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSAppSyncGraphQLApi{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-appsync-graphqlschema.go b/cloudformation/aws-appsync-graphqlschema.go index d82b8a918f..f02dc62725 100644 --- a/cloudformation/aws-appsync-graphqlschema.go +++ b/cloudformation/aws-appsync-graphqlschema.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSAppSyncGraphQLSchema) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSAppSyncGraphQLSchema) MarshalJSON() ([]byte, error) { +func (r *AWSAppSyncGraphQLSchema) MarshalJSON() ([]byte, error) { type Properties AWSAppSyncGraphQLSchema return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSAppSyncGraphQLSchema) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSAppSyncGraphQLSchema) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSAppSyncGraphQLSchema) UnmarshalJSON(b []byte) error { } // GetAllAWSAppSyncGraphQLSchemaResources retrieves all AWSAppSyncGraphQLSchema items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppSyncGraphQLSchemaResources() map[string]AWSAppSyncGraphQLSchema { - results := map[string]AWSAppSyncGraphQLSchema{} +func (t *Template) GetAllAWSAppSyncGraphQLSchemaResources() map[string]*AWSAppSyncGraphQLSchema { + results := map[string]*AWSAppSyncGraphQLSchema{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSAppSyncGraphQLSchema: + case *AWSAppSyncGraphQLSchema: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSAppSyncGraphQLSchemaResources() map[string]AWSAppSyn if b, err := json.Marshal(resource); err == nil { var result AWSAppSyncGraphQLSchema if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSAppSyncGraphQLSchemaResources() map[string]AWSAppSyn // GetAWSAppSyncGraphQLSchemaWithName retrieves all AWSAppSyncGraphQLSchema items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppSyncGraphQLSchemaWithName(name string) (AWSAppSyncGraphQLSchema, error) { +func (t *Template) GetAWSAppSyncGraphQLSchemaWithName(name string) (*AWSAppSyncGraphQLSchema, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSAppSyncGraphQLSchema: + case *AWSAppSyncGraphQLSchema: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSAppSyncGraphQLSchemaWithName(name string) (AWSAppSyncGr if b, err := json.Marshal(resource); err == nil { var result AWSAppSyncGraphQLSchema if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSAppSyncGraphQLSchema{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-appsync-resolver.go b/cloudformation/aws-appsync-resolver.go index e4b32319c3..dfb6a2b63d 100644 --- a/cloudformation/aws-appsync-resolver.go +++ b/cloudformation/aws-appsync-resolver.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -107,7 +108,7 @@ func (r *AWSAppSyncResolver) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSAppSyncResolver) MarshalJSON() ([]byte, error) { +func (r *AWSAppSyncResolver) MarshalJSON() ([]byte, error) { type Properties AWSAppSyncResolver return json.Marshal(&struct { Type string @@ -117,7 +118,7 @@ func (r AWSAppSyncResolver) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -134,7 +135,11 @@ func (r *AWSAppSyncResolver) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -154,11 +159,11 @@ func (r *AWSAppSyncResolver) UnmarshalJSON(b []byte) error { } // GetAllAWSAppSyncResolverResources retrieves all AWSAppSyncResolver items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppSyncResolverResources() map[string]AWSAppSyncResolver { - results := map[string]AWSAppSyncResolver{} +func (t *Template) GetAllAWSAppSyncResolverResources() map[string]*AWSAppSyncResolver { + results := map[string]*AWSAppSyncResolver{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSAppSyncResolver: + case *AWSAppSyncResolver: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -170,7 +175,8 @@ func (t *Template) GetAllAWSAppSyncResolverResources() map[string]AWSAppSyncReso if b, err := json.Marshal(resource); err == nil { var result AWSAppSyncResolver if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -182,10 +188,10 @@ func (t *Template) GetAllAWSAppSyncResolverResources() map[string]AWSAppSyncReso // GetAWSAppSyncResolverWithName retrieves all AWSAppSyncResolver items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppSyncResolverWithName(name string) (AWSAppSyncResolver, error) { +func (t *Template) GetAWSAppSyncResolverWithName(name string) (*AWSAppSyncResolver, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSAppSyncResolver: + case *AWSAppSyncResolver: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -197,12 +203,13 @@ func (t *Template) GetAWSAppSyncResolverWithName(name string) (AWSAppSyncResolve if b, err := json.Marshal(resource); err == nil { var result AWSAppSyncResolver if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSAppSyncResolver{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-athena-namedquery.go b/cloudformation/aws-athena-namedquery.go index e78b7db34c..840aa4ba5d 100644 --- a/cloudformation/aws-athena-namedquery.go +++ b/cloudformation/aws-athena-namedquery.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSAthenaNamedQuery) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSAthenaNamedQuery) MarshalJSON() ([]byte, error) { +func (r *AWSAthenaNamedQuery) MarshalJSON() ([]byte, error) { type Properties AWSAthenaNamedQuery return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSAthenaNamedQuery) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSAthenaNamedQuery) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSAthenaNamedQuery) UnmarshalJSON(b []byte) error { } // GetAllAWSAthenaNamedQueryResources retrieves all AWSAthenaNamedQuery items from an AWS CloudFormation template -func (t *Template) GetAllAWSAthenaNamedQueryResources() map[string]AWSAthenaNamedQuery { - results := map[string]AWSAthenaNamedQuery{} +func (t *Template) GetAllAWSAthenaNamedQueryResources() map[string]*AWSAthenaNamedQuery { + results := map[string]*AWSAthenaNamedQuery{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSAthenaNamedQuery: + case *AWSAthenaNamedQuery: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSAthenaNamedQueryResources() map[string]AWSAthenaName if b, err := json.Marshal(resource); err == nil { var result AWSAthenaNamedQuery if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSAthenaNamedQueryResources() map[string]AWSAthenaName // GetAWSAthenaNamedQueryWithName retrieves all AWSAthenaNamedQuery items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAthenaNamedQueryWithName(name string) (AWSAthenaNamedQuery, error) { +func (t *Template) GetAWSAthenaNamedQueryWithName(name string) (*AWSAthenaNamedQuery, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSAthenaNamedQuery: + case *AWSAthenaNamedQuery: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSAthenaNamedQueryWithName(name string) (AWSAthenaNamedQu if b, err := json.Marshal(resource); err == nil { var result AWSAthenaNamedQuery if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSAthenaNamedQuery{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-autoscaling-autoscalinggroup.go b/cloudformation/aws-autoscaling-autoscalinggroup.go index 9af5c3ca04..721dcdb80a 100644 --- a/cloudformation/aws-autoscaling-autoscalinggroup.go +++ b/cloudformation/aws-autoscaling-autoscalinggroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -185,7 +186,7 @@ func (r *AWSAutoScalingAutoScalingGroup) SetCreationPolicy(policy *CreationPolic // 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 AWSAutoScalingAutoScalingGroup) MarshalJSON() ([]byte, error) { +func (r *AWSAutoScalingAutoScalingGroup) MarshalJSON() ([]byte, error) { type Properties AWSAutoScalingAutoScalingGroup return json.Marshal(&struct { Type string @@ -197,7 +198,7 @@ func (r AWSAutoScalingAutoScalingGroup) MarshalJSON() ([]byte, error) { CreationPolicy *CreationPolicy `json:"CreationPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -216,7 +217,11 @@ func (r *AWSAutoScalingAutoScalingGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -236,11 +241,11 @@ func (r *AWSAutoScalingAutoScalingGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSAutoScalingAutoScalingGroupResources retrieves all AWSAutoScalingAutoScalingGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSAutoScalingAutoScalingGroupResources() map[string]AWSAutoScalingAutoScalingGroup { - results := map[string]AWSAutoScalingAutoScalingGroup{} +func (t *Template) GetAllAWSAutoScalingAutoScalingGroupResources() map[string]*AWSAutoScalingAutoScalingGroup { + results := map[string]*AWSAutoScalingAutoScalingGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSAutoScalingAutoScalingGroup: + case *AWSAutoScalingAutoScalingGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -252,7 +257,8 @@ func (t *Template) GetAllAWSAutoScalingAutoScalingGroupResources() map[string]AW if b, err := json.Marshal(resource); err == nil { var result AWSAutoScalingAutoScalingGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -264,10 +270,10 @@ func (t *Template) GetAllAWSAutoScalingAutoScalingGroupResources() map[string]AW // GetAWSAutoScalingAutoScalingGroupWithName retrieves all AWSAutoScalingAutoScalingGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAutoScalingAutoScalingGroupWithName(name string) (AWSAutoScalingAutoScalingGroup, error) { +func (t *Template) GetAWSAutoScalingAutoScalingGroupWithName(name string) (*AWSAutoScalingAutoScalingGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSAutoScalingAutoScalingGroup: + case *AWSAutoScalingAutoScalingGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -279,12 +285,13 @@ func (t *Template) GetAWSAutoScalingAutoScalingGroupWithName(name string) (AWSAu if b, err := json.Marshal(resource); err == nil { var result AWSAutoScalingAutoScalingGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSAutoScalingAutoScalingGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-autoscaling-launchconfiguration.go b/cloudformation/aws-autoscaling-launchconfiguration.go index 50208e84a3..a0d2cd0b0d 100644 --- a/cloudformation/aws-autoscaling-launchconfiguration.go +++ b/cloudformation/aws-autoscaling-launchconfiguration.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -147,7 +148,7 @@ func (r *AWSAutoScalingLaunchConfiguration) SetDeletionPolicy(policy DeletionPol // 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 AWSAutoScalingLaunchConfiguration) MarshalJSON() ([]byte, error) { +func (r *AWSAutoScalingLaunchConfiguration) MarshalJSON() ([]byte, error) { type Properties AWSAutoScalingLaunchConfiguration return json.Marshal(&struct { Type string @@ -157,7 +158,7 @@ func (r AWSAutoScalingLaunchConfiguration) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -174,7 +175,11 @@ func (r *AWSAutoScalingLaunchConfiguration) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -194,11 +199,11 @@ func (r *AWSAutoScalingLaunchConfiguration) UnmarshalJSON(b []byte) error { } // GetAllAWSAutoScalingLaunchConfigurationResources retrieves all AWSAutoScalingLaunchConfiguration items from an AWS CloudFormation template -func (t *Template) GetAllAWSAutoScalingLaunchConfigurationResources() map[string]AWSAutoScalingLaunchConfiguration { - results := map[string]AWSAutoScalingLaunchConfiguration{} +func (t *Template) GetAllAWSAutoScalingLaunchConfigurationResources() map[string]*AWSAutoScalingLaunchConfiguration { + results := map[string]*AWSAutoScalingLaunchConfiguration{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSAutoScalingLaunchConfiguration: + case *AWSAutoScalingLaunchConfiguration: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -210,7 +215,8 @@ func (t *Template) GetAllAWSAutoScalingLaunchConfigurationResources() map[string if b, err := json.Marshal(resource); err == nil { var result AWSAutoScalingLaunchConfiguration if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -222,10 +228,10 @@ func (t *Template) GetAllAWSAutoScalingLaunchConfigurationResources() map[string // GetAWSAutoScalingLaunchConfigurationWithName retrieves all AWSAutoScalingLaunchConfiguration items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAutoScalingLaunchConfigurationWithName(name string) (AWSAutoScalingLaunchConfiguration, error) { +func (t *Template) GetAWSAutoScalingLaunchConfigurationWithName(name string) (*AWSAutoScalingLaunchConfiguration, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSAutoScalingLaunchConfiguration: + case *AWSAutoScalingLaunchConfiguration: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -237,12 +243,13 @@ func (t *Template) GetAWSAutoScalingLaunchConfigurationWithName(name string) (AW if b, err := json.Marshal(resource); err == nil { var result AWSAutoScalingLaunchConfiguration if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSAutoScalingLaunchConfiguration{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-autoscaling-lifecyclehook.go b/cloudformation/aws-autoscaling-lifecyclehook.go index 832fbbd4b9..ca877b3887 100644 --- a/cloudformation/aws-autoscaling-lifecyclehook.go +++ b/cloudformation/aws-autoscaling-lifecyclehook.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -97,7 +98,7 @@ func (r *AWSAutoScalingLifecycleHook) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSAutoScalingLifecycleHook) MarshalJSON() ([]byte, error) { +func (r *AWSAutoScalingLifecycleHook) MarshalJSON() ([]byte, error) { type Properties AWSAutoScalingLifecycleHook return json.Marshal(&struct { Type string @@ -107,7 +108,7 @@ func (r AWSAutoScalingLifecycleHook) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -124,7 +125,11 @@ func (r *AWSAutoScalingLifecycleHook) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -144,11 +149,11 @@ func (r *AWSAutoScalingLifecycleHook) UnmarshalJSON(b []byte) error { } // GetAllAWSAutoScalingLifecycleHookResources retrieves all AWSAutoScalingLifecycleHook items from an AWS CloudFormation template -func (t *Template) GetAllAWSAutoScalingLifecycleHookResources() map[string]AWSAutoScalingLifecycleHook { - results := map[string]AWSAutoScalingLifecycleHook{} +func (t *Template) GetAllAWSAutoScalingLifecycleHookResources() map[string]*AWSAutoScalingLifecycleHook { + results := map[string]*AWSAutoScalingLifecycleHook{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSAutoScalingLifecycleHook: + case *AWSAutoScalingLifecycleHook: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -160,7 +165,8 @@ func (t *Template) GetAllAWSAutoScalingLifecycleHookResources() map[string]AWSAu if b, err := json.Marshal(resource); err == nil { var result AWSAutoScalingLifecycleHook if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -172,10 +178,10 @@ func (t *Template) GetAllAWSAutoScalingLifecycleHookResources() map[string]AWSAu // GetAWSAutoScalingLifecycleHookWithName retrieves all AWSAutoScalingLifecycleHook items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAutoScalingLifecycleHookWithName(name string) (AWSAutoScalingLifecycleHook, error) { +func (t *Template) GetAWSAutoScalingLifecycleHookWithName(name string) (*AWSAutoScalingLifecycleHook, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSAutoScalingLifecycleHook: + case *AWSAutoScalingLifecycleHook: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -187,12 +193,13 @@ func (t *Template) GetAWSAutoScalingLifecycleHookWithName(name string) (AWSAutoS if b, err := json.Marshal(resource); err == nil { var result AWSAutoScalingLifecycleHook if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSAutoScalingLifecycleHook{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-autoscaling-scalingpolicy.go b/cloudformation/aws-autoscaling-scalingpolicy.go index 7f313b69f8..b81ffe38c8 100644 --- a/cloudformation/aws-autoscaling-scalingpolicy.go +++ b/cloudformation/aws-autoscaling-scalingpolicy.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -107,7 +108,7 @@ func (r *AWSAutoScalingScalingPolicy) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSAutoScalingScalingPolicy) MarshalJSON() ([]byte, error) { +func (r *AWSAutoScalingScalingPolicy) MarshalJSON() ([]byte, error) { type Properties AWSAutoScalingScalingPolicy return json.Marshal(&struct { Type string @@ -117,7 +118,7 @@ func (r AWSAutoScalingScalingPolicy) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -134,7 +135,11 @@ func (r *AWSAutoScalingScalingPolicy) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -154,11 +159,11 @@ func (r *AWSAutoScalingScalingPolicy) UnmarshalJSON(b []byte) error { } // GetAllAWSAutoScalingScalingPolicyResources retrieves all AWSAutoScalingScalingPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSAutoScalingScalingPolicyResources() map[string]AWSAutoScalingScalingPolicy { - results := map[string]AWSAutoScalingScalingPolicy{} +func (t *Template) GetAllAWSAutoScalingScalingPolicyResources() map[string]*AWSAutoScalingScalingPolicy { + results := map[string]*AWSAutoScalingScalingPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSAutoScalingScalingPolicy: + case *AWSAutoScalingScalingPolicy: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -170,7 +175,8 @@ func (t *Template) GetAllAWSAutoScalingScalingPolicyResources() map[string]AWSAu if b, err := json.Marshal(resource); err == nil { var result AWSAutoScalingScalingPolicy if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -182,10 +188,10 @@ func (t *Template) GetAllAWSAutoScalingScalingPolicyResources() map[string]AWSAu // GetAWSAutoScalingScalingPolicyWithName retrieves all AWSAutoScalingScalingPolicy items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAutoScalingScalingPolicyWithName(name string) (AWSAutoScalingScalingPolicy, error) { +func (t *Template) GetAWSAutoScalingScalingPolicyWithName(name string) (*AWSAutoScalingScalingPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSAutoScalingScalingPolicy: + case *AWSAutoScalingScalingPolicy: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -197,12 +203,13 @@ func (t *Template) GetAWSAutoScalingScalingPolicyWithName(name string) (AWSAutoS if b, err := json.Marshal(resource); err == nil { var result AWSAutoScalingScalingPolicy if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSAutoScalingScalingPolicy{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-autoscaling-scheduledaction.go b/cloudformation/aws-autoscaling-scheduledaction.go index 1d70b88428..ca6abf387c 100644 --- a/cloudformation/aws-autoscaling-scheduledaction.go +++ b/cloudformation/aws-autoscaling-scheduledaction.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -92,7 +93,7 @@ func (r *AWSAutoScalingScheduledAction) SetDeletionPolicy(policy DeletionPolicy) // 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 AWSAutoScalingScheduledAction) MarshalJSON() ([]byte, error) { +func (r *AWSAutoScalingScheduledAction) MarshalJSON() ([]byte, error) { type Properties AWSAutoScalingScheduledAction return json.Marshal(&struct { Type string @@ -102,7 +103,7 @@ func (r AWSAutoScalingScheduledAction) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -119,7 +120,11 @@ func (r *AWSAutoScalingScheduledAction) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -139,11 +144,11 @@ func (r *AWSAutoScalingScheduledAction) UnmarshalJSON(b []byte) error { } // GetAllAWSAutoScalingScheduledActionResources retrieves all AWSAutoScalingScheduledAction items from an AWS CloudFormation template -func (t *Template) GetAllAWSAutoScalingScheduledActionResources() map[string]AWSAutoScalingScheduledAction { - results := map[string]AWSAutoScalingScheduledAction{} +func (t *Template) GetAllAWSAutoScalingScheduledActionResources() map[string]*AWSAutoScalingScheduledAction { + results := map[string]*AWSAutoScalingScheduledAction{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSAutoScalingScheduledAction: + case *AWSAutoScalingScheduledAction: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -155,7 +160,8 @@ func (t *Template) GetAllAWSAutoScalingScheduledActionResources() map[string]AWS if b, err := json.Marshal(resource); err == nil { var result AWSAutoScalingScheduledAction if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -167,10 +173,10 @@ func (t *Template) GetAllAWSAutoScalingScheduledActionResources() map[string]AWS // GetAWSAutoScalingScheduledActionWithName retrieves all AWSAutoScalingScheduledAction items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAutoScalingScheduledActionWithName(name string) (AWSAutoScalingScheduledAction, error) { +func (t *Template) GetAWSAutoScalingScheduledActionWithName(name string) (*AWSAutoScalingScheduledAction, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSAutoScalingScheduledAction: + case *AWSAutoScalingScheduledAction: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -182,12 +188,13 @@ func (t *Template) GetAWSAutoScalingScheduledActionWithName(name string) (AWSAut if b, err := json.Marshal(resource); err == nil { var result AWSAutoScalingScheduledAction if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSAutoScalingScheduledAction{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-autoscalingplans-scalingplan.go b/cloudformation/aws-autoscalingplans-scalingplan.go index 9b8c794c8b..3c29e7130f 100644 --- a/cloudformation/aws-autoscalingplans-scalingplan.go +++ b/cloudformation/aws-autoscalingplans-scalingplan.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSAutoScalingPlansScalingPlan) SetDeletionPolicy(policy DeletionPolicy // 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 AWSAutoScalingPlansScalingPlan) MarshalJSON() ([]byte, error) { +func (r *AWSAutoScalingPlansScalingPlan) MarshalJSON() ([]byte, error) { type Properties AWSAutoScalingPlansScalingPlan return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSAutoScalingPlansScalingPlan) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSAutoScalingPlansScalingPlan) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSAutoScalingPlansScalingPlan) UnmarshalJSON(b []byte) error { } // GetAllAWSAutoScalingPlansScalingPlanResources retrieves all AWSAutoScalingPlansScalingPlan items from an AWS CloudFormation template -func (t *Template) GetAllAWSAutoScalingPlansScalingPlanResources() map[string]AWSAutoScalingPlansScalingPlan { - results := map[string]AWSAutoScalingPlansScalingPlan{} +func (t *Template) GetAllAWSAutoScalingPlansScalingPlanResources() map[string]*AWSAutoScalingPlansScalingPlan { + results := map[string]*AWSAutoScalingPlansScalingPlan{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSAutoScalingPlansScalingPlan: + case *AWSAutoScalingPlansScalingPlan: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSAutoScalingPlansScalingPlanResources() map[string]AW if b, err := json.Marshal(resource); err == nil { var result AWSAutoScalingPlansScalingPlan if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSAutoScalingPlansScalingPlanResources() map[string]AW // GetAWSAutoScalingPlansScalingPlanWithName retrieves all AWSAutoScalingPlansScalingPlan items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAutoScalingPlansScalingPlanWithName(name string) (AWSAutoScalingPlansScalingPlan, error) { +func (t *Template) GetAWSAutoScalingPlansScalingPlanWithName(name string) (*AWSAutoScalingPlansScalingPlan, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSAutoScalingPlansScalingPlan: + case *AWSAutoScalingPlansScalingPlan: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSAutoScalingPlansScalingPlanWithName(name string) (AWSAu if b, err := json.Marshal(resource); err == nil { var result AWSAutoScalingPlansScalingPlan if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSAutoScalingPlansScalingPlan{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-batch-computeenvironment.go b/cloudformation/aws-batch-computeenvironment.go index 6c7c1716a7..07b439c20e 100644 --- a/cloudformation/aws-batch-computeenvironment.go +++ b/cloudformation/aws-batch-computeenvironment.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSBatchComputeEnvironment) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSBatchComputeEnvironment) MarshalJSON() ([]byte, error) { +func (r *AWSBatchComputeEnvironment) MarshalJSON() ([]byte, error) { type Properties AWSBatchComputeEnvironment return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSBatchComputeEnvironment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSBatchComputeEnvironment) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSBatchComputeEnvironment) UnmarshalJSON(b []byte) error { } // GetAllAWSBatchComputeEnvironmentResources retrieves all AWSBatchComputeEnvironment items from an AWS CloudFormation template -func (t *Template) GetAllAWSBatchComputeEnvironmentResources() map[string]AWSBatchComputeEnvironment { - results := map[string]AWSBatchComputeEnvironment{} +func (t *Template) GetAllAWSBatchComputeEnvironmentResources() map[string]*AWSBatchComputeEnvironment { + results := map[string]*AWSBatchComputeEnvironment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSBatchComputeEnvironment: + case *AWSBatchComputeEnvironment: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSBatchComputeEnvironmentResources() map[string]AWSBat if b, err := json.Marshal(resource); err == nil { var result AWSBatchComputeEnvironment if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSBatchComputeEnvironmentResources() map[string]AWSBat // GetAWSBatchComputeEnvironmentWithName retrieves all AWSBatchComputeEnvironment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSBatchComputeEnvironmentWithName(name string) (AWSBatchComputeEnvironment, error) { +func (t *Template) GetAWSBatchComputeEnvironmentWithName(name string) (*AWSBatchComputeEnvironment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSBatchComputeEnvironment: + case *AWSBatchComputeEnvironment: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSBatchComputeEnvironmentWithName(name string) (AWSBatchC if b, err := json.Marshal(resource); err == nil { var result AWSBatchComputeEnvironment if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSBatchComputeEnvironment{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-batch-jobdefinition.go b/cloudformation/aws-batch-jobdefinition.go index efa15178d5..50c70d4f52 100644 --- a/cloudformation/aws-batch-jobdefinition.go +++ b/cloudformation/aws-batch-jobdefinition.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -92,7 +93,7 @@ func (r *AWSBatchJobDefinition) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSBatchJobDefinition) MarshalJSON() ([]byte, error) { +func (r *AWSBatchJobDefinition) MarshalJSON() ([]byte, error) { type Properties AWSBatchJobDefinition return json.Marshal(&struct { Type string @@ -102,7 +103,7 @@ func (r AWSBatchJobDefinition) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -119,7 +120,11 @@ func (r *AWSBatchJobDefinition) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -139,11 +144,11 @@ func (r *AWSBatchJobDefinition) UnmarshalJSON(b []byte) error { } // GetAllAWSBatchJobDefinitionResources retrieves all AWSBatchJobDefinition items from an AWS CloudFormation template -func (t *Template) GetAllAWSBatchJobDefinitionResources() map[string]AWSBatchJobDefinition { - results := map[string]AWSBatchJobDefinition{} +func (t *Template) GetAllAWSBatchJobDefinitionResources() map[string]*AWSBatchJobDefinition { + results := map[string]*AWSBatchJobDefinition{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSBatchJobDefinition: + case *AWSBatchJobDefinition: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -155,7 +160,8 @@ func (t *Template) GetAllAWSBatchJobDefinitionResources() map[string]AWSBatchJob if b, err := json.Marshal(resource); err == nil { var result AWSBatchJobDefinition if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -167,10 +173,10 @@ func (t *Template) GetAllAWSBatchJobDefinitionResources() map[string]AWSBatchJob // GetAWSBatchJobDefinitionWithName retrieves all AWSBatchJobDefinition items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSBatchJobDefinitionWithName(name string) (AWSBatchJobDefinition, error) { +func (t *Template) GetAWSBatchJobDefinitionWithName(name string) (*AWSBatchJobDefinition, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSBatchJobDefinition: + case *AWSBatchJobDefinition: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -182,12 +188,13 @@ func (t *Template) GetAWSBatchJobDefinitionWithName(name string) (AWSBatchJobDef if b, err := json.Marshal(resource); err == nil { var result AWSBatchJobDefinition if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSBatchJobDefinition{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-batch-jobqueue.go b/cloudformation/aws-batch-jobqueue.go index 9449a08dc7..8966010555 100644 --- a/cloudformation/aws-batch-jobqueue.go +++ b/cloudformation/aws-batch-jobqueue.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSBatchJobQueue) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSBatchJobQueue) MarshalJSON() ([]byte, error) { +func (r *AWSBatchJobQueue) MarshalJSON() ([]byte, error) { type Properties AWSBatchJobQueue return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSBatchJobQueue) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSBatchJobQueue) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSBatchJobQueue) UnmarshalJSON(b []byte) error { } // GetAllAWSBatchJobQueueResources retrieves all AWSBatchJobQueue items from an AWS CloudFormation template -func (t *Template) GetAllAWSBatchJobQueueResources() map[string]AWSBatchJobQueue { - results := map[string]AWSBatchJobQueue{} +func (t *Template) GetAllAWSBatchJobQueueResources() map[string]*AWSBatchJobQueue { + results := map[string]*AWSBatchJobQueue{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSBatchJobQueue: + case *AWSBatchJobQueue: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSBatchJobQueueResources() map[string]AWSBatchJobQueue if b, err := json.Marshal(resource); err == nil { var result AWSBatchJobQueue if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSBatchJobQueueResources() map[string]AWSBatchJobQueue // GetAWSBatchJobQueueWithName retrieves all AWSBatchJobQueue items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSBatchJobQueueWithName(name string) (AWSBatchJobQueue, error) { +func (t *Template) GetAWSBatchJobQueueWithName(name string) (*AWSBatchJobQueue, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSBatchJobQueue: + case *AWSBatchJobQueue: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSBatchJobQueueWithName(name string) (AWSBatchJobQueue, e if b, err := json.Marshal(resource); err == nil { var result AWSBatchJobQueue if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSBatchJobQueue{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-budgets-budget.go b/cloudformation/aws-budgets-budget.go index dc8bc090ea..764745a9df 100644 --- a/cloudformation/aws-budgets-budget.go +++ b/cloudformation/aws-budgets-budget.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSBudgetsBudget) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSBudgetsBudget) MarshalJSON() ([]byte, error) { +func (r *AWSBudgetsBudget) MarshalJSON() ([]byte, error) { type Properties AWSBudgetsBudget return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSBudgetsBudget) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSBudgetsBudget) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSBudgetsBudget) UnmarshalJSON(b []byte) error { } // GetAllAWSBudgetsBudgetResources retrieves all AWSBudgetsBudget items from an AWS CloudFormation template -func (t *Template) GetAllAWSBudgetsBudgetResources() map[string]AWSBudgetsBudget { - results := map[string]AWSBudgetsBudget{} +func (t *Template) GetAllAWSBudgetsBudgetResources() map[string]*AWSBudgetsBudget { + results := map[string]*AWSBudgetsBudget{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSBudgetsBudget: + case *AWSBudgetsBudget: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSBudgetsBudgetResources() map[string]AWSBudgetsBudget if b, err := json.Marshal(resource); err == nil { var result AWSBudgetsBudget if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSBudgetsBudgetResources() map[string]AWSBudgetsBudget // GetAWSBudgetsBudgetWithName retrieves all AWSBudgetsBudget items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSBudgetsBudgetWithName(name string) (AWSBudgetsBudget, error) { +func (t *Template) GetAWSBudgetsBudgetWithName(name string) (*AWSBudgetsBudget, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSBudgetsBudget: + case *AWSBudgetsBudget: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSBudgetsBudgetWithName(name string) (AWSBudgetsBudget, e if b, err := json.Marshal(resource); err == nil { var result AWSBudgetsBudget if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSBudgetsBudget{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-certificatemanager-certificate.go b/cloudformation/aws-certificatemanager-certificate.go index d0bf350a5b..3001d44090 100644 --- a/cloudformation/aws-certificatemanager-certificate.go +++ b/cloudformation/aws-certificatemanager-certificate.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSCertificateManagerCertificate) SetDeletionPolicy(policy DeletionPoli // 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 AWSCertificateManagerCertificate) MarshalJSON() ([]byte, error) { +func (r *AWSCertificateManagerCertificate) MarshalJSON() ([]byte, error) { type Properties AWSCertificateManagerCertificate return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSCertificateManagerCertificate) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSCertificateManagerCertificate) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSCertificateManagerCertificate) UnmarshalJSON(b []byte) error { } // GetAllAWSCertificateManagerCertificateResources retrieves all AWSCertificateManagerCertificate items from an AWS CloudFormation template -func (t *Template) GetAllAWSCertificateManagerCertificateResources() map[string]AWSCertificateManagerCertificate { - results := map[string]AWSCertificateManagerCertificate{} +func (t *Template) GetAllAWSCertificateManagerCertificateResources() map[string]*AWSCertificateManagerCertificate { + results := map[string]*AWSCertificateManagerCertificate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCertificateManagerCertificate: + case *AWSCertificateManagerCertificate: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSCertificateManagerCertificateResources() map[string] if b, err := json.Marshal(resource); err == nil { var result AWSCertificateManagerCertificate if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSCertificateManagerCertificateResources() map[string] // GetAWSCertificateManagerCertificateWithName retrieves all AWSCertificateManagerCertificate items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCertificateManagerCertificateWithName(name string) (AWSCertificateManagerCertificate, error) { +func (t *Template) GetAWSCertificateManagerCertificateWithName(name string) (*AWSCertificateManagerCertificate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCertificateManagerCertificate: + case *AWSCertificateManagerCertificate: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSCertificateManagerCertificateWithName(name string) (AWS if b, err := json.Marshal(resource); err == nil { var result AWSCertificateManagerCertificate if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCertificateManagerCertificate{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-cloud9-environmentec2.go b/cloudformation/aws-cloud9-environmentec2.go index 202d86f96a..9dc516728e 100644 --- a/cloudformation/aws-cloud9-environmentec2.go +++ b/cloudformation/aws-cloud9-environmentec2.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -92,7 +93,7 @@ func (r *AWSCloud9EnvironmentEC2) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSCloud9EnvironmentEC2) MarshalJSON() ([]byte, error) { +func (r *AWSCloud9EnvironmentEC2) MarshalJSON() ([]byte, error) { type Properties AWSCloud9EnvironmentEC2 return json.Marshal(&struct { Type string @@ -102,7 +103,7 @@ func (r AWSCloud9EnvironmentEC2) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -119,7 +120,11 @@ func (r *AWSCloud9EnvironmentEC2) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -139,11 +144,11 @@ func (r *AWSCloud9EnvironmentEC2) UnmarshalJSON(b []byte) error { } // GetAllAWSCloud9EnvironmentEC2Resources retrieves all AWSCloud9EnvironmentEC2 items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloud9EnvironmentEC2Resources() map[string]AWSCloud9EnvironmentEC2 { - results := map[string]AWSCloud9EnvironmentEC2{} +func (t *Template) GetAllAWSCloud9EnvironmentEC2Resources() map[string]*AWSCloud9EnvironmentEC2 { + results := map[string]*AWSCloud9EnvironmentEC2{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCloud9EnvironmentEC2: + case *AWSCloud9EnvironmentEC2: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -155,7 +160,8 @@ func (t *Template) GetAllAWSCloud9EnvironmentEC2Resources() map[string]AWSCloud9 if b, err := json.Marshal(resource); err == nil { var result AWSCloud9EnvironmentEC2 if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -167,10 +173,10 @@ func (t *Template) GetAllAWSCloud9EnvironmentEC2Resources() map[string]AWSCloud9 // GetAWSCloud9EnvironmentEC2WithName retrieves all AWSCloud9EnvironmentEC2 items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloud9EnvironmentEC2WithName(name string) (AWSCloud9EnvironmentEC2, error) { +func (t *Template) GetAWSCloud9EnvironmentEC2WithName(name string) (*AWSCloud9EnvironmentEC2, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCloud9EnvironmentEC2: + case *AWSCloud9EnvironmentEC2: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -182,12 +188,13 @@ func (t *Template) GetAWSCloud9EnvironmentEC2WithName(name string) (AWSCloud9Env if b, err := json.Marshal(resource); err == nil { var result AWSCloud9EnvironmentEC2 if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCloud9EnvironmentEC2{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-cloudformation-customresource.go b/cloudformation/aws-cloudformation-customresource.go index e5cc02bad1..c94504d5b7 100644 --- a/cloudformation/aws-cloudformation-customresource.go +++ b/cloudformation/aws-cloudformation-customresource.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -62,7 +63,7 @@ func (r *AWSCloudFormationCustomResource) SetDeletionPolicy(policy DeletionPolic // 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 AWSCloudFormationCustomResource) MarshalJSON() ([]byte, error) { +func (r *AWSCloudFormationCustomResource) MarshalJSON() ([]byte, error) { type Properties AWSCloudFormationCustomResource return json.Marshal(&struct { Type string @@ -72,7 +73,7 @@ func (r AWSCloudFormationCustomResource) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -89,7 +90,11 @@ func (r *AWSCloudFormationCustomResource) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -109,11 +114,11 @@ func (r *AWSCloudFormationCustomResource) UnmarshalJSON(b []byte) error { } // GetAllAWSCloudFormationCustomResourceResources retrieves all AWSCloudFormationCustomResource items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFormationCustomResourceResources() map[string]AWSCloudFormationCustomResource { - results := map[string]AWSCloudFormationCustomResource{} +func (t *Template) GetAllAWSCloudFormationCustomResourceResources() map[string]*AWSCloudFormationCustomResource { + results := map[string]*AWSCloudFormationCustomResource{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCloudFormationCustomResource: + case *AWSCloudFormationCustomResource: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -125,7 +130,8 @@ func (t *Template) GetAllAWSCloudFormationCustomResourceResources() map[string]A if b, err := json.Marshal(resource); err == nil { var result AWSCloudFormationCustomResource if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -137,10 +143,10 @@ func (t *Template) GetAllAWSCloudFormationCustomResourceResources() map[string]A // GetAWSCloudFormationCustomResourceWithName retrieves all AWSCloudFormationCustomResource items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFormationCustomResourceWithName(name string) (AWSCloudFormationCustomResource, error) { +func (t *Template) GetAWSCloudFormationCustomResourceWithName(name string) (*AWSCloudFormationCustomResource, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCloudFormationCustomResource: + case *AWSCloudFormationCustomResource: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -152,12 +158,13 @@ func (t *Template) GetAWSCloudFormationCustomResourceWithName(name string) (AWSC if b, err := json.Marshal(resource); err == nil { var result AWSCloudFormationCustomResource if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCloudFormationCustomResource{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-cloudformation-macro.go b/cloudformation/aws-cloudformation-macro.go index 75888e0ffa..83509ed58e 100644 --- a/cloudformation/aws-cloudformation-macro.go +++ b/cloudformation/aws-cloudformation-macro.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSCloudFormationMacro) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSCloudFormationMacro) MarshalJSON() ([]byte, error) { +func (r *AWSCloudFormationMacro) MarshalJSON() ([]byte, error) { type Properties AWSCloudFormationMacro return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSCloudFormationMacro) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSCloudFormationMacro) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSCloudFormationMacro) UnmarshalJSON(b []byte) error { } // GetAllAWSCloudFormationMacroResources retrieves all AWSCloudFormationMacro items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFormationMacroResources() map[string]AWSCloudFormationMacro { - results := map[string]AWSCloudFormationMacro{} +func (t *Template) GetAllAWSCloudFormationMacroResources() map[string]*AWSCloudFormationMacro { + results := map[string]*AWSCloudFormationMacro{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCloudFormationMacro: + case *AWSCloudFormationMacro: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSCloudFormationMacroResources() map[string]AWSCloudFo if b, err := json.Marshal(resource); err == nil { var result AWSCloudFormationMacro if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSCloudFormationMacroResources() map[string]AWSCloudFo // GetAWSCloudFormationMacroWithName retrieves all AWSCloudFormationMacro items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFormationMacroWithName(name string) (AWSCloudFormationMacro, error) { +func (t *Template) GetAWSCloudFormationMacroWithName(name string) (*AWSCloudFormationMacro, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCloudFormationMacro: + case *AWSCloudFormationMacro: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSCloudFormationMacroWithName(name string) (AWSCloudForma if b, err := json.Marshal(resource); err == nil { var result AWSCloudFormationMacro if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCloudFormationMacro{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-cloudformation-stack.go b/cloudformation/aws-cloudformation-stack.go index e075852813..f9b59be511 100644 --- a/cloudformation/aws-cloudformation-stack.go +++ b/cloudformation/aws-cloudformation-stack.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSCloudFormationStack) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSCloudFormationStack) MarshalJSON() ([]byte, error) { +func (r *AWSCloudFormationStack) MarshalJSON() ([]byte, error) { type Properties AWSCloudFormationStack return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSCloudFormationStack) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSCloudFormationStack) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSCloudFormationStack) UnmarshalJSON(b []byte) error { } // GetAllAWSCloudFormationStackResources retrieves all AWSCloudFormationStack items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFormationStackResources() map[string]AWSCloudFormationStack { - results := map[string]AWSCloudFormationStack{} +func (t *Template) GetAllAWSCloudFormationStackResources() map[string]*AWSCloudFormationStack { + results := map[string]*AWSCloudFormationStack{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCloudFormationStack: + case *AWSCloudFormationStack: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSCloudFormationStackResources() map[string]AWSCloudFo if b, err := json.Marshal(resource); err == nil { var result AWSCloudFormationStack if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSCloudFormationStackResources() map[string]AWSCloudFo // GetAWSCloudFormationStackWithName retrieves all AWSCloudFormationStack items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFormationStackWithName(name string) (AWSCloudFormationStack, error) { +func (t *Template) GetAWSCloudFormationStackWithName(name string) (*AWSCloudFormationStack, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCloudFormationStack: + case *AWSCloudFormationStack: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSCloudFormationStackWithName(name string) (AWSCloudForma if b, err := json.Marshal(resource); err == nil { var result AWSCloudFormationStack if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCloudFormationStack{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-cloudformation-waitcondition.go b/cloudformation/aws-cloudformation-waitcondition.go index feee25cd4f..e1e71ecfe4 100644 --- a/cloudformation/aws-cloudformation-waitcondition.go +++ b/cloudformation/aws-cloudformation-waitcondition.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -81,7 +82,7 @@ func (r *AWSCloudFormationWaitCondition) SetCreationPolicy(policy *CreationPolic // 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 AWSCloudFormationWaitCondition) MarshalJSON() ([]byte, error) { +func (r *AWSCloudFormationWaitCondition) MarshalJSON() ([]byte, error) { type Properties AWSCloudFormationWaitCondition return json.Marshal(&struct { Type string @@ -93,7 +94,7 @@ func (r AWSCloudFormationWaitCondition) MarshalJSON() ([]byte, error) { CreationPolicy *CreationPolicy `json:"CreationPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -112,7 +113,11 @@ func (r *AWSCloudFormationWaitCondition) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -132,11 +137,11 @@ func (r *AWSCloudFormationWaitCondition) UnmarshalJSON(b []byte) error { } // GetAllAWSCloudFormationWaitConditionResources retrieves all AWSCloudFormationWaitCondition items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFormationWaitConditionResources() map[string]AWSCloudFormationWaitCondition { - results := map[string]AWSCloudFormationWaitCondition{} +func (t *Template) GetAllAWSCloudFormationWaitConditionResources() map[string]*AWSCloudFormationWaitCondition { + results := map[string]*AWSCloudFormationWaitCondition{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCloudFormationWaitCondition: + case *AWSCloudFormationWaitCondition: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -148,7 +153,8 @@ func (t *Template) GetAllAWSCloudFormationWaitConditionResources() map[string]AW if b, err := json.Marshal(resource); err == nil { var result AWSCloudFormationWaitCondition if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -160,10 +166,10 @@ func (t *Template) GetAllAWSCloudFormationWaitConditionResources() map[string]AW // GetAWSCloudFormationWaitConditionWithName retrieves all AWSCloudFormationWaitCondition items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFormationWaitConditionWithName(name string) (AWSCloudFormationWaitCondition, error) { +func (t *Template) GetAWSCloudFormationWaitConditionWithName(name string) (*AWSCloudFormationWaitCondition, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCloudFormationWaitCondition: + case *AWSCloudFormationWaitCondition: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -175,12 +181,13 @@ func (t *Template) GetAWSCloudFormationWaitConditionWithName(name string) (AWSCl if b, err := json.Marshal(resource); err == nil { var result AWSCloudFormationWaitCondition if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCloudFormationWaitCondition{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-cloudformation-waitconditionhandle.go b/cloudformation/aws-cloudformation-waitconditionhandle.go index 952f49cecb..53e8b9a3d6 100644 --- a/cloudformation/aws-cloudformation-waitconditionhandle.go +++ b/cloudformation/aws-cloudformation-waitconditionhandle.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -57,7 +58,7 @@ func (r *AWSCloudFormationWaitConditionHandle) SetDeletionPolicy(policy Deletion // 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 AWSCloudFormationWaitConditionHandle) MarshalJSON() ([]byte, error) { +func (r *AWSCloudFormationWaitConditionHandle) MarshalJSON() ([]byte, error) { type Properties AWSCloudFormationWaitConditionHandle return json.Marshal(&struct { Type string @@ -67,7 +68,7 @@ func (r AWSCloudFormationWaitConditionHandle) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -84,7 +85,11 @@ func (r *AWSCloudFormationWaitConditionHandle) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -104,11 +109,11 @@ func (r *AWSCloudFormationWaitConditionHandle) UnmarshalJSON(b []byte) error { } // GetAllAWSCloudFormationWaitConditionHandleResources retrieves all AWSCloudFormationWaitConditionHandle items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFormationWaitConditionHandleResources() map[string]AWSCloudFormationWaitConditionHandle { - results := map[string]AWSCloudFormationWaitConditionHandle{} +func (t *Template) GetAllAWSCloudFormationWaitConditionHandleResources() map[string]*AWSCloudFormationWaitConditionHandle { + results := map[string]*AWSCloudFormationWaitConditionHandle{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCloudFormationWaitConditionHandle: + case *AWSCloudFormationWaitConditionHandle: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -120,7 +125,8 @@ func (t *Template) GetAllAWSCloudFormationWaitConditionHandleResources() map[str if b, err := json.Marshal(resource); err == nil { var result AWSCloudFormationWaitConditionHandle if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -132,10 +138,10 @@ func (t *Template) GetAllAWSCloudFormationWaitConditionHandleResources() map[str // GetAWSCloudFormationWaitConditionHandleWithName retrieves all AWSCloudFormationWaitConditionHandle items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFormationWaitConditionHandleWithName(name string) (AWSCloudFormationWaitConditionHandle, error) { +func (t *Template) GetAWSCloudFormationWaitConditionHandleWithName(name string) (*AWSCloudFormationWaitConditionHandle, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCloudFormationWaitConditionHandle: + case *AWSCloudFormationWaitConditionHandle: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -147,12 +153,13 @@ func (t *Template) GetAWSCloudFormationWaitConditionHandleWithName(name string) if b, err := json.Marshal(resource); err == nil { var result AWSCloudFormationWaitConditionHandle if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCloudFormationWaitConditionHandle{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-cloudfront-cloudfrontoriginaccessidentity.go b/cloudformation/aws-cloudfront-cloudfrontoriginaccessidentity.go index fbf8222791..de261eee6e 100644 --- a/cloudformation/aws-cloudfront-cloudfrontoriginaccessidentity.go +++ b/cloudformation/aws-cloudfront-cloudfrontoriginaccessidentity.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -62,7 +63,7 @@ func (r *AWSCloudFrontCloudFrontOriginAccessIdentity) SetDeletionPolicy(policy D // 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 AWSCloudFrontCloudFrontOriginAccessIdentity) MarshalJSON() ([]byte, error) { +func (r *AWSCloudFrontCloudFrontOriginAccessIdentity) MarshalJSON() ([]byte, error) { type Properties AWSCloudFrontCloudFrontOriginAccessIdentity return json.Marshal(&struct { Type string @@ -72,7 +73,7 @@ func (r AWSCloudFrontCloudFrontOriginAccessIdentity) MarshalJSON() ([]byte, erro DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -89,7 +90,11 @@ func (r *AWSCloudFrontCloudFrontOriginAccessIdentity) UnmarshalJSON(b []byte) er DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -109,11 +114,11 @@ func (r *AWSCloudFrontCloudFrontOriginAccessIdentity) UnmarshalJSON(b []byte) er } // GetAllAWSCloudFrontCloudFrontOriginAccessIdentityResources retrieves all AWSCloudFrontCloudFrontOriginAccessIdentity items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFrontCloudFrontOriginAccessIdentityResources() map[string]AWSCloudFrontCloudFrontOriginAccessIdentity { - results := map[string]AWSCloudFrontCloudFrontOriginAccessIdentity{} +func (t *Template) GetAllAWSCloudFrontCloudFrontOriginAccessIdentityResources() map[string]*AWSCloudFrontCloudFrontOriginAccessIdentity { + results := map[string]*AWSCloudFrontCloudFrontOriginAccessIdentity{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCloudFrontCloudFrontOriginAccessIdentity: + case *AWSCloudFrontCloudFrontOriginAccessIdentity: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -125,7 +130,8 @@ func (t *Template) GetAllAWSCloudFrontCloudFrontOriginAccessIdentityResources() if b, err := json.Marshal(resource); err == nil { var result AWSCloudFrontCloudFrontOriginAccessIdentity if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -137,10 +143,10 @@ func (t *Template) GetAllAWSCloudFrontCloudFrontOriginAccessIdentityResources() // GetAWSCloudFrontCloudFrontOriginAccessIdentityWithName retrieves all AWSCloudFrontCloudFrontOriginAccessIdentity items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFrontCloudFrontOriginAccessIdentityWithName(name string) (AWSCloudFrontCloudFrontOriginAccessIdentity, error) { +func (t *Template) GetAWSCloudFrontCloudFrontOriginAccessIdentityWithName(name string) (*AWSCloudFrontCloudFrontOriginAccessIdentity, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCloudFrontCloudFrontOriginAccessIdentity: + case *AWSCloudFrontCloudFrontOriginAccessIdentity: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -152,12 +158,13 @@ func (t *Template) GetAWSCloudFrontCloudFrontOriginAccessIdentityWithName(name s if b, err := json.Marshal(resource); err == nil { var result AWSCloudFrontCloudFrontOriginAccessIdentity if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCloudFrontCloudFrontOriginAccessIdentity{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-cloudfront-distribution.go b/cloudformation/aws-cloudfront-distribution.go index 6aff807c77..8e7249a9d1 100644 --- a/cloudformation/aws-cloudfront-distribution.go +++ b/cloudformation/aws-cloudfront-distribution.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSCloudFrontDistribution) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSCloudFrontDistribution) MarshalJSON() ([]byte, error) { +func (r *AWSCloudFrontDistribution) MarshalJSON() ([]byte, error) { type Properties AWSCloudFrontDistribution return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSCloudFrontDistribution) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSCloudFrontDistribution) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSCloudFrontDistribution) UnmarshalJSON(b []byte) error { } // GetAllAWSCloudFrontDistributionResources retrieves all AWSCloudFrontDistribution items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFrontDistributionResources() map[string]AWSCloudFrontDistribution { - results := map[string]AWSCloudFrontDistribution{} +func (t *Template) GetAllAWSCloudFrontDistributionResources() map[string]*AWSCloudFrontDistribution { + results := map[string]*AWSCloudFrontDistribution{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCloudFrontDistribution: + case *AWSCloudFrontDistribution: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSCloudFrontDistributionResources() map[string]AWSClou if b, err := json.Marshal(resource); err == nil { var result AWSCloudFrontDistribution if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSCloudFrontDistributionResources() map[string]AWSClou // GetAWSCloudFrontDistributionWithName retrieves all AWSCloudFrontDistribution items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFrontDistributionWithName(name string) (AWSCloudFrontDistribution, error) { +func (t *Template) GetAWSCloudFrontDistributionWithName(name string) (*AWSCloudFrontDistribution, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCloudFrontDistribution: + case *AWSCloudFrontDistribution: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSCloudFrontDistributionWithName(name string) (AWSCloudFr if b, err := json.Marshal(resource); err == nil { var result AWSCloudFrontDistribution if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCloudFrontDistribution{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-cloudfront-streamingdistribution.go b/cloudformation/aws-cloudfront-streamingdistribution.go index af474646e2..e5e2e35890 100644 --- a/cloudformation/aws-cloudfront-streamingdistribution.go +++ b/cloudformation/aws-cloudfront-streamingdistribution.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSCloudFrontStreamingDistribution) SetDeletionPolicy(policy DeletionPo // 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 AWSCloudFrontStreamingDistribution) MarshalJSON() ([]byte, error) { +func (r *AWSCloudFrontStreamingDistribution) MarshalJSON() ([]byte, error) { type Properties AWSCloudFrontStreamingDistribution return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSCloudFrontStreamingDistribution) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSCloudFrontStreamingDistribution) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSCloudFrontStreamingDistribution) UnmarshalJSON(b []byte) error { } // GetAllAWSCloudFrontStreamingDistributionResources retrieves all AWSCloudFrontStreamingDistribution items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFrontStreamingDistributionResources() map[string]AWSCloudFrontStreamingDistribution { - results := map[string]AWSCloudFrontStreamingDistribution{} +func (t *Template) GetAllAWSCloudFrontStreamingDistributionResources() map[string]*AWSCloudFrontStreamingDistribution { + results := map[string]*AWSCloudFrontStreamingDistribution{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCloudFrontStreamingDistribution: + case *AWSCloudFrontStreamingDistribution: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSCloudFrontStreamingDistributionResources() map[strin if b, err := json.Marshal(resource); err == nil { var result AWSCloudFrontStreamingDistribution if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSCloudFrontStreamingDistributionResources() map[strin // GetAWSCloudFrontStreamingDistributionWithName retrieves all AWSCloudFrontStreamingDistribution items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFrontStreamingDistributionWithName(name string) (AWSCloudFrontStreamingDistribution, error) { +func (t *Template) GetAWSCloudFrontStreamingDistributionWithName(name string) (*AWSCloudFrontStreamingDistribution, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCloudFrontStreamingDistribution: + case *AWSCloudFrontStreamingDistribution: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSCloudFrontStreamingDistributionWithName(name string) (A if b, err := json.Marshal(resource); err == nil { var result AWSCloudFrontStreamingDistribution if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCloudFrontStreamingDistribution{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-cloudtrail-trail.go b/cloudformation/aws-cloudtrail-trail.go index 88039b39d5..15f817b455 100644 --- a/cloudformation/aws-cloudtrail-trail.go +++ b/cloudformation/aws-cloudtrail-trail.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -122,7 +123,7 @@ func (r *AWSCloudTrailTrail) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSCloudTrailTrail) MarshalJSON() ([]byte, error) { +func (r *AWSCloudTrailTrail) MarshalJSON() ([]byte, error) { type Properties AWSCloudTrailTrail return json.Marshal(&struct { Type string @@ -132,7 +133,7 @@ func (r AWSCloudTrailTrail) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -149,7 +150,11 @@ func (r *AWSCloudTrailTrail) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -169,11 +174,11 @@ func (r *AWSCloudTrailTrail) UnmarshalJSON(b []byte) error { } // GetAllAWSCloudTrailTrailResources retrieves all AWSCloudTrailTrail items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudTrailTrailResources() map[string]AWSCloudTrailTrail { - results := map[string]AWSCloudTrailTrail{} +func (t *Template) GetAllAWSCloudTrailTrailResources() map[string]*AWSCloudTrailTrail { + results := map[string]*AWSCloudTrailTrail{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCloudTrailTrail: + case *AWSCloudTrailTrail: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -185,7 +190,8 @@ func (t *Template) GetAllAWSCloudTrailTrailResources() map[string]AWSCloudTrailT if b, err := json.Marshal(resource); err == nil { var result AWSCloudTrailTrail if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -197,10 +203,10 @@ func (t *Template) GetAllAWSCloudTrailTrailResources() map[string]AWSCloudTrailT // GetAWSCloudTrailTrailWithName retrieves all AWSCloudTrailTrail items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudTrailTrailWithName(name string) (AWSCloudTrailTrail, error) { +func (t *Template) GetAWSCloudTrailTrailWithName(name string) (*AWSCloudTrailTrail, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCloudTrailTrail: + case *AWSCloudTrailTrail: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -212,12 +218,13 @@ func (t *Template) GetAWSCloudTrailTrailWithName(name string) (AWSCloudTrailTrai if b, err := json.Marshal(resource); err == nil { var result AWSCloudTrailTrail if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCloudTrailTrail{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-cloudwatch-alarm.go b/cloudformation/aws-cloudwatch-alarm.go index c08d53e1ac..43ea4bdf6c 100644 --- a/cloudformation/aws-cloudwatch-alarm.go +++ b/cloudformation/aws-cloudwatch-alarm.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -70,6 +71,11 @@ type AWSCloudWatchAlarm struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-metricname MetricName string `json:"MetricName,omitempty"` + // Metrics AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarm-metrics + Metrics []AWSCloudWatchAlarm_MetricDataQuery `json:"Metrics,omitempty"` + // Namespace AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-namespace @@ -152,7 +158,7 @@ func (r *AWSCloudWatchAlarm) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSCloudWatchAlarm) MarshalJSON() ([]byte, error) { +func (r *AWSCloudWatchAlarm) MarshalJSON() ([]byte, error) { type Properties AWSCloudWatchAlarm return json.Marshal(&struct { Type string @@ -162,7 +168,7 @@ func (r AWSCloudWatchAlarm) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -179,7 +185,11 @@ func (r *AWSCloudWatchAlarm) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -199,11 +209,11 @@ func (r *AWSCloudWatchAlarm) UnmarshalJSON(b []byte) error { } // GetAllAWSCloudWatchAlarmResources retrieves all AWSCloudWatchAlarm items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudWatchAlarmResources() map[string]AWSCloudWatchAlarm { - results := map[string]AWSCloudWatchAlarm{} +func (t *Template) GetAllAWSCloudWatchAlarmResources() map[string]*AWSCloudWatchAlarm { + results := map[string]*AWSCloudWatchAlarm{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCloudWatchAlarm: + case *AWSCloudWatchAlarm: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -215,7 +225,8 @@ func (t *Template) GetAllAWSCloudWatchAlarmResources() map[string]AWSCloudWatchA if b, err := json.Marshal(resource); err == nil { var result AWSCloudWatchAlarm if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -227,10 +238,10 @@ func (t *Template) GetAllAWSCloudWatchAlarmResources() map[string]AWSCloudWatchA // GetAWSCloudWatchAlarmWithName retrieves all AWSCloudWatchAlarm items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudWatchAlarmWithName(name string) (AWSCloudWatchAlarm, error) { +func (t *Template) GetAWSCloudWatchAlarmWithName(name string) (*AWSCloudWatchAlarm, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCloudWatchAlarm: + case *AWSCloudWatchAlarm: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -242,12 +253,13 @@ func (t *Template) GetAWSCloudWatchAlarmWithName(name string) (AWSCloudWatchAlar if b, err := json.Marshal(resource); err == nil { var result AWSCloudWatchAlarm if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCloudWatchAlarm{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-cloudwatch-alarm_metric.go b/cloudformation/aws-cloudwatch-alarm_metric.go new file mode 100644 index 0000000000..eae602637a --- /dev/null +++ b/cloudformation/aws-cloudwatch-alarm_metric.go @@ -0,0 +1,65 @@ +package cloudformation + +// AWSCloudWatchAlarm_Metric AWS CloudFormation Resource (AWS::CloudWatch::Alarm.Metric) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metric.html +type AWSCloudWatchAlarm_Metric struct { + + // Dimensions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metric.html#cfn-cloudwatch-alarm-metric-dimensions + Dimensions []AWSCloudWatchAlarm_Dimension `json:"Dimensions,omitempty"` + + // MetricName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metric.html#cfn-cloudwatch-alarm-metric-metricname + MetricName string `json:"MetricName,omitempty"` + + // Namespace AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metric.html#cfn-cloudwatch-alarm-metric-namespace + Namespace string `json:"Namespace,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSCloudWatchAlarm_Metric) AWSCloudFormationType() string { + return "AWS::CloudWatch::Alarm.Metric" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSCloudWatchAlarm_Metric) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSCloudWatchAlarm_Metric) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSCloudWatchAlarm_Metric) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSCloudWatchAlarm_Metric) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSCloudWatchAlarm_Metric) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-cloudwatch-alarm_metricdataquery.go b/cloudformation/aws-cloudwatch-alarm_metricdataquery.go new file mode 100644 index 0000000000..3ed0d719c3 --- /dev/null +++ b/cloudformation/aws-cloudwatch-alarm_metricdataquery.go @@ -0,0 +1,75 @@ +package cloudformation + +// AWSCloudWatchAlarm_MetricDataQuery AWS CloudFormation Resource (AWS::CloudWatch::Alarm.MetricDataQuery) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html +type AWSCloudWatchAlarm_MetricDataQuery struct { + + // Expression AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html#cfn-cloudwatch-alarm-metricdataquery-expression + Expression string `json:"Expression,omitempty"` + + // Id AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html#cfn-cloudwatch-alarm-metricdataquery-id + Id string `json:"Id,omitempty"` + + // Label AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html#cfn-cloudwatch-alarm-metricdataquery-label + Label string `json:"Label,omitempty"` + + // MetricStat AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html#cfn-cloudwatch-alarm-metricdataquery-metricstat + MetricStat *AWSCloudWatchAlarm_MetricStat `json:"MetricStat,omitempty"` + + // ReturnData AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html#cfn-cloudwatch-alarm-metricdataquery-returndata + ReturnData bool `json:"ReturnData,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSCloudWatchAlarm_MetricDataQuery) AWSCloudFormationType() string { + return "AWS::CloudWatch::Alarm.MetricDataQuery" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSCloudWatchAlarm_MetricDataQuery) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSCloudWatchAlarm_MetricDataQuery) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSCloudWatchAlarm_MetricDataQuery) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSCloudWatchAlarm_MetricDataQuery) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSCloudWatchAlarm_MetricDataQuery) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-cloudwatch-alarm_metricstat.go b/cloudformation/aws-cloudwatch-alarm_metricstat.go new file mode 100644 index 0000000000..ccf17140af --- /dev/null +++ b/cloudformation/aws-cloudwatch-alarm_metricstat.go @@ -0,0 +1,70 @@ +package cloudformation + +// AWSCloudWatchAlarm_MetricStat AWS CloudFormation Resource (AWS::CloudWatch::Alarm.MetricStat) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html +type AWSCloudWatchAlarm_MetricStat struct { + + // Metric AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html#cfn-cloudwatch-alarm-metricstat-metric + Metric *AWSCloudWatchAlarm_Metric `json:"Metric,omitempty"` + + // Period AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html#cfn-cloudwatch-alarm-metricstat-period + Period int `json:"Period"` + + // Stat AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html#cfn-cloudwatch-alarm-metricstat-stat + Stat string `json:"Stat,omitempty"` + + // Unit AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html#cfn-cloudwatch-alarm-metricstat-unit + Unit string `json:"Unit,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSCloudWatchAlarm_MetricStat) AWSCloudFormationType() string { + return "AWS::CloudWatch::Alarm.MetricStat" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSCloudWatchAlarm_MetricStat) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSCloudWatchAlarm_MetricStat) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSCloudWatchAlarm_MetricStat) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSCloudWatchAlarm_MetricStat) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSCloudWatchAlarm_MetricStat) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-cloudwatch-dashboard.go b/cloudformation/aws-cloudwatch-dashboard.go index a99e129842..5d6a06a64f 100644 --- a/cloudformation/aws-cloudwatch-dashboard.go +++ b/cloudformation/aws-cloudwatch-dashboard.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSCloudWatchDashboard) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSCloudWatchDashboard) MarshalJSON() ([]byte, error) { +func (r *AWSCloudWatchDashboard) MarshalJSON() ([]byte, error) { type Properties AWSCloudWatchDashboard return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSCloudWatchDashboard) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSCloudWatchDashboard) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSCloudWatchDashboard) UnmarshalJSON(b []byte) error { } // GetAllAWSCloudWatchDashboardResources retrieves all AWSCloudWatchDashboard items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudWatchDashboardResources() map[string]AWSCloudWatchDashboard { - results := map[string]AWSCloudWatchDashboard{} +func (t *Template) GetAllAWSCloudWatchDashboardResources() map[string]*AWSCloudWatchDashboard { + results := map[string]*AWSCloudWatchDashboard{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCloudWatchDashboard: + case *AWSCloudWatchDashboard: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSCloudWatchDashboardResources() map[string]AWSCloudWa if b, err := json.Marshal(resource); err == nil { var result AWSCloudWatchDashboard if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSCloudWatchDashboardResources() map[string]AWSCloudWa // GetAWSCloudWatchDashboardWithName retrieves all AWSCloudWatchDashboard items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudWatchDashboardWithName(name string) (AWSCloudWatchDashboard, error) { +func (t *Template) GetAWSCloudWatchDashboardWithName(name string) (*AWSCloudWatchDashboard, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCloudWatchDashboard: + case *AWSCloudWatchDashboard: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSCloudWatchDashboardWithName(name string) (AWSCloudWatch if b, err := json.Marshal(resource); err == nil { var result AWSCloudWatchDashboard if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCloudWatchDashboard{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-codebuild-project.go b/cloudformation/aws-codebuild-project.go index bca6088fb4..b5da3dd322 100644 --- a/cloudformation/aws-codebuild-project.go +++ b/cloudformation/aws-codebuild-project.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -142,7 +143,7 @@ func (r *AWSCodeBuildProject) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSCodeBuildProject) MarshalJSON() ([]byte, error) { +func (r *AWSCodeBuildProject) MarshalJSON() ([]byte, error) { type Properties AWSCodeBuildProject return json.Marshal(&struct { Type string @@ -152,7 +153,7 @@ func (r AWSCodeBuildProject) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -169,7 +170,11 @@ func (r *AWSCodeBuildProject) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -189,11 +194,11 @@ func (r *AWSCodeBuildProject) UnmarshalJSON(b []byte) error { } // GetAllAWSCodeBuildProjectResources retrieves all AWSCodeBuildProject items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodeBuildProjectResources() map[string]AWSCodeBuildProject { - results := map[string]AWSCodeBuildProject{} +func (t *Template) GetAllAWSCodeBuildProjectResources() map[string]*AWSCodeBuildProject { + results := map[string]*AWSCodeBuildProject{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCodeBuildProject: + case *AWSCodeBuildProject: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -205,7 +210,8 @@ func (t *Template) GetAllAWSCodeBuildProjectResources() map[string]AWSCodeBuildP if b, err := json.Marshal(resource); err == nil { var result AWSCodeBuildProject if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -217,10 +223,10 @@ func (t *Template) GetAllAWSCodeBuildProjectResources() map[string]AWSCodeBuildP // GetAWSCodeBuildProjectWithName retrieves all AWSCodeBuildProject items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodeBuildProjectWithName(name string) (AWSCodeBuildProject, error) { +func (t *Template) GetAWSCodeBuildProjectWithName(name string) (*AWSCodeBuildProject, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCodeBuildProject: + case *AWSCodeBuildProject: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -232,12 +238,13 @@ func (t *Template) GetAWSCodeBuildProjectWithName(name string) (AWSCodeBuildProj if b, err := json.Marshal(resource); err == nil { var result AWSCodeBuildProject if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCodeBuildProject{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-codebuild-project_environment.go b/cloudformation/aws-codebuild-project_environment.go index 339da84bbe..14aceb8043 100644 --- a/cloudformation/aws-codebuild-project_environment.go +++ b/cloudformation/aws-codebuild-project_environment.go @@ -24,11 +24,21 @@ type AWSCodeBuildProject_Environment struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-image Image string `json:"Image,omitempty"` + // ImagePullCredentialsType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-imagepullcredentialstype + ImagePullCredentialsType string `json:"ImagePullCredentialsType,omitempty"` + // PrivilegedMode AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-privilegedmode PrivilegedMode bool `json:"PrivilegedMode,omitempty"` + // RegistryCredential AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-registrycredential + RegistryCredential *AWSCodeBuildProject_RegistryCredential `json:"RegistryCredential,omitempty"` + // Type AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-type diff --git a/cloudformation/aws-codebuild-project_filtergroup.go b/cloudformation/aws-codebuild-project_filtergroup.go new file mode 100644 index 0000000000..ed91bfa3a7 --- /dev/null +++ b/cloudformation/aws-codebuild-project_filtergroup.go @@ -0,0 +1,50 @@ +package cloudformation + +// AWSCodeBuildProject_FilterGroup AWS CloudFormation Resource (AWS::CodeBuild::Project.FilterGroup) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-filtergroup.html +type AWSCodeBuildProject_FilterGroup struct { + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSCodeBuildProject_FilterGroup) AWSCloudFormationType() string { + return "AWS::CodeBuild::Project.FilterGroup" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSCodeBuildProject_FilterGroup) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSCodeBuildProject_FilterGroup) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSCodeBuildProject_FilterGroup) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSCodeBuildProject_FilterGroup) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSCodeBuildProject_FilterGroup) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-codebuild-project_projectcache.go b/cloudformation/aws-codebuild-project_projectcache.go index a26f03e71a..f939e31bab 100644 --- a/cloudformation/aws-codebuild-project_projectcache.go +++ b/cloudformation/aws-codebuild-project_projectcache.go @@ -9,6 +9,11 @@ type AWSCodeBuildProject_ProjectCache struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html#cfn-codebuild-project-projectcache-location Location string `json:"Location,omitempty"` + // Modes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html#cfn-codebuild-project-projectcache-modes + Modes []string `json:"Modes,omitempty"` + // Type AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html#cfn-codebuild-project-projectcache-type diff --git a/cloudformation/aws-codebuild-project_projecttriggers.go b/cloudformation/aws-codebuild-project_projecttriggers.go index be04fc196b..b8c7b05dee 100644 --- a/cloudformation/aws-codebuild-project_projecttriggers.go +++ b/cloudformation/aws-codebuild-project_projecttriggers.go @@ -4,6 +4,11 @@ package cloudformation // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projecttriggers.html type AWSCodeBuildProject_ProjectTriggers struct { + // FilterGroups AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projecttriggers.html#cfn-codebuild-project-projecttriggers-filtergroups + FilterGroups []AWSCodeBuildProject_FilterGroup `json:"FilterGroups,omitempty"` + // Webhook AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projecttriggers.html#cfn-codebuild-project-projecttriggers-webhook diff --git a/cloudformation/aws-codebuild-project_registrycredential.go b/cloudformation/aws-codebuild-project_registrycredential.go new file mode 100644 index 0000000000..2d7a73b1f7 --- /dev/null +++ b/cloudformation/aws-codebuild-project_registrycredential.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSCodeBuildProject_RegistryCredential AWS CloudFormation Resource (AWS::CodeBuild::Project.RegistryCredential) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-registrycredential.html +type AWSCodeBuildProject_RegistryCredential struct { + + // Credential AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-registrycredential.html#cfn-codebuild-project-registrycredential-credential + Credential string `json:"Credential,omitempty"` + + // CredentialProvider AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-registrycredential.html#cfn-codebuild-project-registrycredential-credentialprovider + CredentialProvider string `json:"CredentialProvider,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSCodeBuildProject_RegistryCredential) AWSCloudFormationType() string { + return "AWS::CodeBuild::Project.RegistryCredential" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSCodeBuildProject_RegistryCredential) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSCodeBuildProject_RegistryCredential) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSCodeBuildProject_RegistryCredential) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSCodeBuildProject_RegistryCredential) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSCodeBuildProject_RegistryCredential) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-codebuild-project_webhookfilter.go b/cloudformation/aws-codebuild-project_webhookfilter.go new file mode 100644 index 0000000000..788862f096 --- /dev/null +++ b/cloudformation/aws-codebuild-project_webhookfilter.go @@ -0,0 +1,65 @@ +package cloudformation + +// AWSCodeBuildProject_WebhookFilter AWS CloudFormation Resource (AWS::CodeBuild::Project.WebhookFilter) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-webhookfilter.html +type AWSCodeBuildProject_WebhookFilter struct { + + // ExcludeMatchedPattern AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-webhookfilter.html#cfn-codebuild-project-webhookfilter-excludematchedpattern + ExcludeMatchedPattern bool `json:"ExcludeMatchedPattern,omitempty"` + + // Pattern AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-webhookfilter.html#cfn-codebuild-project-webhookfilter-pattern + Pattern string `json:"Pattern,omitempty"` + + // Type AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-webhookfilter.html#cfn-codebuild-project-webhookfilter-type + Type string `json:"Type,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSCodeBuildProject_WebhookFilter) AWSCloudFormationType() string { + return "AWS::CodeBuild::Project.WebhookFilter" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSCodeBuildProject_WebhookFilter) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSCodeBuildProject_WebhookFilter) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSCodeBuildProject_WebhookFilter) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSCodeBuildProject_WebhookFilter) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSCodeBuildProject_WebhookFilter) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-codecommit-repository.go b/cloudformation/aws-codecommit-repository.go index e09312b56c..0eeaacbccf 100644 --- a/cloudformation/aws-codecommit-repository.go +++ b/cloudformation/aws-codecommit-repository.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSCodeCommitRepository) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSCodeCommitRepository) MarshalJSON() ([]byte, error) { +func (r *AWSCodeCommitRepository) MarshalJSON() ([]byte, error) { type Properties AWSCodeCommitRepository return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSCodeCommitRepository) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSCodeCommitRepository) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSCodeCommitRepository) UnmarshalJSON(b []byte) error { } // GetAllAWSCodeCommitRepositoryResources retrieves all AWSCodeCommitRepository items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodeCommitRepositoryResources() map[string]AWSCodeCommitRepository { - results := map[string]AWSCodeCommitRepository{} +func (t *Template) GetAllAWSCodeCommitRepositoryResources() map[string]*AWSCodeCommitRepository { + results := map[string]*AWSCodeCommitRepository{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCodeCommitRepository: + case *AWSCodeCommitRepository: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSCodeCommitRepositoryResources() map[string]AWSCodeCo if b, err := json.Marshal(resource); err == nil { var result AWSCodeCommitRepository if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSCodeCommitRepositoryResources() map[string]AWSCodeCo // GetAWSCodeCommitRepositoryWithName retrieves all AWSCodeCommitRepository items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodeCommitRepositoryWithName(name string) (AWSCodeCommitRepository, error) { +func (t *Template) GetAWSCodeCommitRepositoryWithName(name string) (*AWSCodeCommitRepository, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCodeCommitRepository: + case *AWSCodeCommitRepository: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSCodeCommitRepositoryWithName(name string) (AWSCodeCommi if b, err := json.Marshal(resource); err == nil { var result AWSCodeCommitRepository if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCodeCommitRepository{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-codedeploy-application.go b/cloudformation/aws-codedeploy-application.go index 1522c6ae48..28b3736758 100644 --- a/cloudformation/aws-codedeploy-application.go +++ b/cloudformation/aws-codedeploy-application.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSCodeDeployApplication) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSCodeDeployApplication) MarshalJSON() ([]byte, error) { +func (r *AWSCodeDeployApplication) MarshalJSON() ([]byte, error) { type Properties AWSCodeDeployApplication return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSCodeDeployApplication) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSCodeDeployApplication) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSCodeDeployApplication) UnmarshalJSON(b []byte) error { } // GetAllAWSCodeDeployApplicationResources retrieves all AWSCodeDeployApplication items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodeDeployApplicationResources() map[string]AWSCodeDeployApplication { - results := map[string]AWSCodeDeployApplication{} +func (t *Template) GetAllAWSCodeDeployApplicationResources() map[string]*AWSCodeDeployApplication { + results := map[string]*AWSCodeDeployApplication{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCodeDeployApplication: + case *AWSCodeDeployApplication: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSCodeDeployApplicationResources() map[string]AWSCodeD if b, err := json.Marshal(resource); err == nil { var result AWSCodeDeployApplication if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSCodeDeployApplicationResources() map[string]AWSCodeD // GetAWSCodeDeployApplicationWithName retrieves all AWSCodeDeployApplication items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodeDeployApplicationWithName(name string) (AWSCodeDeployApplication, error) { +func (t *Template) GetAWSCodeDeployApplicationWithName(name string) (*AWSCodeDeployApplication, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCodeDeployApplication: + case *AWSCodeDeployApplication: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSCodeDeployApplicationWithName(name string) (AWSCodeDepl if b, err := json.Marshal(resource); err == nil { var result AWSCodeDeployApplication if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCodeDeployApplication{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-codedeploy-deploymentconfig.go b/cloudformation/aws-codedeploy-deploymentconfig.go index 8ec1c561af..66e552f13e 100644 --- a/cloudformation/aws-codedeploy-deploymentconfig.go +++ b/cloudformation/aws-codedeploy-deploymentconfig.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSCodeDeployDeploymentConfig) SetDeletionPolicy(policy DeletionPolicy) // 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 AWSCodeDeployDeploymentConfig) MarshalJSON() ([]byte, error) { +func (r *AWSCodeDeployDeploymentConfig) MarshalJSON() ([]byte, error) { type Properties AWSCodeDeployDeploymentConfig return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSCodeDeployDeploymentConfig) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSCodeDeployDeploymentConfig) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSCodeDeployDeploymentConfig) UnmarshalJSON(b []byte) error { } // GetAllAWSCodeDeployDeploymentConfigResources retrieves all AWSCodeDeployDeploymentConfig items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodeDeployDeploymentConfigResources() map[string]AWSCodeDeployDeploymentConfig { - results := map[string]AWSCodeDeployDeploymentConfig{} +func (t *Template) GetAllAWSCodeDeployDeploymentConfigResources() map[string]*AWSCodeDeployDeploymentConfig { + results := map[string]*AWSCodeDeployDeploymentConfig{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCodeDeployDeploymentConfig: + case *AWSCodeDeployDeploymentConfig: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSCodeDeployDeploymentConfigResources() map[string]AWS if b, err := json.Marshal(resource); err == nil { var result AWSCodeDeployDeploymentConfig if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSCodeDeployDeploymentConfigResources() map[string]AWS // GetAWSCodeDeployDeploymentConfigWithName retrieves all AWSCodeDeployDeploymentConfig items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodeDeployDeploymentConfigWithName(name string) (AWSCodeDeployDeploymentConfig, error) { +func (t *Template) GetAWSCodeDeployDeploymentConfigWithName(name string) (*AWSCodeDeployDeploymentConfig, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCodeDeployDeploymentConfig: + case *AWSCodeDeployDeploymentConfig: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSCodeDeployDeploymentConfigWithName(name string) (AWSCod if b, err := json.Marshal(resource); err == nil { var result AWSCodeDeployDeploymentConfig if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCodeDeployDeploymentConfig{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-codedeploy-deploymentgroup.go b/cloudformation/aws-codedeploy-deploymentgroup.go index d15746fd55..e09a84077e 100644 --- a/cloudformation/aws-codedeploy-deploymentgroup.go +++ b/cloudformation/aws-codedeploy-deploymentgroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -132,7 +133,7 @@ func (r *AWSCodeDeployDeploymentGroup) SetDeletionPolicy(policy DeletionPolicy) // 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 AWSCodeDeployDeploymentGroup) MarshalJSON() ([]byte, error) { +func (r *AWSCodeDeployDeploymentGroup) MarshalJSON() ([]byte, error) { type Properties AWSCodeDeployDeploymentGroup return json.Marshal(&struct { Type string @@ -142,7 +143,7 @@ func (r AWSCodeDeployDeploymentGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -159,7 +160,11 @@ func (r *AWSCodeDeployDeploymentGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -179,11 +184,11 @@ func (r *AWSCodeDeployDeploymentGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSCodeDeployDeploymentGroupResources retrieves all AWSCodeDeployDeploymentGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodeDeployDeploymentGroupResources() map[string]AWSCodeDeployDeploymentGroup { - results := map[string]AWSCodeDeployDeploymentGroup{} +func (t *Template) GetAllAWSCodeDeployDeploymentGroupResources() map[string]*AWSCodeDeployDeploymentGroup { + results := map[string]*AWSCodeDeployDeploymentGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCodeDeployDeploymentGroup: + case *AWSCodeDeployDeploymentGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -195,7 +200,8 @@ func (t *Template) GetAllAWSCodeDeployDeploymentGroupResources() map[string]AWSC if b, err := json.Marshal(resource); err == nil { var result AWSCodeDeployDeploymentGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -207,10 +213,10 @@ func (t *Template) GetAllAWSCodeDeployDeploymentGroupResources() map[string]AWSC // GetAWSCodeDeployDeploymentGroupWithName retrieves all AWSCodeDeployDeploymentGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodeDeployDeploymentGroupWithName(name string) (AWSCodeDeployDeploymentGroup, error) { +func (t *Template) GetAWSCodeDeployDeploymentGroupWithName(name string) (*AWSCodeDeployDeploymentGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCodeDeployDeploymentGroup: + case *AWSCodeDeployDeploymentGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -222,12 +228,13 @@ func (t *Template) GetAWSCodeDeployDeploymentGroupWithName(name string) (AWSCode if b, err := json.Marshal(resource); err == nil { var result AWSCodeDeployDeploymentGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCodeDeployDeploymentGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-codepipeline-customactiontype.go b/cloudformation/aws-codepipeline-customactiontype.go index 19aed4aa6f..100af9b0de 100644 --- a/cloudformation/aws-codepipeline-customactiontype.go +++ b/cloudformation/aws-codepipeline-customactiontype.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -92,7 +93,7 @@ func (r *AWSCodePipelineCustomActionType) SetDeletionPolicy(policy DeletionPolic // 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 AWSCodePipelineCustomActionType) MarshalJSON() ([]byte, error) { +func (r *AWSCodePipelineCustomActionType) MarshalJSON() ([]byte, error) { type Properties AWSCodePipelineCustomActionType return json.Marshal(&struct { Type string @@ -102,7 +103,7 @@ func (r AWSCodePipelineCustomActionType) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -119,7 +120,11 @@ func (r *AWSCodePipelineCustomActionType) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -139,11 +144,11 @@ func (r *AWSCodePipelineCustomActionType) UnmarshalJSON(b []byte) error { } // GetAllAWSCodePipelineCustomActionTypeResources retrieves all AWSCodePipelineCustomActionType items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodePipelineCustomActionTypeResources() map[string]AWSCodePipelineCustomActionType { - results := map[string]AWSCodePipelineCustomActionType{} +func (t *Template) GetAllAWSCodePipelineCustomActionTypeResources() map[string]*AWSCodePipelineCustomActionType { + results := map[string]*AWSCodePipelineCustomActionType{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCodePipelineCustomActionType: + case *AWSCodePipelineCustomActionType: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -155,7 +160,8 @@ func (t *Template) GetAllAWSCodePipelineCustomActionTypeResources() map[string]A if b, err := json.Marshal(resource); err == nil { var result AWSCodePipelineCustomActionType if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -167,10 +173,10 @@ func (t *Template) GetAllAWSCodePipelineCustomActionTypeResources() map[string]A // GetAWSCodePipelineCustomActionTypeWithName retrieves all AWSCodePipelineCustomActionType items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodePipelineCustomActionTypeWithName(name string) (AWSCodePipelineCustomActionType, error) { +func (t *Template) GetAWSCodePipelineCustomActionTypeWithName(name string) (*AWSCodePipelineCustomActionType, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCodePipelineCustomActionType: + case *AWSCodePipelineCustomActionType: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -182,12 +188,13 @@ func (t *Template) GetAWSCodePipelineCustomActionTypeWithName(name string) (AWSC if b, err := json.Marshal(resource); err == nil { var result AWSCodePipelineCustomActionType if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCodePipelineCustomActionType{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-codepipeline-pipeline.go b/cloudformation/aws-codepipeline-pipeline.go index 126540f5a1..999ea1374c 100644 --- a/cloudformation/aws-codepipeline-pipeline.go +++ b/cloudformation/aws-codepipeline-pipeline.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -92,7 +93,7 @@ func (r *AWSCodePipelinePipeline) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSCodePipelinePipeline) MarshalJSON() ([]byte, error) { +func (r *AWSCodePipelinePipeline) MarshalJSON() ([]byte, error) { type Properties AWSCodePipelinePipeline return json.Marshal(&struct { Type string @@ -102,7 +103,7 @@ func (r AWSCodePipelinePipeline) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -119,7 +120,11 @@ func (r *AWSCodePipelinePipeline) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -139,11 +144,11 @@ func (r *AWSCodePipelinePipeline) UnmarshalJSON(b []byte) error { } // GetAllAWSCodePipelinePipelineResources retrieves all AWSCodePipelinePipeline items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodePipelinePipelineResources() map[string]AWSCodePipelinePipeline { - results := map[string]AWSCodePipelinePipeline{} +func (t *Template) GetAllAWSCodePipelinePipelineResources() map[string]*AWSCodePipelinePipeline { + results := map[string]*AWSCodePipelinePipeline{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCodePipelinePipeline: + case *AWSCodePipelinePipeline: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -155,7 +160,8 @@ func (t *Template) GetAllAWSCodePipelinePipelineResources() map[string]AWSCodePi if b, err := json.Marshal(resource); err == nil { var result AWSCodePipelinePipeline if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -167,10 +173,10 @@ func (t *Template) GetAllAWSCodePipelinePipelineResources() map[string]AWSCodePi // GetAWSCodePipelinePipelineWithName retrieves all AWSCodePipelinePipeline items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodePipelinePipelineWithName(name string) (AWSCodePipelinePipeline, error) { +func (t *Template) GetAWSCodePipelinePipelineWithName(name string) (*AWSCodePipelinePipeline, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCodePipelinePipeline: + case *AWSCodePipelinePipeline: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -182,12 +188,13 @@ func (t *Template) GetAWSCodePipelinePipelineWithName(name string) (AWSCodePipel if b, err := json.Marshal(resource); err == nil { var result AWSCodePipelinePipeline if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCodePipelinePipeline{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-codepipeline-webhook.go b/cloudformation/aws-codepipeline-webhook.go index fd7295577d..fe7ea7b096 100644 --- a/cloudformation/aws-codepipeline-webhook.go +++ b/cloudformation/aws-codepipeline-webhook.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -97,7 +98,7 @@ func (r *AWSCodePipelineWebhook) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSCodePipelineWebhook) MarshalJSON() ([]byte, error) { +func (r *AWSCodePipelineWebhook) MarshalJSON() ([]byte, error) { type Properties AWSCodePipelineWebhook return json.Marshal(&struct { Type string @@ -107,7 +108,7 @@ func (r AWSCodePipelineWebhook) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -124,7 +125,11 @@ func (r *AWSCodePipelineWebhook) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -144,11 +149,11 @@ func (r *AWSCodePipelineWebhook) UnmarshalJSON(b []byte) error { } // GetAllAWSCodePipelineWebhookResources retrieves all AWSCodePipelineWebhook items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodePipelineWebhookResources() map[string]AWSCodePipelineWebhook { - results := map[string]AWSCodePipelineWebhook{} +func (t *Template) GetAllAWSCodePipelineWebhookResources() map[string]*AWSCodePipelineWebhook { + results := map[string]*AWSCodePipelineWebhook{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCodePipelineWebhook: + case *AWSCodePipelineWebhook: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -160,7 +165,8 @@ func (t *Template) GetAllAWSCodePipelineWebhookResources() map[string]AWSCodePip if b, err := json.Marshal(resource); err == nil { var result AWSCodePipelineWebhook if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -172,10 +178,10 @@ func (t *Template) GetAllAWSCodePipelineWebhookResources() map[string]AWSCodePip // GetAWSCodePipelineWebhookWithName retrieves all AWSCodePipelineWebhook items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodePipelineWebhookWithName(name string) (AWSCodePipelineWebhook, error) { +func (t *Template) GetAWSCodePipelineWebhookWithName(name string) (*AWSCodePipelineWebhook, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCodePipelineWebhook: + case *AWSCodePipelineWebhook: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -187,12 +193,13 @@ func (t *Template) GetAWSCodePipelineWebhookWithName(name string) (AWSCodePipeli if b, err := json.Marshal(resource); err == nil { var result AWSCodePipelineWebhook if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCodePipelineWebhook{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-cognito-identitypool.go b/cloudformation/aws-cognito-identitypool.go index 61e56ae6c0..443487f750 100644 --- a/cloudformation/aws-cognito-identitypool.go +++ b/cloudformation/aws-cognito-identitypool.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -107,7 +108,7 @@ func (r *AWSCognitoIdentityPool) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSCognitoIdentityPool) MarshalJSON() ([]byte, error) { +func (r *AWSCognitoIdentityPool) MarshalJSON() ([]byte, error) { type Properties AWSCognitoIdentityPool return json.Marshal(&struct { Type string @@ -117,7 +118,7 @@ func (r AWSCognitoIdentityPool) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -134,7 +135,11 @@ func (r *AWSCognitoIdentityPool) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -154,11 +159,11 @@ func (r *AWSCognitoIdentityPool) UnmarshalJSON(b []byte) error { } // GetAllAWSCognitoIdentityPoolResources retrieves all AWSCognitoIdentityPool items from an AWS CloudFormation template -func (t *Template) GetAllAWSCognitoIdentityPoolResources() map[string]AWSCognitoIdentityPool { - results := map[string]AWSCognitoIdentityPool{} +func (t *Template) GetAllAWSCognitoIdentityPoolResources() map[string]*AWSCognitoIdentityPool { + results := map[string]*AWSCognitoIdentityPool{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCognitoIdentityPool: + case *AWSCognitoIdentityPool: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -170,7 +175,8 @@ func (t *Template) GetAllAWSCognitoIdentityPoolResources() map[string]AWSCognito if b, err := json.Marshal(resource); err == nil { var result AWSCognitoIdentityPool if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -182,10 +188,10 @@ func (t *Template) GetAllAWSCognitoIdentityPoolResources() map[string]AWSCognito // GetAWSCognitoIdentityPoolWithName retrieves all AWSCognitoIdentityPool items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCognitoIdentityPoolWithName(name string) (AWSCognitoIdentityPool, error) { +func (t *Template) GetAWSCognitoIdentityPoolWithName(name string) (*AWSCognitoIdentityPool, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCognitoIdentityPool: + case *AWSCognitoIdentityPool: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -197,12 +203,13 @@ func (t *Template) GetAWSCognitoIdentityPoolWithName(name string) (AWSCognitoIde if b, err := json.Marshal(resource); err == nil { var result AWSCognitoIdentityPool if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCognitoIdentityPool{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-cognito-identitypoolroleattachment.go b/cloudformation/aws-cognito-identitypoolroleattachment.go index 95ae2a9b04..805976a61b 100644 --- a/cloudformation/aws-cognito-identitypoolroleattachment.go +++ b/cloudformation/aws-cognito-identitypoolroleattachment.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSCognitoIdentityPoolRoleAttachment) SetDeletionPolicy(policy Deletion // 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 AWSCognitoIdentityPoolRoleAttachment) MarshalJSON() ([]byte, error) { +func (r *AWSCognitoIdentityPoolRoleAttachment) MarshalJSON() ([]byte, error) { type Properties AWSCognitoIdentityPoolRoleAttachment return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSCognitoIdentityPoolRoleAttachment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSCognitoIdentityPoolRoleAttachment) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSCognitoIdentityPoolRoleAttachment) UnmarshalJSON(b []byte) error { } // GetAllAWSCognitoIdentityPoolRoleAttachmentResources retrieves all AWSCognitoIdentityPoolRoleAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSCognitoIdentityPoolRoleAttachmentResources() map[string]AWSCognitoIdentityPoolRoleAttachment { - results := map[string]AWSCognitoIdentityPoolRoleAttachment{} +func (t *Template) GetAllAWSCognitoIdentityPoolRoleAttachmentResources() map[string]*AWSCognitoIdentityPoolRoleAttachment { + results := map[string]*AWSCognitoIdentityPoolRoleAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCognitoIdentityPoolRoleAttachment: + case *AWSCognitoIdentityPoolRoleAttachment: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSCognitoIdentityPoolRoleAttachmentResources() map[str if b, err := json.Marshal(resource); err == nil { var result AWSCognitoIdentityPoolRoleAttachment if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSCognitoIdentityPoolRoleAttachmentResources() map[str // GetAWSCognitoIdentityPoolRoleAttachmentWithName retrieves all AWSCognitoIdentityPoolRoleAttachment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCognitoIdentityPoolRoleAttachmentWithName(name string) (AWSCognitoIdentityPoolRoleAttachment, error) { +func (t *Template) GetAWSCognitoIdentityPoolRoleAttachmentWithName(name string) (*AWSCognitoIdentityPoolRoleAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCognitoIdentityPoolRoleAttachment: + case *AWSCognitoIdentityPoolRoleAttachment: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSCognitoIdentityPoolRoleAttachmentWithName(name string) if b, err := json.Marshal(resource); err == nil { var result AWSCognitoIdentityPoolRoleAttachment if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCognitoIdentityPoolRoleAttachment{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-cognito-userpool.go b/cloudformation/aws-cognito-userpool.go index 98182f7e10..d6e3996877 100644 --- a/cloudformation/aws-cognito-userpool.go +++ b/cloudformation/aws-cognito-userpool.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -142,7 +143,7 @@ func (r *AWSCognitoUserPool) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSCognitoUserPool) MarshalJSON() ([]byte, error) { +func (r *AWSCognitoUserPool) MarshalJSON() ([]byte, error) { type Properties AWSCognitoUserPool return json.Marshal(&struct { Type string @@ -152,7 +153,7 @@ func (r AWSCognitoUserPool) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -169,7 +170,11 @@ func (r *AWSCognitoUserPool) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -189,11 +194,11 @@ func (r *AWSCognitoUserPool) UnmarshalJSON(b []byte) error { } // GetAllAWSCognitoUserPoolResources retrieves all AWSCognitoUserPool items from an AWS CloudFormation template -func (t *Template) GetAllAWSCognitoUserPoolResources() map[string]AWSCognitoUserPool { - results := map[string]AWSCognitoUserPool{} +func (t *Template) GetAllAWSCognitoUserPoolResources() map[string]*AWSCognitoUserPool { + results := map[string]*AWSCognitoUserPool{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCognitoUserPool: + case *AWSCognitoUserPool: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -205,7 +210,8 @@ func (t *Template) GetAllAWSCognitoUserPoolResources() map[string]AWSCognitoUser if b, err := json.Marshal(resource); err == nil { var result AWSCognitoUserPool if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -217,10 +223,10 @@ func (t *Template) GetAllAWSCognitoUserPoolResources() map[string]AWSCognitoUser // GetAWSCognitoUserPoolWithName retrieves all AWSCognitoUserPool items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCognitoUserPoolWithName(name string) (AWSCognitoUserPool, error) { +func (t *Template) GetAWSCognitoUserPoolWithName(name string) (*AWSCognitoUserPool, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCognitoUserPool: + case *AWSCognitoUserPool: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -232,12 +238,13 @@ func (t *Template) GetAWSCognitoUserPoolWithName(name string) (AWSCognitoUserPoo if b, err := json.Marshal(resource); err == nil { var result AWSCognitoUserPool if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCognitoUserPool{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-cognito-userpoolclient.go b/cloudformation/aws-cognito-userpoolclient.go index e2a32fac8a..87037b21dc 100644 --- a/cloudformation/aws-cognito-userpoolclient.go +++ b/cloudformation/aws-cognito-userpoolclient.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -92,7 +93,7 @@ func (r *AWSCognitoUserPoolClient) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSCognitoUserPoolClient) MarshalJSON() ([]byte, error) { +func (r *AWSCognitoUserPoolClient) MarshalJSON() ([]byte, error) { type Properties AWSCognitoUserPoolClient return json.Marshal(&struct { Type string @@ -102,7 +103,7 @@ func (r AWSCognitoUserPoolClient) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -119,7 +120,11 @@ func (r *AWSCognitoUserPoolClient) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -139,11 +144,11 @@ func (r *AWSCognitoUserPoolClient) UnmarshalJSON(b []byte) error { } // GetAllAWSCognitoUserPoolClientResources retrieves all AWSCognitoUserPoolClient items from an AWS CloudFormation template -func (t *Template) GetAllAWSCognitoUserPoolClientResources() map[string]AWSCognitoUserPoolClient { - results := map[string]AWSCognitoUserPoolClient{} +func (t *Template) GetAllAWSCognitoUserPoolClientResources() map[string]*AWSCognitoUserPoolClient { + results := map[string]*AWSCognitoUserPoolClient{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCognitoUserPoolClient: + case *AWSCognitoUserPoolClient: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -155,7 +160,8 @@ func (t *Template) GetAllAWSCognitoUserPoolClientResources() map[string]AWSCogni if b, err := json.Marshal(resource); err == nil { var result AWSCognitoUserPoolClient if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -167,10 +173,10 @@ func (t *Template) GetAllAWSCognitoUserPoolClientResources() map[string]AWSCogni // GetAWSCognitoUserPoolClientWithName retrieves all AWSCognitoUserPoolClient items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCognitoUserPoolClientWithName(name string) (AWSCognitoUserPoolClient, error) { +func (t *Template) GetAWSCognitoUserPoolClientWithName(name string) (*AWSCognitoUserPoolClient, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCognitoUserPoolClient: + case *AWSCognitoUserPoolClient: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -182,12 +188,13 @@ func (t *Template) GetAWSCognitoUserPoolClientWithName(name string) (AWSCognitoU if b, err := json.Marshal(resource); err == nil { var result AWSCognitoUserPoolClient if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCognitoUserPoolClient{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-cognito-userpoolgroup.go b/cloudformation/aws-cognito-userpoolgroup.go index 125fde5d02..4d7e82a5aa 100644 --- a/cloudformation/aws-cognito-userpoolgroup.go +++ b/cloudformation/aws-cognito-userpoolgroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSCognitoUserPoolGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSCognitoUserPoolGroup) MarshalJSON() ([]byte, error) { +func (r *AWSCognitoUserPoolGroup) MarshalJSON() ([]byte, error) { type Properties AWSCognitoUserPoolGroup return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSCognitoUserPoolGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSCognitoUserPoolGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSCognitoUserPoolGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSCognitoUserPoolGroupResources retrieves all AWSCognitoUserPoolGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSCognitoUserPoolGroupResources() map[string]AWSCognitoUserPoolGroup { - results := map[string]AWSCognitoUserPoolGroup{} +func (t *Template) GetAllAWSCognitoUserPoolGroupResources() map[string]*AWSCognitoUserPoolGroup { + results := map[string]*AWSCognitoUserPoolGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCognitoUserPoolGroup: + case *AWSCognitoUserPoolGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSCognitoUserPoolGroupResources() map[string]AWSCognit if b, err := json.Marshal(resource); err == nil { var result AWSCognitoUserPoolGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSCognitoUserPoolGroupResources() map[string]AWSCognit // GetAWSCognitoUserPoolGroupWithName retrieves all AWSCognitoUserPoolGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCognitoUserPoolGroupWithName(name string) (AWSCognitoUserPoolGroup, error) { +func (t *Template) GetAWSCognitoUserPoolGroupWithName(name string) (*AWSCognitoUserPoolGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCognitoUserPoolGroup: + case *AWSCognitoUserPoolGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSCognitoUserPoolGroupWithName(name string) (AWSCognitoUs if b, err := json.Marshal(resource); err == nil { var result AWSCognitoUserPoolGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCognitoUserPoolGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-cognito-userpooluser.go b/cloudformation/aws-cognito-userpooluser.go index 072096aa07..f53fb789e2 100644 --- a/cloudformation/aws-cognito-userpooluser.go +++ b/cloudformation/aws-cognito-userpooluser.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -92,7 +93,7 @@ func (r *AWSCognitoUserPoolUser) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSCognitoUserPoolUser) MarshalJSON() ([]byte, error) { +func (r *AWSCognitoUserPoolUser) MarshalJSON() ([]byte, error) { type Properties AWSCognitoUserPoolUser return json.Marshal(&struct { Type string @@ -102,7 +103,7 @@ func (r AWSCognitoUserPoolUser) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -119,7 +120,11 @@ func (r *AWSCognitoUserPoolUser) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -139,11 +144,11 @@ func (r *AWSCognitoUserPoolUser) UnmarshalJSON(b []byte) error { } // GetAllAWSCognitoUserPoolUserResources retrieves all AWSCognitoUserPoolUser items from an AWS CloudFormation template -func (t *Template) GetAllAWSCognitoUserPoolUserResources() map[string]AWSCognitoUserPoolUser { - results := map[string]AWSCognitoUserPoolUser{} +func (t *Template) GetAllAWSCognitoUserPoolUserResources() map[string]*AWSCognitoUserPoolUser { + results := map[string]*AWSCognitoUserPoolUser{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCognitoUserPoolUser: + case *AWSCognitoUserPoolUser: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -155,7 +160,8 @@ func (t *Template) GetAllAWSCognitoUserPoolUserResources() map[string]AWSCognito if b, err := json.Marshal(resource); err == nil { var result AWSCognitoUserPoolUser if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -167,10 +173,10 @@ func (t *Template) GetAllAWSCognitoUserPoolUserResources() map[string]AWSCognito // GetAWSCognitoUserPoolUserWithName retrieves all AWSCognitoUserPoolUser items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCognitoUserPoolUserWithName(name string) (AWSCognitoUserPoolUser, error) { +func (t *Template) GetAWSCognitoUserPoolUserWithName(name string) (*AWSCognitoUserPoolUser, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCognitoUserPoolUser: + case *AWSCognitoUserPoolUser: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -182,12 +188,13 @@ func (t *Template) GetAWSCognitoUserPoolUserWithName(name string) (AWSCognitoUse if b, err := json.Marshal(resource); err == nil { var result AWSCognitoUserPoolUser if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCognitoUserPoolUser{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-cognito-userpoolusertogroupattachment.go b/cloudformation/aws-cognito-userpoolusertogroupattachment.go index ee80519505..84a9d26c51 100644 --- a/cloudformation/aws-cognito-userpoolusertogroupattachment.go +++ b/cloudformation/aws-cognito-userpoolusertogroupattachment.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSCognitoUserPoolUserToGroupAttachment) SetDeletionPolicy(policy Delet // 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 AWSCognitoUserPoolUserToGroupAttachment) MarshalJSON() ([]byte, error) { +func (r *AWSCognitoUserPoolUserToGroupAttachment) MarshalJSON() ([]byte, error) { type Properties AWSCognitoUserPoolUserToGroupAttachment return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSCognitoUserPoolUserToGroupAttachment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSCognitoUserPoolUserToGroupAttachment) UnmarshalJSON(b []byte) error DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSCognitoUserPoolUserToGroupAttachment) UnmarshalJSON(b []byte) error } // GetAllAWSCognitoUserPoolUserToGroupAttachmentResources retrieves all AWSCognitoUserPoolUserToGroupAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSCognitoUserPoolUserToGroupAttachmentResources() map[string]AWSCognitoUserPoolUserToGroupAttachment { - results := map[string]AWSCognitoUserPoolUserToGroupAttachment{} +func (t *Template) GetAllAWSCognitoUserPoolUserToGroupAttachmentResources() map[string]*AWSCognitoUserPoolUserToGroupAttachment { + results := map[string]*AWSCognitoUserPoolUserToGroupAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSCognitoUserPoolUserToGroupAttachment: + case *AWSCognitoUserPoolUserToGroupAttachment: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSCognitoUserPoolUserToGroupAttachmentResources() map[ if b, err := json.Marshal(resource); err == nil { var result AWSCognitoUserPoolUserToGroupAttachment if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSCognitoUserPoolUserToGroupAttachmentResources() map[ // GetAWSCognitoUserPoolUserToGroupAttachmentWithName retrieves all AWSCognitoUserPoolUserToGroupAttachment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCognitoUserPoolUserToGroupAttachmentWithName(name string) (AWSCognitoUserPoolUserToGroupAttachment, error) { +func (t *Template) GetAWSCognitoUserPoolUserToGroupAttachmentWithName(name string) (*AWSCognitoUserPoolUserToGroupAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSCognitoUserPoolUserToGroupAttachment: + case *AWSCognitoUserPoolUserToGroupAttachment: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSCognitoUserPoolUserToGroupAttachmentWithName(name strin if b, err := json.Marshal(resource); err == nil { var result AWSCognitoUserPoolUserToGroupAttachment if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSCognitoUserPoolUserToGroupAttachment{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-config-aggregationauthorization.go b/cloudformation/aws-config-aggregationauthorization.go index a4308d34fe..7318286629 100644 --- a/cloudformation/aws-config-aggregationauthorization.go +++ b/cloudformation/aws-config-aggregationauthorization.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSConfigAggregationAuthorization) SetDeletionPolicy(policy DeletionPol // 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 AWSConfigAggregationAuthorization) MarshalJSON() ([]byte, error) { +func (r *AWSConfigAggregationAuthorization) MarshalJSON() ([]byte, error) { type Properties AWSConfigAggregationAuthorization return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSConfigAggregationAuthorization) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSConfigAggregationAuthorization) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSConfigAggregationAuthorization) UnmarshalJSON(b []byte) error { } // GetAllAWSConfigAggregationAuthorizationResources retrieves all AWSConfigAggregationAuthorization items from an AWS CloudFormation template -func (t *Template) GetAllAWSConfigAggregationAuthorizationResources() map[string]AWSConfigAggregationAuthorization { - results := map[string]AWSConfigAggregationAuthorization{} +func (t *Template) GetAllAWSConfigAggregationAuthorizationResources() map[string]*AWSConfigAggregationAuthorization { + results := map[string]*AWSConfigAggregationAuthorization{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSConfigAggregationAuthorization: + case *AWSConfigAggregationAuthorization: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSConfigAggregationAuthorizationResources() map[string if b, err := json.Marshal(resource); err == nil { var result AWSConfigAggregationAuthorization if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSConfigAggregationAuthorizationResources() map[string // GetAWSConfigAggregationAuthorizationWithName retrieves all AWSConfigAggregationAuthorization items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSConfigAggregationAuthorizationWithName(name string) (AWSConfigAggregationAuthorization, error) { +func (t *Template) GetAWSConfigAggregationAuthorizationWithName(name string) (*AWSConfigAggregationAuthorization, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSConfigAggregationAuthorization: + case *AWSConfigAggregationAuthorization: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSConfigAggregationAuthorizationWithName(name string) (AW if b, err := json.Marshal(resource); err == nil { var result AWSConfigAggregationAuthorization if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSConfigAggregationAuthorization{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-config-configrule.go b/cloudformation/aws-config-configrule.go index 91a2b7b2c9..2f61e8f14b 100644 --- a/cloudformation/aws-config-configrule.go +++ b/cloudformation/aws-config-configrule.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -87,7 +88,7 @@ func (r *AWSConfigConfigRule) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSConfigConfigRule) MarshalJSON() ([]byte, error) { +func (r *AWSConfigConfigRule) MarshalJSON() ([]byte, error) { type Properties AWSConfigConfigRule return json.Marshal(&struct { Type string @@ -97,7 +98,7 @@ func (r AWSConfigConfigRule) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -114,7 +115,11 @@ func (r *AWSConfigConfigRule) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -134,11 +139,11 @@ func (r *AWSConfigConfigRule) UnmarshalJSON(b []byte) error { } // GetAllAWSConfigConfigRuleResources retrieves all AWSConfigConfigRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSConfigConfigRuleResources() map[string]AWSConfigConfigRule { - results := map[string]AWSConfigConfigRule{} +func (t *Template) GetAllAWSConfigConfigRuleResources() map[string]*AWSConfigConfigRule { + results := map[string]*AWSConfigConfigRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSConfigConfigRule: + case *AWSConfigConfigRule: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -150,7 +155,8 @@ func (t *Template) GetAllAWSConfigConfigRuleResources() map[string]AWSConfigConf if b, err := json.Marshal(resource); err == nil { var result AWSConfigConfigRule if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -162,10 +168,10 @@ func (t *Template) GetAllAWSConfigConfigRuleResources() map[string]AWSConfigConf // GetAWSConfigConfigRuleWithName retrieves all AWSConfigConfigRule items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSConfigConfigRuleWithName(name string) (AWSConfigConfigRule, error) { +func (t *Template) GetAWSConfigConfigRuleWithName(name string) (*AWSConfigConfigRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSConfigConfigRule: + case *AWSConfigConfigRule: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -177,12 +183,13 @@ func (t *Template) GetAWSConfigConfigRuleWithName(name string) (AWSConfigConfigR if b, err := json.Marshal(resource); err == nil { var result AWSConfigConfigRule if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSConfigConfigRule{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-config-configurationaggregator.go b/cloudformation/aws-config-configurationaggregator.go index 1e2187b0bc..cb8123f746 100644 --- a/cloudformation/aws-config-configurationaggregator.go +++ b/cloudformation/aws-config-configurationaggregator.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSConfigConfigurationAggregator) SetDeletionPolicy(policy DeletionPoli // 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 AWSConfigConfigurationAggregator) MarshalJSON() ([]byte, error) { +func (r *AWSConfigConfigurationAggregator) MarshalJSON() ([]byte, error) { type Properties AWSConfigConfigurationAggregator return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSConfigConfigurationAggregator) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSConfigConfigurationAggregator) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSConfigConfigurationAggregator) UnmarshalJSON(b []byte) error { } // GetAllAWSConfigConfigurationAggregatorResources retrieves all AWSConfigConfigurationAggregator items from an AWS CloudFormation template -func (t *Template) GetAllAWSConfigConfigurationAggregatorResources() map[string]AWSConfigConfigurationAggregator { - results := map[string]AWSConfigConfigurationAggregator{} +func (t *Template) GetAllAWSConfigConfigurationAggregatorResources() map[string]*AWSConfigConfigurationAggregator { + results := map[string]*AWSConfigConfigurationAggregator{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSConfigConfigurationAggregator: + case *AWSConfigConfigurationAggregator: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSConfigConfigurationAggregatorResources() map[string] if b, err := json.Marshal(resource); err == nil { var result AWSConfigConfigurationAggregator if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSConfigConfigurationAggregatorResources() map[string] // GetAWSConfigConfigurationAggregatorWithName retrieves all AWSConfigConfigurationAggregator items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSConfigConfigurationAggregatorWithName(name string) (AWSConfigConfigurationAggregator, error) { +func (t *Template) GetAWSConfigConfigurationAggregatorWithName(name string) (*AWSConfigConfigurationAggregator, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSConfigConfigurationAggregator: + case *AWSConfigConfigurationAggregator: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSConfigConfigurationAggregatorWithName(name string) (AWS if b, err := json.Marshal(resource); err == nil { var result AWSConfigConfigurationAggregator if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSConfigConfigurationAggregator{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-config-configurationrecorder.go b/cloudformation/aws-config-configurationrecorder.go index 472e48b78b..aeb472452c 100644 --- a/cloudformation/aws-config-configurationrecorder.go +++ b/cloudformation/aws-config-configurationrecorder.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSConfigConfigurationRecorder) SetDeletionPolicy(policy DeletionPolicy // 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 AWSConfigConfigurationRecorder) MarshalJSON() ([]byte, error) { +func (r *AWSConfigConfigurationRecorder) MarshalJSON() ([]byte, error) { type Properties AWSConfigConfigurationRecorder return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSConfigConfigurationRecorder) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSConfigConfigurationRecorder) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSConfigConfigurationRecorder) UnmarshalJSON(b []byte) error { } // GetAllAWSConfigConfigurationRecorderResources retrieves all AWSConfigConfigurationRecorder items from an AWS CloudFormation template -func (t *Template) GetAllAWSConfigConfigurationRecorderResources() map[string]AWSConfigConfigurationRecorder { - results := map[string]AWSConfigConfigurationRecorder{} +func (t *Template) GetAllAWSConfigConfigurationRecorderResources() map[string]*AWSConfigConfigurationRecorder { + results := map[string]*AWSConfigConfigurationRecorder{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSConfigConfigurationRecorder: + case *AWSConfigConfigurationRecorder: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSConfigConfigurationRecorderResources() map[string]AW if b, err := json.Marshal(resource); err == nil { var result AWSConfigConfigurationRecorder if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSConfigConfigurationRecorderResources() map[string]AW // GetAWSConfigConfigurationRecorderWithName retrieves all AWSConfigConfigurationRecorder items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSConfigConfigurationRecorderWithName(name string) (AWSConfigConfigurationRecorder, error) { +func (t *Template) GetAWSConfigConfigurationRecorderWithName(name string) (*AWSConfigConfigurationRecorder, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSConfigConfigurationRecorder: + case *AWSConfigConfigurationRecorder: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSConfigConfigurationRecorderWithName(name string) (AWSCo if b, err := json.Marshal(resource); err == nil { var result AWSConfigConfigurationRecorder if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSConfigConfigurationRecorder{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-config-deliverychannel.go b/cloudformation/aws-config-deliverychannel.go index aba76bd70b..9b163b50c6 100644 --- a/cloudformation/aws-config-deliverychannel.go +++ b/cloudformation/aws-config-deliverychannel.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSConfigDeliveryChannel) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSConfigDeliveryChannel) MarshalJSON() ([]byte, error) { +func (r *AWSConfigDeliveryChannel) MarshalJSON() ([]byte, error) { type Properties AWSConfigDeliveryChannel return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSConfigDeliveryChannel) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSConfigDeliveryChannel) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSConfigDeliveryChannel) UnmarshalJSON(b []byte) error { } // GetAllAWSConfigDeliveryChannelResources retrieves all AWSConfigDeliveryChannel items from an AWS CloudFormation template -func (t *Template) GetAllAWSConfigDeliveryChannelResources() map[string]AWSConfigDeliveryChannel { - results := map[string]AWSConfigDeliveryChannel{} +func (t *Template) GetAllAWSConfigDeliveryChannelResources() map[string]*AWSConfigDeliveryChannel { + results := map[string]*AWSConfigDeliveryChannel{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSConfigDeliveryChannel: + case *AWSConfigDeliveryChannel: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSConfigDeliveryChannelResources() map[string]AWSConfi if b, err := json.Marshal(resource); err == nil { var result AWSConfigDeliveryChannel if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSConfigDeliveryChannelResources() map[string]AWSConfi // GetAWSConfigDeliveryChannelWithName retrieves all AWSConfigDeliveryChannel items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSConfigDeliveryChannelWithName(name string) (AWSConfigDeliveryChannel, error) { +func (t *Template) GetAWSConfigDeliveryChannelWithName(name string) (*AWSConfigDeliveryChannel, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSConfigDeliveryChannel: + case *AWSConfigDeliveryChannel: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSConfigDeliveryChannelWithName(name string) (AWSConfigDe if b, err := json.Marshal(resource); err == nil { var result AWSConfigDeliveryChannel if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSConfigDeliveryChannel{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-datapipeline-pipeline.go b/cloudformation/aws-datapipeline-pipeline.go index bd2f4f337b..09d30c0d73 100644 --- a/cloudformation/aws-datapipeline-pipeline.go +++ b/cloudformation/aws-datapipeline-pipeline.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -92,7 +93,7 @@ func (r *AWSDataPipelinePipeline) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSDataPipelinePipeline) MarshalJSON() ([]byte, error) { +func (r *AWSDataPipelinePipeline) MarshalJSON() ([]byte, error) { type Properties AWSDataPipelinePipeline return json.Marshal(&struct { Type string @@ -102,7 +103,7 @@ func (r AWSDataPipelinePipeline) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -119,7 +120,11 @@ func (r *AWSDataPipelinePipeline) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -139,11 +144,11 @@ func (r *AWSDataPipelinePipeline) UnmarshalJSON(b []byte) error { } // GetAllAWSDataPipelinePipelineResources retrieves all AWSDataPipelinePipeline items from an AWS CloudFormation template -func (t *Template) GetAllAWSDataPipelinePipelineResources() map[string]AWSDataPipelinePipeline { - results := map[string]AWSDataPipelinePipeline{} +func (t *Template) GetAllAWSDataPipelinePipelineResources() map[string]*AWSDataPipelinePipeline { + results := map[string]*AWSDataPipelinePipeline{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSDataPipelinePipeline: + case *AWSDataPipelinePipeline: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -155,7 +160,8 @@ func (t *Template) GetAllAWSDataPipelinePipelineResources() map[string]AWSDataPi if b, err := json.Marshal(resource); err == nil { var result AWSDataPipelinePipeline if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -167,10 +173,10 @@ func (t *Template) GetAllAWSDataPipelinePipelineResources() map[string]AWSDataPi // GetAWSDataPipelinePipelineWithName retrieves all AWSDataPipelinePipeline items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDataPipelinePipelineWithName(name string) (AWSDataPipelinePipeline, error) { +func (t *Template) GetAWSDataPipelinePipelineWithName(name string) (*AWSDataPipelinePipeline, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSDataPipelinePipeline: + case *AWSDataPipelinePipeline: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -182,12 +188,13 @@ func (t *Template) GetAWSDataPipelinePipelineWithName(name string) (AWSDataPipel if b, err := json.Marshal(resource); err == nil { var result AWSDataPipelinePipeline if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSDataPipelinePipeline{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-dax-cluster.go b/cloudformation/aws-dax-cluster.go index ee0a4a0d96..ced8df44a5 100644 --- a/cloudformation/aws-dax-cluster.go +++ b/cloudformation/aws-dax-cluster.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -122,7 +123,7 @@ func (r *AWSDAXCluster) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSDAXCluster) MarshalJSON() ([]byte, error) { +func (r *AWSDAXCluster) MarshalJSON() ([]byte, error) { type Properties AWSDAXCluster return json.Marshal(&struct { Type string @@ -132,7 +133,7 @@ func (r AWSDAXCluster) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -149,7 +150,11 @@ func (r *AWSDAXCluster) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -169,11 +174,11 @@ func (r *AWSDAXCluster) UnmarshalJSON(b []byte) error { } // GetAllAWSDAXClusterResources retrieves all AWSDAXCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSDAXClusterResources() map[string]AWSDAXCluster { - results := map[string]AWSDAXCluster{} +func (t *Template) GetAllAWSDAXClusterResources() map[string]*AWSDAXCluster { + results := map[string]*AWSDAXCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSDAXCluster: + case *AWSDAXCluster: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -185,7 +190,8 @@ func (t *Template) GetAllAWSDAXClusterResources() map[string]AWSDAXCluster { if b, err := json.Marshal(resource); err == nil { var result AWSDAXCluster if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -197,10 +203,10 @@ func (t *Template) GetAllAWSDAXClusterResources() map[string]AWSDAXCluster { // GetAWSDAXClusterWithName retrieves all AWSDAXCluster items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDAXClusterWithName(name string) (AWSDAXCluster, error) { +func (t *Template) GetAWSDAXClusterWithName(name string) (*AWSDAXCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSDAXCluster: + case *AWSDAXCluster: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -212,12 +218,13 @@ func (t *Template) GetAWSDAXClusterWithName(name string) (AWSDAXCluster, error) if b, err := json.Marshal(resource); err == nil { var result AWSDAXCluster if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSDAXCluster{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-dax-parametergroup.go b/cloudformation/aws-dax-parametergroup.go index 18e39baf6f..813a11bf6a 100644 --- a/cloudformation/aws-dax-parametergroup.go +++ b/cloudformation/aws-dax-parametergroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSDAXParameterGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSDAXParameterGroup) MarshalJSON() ([]byte, error) { +func (r *AWSDAXParameterGroup) MarshalJSON() ([]byte, error) { type Properties AWSDAXParameterGroup return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSDAXParameterGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSDAXParameterGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSDAXParameterGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSDAXParameterGroupResources retrieves all AWSDAXParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSDAXParameterGroupResources() map[string]AWSDAXParameterGroup { - results := map[string]AWSDAXParameterGroup{} +func (t *Template) GetAllAWSDAXParameterGroupResources() map[string]*AWSDAXParameterGroup { + results := map[string]*AWSDAXParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSDAXParameterGroup: + case *AWSDAXParameterGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSDAXParameterGroupResources() map[string]AWSDAXParame if b, err := json.Marshal(resource); err == nil { var result AWSDAXParameterGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSDAXParameterGroupResources() map[string]AWSDAXParame // GetAWSDAXParameterGroupWithName retrieves all AWSDAXParameterGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDAXParameterGroupWithName(name string) (AWSDAXParameterGroup, error) { +func (t *Template) GetAWSDAXParameterGroupWithName(name string) (*AWSDAXParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSDAXParameterGroup: + case *AWSDAXParameterGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSDAXParameterGroupWithName(name string) (AWSDAXParameter if b, err := json.Marshal(resource); err == nil { var result AWSDAXParameterGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSDAXParameterGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-dax-subnetgroup.go b/cloudformation/aws-dax-subnetgroup.go index ed9a08a010..35c7ef65f8 100644 --- a/cloudformation/aws-dax-subnetgroup.go +++ b/cloudformation/aws-dax-subnetgroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSDAXSubnetGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSDAXSubnetGroup) MarshalJSON() ([]byte, error) { +func (r *AWSDAXSubnetGroup) MarshalJSON() ([]byte, error) { type Properties AWSDAXSubnetGroup return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSDAXSubnetGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSDAXSubnetGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSDAXSubnetGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSDAXSubnetGroupResources retrieves all AWSDAXSubnetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSDAXSubnetGroupResources() map[string]AWSDAXSubnetGroup { - results := map[string]AWSDAXSubnetGroup{} +func (t *Template) GetAllAWSDAXSubnetGroupResources() map[string]*AWSDAXSubnetGroup { + results := map[string]*AWSDAXSubnetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSDAXSubnetGroup: + case *AWSDAXSubnetGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSDAXSubnetGroupResources() map[string]AWSDAXSubnetGro if b, err := json.Marshal(resource); err == nil { var result AWSDAXSubnetGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSDAXSubnetGroupResources() map[string]AWSDAXSubnetGro // GetAWSDAXSubnetGroupWithName retrieves all AWSDAXSubnetGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDAXSubnetGroupWithName(name string) (AWSDAXSubnetGroup, error) { +func (t *Template) GetAWSDAXSubnetGroupWithName(name string) (*AWSDAXSubnetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSDAXSubnetGroup: + case *AWSDAXSubnetGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSDAXSubnetGroupWithName(name string) (AWSDAXSubnetGroup, if b, err := json.Marshal(resource); err == nil { var result AWSDAXSubnetGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSDAXSubnetGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-directoryservice-microsoftad.go b/cloudformation/aws-directoryservice-microsoftad.go index b15f61b872..2799506be0 100644 --- a/cloudformation/aws-directoryservice-microsoftad.go +++ b/cloudformation/aws-directoryservice-microsoftad.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -92,7 +93,7 @@ func (r *AWSDirectoryServiceMicrosoftAD) SetDeletionPolicy(policy DeletionPolicy // 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 AWSDirectoryServiceMicrosoftAD) MarshalJSON() ([]byte, error) { +func (r *AWSDirectoryServiceMicrosoftAD) MarshalJSON() ([]byte, error) { type Properties AWSDirectoryServiceMicrosoftAD return json.Marshal(&struct { Type string @@ -102,7 +103,7 @@ func (r AWSDirectoryServiceMicrosoftAD) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -119,7 +120,11 @@ func (r *AWSDirectoryServiceMicrosoftAD) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -139,11 +144,11 @@ func (r *AWSDirectoryServiceMicrosoftAD) UnmarshalJSON(b []byte) error { } // GetAllAWSDirectoryServiceMicrosoftADResources retrieves all AWSDirectoryServiceMicrosoftAD items from an AWS CloudFormation template -func (t *Template) GetAllAWSDirectoryServiceMicrosoftADResources() map[string]AWSDirectoryServiceMicrosoftAD { - results := map[string]AWSDirectoryServiceMicrosoftAD{} +func (t *Template) GetAllAWSDirectoryServiceMicrosoftADResources() map[string]*AWSDirectoryServiceMicrosoftAD { + results := map[string]*AWSDirectoryServiceMicrosoftAD{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSDirectoryServiceMicrosoftAD: + case *AWSDirectoryServiceMicrosoftAD: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -155,7 +160,8 @@ func (t *Template) GetAllAWSDirectoryServiceMicrosoftADResources() map[string]AW if b, err := json.Marshal(resource); err == nil { var result AWSDirectoryServiceMicrosoftAD if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -167,10 +173,10 @@ func (t *Template) GetAllAWSDirectoryServiceMicrosoftADResources() map[string]AW // GetAWSDirectoryServiceMicrosoftADWithName retrieves all AWSDirectoryServiceMicrosoftAD items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDirectoryServiceMicrosoftADWithName(name string) (AWSDirectoryServiceMicrosoftAD, error) { +func (t *Template) GetAWSDirectoryServiceMicrosoftADWithName(name string) (*AWSDirectoryServiceMicrosoftAD, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSDirectoryServiceMicrosoftAD: + case *AWSDirectoryServiceMicrosoftAD: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -182,12 +188,13 @@ func (t *Template) GetAWSDirectoryServiceMicrosoftADWithName(name string) (AWSDi if b, err := json.Marshal(resource); err == nil { var result AWSDirectoryServiceMicrosoftAD if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSDirectoryServiceMicrosoftAD{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-directoryservice-simplead.go b/cloudformation/aws-directoryservice-simplead.go index 7dfecf1967..e88bd2916e 100644 --- a/cloudformation/aws-directoryservice-simplead.go +++ b/cloudformation/aws-directoryservice-simplead.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -97,7 +98,7 @@ func (r *AWSDirectoryServiceSimpleAD) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSDirectoryServiceSimpleAD) MarshalJSON() ([]byte, error) { +func (r *AWSDirectoryServiceSimpleAD) MarshalJSON() ([]byte, error) { type Properties AWSDirectoryServiceSimpleAD return json.Marshal(&struct { Type string @@ -107,7 +108,7 @@ func (r AWSDirectoryServiceSimpleAD) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -124,7 +125,11 @@ func (r *AWSDirectoryServiceSimpleAD) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -144,11 +149,11 @@ func (r *AWSDirectoryServiceSimpleAD) UnmarshalJSON(b []byte) error { } // GetAllAWSDirectoryServiceSimpleADResources retrieves all AWSDirectoryServiceSimpleAD items from an AWS CloudFormation template -func (t *Template) GetAllAWSDirectoryServiceSimpleADResources() map[string]AWSDirectoryServiceSimpleAD { - results := map[string]AWSDirectoryServiceSimpleAD{} +func (t *Template) GetAllAWSDirectoryServiceSimpleADResources() map[string]*AWSDirectoryServiceSimpleAD { + results := map[string]*AWSDirectoryServiceSimpleAD{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSDirectoryServiceSimpleAD: + case *AWSDirectoryServiceSimpleAD: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -160,7 +165,8 @@ func (t *Template) GetAllAWSDirectoryServiceSimpleADResources() map[string]AWSDi if b, err := json.Marshal(resource); err == nil { var result AWSDirectoryServiceSimpleAD if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -172,10 +178,10 @@ func (t *Template) GetAllAWSDirectoryServiceSimpleADResources() map[string]AWSDi // GetAWSDirectoryServiceSimpleADWithName retrieves all AWSDirectoryServiceSimpleAD items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDirectoryServiceSimpleADWithName(name string) (AWSDirectoryServiceSimpleAD, error) { +func (t *Template) GetAWSDirectoryServiceSimpleADWithName(name string) (*AWSDirectoryServiceSimpleAD, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSDirectoryServiceSimpleAD: + case *AWSDirectoryServiceSimpleAD: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -187,12 +193,13 @@ func (t *Template) GetAWSDirectoryServiceSimpleADWithName(name string) (AWSDirec if b, err := json.Marshal(resource); err == nil { var result AWSDirectoryServiceSimpleAD if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSDirectoryServiceSimpleAD{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-dlm-lifecyclepolicy.go b/cloudformation/aws-dlm-lifecyclepolicy.go index e9d63d9541..601df969c8 100644 --- a/cloudformation/aws-dlm-lifecyclepolicy.go +++ b/cloudformation/aws-dlm-lifecyclepolicy.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSDLMLifecyclePolicy) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSDLMLifecyclePolicy) MarshalJSON() ([]byte, error) { +func (r *AWSDLMLifecyclePolicy) MarshalJSON() ([]byte, error) { type Properties AWSDLMLifecyclePolicy return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSDLMLifecyclePolicy) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSDLMLifecyclePolicy) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSDLMLifecyclePolicy) UnmarshalJSON(b []byte) error { } // GetAllAWSDLMLifecyclePolicyResources retrieves all AWSDLMLifecyclePolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSDLMLifecyclePolicyResources() map[string]AWSDLMLifecyclePolicy { - results := map[string]AWSDLMLifecyclePolicy{} +func (t *Template) GetAllAWSDLMLifecyclePolicyResources() map[string]*AWSDLMLifecyclePolicy { + results := map[string]*AWSDLMLifecyclePolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSDLMLifecyclePolicy: + case *AWSDLMLifecyclePolicy: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSDLMLifecyclePolicyResources() map[string]AWSDLMLifec if b, err := json.Marshal(resource); err == nil { var result AWSDLMLifecyclePolicy if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSDLMLifecyclePolicyResources() map[string]AWSDLMLifec // GetAWSDLMLifecyclePolicyWithName retrieves all AWSDLMLifecyclePolicy items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDLMLifecyclePolicyWithName(name string) (AWSDLMLifecyclePolicy, error) { +func (t *Template) GetAWSDLMLifecyclePolicyWithName(name string) (*AWSDLMLifecyclePolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSDLMLifecyclePolicy: + case *AWSDLMLifecyclePolicy: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSDLMLifecyclePolicyWithName(name string) (AWSDLMLifecycl if b, err := json.Marshal(resource); err == nil { var result AWSDLMLifecyclePolicy if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSDLMLifecyclePolicy{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-dms-certificate.go b/cloudformation/aws-dms-certificate.go index 874468ab88..e2ae4ca9cc 100644 --- a/cloudformation/aws-dms-certificate.go +++ b/cloudformation/aws-dms-certificate.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSDMSCertificate) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSDMSCertificate) MarshalJSON() ([]byte, error) { +func (r *AWSDMSCertificate) MarshalJSON() ([]byte, error) { type Properties AWSDMSCertificate return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSDMSCertificate) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSDMSCertificate) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSDMSCertificate) UnmarshalJSON(b []byte) error { } // GetAllAWSDMSCertificateResources retrieves all AWSDMSCertificate items from an AWS CloudFormation template -func (t *Template) GetAllAWSDMSCertificateResources() map[string]AWSDMSCertificate { - results := map[string]AWSDMSCertificate{} +func (t *Template) GetAllAWSDMSCertificateResources() map[string]*AWSDMSCertificate { + results := map[string]*AWSDMSCertificate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSDMSCertificate: + case *AWSDMSCertificate: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSDMSCertificateResources() map[string]AWSDMSCertifica if b, err := json.Marshal(resource); err == nil { var result AWSDMSCertificate if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSDMSCertificateResources() map[string]AWSDMSCertifica // GetAWSDMSCertificateWithName retrieves all AWSDMSCertificate items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDMSCertificateWithName(name string) (AWSDMSCertificate, error) { +func (t *Template) GetAWSDMSCertificateWithName(name string) (*AWSDMSCertificate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSDMSCertificate: + case *AWSDMSCertificate: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSDMSCertificateWithName(name string) (AWSDMSCertificate, if b, err := json.Marshal(resource); err == nil { var result AWSDMSCertificate if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSDMSCertificate{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-dms-endpoint.go b/cloudformation/aws-dms-endpoint.go index 2d26a1b51c..9912ca36d4 100644 --- a/cloudformation/aws-dms-endpoint.go +++ b/cloudformation/aws-dms-endpoint.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -25,6 +26,11 @@ type AWSDMSEndpoint struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-dynamodbsettings DynamoDbSettings *AWSDMSEndpoint_DynamoDbSettings `json:"DynamoDbSettings,omitempty"` + // ElasticsearchSettings AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-elasticsearchsettings + ElasticsearchSettings *AWSDMSEndpoint_ElasticsearchSettings `json:"ElasticsearchSettings,omitempty"` + // EndpointIdentifier AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-endpointidentifier @@ -45,6 +51,11 @@ type AWSDMSEndpoint struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-extraconnectionattributes ExtraConnectionAttributes string `json:"ExtraConnectionAttributes,omitempty"` + // KinesisSettings AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-kinesissettings + KinesisSettings *AWSDMSEndpoint_KinesisSettings `json:"KinesisSettings,omitempty"` + // KmsKeyId AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-kmskeyid @@ -137,7 +148,7 @@ func (r *AWSDMSEndpoint) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSDMSEndpoint) MarshalJSON() ([]byte, error) { +func (r *AWSDMSEndpoint) MarshalJSON() ([]byte, error) { type Properties AWSDMSEndpoint return json.Marshal(&struct { Type string @@ -147,7 +158,7 @@ func (r AWSDMSEndpoint) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -164,7 +175,11 @@ func (r *AWSDMSEndpoint) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -184,11 +199,11 @@ func (r *AWSDMSEndpoint) UnmarshalJSON(b []byte) error { } // GetAllAWSDMSEndpointResources retrieves all AWSDMSEndpoint items from an AWS CloudFormation template -func (t *Template) GetAllAWSDMSEndpointResources() map[string]AWSDMSEndpoint { - results := map[string]AWSDMSEndpoint{} +func (t *Template) GetAllAWSDMSEndpointResources() map[string]*AWSDMSEndpoint { + results := map[string]*AWSDMSEndpoint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSDMSEndpoint: + case *AWSDMSEndpoint: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -200,7 +215,8 @@ func (t *Template) GetAllAWSDMSEndpointResources() map[string]AWSDMSEndpoint { if b, err := json.Marshal(resource); err == nil { var result AWSDMSEndpoint if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -212,10 +228,10 @@ func (t *Template) GetAllAWSDMSEndpointResources() map[string]AWSDMSEndpoint { // GetAWSDMSEndpointWithName retrieves all AWSDMSEndpoint items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDMSEndpointWithName(name string) (AWSDMSEndpoint, error) { +func (t *Template) GetAWSDMSEndpointWithName(name string) (*AWSDMSEndpoint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSDMSEndpoint: + case *AWSDMSEndpoint: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -227,12 +243,13 @@ func (t *Template) GetAWSDMSEndpointWithName(name string) (AWSDMSEndpoint, error if b, err := json.Marshal(resource); err == nil { var result AWSDMSEndpoint if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSDMSEndpoint{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-dms-endpoint_elasticsearchsettings.go b/cloudformation/aws-dms-endpoint_elasticsearchsettings.go new file mode 100644 index 0000000000..eb1b17a9a7 --- /dev/null +++ b/cloudformation/aws-dms-endpoint_elasticsearchsettings.go @@ -0,0 +1,70 @@ +package cloudformation + +// AWSDMSEndpoint_ElasticsearchSettings AWS CloudFormation Resource (AWS::DMS::Endpoint.ElasticsearchSettings) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html +type AWSDMSEndpoint_ElasticsearchSettings struct { + + // EndpointUri AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html#cfn-dms-endpoint-elasticsearchsettings-endpointuri + EndpointUri string `json:"EndpointUri,omitempty"` + + // ErrorRetryDuration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html#cfn-dms-endpoint-elasticsearchsettings-errorretryduration + ErrorRetryDuration int `json:"ErrorRetryDuration,omitempty"` + + // FullLoadErrorPercentage AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html#cfn-dms-endpoint-elasticsearchsettings-fullloaderrorpercentage + FullLoadErrorPercentage int `json:"FullLoadErrorPercentage,omitempty"` + + // ServiceAccessRoleArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html#cfn-dms-endpoint-elasticsearchsettings-serviceaccessrolearn + ServiceAccessRoleArn string `json:"ServiceAccessRoleArn,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSDMSEndpoint_ElasticsearchSettings) AWSCloudFormationType() string { + return "AWS::DMS::Endpoint.ElasticsearchSettings" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSDMSEndpoint_ElasticsearchSettings) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSDMSEndpoint_ElasticsearchSettings) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSDMSEndpoint_ElasticsearchSettings) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSDMSEndpoint_ElasticsearchSettings) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSDMSEndpoint_ElasticsearchSettings) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-dms-endpoint_kinesissettings.go b/cloudformation/aws-dms-endpoint_kinesissettings.go new file mode 100644 index 0000000000..ac9d123ecd --- /dev/null +++ b/cloudformation/aws-dms-endpoint_kinesissettings.go @@ -0,0 +1,65 @@ +package cloudformation + +// AWSDMSEndpoint_KinesisSettings AWS CloudFormation Resource (AWS::DMS::Endpoint.KinesisSettings) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html +type AWSDMSEndpoint_KinesisSettings struct { + + // MessageFormat AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-messageformat + MessageFormat string `json:"MessageFormat,omitempty"` + + // ServiceAccessRoleArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-serviceaccessrolearn + ServiceAccessRoleArn string `json:"ServiceAccessRoleArn,omitempty"` + + // StreamArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-streamarn + StreamArn string `json:"StreamArn,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSDMSEndpoint_KinesisSettings) AWSCloudFormationType() string { + return "AWS::DMS::Endpoint.KinesisSettings" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSDMSEndpoint_KinesisSettings) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSDMSEndpoint_KinesisSettings) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSDMSEndpoint_KinesisSettings) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSDMSEndpoint_KinesisSettings) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSDMSEndpoint_KinesisSettings) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-dms-eventsubscription.go b/cloudformation/aws-dms-eventsubscription.go index ebf6141458..1332635a00 100644 --- a/cloudformation/aws-dms-eventsubscription.go +++ b/cloudformation/aws-dms-eventsubscription.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -92,7 +93,7 @@ func (r *AWSDMSEventSubscription) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSDMSEventSubscription) MarshalJSON() ([]byte, error) { +func (r *AWSDMSEventSubscription) MarshalJSON() ([]byte, error) { type Properties AWSDMSEventSubscription return json.Marshal(&struct { Type string @@ -102,7 +103,7 @@ func (r AWSDMSEventSubscription) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -119,7 +120,11 @@ func (r *AWSDMSEventSubscription) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -139,11 +144,11 @@ func (r *AWSDMSEventSubscription) UnmarshalJSON(b []byte) error { } // GetAllAWSDMSEventSubscriptionResources retrieves all AWSDMSEventSubscription items from an AWS CloudFormation template -func (t *Template) GetAllAWSDMSEventSubscriptionResources() map[string]AWSDMSEventSubscription { - results := map[string]AWSDMSEventSubscription{} +func (t *Template) GetAllAWSDMSEventSubscriptionResources() map[string]*AWSDMSEventSubscription { + results := map[string]*AWSDMSEventSubscription{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSDMSEventSubscription: + case *AWSDMSEventSubscription: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -155,7 +160,8 @@ func (t *Template) GetAllAWSDMSEventSubscriptionResources() map[string]AWSDMSEve if b, err := json.Marshal(resource); err == nil { var result AWSDMSEventSubscription if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -167,10 +173,10 @@ func (t *Template) GetAllAWSDMSEventSubscriptionResources() map[string]AWSDMSEve // GetAWSDMSEventSubscriptionWithName retrieves all AWSDMSEventSubscription items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDMSEventSubscriptionWithName(name string) (AWSDMSEventSubscription, error) { +func (t *Template) GetAWSDMSEventSubscriptionWithName(name string) (*AWSDMSEventSubscription, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSDMSEventSubscription: + case *AWSDMSEventSubscription: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -182,12 +188,13 @@ func (t *Template) GetAWSDMSEventSubscriptionWithName(name string) (AWSDMSEventS if b, err := json.Marshal(resource); err == nil { var result AWSDMSEventSubscription if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSDMSEventSubscription{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-dms-replicationinstance.go b/cloudformation/aws-dms-replicationinstance.go index 9eb55f172a..a5ea44634b 100644 --- a/cloudformation/aws-dms-replicationinstance.go +++ b/cloudformation/aws-dms-replicationinstance.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -127,7 +128,7 @@ func (r *AWSDMSReplicationInstance) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSDMSReplicationInstance) MarshalJSON() ([]byte, error) { +func (r *AWSDMSReplicationInstance) MarshalJSON() ([]byte, error) { type Properties AWSDMSReplicationInstance return json.Marshal(&struct { Type string @@ -137,7 +138,7 @@ func (r AWSDMSReplicationInstance) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -154,7 +155,11 @@ func (r *AWSDMSReplicationInstance) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -174,11 +179,11 @@ func (r *AWSDMSReplicationInstance) UnmarshalJSON(b []byte) error { } // GetAllAWSDMSReplicationInstanceResources retrieves all AWSDMSReplicationInstance items from an AWS CloudFormation template -func (t *Template) GetAllAWSDMSReplicationInstanceResources() map[string]AWSDMSReplicationInstance { - results := map[string]AWSDMSReplicationInstance{} +func (t *Template) GetAllAWSDMSReplicationInstanceResources() map[string]*AWSDMSReplicationInstance { + results := map[string]*AWSDMSReplicationInstance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSDMSReplicationInstance: + case *AWSDMSReplicationInstance: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -190,7 +195,8 @@ func (t *Template) GetAllAWSDMSReplicationInstanceResources() map[string]AWSDMSR if b, err := json.Marshal(resource); err == nil { var result AWSDMSReplicationInstance if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -202,10 +208,10 @@ func (t *Template) GetAllAWSDMSReplicationInstanceResources() map[string]AWSDMSR // GetAWSDMSReplicationInstanceWithName retrieves all AWSDMSReplicationInstance items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDMSReplicationInstanceWithName(name string) (AWSDMSReplicationInstance, error) { +func (t *Template) GetAWSDMSReplicationInstanceWithName(name string) (*AWSDMSReplicationInstance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSDMSReplicationInstance: + case *AWSDMSReplicationInstance: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -217,12 +223,13 @@ func (t *Template) GetAWSDMSReplicationInstanceWithName(name string) (AWSDMSRepl if b, err := json.Marshal(resource); err == nil { var result AWSDMSReplicationInstance if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSDMSReplicationInstance{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-dms-replicationsubnetgroup.go b/cloudformation/aws-dms-replicationsubnetgroup.go index 3da459e2d6..246a157664 100644 --- a/cloudformation/aws-dms-replicationsubnetgroup.go +++ b/cloudformation/aws-dms-replicationsubnetgroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSDMSReplicationSubnetGroup) SetDeletionPolicy(policy DeletionPolicy) // 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 AWSDMSReplicationSubnetGroup) MarshalJSON() ([]byte, error) { +func (r *AWSDMSReplicationSubnetGroup) MarshalJSON() ([]byte, error) { type Properties AWSDMSReplicationSubnetGroup return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSDMSReplicationSubnetGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSDMSReplicationSubnetGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSDMSReplicationSubnetGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSDMSReplicationSubnetGroupResources retrieves all AWSDMSReplicationSubnetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSDMSReplicationSubnetGroupResources() map[string]AWSDMSReplicationSubnetGroup { - results := map[string]AWSDMSReplicationSubnetGroup{} +func (t *Template) GetAllAWSDMSReplicationSubnetGroupResources() map[string]*AWSDMSReplicationSubnetGroup { + results := map[string]*AWSDMSReplicationSubnetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSDMSReplicationSubnetGroup: + case *AWSDMSReplicationSubnetGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSDMSReplicationSubnetGroupResources() map[string]AWSD if b, err := json.Marshal(resource); err == nil { var result AWSDMSReplicationSubnetGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSDMSReplicationSubnetGroupResources() map[string]AWSD // GetAWSDMSReplicationSubnetGroupWithName retrieves all AWSDMSReplicationSubnetGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDMSReplicationSubnetGroupWithName(name string) (AWSDMSReplicationSubnetGroup, error) { +func (t *Template) GetAWSDMSReplicationSubnetGroupWithName(name string) (*AWSDMSReplicationSubnetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSDMSReplicationSubnetGroup: + case *AWSDMSReplicationSubnetGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSDMSReplicationSubnetGroupWithName(name string) (AWSDMSR if b, err := json.Marshal(resource); err == nil { var result AWSDMSReplicationSubnetGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSDMSReplicationSubnetGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-dms-replicationtask.go b/cloudformation/aws-dms-replicationtask.go index 66f75149bc..549813b50a 100644 --- a/cloudformation/aws-dms-replicationtask.go +++ b/cloudformation/aws-dms-replicationtask.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -102,7 +103,7 @@ func (r *AWSDMSReplicationTask) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSDMSReplicationTask) MarshalJSON() ([]byte, error) { +func (r *AWSDMSReplicationTask) MarshalJSON() ([]byte, error) { type Properties AWSDMSReplicationTask return json.Marshal(&struct { Type string @@ -112,7 +113,7 @@ func (r AWSDMSReplicationTask) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -129,7 +130,11 @@ func (r *AWSDMSReplicationTask) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -149,11 +154,11 @@ func (r *AWSDMSReplicationTask) UnmarshalJSON(b []byte) error { } // GetAllAWSDMSReplicationTaskResources retrieves all AWSDMSReplicationTask items from an AWS CloudFormation template -func (t *Template) GetAllAWSDMSReplicationTaskResources() map[string]AWSDMSReplicationTask { - results := map[string]AWSDMSReplicationTask{} +func (t *Template) GetAllAWSDMSReplicationTaskResources() map[string]*AWSDMSReplicationTask { + results := map[string]*AWSDMSReplicationTask{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSDMSReplicationTask: + case *AWSDMSReplicationTask: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -165,7 +170,8 @@ func (t *Template) GetAllAWSDMSReplicationTaskResources() map[string]AWSDMSRepli if b, err := json.Marshal(resource); err == nil { var result AWSDMSReplicationTask if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -177,10 +183,10 @@ func (t *Template) GetAllAWSDMSReplicationTaskResources() map[string]AWSDMSRepli // GetAWSDMSReplicationTaskWithName retrieves all AWSDMSReplicationTask items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDMSReplicationTaskWithName(name string) (AWSDMSReplicationTask, error) { +func (t *Template) GetAWSDMSReplicationTaskWithName(name string) (*AWSDMSReplicationTask, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSDMSReplicationTask: + case *AWSDMSReplicationTask: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -192,12 +198,13 @@ func (t *Template) GetAWSDMSReplicationTaskWithName(name string) (AWSDMSReplicat if b, err := json.Marshal(resource); err == nil { var result AWSDMSReplicationTask if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSDMSReplicationTask{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-docdb-dbcluster.go b/cloudformation/aws-docdb-dbcluster.go new file mode 100644 index 0000000000..e93ed702b5 --- /dev/null +++ b/cloudformation/aws-docdb-dbcluster.go @@ -0,0 +1,245 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSDocDBDBCluster AWS CloudFormation Resource (AWS::DocDB::DBCluster) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html +type AWSDocDBDBCluster struct { + + // AvailabilityZones AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-availabilityzones + AvailabilityZones []string `json:"AvailabilityZones,omitempty"` + + // BackupRetentionPeriod AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-backupretentionperiod + BackupRetentionPeriod int `json:"BackupRetentionPeriod,omitempty"` + + // DBClusterIdentifier AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-dbclusteridentifier + DBClusterIdentifier string `json:"DBClusterIdentifier,omitempty"` + + // DBClusterParameterGroupName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-dbclusterparametergroupname + DBClusterParameterGroupName string `json:"DBClusterParameterGroupName,omitempty"` + + // DBSubnetGroupName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-dbsubnetgroupname + DBSubnetGroupName string `json:"DBSubnetGroupName,omitempty"` + + // EngineVersion AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-engineversion + EngineVersion string `json:"EngineVersion,omitempty"` + + // KmsKeyId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-kmskeyid + KmsKeyId string `json:"KmsKeyId,omitempty"` + + // MasterUserPassword AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-masteruserpassword + MasterUserPassword string `json:"MasterUserPassword,omitempty"` + + // MasterUsername AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-masterusername + MasterUsername string `json:"MasterUsername,omitempty"` + + // Port AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-port + Port int `json:"Port,omitempty"` + + // PreferredBackupWindow AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-preferredbackupwindow + PreferredBackupWindow string `json:"PreferredBackupWindow,omitempty"` + + // PreferredMaintenanceWindow AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-preferredmaintenancewindow + PreferredMaintenanceWindow string `json:"PreferredMaintenanceWindow,omitempty"` + + // SnapshotIdentifier AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-snapshotidentifier + SnapshotIdentifier string `json:"SnapshotIdentifier,omitempty"` + + // StorageEncrypted AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-storageencrypted + StorageEncrypted bool `json:"StorageEncrypted,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-tags + Tags []Tag `json:"Tags,omitempty"` + + // VpcSecurityGroupIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-vpcsecuritygroupids + VpcSecurityGroupIds []string `json:"VpcSecurityGroupIds,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSDocDBDBCluster) AWSCloudFormationType() string { + return "AWS::DocDB::DBCluster" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSDocDBDBCluster) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSDocDBDBCluster) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSDocDBDBCluster) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSDocDBDBCluster) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSDocDBDBCluster) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSDocDBDBCluster) MarshalJSON() ([]byte, error) { + type Properties AWSDocDBDBCluster + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSDocDBDBCluster) UnmarshalJSON(b []byte) error { + type Properties AWSDocDBDBCluster + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSDocDBDBCluster(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSDocDBDBClusterResources retrieves all AWSDocDBDBCluster items from an AWS CloudFormation template +func (t *Template) GetAllAWSDocDBDBClusterResources() map[string]*AWSDocDBDBCluster { + results := map[string]*AWSDocDBDBCluster{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSDocDBDBCluster: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::DocDB::DBCluster" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSDocDBDBCluster + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSDocDBDBClusterWithName retrieves all AWSDocDBDBCluster items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSDocDBDBClusterWithName(name string) (*AWSDocDBDBCluster, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSDocDBDBCluster: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::DocDB::DBCluster" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSDocDBDBCluster + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-docdb-dbclusterparametergroup.go b/cloudformation/aws-docdb-dbclusterparametergroup.go new file mode 100644 index 0000000000..6c5674040c --- /dev/null +++ b/cloudformation/aws-docdb-dbclusterparametergroup.go @@ -0,0 +1,190 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSDocDBDBClusterParameterGroup AWS CloudFormation Resource (AWS::DocDB::DBClusterParameterGroup) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html +type AWSDocDBDBClusterParameterGroup struct { + + // Description AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-description + Description string `json:"Description,omitempty"` + + // Family AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-family + Family string `json:"Family,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-name + Name string `json:"Name,omitempty"` + + // Parameters AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-parameters + Parameters interface{} `json:"Parameters,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-tags + Tags []Tag `json:"Tags,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSDocDBDBClusterParameterGroup) AWSCloudFormationType() string { + return "AWS::DocDB::DBClusterParameterGroup" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSDocDBDBClusterParameterGroup) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSDocDBDBClusterParameterGroup) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSDocDBDBClusterParameterGroup) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSDocDBDBClusterParameterGroup) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSDocDBDBClusterParameterGroup) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSDocDBDBClusterParameterGroup) MarshalJSON() ([]byte, error) { + type Properties AWSDocDBDBClusterParameterGroup + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSDocDBDBClusterParameterGroup) UnmarshalJSON(b []byte) error { + type Properties AWSDocDBDBClusterParameterGroup + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSDocDBDBClusterParameterGroup(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSDocDBDBClusterParameterGroupResources retrieves all AWSDocDBDBClusterParameterGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSDocDBDBClusterParameterGroupResources() map[string]*AWSDocDBDBClusterParameterGroup { + results := map[string]*AWSDocDBDBClusterParameterGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSDocDBDBClusterParameterGroup: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::DocDB::DBClusterParameterGroup" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSDocDBDBClusterParameterGroup + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSDocDBDBClusterParameterGroupWithName retrieves all AWSDocDBDBClusterParameterGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSDocDBDBClusterParameterGroupWithName(name string) (*AWSDocDBDBClusterParameterGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSDocDBDBClusterParameterGroup: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::DocDB::DBClusterParameterGroup" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSDocDBDBClusterParameterGroup + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-docdb-dbinstance.go b/cloudformation/aws-docdb-dbinstance.go new file mode 100644 index 0000000000..82e4b01ed7 --- /dev/null +++ b/cloudformation/aws-docdb-dbinstance.go @@ -0,0 +1,200 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSDocDBDBInstance AWS CloudFormation Resource (AWS::DocDB::DBInstance) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html +type AWSDocDBDBInstance struct { + + // AutoMinorVersionUpgrade AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-autominorversionupgrade + AutoMinorVersionUpgrade bool `json:"AutoMinorVersionUpgrade,omitempty"` + + // AvailabilityZone AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-availabilityzone + AvailabilityZone string `json:"AvailabilityZone,omitempty"` + + // DBClusterIdentifier AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-dbclusteridentifier + DBClusterIdentifier string `json:"DBClusterIdentifier,omitempty"` + + // DBInstanceClass AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-dbinstanceclass + DBInstanceClass string `json:"DBInstanceClass,omitempty"` + + // DBInstanceIdentifier AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-dbinstanceidentifier + DBInstanceIdentifier string `json:"DBInstanceIdentifier,omitempty"` + + // PreferredMaintenanceWindow AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-preferredmaintenancewindow + PreferredMaintenanceWindow string `json:"PreferredMaintenanceWindow,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-tags + Tags []Tag `json:"Tags,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSDocDBDBInstance) AWSCloudFormationType() string { + return "AWS::DocDB::DBInstance" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSDocDBDBInstance) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSDocDBDBInstance) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSDocDBDBInstance) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSDocDBDBInstance) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSDocDBDBInstance) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSDocDBDBInstance) MarshalJSON() ([]byte, error) { + type Properties AWSDocDBDBInstance + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSDocDBDBInstance) UnmarshalJSON(b []byte) error { + type Properties AWSDocDBDBInstance + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSDocDBDBInstance(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSDocDBDBInstanceResources retrieves all AWSDocDBDBInstance items from an AWS CloudFormation template +func (t *Template) GetAllAWSDocDBDBInstanceResources() map[string]*AWSDocDBDBInstance { + results := map[string]*AWSDocDBDBInstance{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSDocDBDBInstance: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::DocDB::DBInstance" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSDocDBDBInstance + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSDocDBDBInstanceWithName retrieves all AWSDocDBDBInstance items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSDocDBDBInstanceWithName(name string) (*AWSDocDBDBInstance, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSDocDBDBInstance: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::DocDB::DBInstance" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSDocDBDBInstance + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-docdb-dbsubnetgroup.go b/cloudformation/aws-docdb-dbsubnetgroup.go new file mode 100644 index 0000000000..8777adf658 --- /dev/null +++ b/cloudformation/aws-docdb-dbsubnetgroup.go @@ -0,0 +1,185 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSDocDBDBSubnetGroup AWS CloudFormation Resource (AWS::DocDB::DBSubnetGroup) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html +type AWSDocDBDBSubnetGroup struct { + + // DBSubnetGroupDescription AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html#cfn-docdb-dbsubnetgroup-dbsubnetgroupdescription + DBSubnetGroupDescription string `json:"DBSubnetGroupDescription,omitempty"` + + // DBSubnetGroupName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html#cfn-docdb-dbsubnetgroup-dbsubnetgroupname + DBSubnetGroupName string `json:"DBSubnetGroupName,omitempty"` + + // SubnetIds AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html#cfn-docdb-dbsubnetgroup-subnetids + SubnetIds []string `json:"SubnetIds,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html#cfn-docdb-dbsubnetgroup-tags + Tags []Tag `json:"Tags,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSDocDBDBSubnetGroup) AWSCloudFormationType() string { + return "AWS::DocDB::DBSubnetGroup" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSDocDBDBSubnetGroup) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSDocDBDBSubnetGroup) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSDocDBDBSubnetGroup) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSDocDBDBSubnetGroup) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSDocDBDBSubnetGroup) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSDocDBDBSubnetGroup) MarshalJSON() ([]byte, error) { + type Properties AWSDocDBDBSubnetGroup + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSDocDBDBSubnetGroup) UnmarshalJSON(b []byte) error { + type Properties AWSDocDBDBSubnetGroup + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSDocDBDBSubnetGroup(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSDocDBDBSubnetGroupResources retrieves all AWSDocDBDBSubnetGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSDocDBDBSubnetGroupResources() map[string]*AWSDocDBDBSubnetGroup { + results := map[string]*AWSDocDBDBSubnetGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSDocDBDBSubnetGroup: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::DocDB::DBSubnetGroup" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSDocDBDBSubnetGroup + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSDocDBDBSubnetGroupWithName retrieves all AWSDocDBDBSubnetGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSDocDBDBSubnetGroupWithName(name string) (*AWSDocDBDBSubnetGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSDocDBDBSubnetGroup: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::DocDB::DBSubnetGroup" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSDocDBDBSubnetGroup + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-dynamodb-table.go b/cloudformation/aws-dynamodb-table.go index 2694da3e3c..dcc81e5746 100644 --- a/cloudformation/aws-dynamodb-table.go +++ b/cloudformation/aws-dynamodb-table.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -117,7 +118,7 @@ func (r *AWSDynamoDBTable) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSDynamoDBTable) MarshalJSON() ([]byte, error) { +func (r *AWSDynamoDBTable) MarshalJSON() ([]byte, error) { type Properties AWSDynamoDBTable return json.Marshal(&struct { Type string @@ -127,7 +128,7 @@ func (r AWSDynamoDBTable) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -144,7 +145,11 @@ func (r *AWSDynamoDBTable) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -164,11 +169,11 @@ func (r *AWSDynamoDBTable) UnmarshalJSON(b []byte) error { } // GetAllAWSDynamoDBTableResources retrieves all AWSDynamoDBTable items from an AWS CloudFormation template -func (t *Template) GetAllAWSDynamoDBTableResources() map[string]AWSDynamoDBTable { - results := map[string]AWSDynamoDBTable{} +func (t *Template) GetAllAWSDynamoDBTableResources() map[string]*AWSDynamoDBTable { + results := map[string]*AWSDynamoDBTable{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSDynamoDBTable: + case *AWSDynamoDBTable: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -180,7 +185,8 @@ func (t *Template) GetAllAWSDynamoDBTableResources() map[string]AWSDynamoDBTable if b, err := json.Marshal(resource); err == nil { var result AWSDynamoDBTable if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -192,10 +198,10 @@ func (t *Template) GetAllAWSDynamoDBTableResources() map[string]AWSDynamoDBTable // GetAWSDynamoDBTableWithName retrieves all AWSDynamoDBTable items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDynamoDBTableWithName(name string) (AWSDynamoDBTable, error) { +func (t *Template) GetAWSDynamoDBTableWithName(name string) (*AWSDynamoDBTable, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSDynamoDBTable: + case *AWSDynamoDBTable: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -207,12 +213,13 @@ func (t *Template) GetAWSDynamoDBTableWithName(name string) (AWSDynamoDBTable, e if b, err := json.Marshal(resource); err == nil { var result AWSDynamoDBTable if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSDynamoDBTable{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-customergateway.go b/cloudformation/aws-ec2-customergateway.go index bc6b549687..3e4307b497 100644 --- a/cloudformation/aws-ec2-customergateway.go +++ b/cloudformation/aws-ec2-customergateway.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSEC2CustomerGateway) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2CustomerGateway) MarshalJSON() ([]byte, error) { +func (r *AWSEC2CustomerGateway) MarshalJSON() ([]byte, error) { type Properties AWSEC2CustomerGateway return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSEC2CustomerGateway) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSEC2CustomerGateway) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSEC2CustomerGateway) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2CustomerGatewayResources retrieves all AWSEC2CustomerGateway items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2CustomerGatewayResources() map[string]AWSEC2CustomerGateway { - results := map[string]AWSEC2CustomerGateway{} +func (t *Template) GetAllAWSEC2CustomerGatewayResources() map[string]*AWSEC2CustomerGateway { + results := map[string]*AWSEC2CustomerGateway{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2CustomerGateway: + case *AWSEC2CustomerGateway: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSEC2CustomerGatewayResources() map[string]AWSEC2Custo if b, err := json.Marshal(resource); err == nil { var result AWSEC2CustomerGateway if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSEC2CustomerGatewayResources() map[string]AWSEC2Custo // GetAWSEC2CustomerGatewayWithName retrieves all AWSEC2CustomerGateway items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2CustomerGatewayWithName(name string) (AWSEC2CustomerGateway, error) { +func (t *Template) GetAWSEC2CustomerGatewayWithName(name string) (*AWSEC2CustomerGateway, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2CustomerGateway: + case *AWSEC2CustomerGateway: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSEC2CustomerGatewayWithName(name string) (AWSEC2Customer if b, err := json.Marshal(resource); err == nil { var result AWSEC2CustomerGateway if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2CustomerGateway{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-dhcpoptions.go b/cloudformation/aws-ec2-dhcpoptions.go index 72432a6b07..a7aaafe9f3 100644 --- a/cloudformation/aws-ec2-dhcpoptions.go +++ b/cloudformation/aws-ec2-dhcpoptions.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -87,7 +88,7 @@ func (r *AWSEC2DHCPOptions) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2DHCPOptions) MarshalJSON() ([]byte, error) { +func (r *AWSEC2DHCPOptions) MarshalJSON() ([]byte, error) { type Properties AWSEC2DHCPOptions return json.Marshal(&struct { Type string @@ -97,7 +98,7 @@ func (r AWSEC2DHCPOptions) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -114,7 +115,11 @@ func (r *AWSEC2DHCPOptions) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -134,11 +139,11 @@ func (r *AWSEC2DHCPOptions) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2DHCPOptionsResources retrieves all AWSEC2DHCPOptions items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2DHCPOptionsResources() map[string]AWSEC2DHCPOptions { - results := map[string]AWSEC2DHCPOptions{} +func (t *Template) GetAllAWSEC2DHCPOptionsResources() map[string]*AWSEC2DHCPOptions { + results := map[string]*AWSEC2DHCPOptions{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2DHCPOptions: + case *AWSEC2DHCPOptions: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -150,7 +155,8 @@ func (t *Template) GetAllAWSEC2DHCPOptionsResources() map[string]AWSEC2DHCPOptio if b, err := json.Marshal(resource); err == nil { var result AWSEC2DHCPOptions if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -162,10 +168,10 @@ func (t *Template) GetAllAWSEC2DHCPOptionsResources() map[string]AWSEC2DHCPOptio // GetAWSEC2DHCPOptionsWithName retrieves all AWSEC2DHCPOptions items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2DHCPOptionsWithName(name string) (AWSEC2DHCPOptions, error) { +func (t *Template) GetAWSEC2DHCPOptionsWithName(name string) (*AWSEC2DHCPOptions, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2DHCPOptions: + case *AWSEC2DHCPOptions: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -177,12 +183,13 @@ func (t *Template) GetAWSEC2DHCPOptionsWithName(name string) (AWSEC2DHCPOptions, if b, err := json.Marshal(resource); err == nil { var result AWSEC2DHCPOptions if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2DHCPOptions{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-ec2fleet.go b/cloudformation/aws-ec2-ec2fleet.go index 82c48a92c4..2c40d26390 100644 --- a/cloudformation/aws-ec2-ec2fleet.go +++ b/cloudformation/aws-ec2-ec2fleet.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -58,12 +59,12 @@ type AWSEC2EC2Fleet struct { // ValidFrom AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html#cfn-ec2-ec2fleet-validfrom - ValidFrom int `json:"ValidFrom,omitempty"` + ValidFrom string `json:"ValidFrom,omitempty"` // ValidUntil AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html#cfn-ec2-ec2fleet-validuntil - ValidUntil int `json:"ValidUntil,omitempty"` + ValidUntil string `json:"ValidUntil,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy _deletionPolicy DeletionPolicy @@ -112,7 +113,7 @@ func (r *AWSEC2EC2Fleet) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2EC2Fleet) MarshalJSON() ([]byte, error) { +func (r *AWSEC2EC2Fleet) MarshalJSON() ([]byte, error) { type Properties AWSEC2EC2Fleet return json.Marshal(&struct { Type string @@ -122,7 +123,7 @@ func (r AWSEC2EC2Fleet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -139,7 +140,11 @@ func (r *AWSEC2EC2Fleet) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -159,11 +164,11 @@ func (r *AWSEC2EC2Fleet) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2EC2FleetResources retrieves all AWSEC2EC2Fleet items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2EC2FleetResources() map[string]AWSEC2EC2Fleet { - results := map[string]AWSEC2EC2Fleet{} +func (t *Template) GetAllAWSEC2EC2FleetResources() map[string]*AWSEC2EC2Fleet { + results := map[string]*AWSEC2EC2Fleet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2EC2Fleet: + case *AWSEC2EC2Fleet: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -175,7 +180,8 @@ func (t *Template) GetAllAWSEC2EC2FleetResources() map[string]AWSEC2EC2Fleet { if b, err := json.Marshal(resource); err == nil { var result AWSEC2EC2Fleet if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -187,10 +193,10 @@ func (t *Template) GetAllAWSEC2EC2FleetResources() map[string]AWSEC2EC2Fleet { // GetAWSEC2EC2FleetWithName retrieves all AWSEC2EC2Fleet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2EC2FleetWithName(name string) (AWSEC2EC2Fleet, error) { +func (t *Template) GetAWSEC2EC2FleetWithName(name string) (*AWSEC2EC2Fleet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2EC2Fleet: + case *AWSEC2EC2Fleet: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -202,12 +208,13 @@ func (t *Template) GetAWSEC2EC2FleetWithName(name string) (AWSEC2EC2Fleet, error if b, err := json.Marshal(resource); err == nil { var result AWSEC2EC2Fleet if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2EC2Fleet{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-egressonlyinternetgateway.go b/cloudformation/aws-ec2-egressonlyinternetgateway.go index e1de699f7f..81a478d108 100644 --- a/cloudformation/aws-ec2-egressonlyinternetgateway.go +++ b/cloudformation/aws-ec2-egressonlyinternetgateway.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -62,7 +63,7 @@ func (r *AWSEC2EgressOnlyInternetGateway) SetDeletionPolicy(policy DeletionPolic // 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 AWSEC2EgressOnlyInternetGateway) MarshalJSON() ([]byte, error) { +func (r *AWSEC2EgressOnlyInternetGateway) MarshalJSON() ([]byte, error) { type Properties AWSEC2EgressOnlyInternetGateway return json.Marshal(&struct { Type string @@ -72,7 +73,7 @@ func (r AWSEC2EgressOnlyInternetGateway) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -89,7 +90,11 @@ func (r *AWSEC2EgressOnlyInternetGateway) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -109,11 +114,11 @@ func (r *AWSEC2EgressOnlyInternetGateway) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2EgressOnlyInternetGatewayResources retrieves all AWSEC2EgressOnlyInternetGateway items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2EgressOnlyInternetGatewayResources() map[string]AWSEC2EgressOnlyInternetGateway { - results := map[string]AWSEC2EgressOnlyInternetGateway{} +func (t *Template) GetAllAWSEC2EgressOnlyInternetGatewayResources() map[string]*AWSEC2EgressOnlyInternetGateway { + results := map[string]*AWSEC2EgressOnlyInternetGateway{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2EgressOnlyInternetGateway: + case *AWSEC2EgressOnlyInternetGateway: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -125,7 +130,8 @@ func (t *Template) GetAllAWSEC2EgressOnlyInternetGatewayResources() map[string]A if b, err := json.Marshal(resource); err == nil { var result AWSEC2EgressOnlyInternetGateway if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -137,10 +143,10 @@ func (t *Template) GetAllAWSEC2EgressOnlyInternetGatewayResources() map[string]A // GetAWSEC2EgressOnlyInternetGatewayWithName retrieves all AWSEC2EgressOnlyInternetGateway items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2EgressOnlyInternetGatewayWithName(name string) (AWSEC2EgressOnlyInternetGateway, error) { +func (t *Template) GetAWSEC2EgressOnlyInternetGatewayWithName(name string) (*AWSEC2EgressOnlyInternetGateway, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2EgressOnlyInternetGateway: + case *AWSEC2EgressOnlyInternetGateway: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -152,12 +158,13 @@ func (t *Template) GetAWSEC2EgressOnlyInternetGatewayWithName(name string) (AWSE if b, err := json.Marshal(resource); err == nil { var result AWSEC2EgressOnlyInternetGateway if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2EgressOnlyInternetGateway{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-eip.go b/cloudformation/aws-ec2-eip.go index 16eaaa1790..4f0a6dd67b 100644 --- a/cloudformation/aws-ec2-eip.go +++ b/cloudformation/aws-ec2-eip.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSEC2EIP) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2EIP) MarshalJSON() ([]byte, error) { +func (r *AWSEC2EIP) MarshalJSON() ([]byte, error) { type Properties AWSEC2EIP return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSEC2EIP) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSEC2EIP) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSEC2EIP) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2EIPResources retrieves all AWSEC2EIP items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2EIPResources() map[string]AWSEC2EIP { - results := map[string]AWSEC2EIP{} +func (t *Template) GetAllAWSEC2EIPResources() map[string]*AWSEC2EIP { + results := map[string]*AWSEC2EIP{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2EIP: + case *AWSEC2EIP: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSEC2EIPResources() map[string]AWSEC2EIP { if b, err := json.Marshal(resource); err == nil { var result AWSEC2EIP if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSEC2EIPResources() map[string]AWSEC2EIP { // GetAWSEC2EIPWithName retrieves all AWSEC2EIP items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2EIPWithName(name string) (AWSEC2EIP, error) { +func (t *Template) GetAWSEC2EIPWithName(name string) (*AWSEC2EIP, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2EIP: + case *AWSEC2EIP: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSEC2EIPWithName(name string) (AWSEC2EIP, error) { if b, err := json.Marshal(resource); err == nil { var result AWSEC2EIP if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2EIP{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-eipassociation.go b/cloudformation/aws-ec2-eipassociation.go index c846cbea83..2fc9157467 100644 --- a/cloudformation/aws-ec2-eipassociation.go +++ b/cloudformation/aws-ec2-eipassociation.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSEC2EIPAssociation) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2EIPAssociation) MarshalJSON() ([]byte, error) { +func (r *AWSEC2EIPAssociation) MarshalJSON() ([]byte, error) { type Properties AWSEC2EIPAssociation return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSEC2EIPAssociation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSEC2EIPAssociation) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSEC2EIPAssociation) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2EIPAssociationResources retrieves all AWSEC2EIPAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2EIPAssociationResources() map[string]AWSEC2EIPAssociation { - results := map[string]AWSEC2EIPAssociation{} +func (t *Template) GetAllAWSEC2EIPAssociationResources() map[string]*AWSEC2EIPAssociation { + results := map[string]*AWSEC2EIPAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2EIPAssociation: + case *AWSEC2EIPAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSEC2EIPAssociationResources() map[string]AWSEC2EIPAss if b, err := json.Marshal(resource); err == nil { var result AWSEC2EIPAssociation if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSEC2EIPAssociationResources() map[string]AWSEC2EIPAss // GetAWSEC2EIPAssociationWithName retrieves all AWSEC2EIPAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2EIPAssociationWithName(name string) (AWSEC2EIPAssociation, error) { +func (t *Template) GetAWSEC2EIPAssociationWithName(name string) (*AWSEC2EIPAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2EIPAssociation: + case *AWSEC2EIPAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSEC2EIPAssociationWithName(name string) (AWSEC2EIPAssoci if b, err := json.Marshal(resource); err == nil { var result AWSEC2EIPAssociation if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2EIPAssociation{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-flowlog.go b/cloudformation/aws-ec2-flowlog.go index 6361e0bcc9..90ca45bce0 100644 --- a/cloudformation/aws-ec2-flowlog.go +++ b/cloudformation/aws-ec2-flowlog.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -92,7 +93,7 @@ func (r *AWSEC2FlowLog) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2FlowLog) MarshalJSON() ([]byte, error) { +func (r *AWSEC2FlowLog) MarshalJSON() ([]byte, error) { type Properties AWSEC2FlowLog return json.Marshal(&struct { Type string @@ -102,7 +103,7 @@ func (r AWSEC2FlowLog) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -119,7 +120,11 @@ func (r *AWSEC2FlowLog) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -139,11 +144,11 @@ func (r *AWSEC2FlowLog) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2FlowLogResources retrieves all AWSEC2FlowLog items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2FlowLogResources() map[string]AWSEC2FlowLog { - results := map[string]AWSEC2FlowLog{} +func (t *Template) GetAllAWSEC2FlowLogResources() map[string]*AWSEC2FlowLog { + results := map[string]*AWSEC2FlowLog{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2FlowLog: + case *AWSEC2FlowLog: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -155,7 +160,8 @@ func (t *Template) GetAllAWSEC2FlowLogResources() map[string]AWSEC2FlowLog { if b, err := json.Marshal(resource); err == nil { var result AWSEC2FlowLog if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -167,10 +173,10 @@ func (t *Template) GetAllAWSEC2FlowLogResources() map[string]AWSEC2FlowLog { // GetAWSEC2FlowLogWithName retrieves all AWSEC2FlowLog items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2FlowLogWithName(name string) (AWSEC2FlowLog, error) { +func (t *Template) GetAWSEC2FlowLogWithName(name string) (*AWSEC2FlowLog, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2FlowLog: + case *AWSEC2FlowLog: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -182,12 +188,13 @@ func (t *Template) GetAWSEC2FlowLogWithName(name string) (AWSEC2FlowLog, error) if b, err := json.Marshal(resource); err == nil { var result AWSEC2FlowLog if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2FlowLog{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-host.go b/cloudformation/aws-ec2-host.go index 3519b74ce4..3292b523cf 100644 --- a/cloudformation/aws-ec2-host.go +++ b/cloudformation/aws-ec2-host.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSEC2Host) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2Host) MarshalJSON() ([]byte, error) { +func (r *AWSEC2Host) MarshalJSON() ([]byte, error) { type Properties AWSEC2Host return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSEC2Host) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSEC2Host) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSEC2Host) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2HostResources retrieves all AWSEC2Host items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2HostResources() map[string]AWSEC2Host { - results := map[string]AWSEC2Host{} +func (t *Template) GetAllAWSEC2HostResources() map[string]*AWSEC2Host { + results := map[string]*AWSEC2Host{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2Host: + case *AWSEC2Host: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSEC2HostResources() map[string]AWSEC2Host { if b, err := json.Marshal(resource); err == nil { var result AWSEC2Host if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSEC2HostResources() map[string]AWSEC2Host { // GetAWSEC2HostWithName retrieves all AWSEC2Host items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2HostWithName(name string) (AWSEC2Host, error) { +func (t *Template) GetAWSEC2HostWithName(name string) (*AWSEC2Host, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2Host: + case *AWSEC2Host: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSEC2HostWithName(name string) (AWSEC2Host, error) { if b, err := json.Marshal(resource); err == nil { var result AWSEC2Host if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2Host{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-instance.go b/cloudformation/aws-ec2-instance.go index e7462526b9..db1dc74091 100644 --- a/cloudformation/aws-ec2-instance.go +++ b/cloudformation/aws-ec2-instance.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -236,7 +237,7 @@ func (r *AWSEC2Instance) SetCreationPolicy(policy *CreationPolicy) { // 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 AWSEC2Instance) MarshalJSON() ([]byte, error) { +func (r *AWSEC2Instance) MarshalJSON() ([]byte, error) { type Properties AWSEC2Instance return json.Marshal(&struct { Type string @@ -248,7 +249,7 @@ func (r AWSEC2Instance) MarshalJSON() ([]byte, error) { CreationPolicy *CreationPolicy `json:"CreationPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -267,7 +268,11 @@ func (r *AWSEC2Instance) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -287,11 +292,11 @@ func (r *AWSEC2Instance) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2InstanceResources retrieves all AWSEC2Instance items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2InstanceResources() map[string]AWSEC2Instance { - results := map[string]AWSEC2Instance{} +func (t *Template) GetAllAWSEC2InstanceResources() map[string]*AWSEC2Instance { + results := map[string]*AWSEC2Instance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2Instance: + case *AWSEC2Instance: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -303,7 +308,8 @@ func (t *Template) GetAllAWSEC2InstanceResources() map[string]AWSEC2Instance { if b, err := json.Marshal(resource); err == nil { var result AWSEC2Instance if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -315,10 +321,10 @@ func (t *Template) GetAllAWSEC2InstanceResources() map[string]AWSEC2Instance { // GetAWSEC2InstanceWithName retrieves all AWSEC2Instance items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2InstanceWithName(name string) (AWSEC2Instance, error) { +func (t *Template) GetAWSEC2InstanceWithName(name string) (*AWSEC2Instance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2Instance: + case *AWSEC2Instance: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -330,12 +336,13 @@ func (t *Template) GetAWSEC2InstanceWithName(name string) (AWSEC2Instance, error if b, err := json.Marshal(resource); err == nil { var result AWSEC2Instance if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2Instance{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-internetgateway.go b/cloudformation/aws-ec2-internetgateway.go index 43889f967c..046605f9f1 100644 --- a/cloudformation/aws-ec2-internetgateway.go +++ b/cloudformation/aws-ec2-internetgateway.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -62,7 +63,7 @@ func (r *AWSEC2InternetGateway) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2InternetGateway) MarshalJSON() ([]byte, error) { +func (r *AWSEC2InternetGateway) MarshalJSON() ([]byte, error) { type Properties AWSEC2InternetGateway return json.Marshal(&struct { Type string @@ -72,7 +73,7 @@ func (r AWSEC2InternetGateway) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -89,7 +90,11 @@ func (r *AWSEC2InternetGateway) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -109,11 +114,11 @@ func (r *AWSEC2InternetGateway) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2InternetGatewayResources retrieves all AWSEC2InternetGateway items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2InternetGatewayResources() map[string]AWSEC2InternetGateway { - results := map[string]AWSEC2InternetGateway{} +func (t *Template) GetAllAWSEC2InternetGatewayResources() map[string]*AWSEC2InternetGateway { + results := map[string]*AWSEC2InternetGateway{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2InternetGateway: + case *AWSEC2InternetGateway: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -125,7 +130,8 @@ func (t *Template) GetAllAWSEC2InternetGatewayResources() map[string]AWSEC2Inter if b, err := json.Marshal(resource); err == nil { var result AWSEC2InternetGateway if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -137,10 +143,10 @@ func (t *Template) GetAllAWSEC2InternetGatewayResources() map[string]AWSEC2Inter // GetAWSEC2InternetGatewayWithName retrieves all AWSEC2InternetGateway items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2InternetGatewayWithName(name string) (AWSEC2InternetGateway, error) { +func (t *Template) GetAWSEC2InternetGatewayWithName(name string) (*AWSEC2InternetGateway, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2InternetGateway: + case *AWSEC2InternetGateway: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -152,12 +158,13 @@ func (t *Template) GetAWSEC2InternetGatewayWithName(name string) (AWSEC2Internet if b, err := json.Marshal(resource); err == nil { var result AWSEC2InternetGateway if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2InternetGateway{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-launchtemplate.go b/cloudformation/aws-ec2-launchtemplate.go index c73f2dc29b..ef3d36f2ed 100644 --- a/cloudformation/aws-ec2-launchtemplate.go +++ b/cloudformation/aws-ec2-launchtemplate.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSEC2LaunchTemplate) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2LaunchTemplate) MarshalJSON() ([]byte, error) { +func (r *AWSEC2LaunchTemplate) MarshalJSON() ([]byte, error) { type Properties AWSEC2LaunchTemplate return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSEC2LaunchTemplate) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSEC2LaunchTemplate) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSEC2LaunchTemplate) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2LaunchTemplateResources retrieves all AWSEC2LaunchTemplate items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2LaunchTemplateResources() map[string]AWSEC2LaunchTemplate { - results := map[string]AWSEC2LaunchTemplate{} +func (t *Template) GetAllAWSEC2LaunchTemplateResources() map[string]*AWSEC2LaunchTemplate { + results := map[string]*AWSEC2LaunchTemplate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2LaunchTemplate: + case *AWSEC2LaunchTemplate: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSEC2LaunchTemplateResources() map[string]AWSEC2Launch if b, err := json.Marshal(resource); err == nil { var result AWSEC2LaunchTemplate if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSEC2LaunchTemplateResources() map[string]AWSEC2Launch // GetAWSEC2LaunchTemplateWithName retrieves all AWSEC2LaunchTemplate items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2LaunchTemplateWithName(name string) (AWSEC2LaunchTemplate, error) { +func (t *Template) GetAWSEC2LaunchTemplateWithName(name string) (*AWSEC2LaunchTemplate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2LaunchTemplate: + case *AWSEC2LaunchTemplate: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSEC2LaunchTemplateWithName(name string) (AWSEC2LaunchTem if b, err := json.Marshal(resource); err == nil { var result AWSEC2LaunchTemplate if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2LaunchTemplate{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-launchtemplate_capacityreservationpreference.go b/cloudformation/aws-ec2-launchtemplate_capacityreservationpreference.go new file mode 100644 index 0000000000..5e08753992 --- /dev/null +++ b/cloudformation/aws-ec2-launchtemplate_capacityreservationpreference.go @@ -0,0 +1,50 @@ +package cloudformation + +// AWSEC2LaunchTemplate_CapacityReservationPreference AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.CapacityReservationPreference) +// See: +type AWSEC2LaunchTemplate_CapacityReservationPreference struct { + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSEC2LaunchTemplate_CapacityReservationPreference) AWSCloudFormationType() string { + return "AWS::EC2::LaunchTemplate.CapacityReservationPreference" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSEC2LaunchTemplate_CapacityReservationPreference) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSEC2LaunchTemplate_CapacityReservationPreference) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSEC2LaunchTemplate_CapacityReservationPreference) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSEC2LaunchTemplate_CapacityReservationPreference) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSEC2LaunchTemplate_CapacityReservationPreference) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-ec2-launchtemplate_capacityreservationspecification.go b/cloudformation/aws-ec2-launchtemplate_capacityreservationspecification.go new file mode 100644 index 0000000000..423cedf18b --- /dev/null +++ b/cloudformation/aws-ec2-launchtemplate_capacityreservationspecification.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSEC2LaunchTemplate_CapacityReservationSpecification AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.CapacityReservationSpecification) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-capacityreservationspecification.html +type AWSEC2LaunchTemplate_CapacityReservationSpecification struct { + + // CapacityReservationPreference AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-capacityreservationspecification.html#cfn-ec2-launchtemplate-launchtemplatedata-capacityreservationspecification-capacityreservationpreference + CapacityReservationPreference *AWSEC2LaunchTemplate_CapacityReservationPreference `json:"CapacityReservationPreference,omitempty"` + + // CapacityReservationTarget AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-capacityreservationspecification.html#cfn-ec2-launchtemplate-launchtemplatedata-capacityreservationspecification-capacityreservationtarget + CapacityReservationTarget *AWSEC2LaunchTemplate_CapacityReservationTarget `json:"CapacityReservationTarget,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSEC2LaunchTemplate_CapacityReservationSpecification) AWSCloudFormationType() string { + return "AWS::EC2::LaunchTemplate.CapacityReservationSpecification" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSEC2LaunchTemplate_CapacityReservationSpecification) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSEC2LaunchTemplate_CapacityReservationSpecification) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSEC2LaunchTemplate_CapacityReservationSpecification) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSEC2LaunchTemplate_CapacityReservationSpecification) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSEC2LaunchTemplate_CapacityReservationSpecification) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-ec2-launchtemplate_capacityreservationtarget.go b/cloudformation/aws-ec2-launchtemplate_capacityreservationtarget.go new file mode 100644 index 0000000000..f2bb883d02 --- /dev/null +++ b/cloudformation/aws-ec2-launchtemplate_capacityreservationtarget.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSEC2LaunchTemplate_CapacityReservationTarget AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.CapacityReservationTarget) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-capacityreservationtarget.html +type AWSEC2LaunchTemplate_CapacityReservationTarget struct { + + // CapacityReservationId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-capacityreservationtarget.html#cfn-ec2-launchtemplate-capacityreservationtarget-capacityreservationid + CapacityReservationId string `json:"CapacityReservationId,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSEC2LaunchTemplate_CapacityReservationTarget) AWSCloudFormationType() string { + return "AWS::EC2::LaunchTemplate.CapacityReservationTarget" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSEC2LaunchTemplate_CapacityReservationTarget) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSEC2LaunchTemplate_CapacityReservationTarget) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSEC2LaunchTemplate_CapacityReservationTarget) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSEC2LaunchTemplate_CapacityReservationTarget) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSEC2LaunchTemplate_CapacityReservationTarget) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-ec2-launchtemplate_cpuoptions.go b/cloudformation/aws-ec2-launchtemplate_cpuoptions.go new file mode 100644 index 0000000000..13a1ac646d --- /dev/null +++ b/cloudformation/aws-ec2-launchtemplate_cpuoptions.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSEC2LaunchTemplate_CpuOptions AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.CpuOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-cpuoptions.html +type AWSEC2LaunchTemplate_CpuOptions struct { + + // CoreCount AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-cpuoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-cpuoptions-corecount + CoreCount int `json:"CoreCount,omitempty"` + + // ThreadsPerCore AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-cpuoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-cpuoptions-threadspercore + ThreadsPerCore int `json:"ThreadsPerCore,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSEC2LaunchTemplate_CpuOptions) AWSCloudFormationType() string { + return "AWS::EC2::LaunchTemplate.CpuOptions" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSEC2LaunchTemplate_CpuOptions) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSEC2LaunchTemplate_CpuOptions) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSEC2LaunchTemplate_CpuOptions) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSEC2LaunchTemplate_CpuOptions) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSEC2LaunchTemplate_CpuOptions) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-ec2-launchtemplate_hibernationoptions.go b/cloudformation/aws-ec2-launchtemplate_hibernationoptions.go new file mode 100644 index 0000000000..39383a650d --- /dev/null +++ b/cloudformation/aws-ec2-launchtemplate_hibernationoptions.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSEC2LaunchTemplate_HibernationOptions AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.HibernationOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-hibernationoptions.html +type AWSEC2LaunchTemplate_HibernationOptions struct { + + // Configured AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-hibernationoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-hibernationoptions-configured + Configured bool `json:"Configured,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSEC2LaunchTemplate_HibernationOptions) AWSCloudFormationType() string { + return "AWS::EC2::LaunchTemplate.HibernationOptions" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSEC2LaunchTemplate_HibernationOptions) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSEC2LaunchTemplate_HibernationOptions) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSEC2LaunchTemplate_HibernationOptions) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSEC2LaunchTemplate_HibernationOptions) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSEC2LaunchTemplate_HibernationOptions) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-ec2-launchtemplate_launchtemplatedata.go b/cloudformation/aws-ec2-launchtemplate_launchtemplatedata.go index 82e0267f82..77b1c5dd81 100644 --- a/cloudformation/aws-ec2-launchtemplate_launchtemplatedata.go +++ b/cloudformation/aws-ec2-launchtemplate_launchtemplatedata.go @@ -9,6 +9,16 @@ type AWSEC2LaunchTemplate_LaunchTemplateData struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-blockdevicemappings BlockDeviceMappings []AWSEC2LaunchTemplate_BlockDeviceMapping `json:"BlockDeviceMappings,omitempty"` + // CapacityReservationSpecification AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-capacityreservationspecification + CapacityReservationSpecification *AWSEC2LaunchTemplate_CapacityReservationSpecification `json:"CapacityReservationSpecification,omitempty"` + + // CpuOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-cpuoptions + CpuOptions *AWSEC2LaunchTemplate_CpuOptions `json:"CpuOptions,omitempty"` + // CreditSpecification AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-creditspecification @@ -29,6 +39,16 @@ type AWSEC2LaunchTemplate_LaunchTemplateData struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-elasticgpuspecifications ElasticGpuSpecifications []AWSEC2LaunchTemplate_ElasticGpuSpecification `json:"ElasticGpuSpecifications,omitempty"` + // ElasticInferenceAccelerators AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-elasticinferenceaccelerators + ElasticInferenceAccelerators []AWSEC2LaunchTemplate_LaunchTemplateElasticInferenceAccelerator `json:"ElasticInferenceAccelerators,omitempty"` + + // HibernationOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-hibernationoptions + HibernationOptions *AWSEC2LaunchTemplate_HibernationOptions `json:"HibernationOptions,omitempty"` + // IamInstanceProfile AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-iaminstanceprofile @@ -64,6 +84,11 @@ type AWSEC2LaunchTemplate_LaunchTemplateData struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-keyname KeyName string `json:"KeyName,omitempty"` + // LicenseSpecifications AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-licensespecifications + LicenseSpecifications []AWSEC2LaunchTemplate_LicenseSpecification `json:"LicenseSpecifications,omitempty"` + // Monitoring AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-monitoring diff --git a/cloudformation/aws-ec2-launchtemplate_launchtemplateelasticinferenceaccelerator.go b/cloudformation/aws-ec2-launchtemplate_launchtemplateelasticinferenceaccelerator.go new file mode 100644 index 0000000000..b711bfb919 --- /dev/null +++ b/cloudformation/aws-ec2-launchtemplate_launchtemplateelasticinferenceaccelerator.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSEC2LaunchTemplate_LaunchTemplateElasticInferenceAccelerator AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.LaunchTemplateElasticInferenceAccelerator) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplateelasticinferenceaccelerator.html +type AWSEC2LaunchTemplate_LaunchTemplateElasticInferenceAccelerator struct { + + // Type AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplateelasticinferenceaccelerator.html#cfn-ec2-launchtemplate-launchtemplateelasticinferenceaccelerator-type + Type string `json:"Type,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSEC2LaunchTemplate_LaunchTemplateElasticInferenceAccelerator) AWSCloudFormationType() string { + return "AWS::EC2::LaunchTemplate.LaunchTemplateElasticInferenceAccelerator" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSEC2LaunchTemplate_LaunchTemplateElasticInferenceAccelerator) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSEC2LaunchTemplate_LaunchTemplateElasticInferenceAccelerator) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSEC2LaunchTemplate_LaunchTemplateElasticInferenceAccelerator) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSEC2LaunchTemplate_LaunchTemplateElasticInferenceAccelerator) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSEC2LaunchTemplate_LaunchTemplateElasticInferenceAccelerator) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-ec2-launchtemplate_licensespecification.go b/cloudformation/aws-ec2-launchtemplate_licensespecification.go new file mode 100644 index 0000000000..85c34fbd9a --- /dev/null +++ b/cloudformation/aws-ec2-launchtemplate_licensespecification.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSEC2LaunchTemplate_LicenseSpecification AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.LicenseSpecification) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-licensespecification.html +type AWSEC2LaunchTemplate_LicenseSpecification struct { + + // LicenseConfigurationArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-licensespecification.html#cfn-ec2-launchtemplate-licensespecification-licenseconfigurationarn + LicenseConfigurationArn string `json:"LicenseConfigurationArn,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSEC2LaunchTemplate_LicenseSpecification) AWSCloudFormationType() string { + return "AWS::EC2::LaunchTemplate.LicenseSpecification" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSEC2LaunchTemplate_LicenseSpecification) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSEC2LaunchTemplate_LicenseSpecification) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSEC2LaunchTemplate_LicenseSpecification) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSEC2LaunchTemplate_LicenseSpecification) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSEC2LaunchTemplate_LicenseSpecification) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-ec2-natgateway.go b/cloudformation/aws-ec2-natgateway.go index 5511fcc424..fc5ed49714 100644 --- a/cloudformation/aws-ec2-natgateway.go +++ b/cloudformation/aws-ec2-natgateway.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSEC2NatGateway) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2NatGateway) MarshalJSON() ([]byte, error) { +func (r *AWSEC2NatGateway) MarshalJSON() ([]byte, error) { type Properties AWSEC2NatGateway return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSEC2NatGateway) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSEC2NatGateway) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSEC2NatGateway) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2NatGatewayResources retrieves all AWSEC2NatGateway items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2NatGatewayResources() map[string]AWSEC2NatGateway { - results := map[string]AWSEC2NatGateway{} +func (t *Template) GetAllAWSEC2NatGatewayResources() map[string]*AWSEC2NatGateway { + results := map[string]*AWSEC2NatGateway{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2NatGateway: + case *AWSEC2NatGateway: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSEC2NatGatewayResources() map[string]AWSEC2NatGateway if b, err := json.Marshal(resource); err == nil { var result AWSEC2NatGateway if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSEC2NatGatewayResources() map[string]AWSEC2NatGateway // GetAWSEC2NatGatewayWithName retrieves all AWSEC2NatGateway items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2NatGatewayWithName(name string) (AWSEC2NatGateway, error) { +func (t *Template) GetAWSEC2NatGatewayWithName(name string) (*AWSEC2NatGateway, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2NatGateway: + case *AWSEC2NatGateway: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSEC2NatGatewayWithName(name string) (AWSEC2NatGateway, e if b, err := json.Marshal(resource); err == nil { var result AWSEC2NatGateway if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2NatGateway{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-networkacl.go b/cloudformation/aws-ec2-networkacl.go index 7efc392532..a65b4e5bf4 100644 --- a/cloudformation/aws-ec2-networkacl.go +++ b/cloudformation/aws-ec2-networkacl.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSEC2NetworkAcl) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2NetworkAcl) MarshalJSON() ([]byte, error) { +func (r *AWSEC2NetworkAcl) MarshalJSON() ([]byte, error) { type Properties AWSEC2NetworkAcl return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSEC2NetworkAcl) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSEC2NetworkAcl) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSEC2NetworkAcl) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2NetworkAclResources retrieves all AWSEC2NetworkAcl items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2NetworkAclResources() map[string]AWSEC2NetworkAcl { - results := map[string]AWSEC2NetworkAcl{} +func (t *Template) GetAllAWSEC2NetworkAclResources() map[string]*AWSEC2NetworkAcl { + results := map[string]*AWSEC2NetworkAcl{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2NetworkAcl: + case *AWSEC2NetworkAcl: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSEC2NetworkAclResources() map[string]AWSEC2NetworkAcl if b, err := json.Marshal(resource); err == nil { var result AWSEC2NetworkAcl if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSEC2NetworkAclResources() map[string]AWSEC2NetworkAcl // GetAWSEC2NetworkAclWithName retrieves all AWSEC2NetworkAcl items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2NetworkAclWithName(name string) (AWSEC2NetworkAcl, error) { +func (t *Template) GetAWSEC2NetworkAclWithName(name string) (*AWSEC2NetworkAcl, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2NetworkAcl: + case *AWSEC2NetworkAcl: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSEC2NetworkAclWithName(name string) (AWSEC2NetworkAcl, e if b, err := json.Marshal(resource); err == nil { var result AWSEC2NetworkAcl if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2NetworkAcl{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-networkaclentry.go b/cloudformation/aws-ec2-networkaclentry.go index 41c58aa5c0..8d9c1dc1b2 100644 --- a/cloudformation/aws-ec2-networkaclentry.go +++ b/cloudformation/aws-ec2-networkaclentry.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -102,7 +103,7 @@ func (r *AWSEC2NetworkAclEntry) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2NetworkAclEntry) MarshalJSON() ([]byte, error) { +func (r *AWSEC2NetworkAclEntry) MarshalJSON() ([]byte, error) { type Properties AWSEC2NetworkAclEntry return json.Marshal(&struct { Type string @@ -112,7 +113,7 @@ func (r AWSEC2NetworkAclEntry) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -129,7 +130,11 @@ func (r *AWSEC2NetworkAclEntry) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -149,11 +154,11 @@ func (r *AWSEC2NetworkAclEntry) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2NetworkAclEntryResources retrieves all AWSEC2NetworkAclEntry items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2NetworkAclEntryResources() map[string]AWSEC2NetworkAclEntry { - results := map[string]AWSEC2NetworkAclEntry{} +func (t *Template) GetAllAWSEC2NetworkAclEntryResources() map[string]*AWSEC2NetworkAclEntry { + results := map[string]*AWSEC2NetworkAclEntry{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2NetworkAclEntry: + case *AWSEC2NetworkAclEntry: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -165,7 +170,8 @@ func (t *Template) GetAllAWSEC2NetworkAclEntryResources() map[string]AWSEC2Netwo if b, err := json.Marshal(resource); err == nil { var result AWSEC2NetworkAclEntry if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -177,10 +183,10 @@ func (t *Template) GetAllAWSEC2NetworkAclEntryResources() map[string]AWSEC2Netwo // GetAWSEC2NetworkAclEntryWithName retrieves all AWSEC2NetworkAclEntry items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2NetworkAclEntryWithName(name string) (AWSEC2NetworkAclEntry, error) { +func (t *Template) GetAWSEC2NetworkAclEntryWithName(name string) (*AWSEC2NetworkAclEntry, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2NetworkAclEntry: + case *AWSEC2NetworkAclEntry: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -192,12 +198,13 @@ func (t *Template) GetAWSEC2NetworkAclEntryWithName(name string) (AWSEC2NetworkA if b, err := json.Marshal(resource); err == nil { var result AWSEC2NetworkAclEntry if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2NetworkAclEntry{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-networkinterface.go b/cloudformation/aws-ec2-networkinterface.go index 386b4776d4..f4d68a2dbb 100644 --- a/cloudformation/aws-ec2-networkinterface.go +++ b/cloudformation/aws-ec2-networkinterface.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -112,7 +113,7 @@ func (r *AWSEC2NetworkInterface) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2NetworkInterface) MarshalJSON() ([]byte, error) { +func (r *AWSEC2NetworkInterface) MarshalJSON() ([]byte, error) { type Properties AWSEC2NetworkInterface return json.Marshal(&struct { Type string @@ -122,7 +123,7 @@ func (r AWSEC2NetworkInterface) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -139,7 +140,11 @@ func (r *AWSEC2NetworkInterface) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -159,11 +164,11 @@ func (r *AWSEC2NetworkInterface) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2NetworkInterfaceResources retrieves all AWSEC2NetworkInterface items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2NetworkInterfaceResources() map[string]AWSEC2NetworkInterface { - results := map[string]AWSEC2NetworkInterface{} +func (t *Template) GetAllAWSEC2NetworkInterfaceResources() map[string]*AWSEC2NetworkInterface { + results := map[string]*AWSEC2NetworkInterface{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2NetworkInterface: + case *AWSEC2NetworkInterface: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -175,7 +180,8 @@ func (t *Template) GetAllAWSEC2NetworkInterfaceResources() map[string]AWSEC2Netw if b, err := json.Marshal(resource); err == nil { var result AWSEC2NetworkInterface if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -187,10 +193,10 @@ func (t *Template) GetAllAWSEC2NetworkInterfaceResources() map[string]AWSEC2Netw // GetAWSEC2NetworkInterfaceWithName retrieves all AWSEC2NetworkInterface items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2NetworkInterfaceWithName(name string) (AWSEC2NetworkInterface, error) { +func (t *Template) GetAWSEC2NetworkInterfaceWithName(name string) (*AWSEC2NetworkInterface, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2NetworkInterface: + case *AWSEC2NetworkInterface: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -202,12 +208,13 @@ func (t *Template) GetAWSEC2NetworkInterfaceWithName(name string) (AWSEC2Network if b, err := json.Marshal(resource); err == nil { var result AWSEC2NetworkInterface if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2NetworkInterface{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-networkinterfaceattachment.go b/cloudformation/aws-ec2-networkinterfaceattachment.go index ec12975cba..bda06ab790 100644 --- a/cloudformation/aws-ec2-networkinterfaceattachment.go +++ b/cloudformation/aws-ec2-networkinterfaceattachment.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSEC2NetworkInterfaceAttachment) SetDeletionPolicy(policy DeletionPoli // 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 AWSEC2NetworkInterfaceAttachment) MarshalJSON() ([]byte, error) { +func (r *AWSEC2NetworkInterfaceAttachment) MarshalJSON() ([]byte, error) { type Properties AWSEC2NetworkInterfaceAttachment return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSEC2NetworkInterfaceAttachment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSEC2NetworkInterfaceAttachment) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSEC2NetworkInterfaceAttachment) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2NetworkInterfaceAttachmentResources retrieves all AWSEC2NetworkInterfaceAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2NetworkInterfaceAttachmentResources() map[string]AWSEC2NetworkInterfaceAttachment { - results := map[string]AWSEC2NetworkInterfaceAttachment{} +func (t *Template) GetAllAWSEC2NetworkInterfaceAttachmentResources() map[string]*AWSEC2NetworkInterfaceAttachment { + results := map[string]*AWSEC2NetworkInterfaceAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2NetworkInterfaceAttachment: + case *AWSEC2NetworkInterfaceAttachment: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSEC2NetworkInterfaceAttachmentResources() map[string] if b, err := json.Marshal(resource); err == nil { var result AWSEC2NetworkInterfaceAttachment if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSEC2NetworkInterfaceAttachmentResources() map[string] // GetAWSEC2NetworkInterfaceAttachmentWithName retrieves all AWSEC2NetworkInterfaceAttachment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2NetworkInterfaceAttachmentWithName(name string) (AWSEC2NetworkInterfaceAttachment, error) { +func (t *Template) GetAWSEC2NetworkInterfaceAttachmentWithName(name string) (*AWSEC2NetworkInterfaceAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2NetworkInterfaceAttachment: + case *AWSEC2NetworkInterfaceAttachment: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSEC2NetworkInterfaceAttachmentWithName(name string) (AWS if b, err := json.Marshal(resource); err == nil { var result AWSEC2NetworkInterfaceAttachment if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2NetworkInterfaceAttachment{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-networkinterfacepermission.go b/cloudformation/aws-ec2-networkinterfacepermission.go index 8811a2bb4d..6250f01772 100644 --- a/cloudformation/aws-ec2-networkinterfacepermission.go +++ b/cloudformation/aws-ec2-networkinterfacepermission.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSEC2NetworkInterfacePermission) SetDeletionPolicy(policy DeletionPoli // 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 AWSEC2NetworkInterfacePermission) MarshalJSON() ([]byte, error) { +func (r *AWSEC2NetworkInterfacePermission) MarshalJSON() ([]byte, error) { type Properties AWSEC2NetworkInterfacePermission return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSEC2NetworkInterfacePermission) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSEC2NetworkInterfacePermission) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSEC2NetworkInterfacePermission) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2NetworkInterfacePermissionResources retrieves all AWSEC2NetworkInterfacePermission items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2NetworkInterfacePermissionResources() map[string]AWSEC2NetworkInterfacePermission { - results := map[string]AWSEC2NetworkInterfacePermission{} +func (t *Template) GetAllAWSEC2NetworkInterfacePermissionResources() map[string]*AWSEC2NetworkInterfacePermission { + results := map[string]*AWSEC2NetworkInterfacePermission{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2NetworkInterfacePermission: + case *AWSEC2NetworkInterfacePermission: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSEC2NetworkInterfacePermissionResources() map[string] if b, err := json.Marshal(resource); err == nil { var result AWSEC2NetworkInterfacePermission if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSEC2NetworkInterfacePermissionResources() map[string] // GetAWSEC2NetworkInterfacePermissionWithName retrieves all AWSEC2NetworkInterfacePermission items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2NetworkInterfacePermissionWithName(name string) (AWSEC2NetworkInterfacePermission, error) { +func (t *Template) GetAWSEC2NetworkInterfacePermissionWithName(name string) (*AWSEC2NetworkInterfacePermission, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2NetworkInterfacePermission: + case *AWSEC2NetworkInterfacePermission: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSEC2NetworkInterfacePermissionWithName(name string) (AWS if b, err := json.Marshal(resource); err == nil { var result AWSEC2NetworkInterfacePermission if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2NetworkInterfacePermission{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-placementgroup.go b/cloudformation/aws-ec2-placementgroup.go index e32261d1bc..e98c8311e4 100644 --- a/cloudformation/aws-ec2-placementgroup.go +++ b/cloudformation/aws-ec2-placementgroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -62,7 +63,7 @@ func (r *AWSEC2PlacementGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2PlacementGroup) MarshalJSON() ([]byte, error) { +func (r *AWSEC2PlacementGroup) MarshalJSON() ([]byte, error) { type Properties AWSEC2PlacementGroup return json.Marshal(&struct { Type string @@ -72,7 +73,7 @@ func (r AWSEC2PlacementGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -89,7 +90,11 @@ func (r *AWSEC2PlacementGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -109,11 +114,11 @@ func (r *AWSEC2PlacementGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2PlacementGroupResources retrieves all AWSEC2PlacementGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2PlacementGroupResources() map[string]AWSEC2PlacementGroup { - results := map[string]AWSEC2PlacementGroup{} +func (t *Template) GetAllAWSEC2PlacementGroupResources() map[string]*AWSEC2PlacementGroup { + results := map[string]*AWSEC2PlacementGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2PlacementGroup: + case *AWSEC2PlacementGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -125,7 +130,8 @@ func (t *Template) GetAllAWSEC2PlacementGroupResources() map[string]AWSEC2Placem if b, err := json.Marshal(resource); err == nil { var result AWSEC2PlacementGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -137,10 +143,10 @@ func (t *Template) GetAllAWSEC2PlacementGroupResources() map[string]AWSEC2Placem // GetAWSEC2PlacementGroupWithName retrieves all AWSEC2PlacementGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2PlacementGroupWithName(name string) (AWSEC2PlacementGroup, error) { +func (t *Template) GetAWSEC2PlacementGroupWithName(name string) (*AWSEC2PlacementGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2PlacementGroup: + case *AWSEC2PlacementGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -152,12 +158,13 @@ func (t *Template) GetAWSEC2PlacementGroupWithName(name string) (AWSEC2Placement if b, err := json.Marshal(resource); err == nil { var result AWSEC2PlacementGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2PlacementGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-route.go b/cloudformation/aws-ec2-route.go index 34fb26dd50..88a84da938 100644 --- a/cloudformation/aws-ec2-route.go +++ b/cloudformation/aws-ec2-route.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -102,7 +103,7 @@ func (r *AWSEC2Route) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2Route) MarshalJSON() ([]byte, error) { +func (r *AWSEC2Route) MarshalJSON() ([]byte, error) { type Properties AWSEC2Route return json.Marshal(&struct { Type string @@ -112,7 +113,7 @@ func (r AWSEC2Route) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -129,7 +130,11 @@ func (r *AWSEC2Route) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -149,11 +154,11 @@ func (r *AWSEC2Route) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2RouteResources retrieves all AWSEC2Route items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2RouteResources() map[string]AWSEC2Route { - results := map[string]AWSEC2Route{} +func (t *Template) GetAllAWSEC2RouteResources() map[string]*AWSEC2Route { + results := map[string]*AWSEC2Route{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2Route: + case *AWSEC2Route: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -165,7 +170,8 @@ func (t *Template) GetAllAWSEC2RouteResources() map[string]AWSEC2Route { if b, err := json.Marshal(resource); err == nil { var result AWSEC2Route if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -177,10 +183,10 @@ func (t *Template) GetAllAWSEC2RouteResources() map[string]AWSEC2Route { // GetAWSEC2RouteWithName retrieves all AWSEC2Route items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2RouteWithName(name string) (AWSEC2Route, error) { +func (t *Template) GetAWSEC2RouteWithName(name string) (*AWSEC2Route, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2Route: + case *AWSEC2Route: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -192,12 +198,13 @@ func (t *Template) GetAWSEC2RouteWithName(name string) (AWSEC2Route, error) { if b, err := json.Marshal(resource); err == nil { var result AWSEC2Route if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2Route{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-routetable.go b/cloudformation/aws-ec2-routetable.go index 00c838a9e7..1529bfef7d 100644 --- a/cloudformation/aws-ec2-routetable.go +++ b/cloudformation/aws-ec2-routetable.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSEC2RouteTable) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2RouteTable) MarshalJSON() ([]byte, error) { +func (r *AWSEC2RouteTable) MarshalJSON() ([]byte, error) { type Properties AWSEC2RouteTable return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSEC2RouteTable) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSEC2RouteTable) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSEC2RouteTable) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2RouteTableResources retrieves all AWSEC2RouteTable items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2RouteTableResources() map[string]AWSEC2RouteTable { - results := map[string]AWSEC2RouteTable{} +func (t *Template) GetAllAWSEC2RouteTableResources() map[string]*AWSEC2RouteTable { + results := map[string]*AWSEC2RouteTable{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2RouteTable: + case *AWSEC2RouteTable: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSEC2RouteTableResources() map[string]AWSEC2RouteTable if b, err := json.Marshal(resource); err == nil { var result AWSEC2RouteTable if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSEC2RouteTableResources() map[string]AWSEC2RouteTable // GetAWSEC2RouteTableWithName retrieves all AWSEC2RouteTable items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2RouteTableWithName(name string) (AWSEC2RouteTable, error) { +func (t *Template) GetAWSEC2RouteTableWithName(name string) (*AWSEC2RouteTable, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2RouteTable: + case *AWSEC2RouteTable: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSEC2RouteTableWithName(name string) (AWSEC2RouteTable, e if b, err := json.Marshal(resource); err == nil { var result AWSEC2RouteTable if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2RouteTable{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-securitygroup.go b/cloudformation/aws-ec2-securitygroup.go index 9e5296adaf..46cf05a3b8 100644 --- a/cloudformation/aws-ec2-securitygroup.go +++ b/cloudformation/aws-ec2-securitygroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -87,7 +88,7 @@ func (r *AWSEC2SecurityGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2SecurityGroup) MarshalJSON() ([]byte, error) { +func (r *AWSEC2SecurityGroup) MarshalJSON() ([]byte, error) { type Properties AWSEC2SecurityGroup return json.Marshal(&struct { Type string @@ -97,7 +98,7 @@ func (r AWSEC2SecurityGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -114,7 +115,11 @@ func (r *AWSEC2SecurityGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -134,11 +139,11 @@ func (r *AWSEC2SecurityGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2SecurityGroupResources retrieves all AWSEC2SecurityGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SecurityGroupResources() map[string]AWSEC2SecurityGroup { - results := map[string]AWSEC2SecurityGroup{} +func (t *Template) GetAllAWSEC2SecurityGroupResources() map[string]*AWSEC2SecurityGroup { + results := map[string]*AWSEC2SecurityGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2SecurityGroup: + case *AWSEC2SecurityGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -150,7 +155,8 @@ func (t *Template) GetAllAWSEC2SecurityGroupResources() map[string]AWSEC2Securit if b, err := json.Marshal(resource); err == nil { var result AWSEC2SecurityGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -162,10 +168,10 @@ func (t *Template) GetAllAWSEC2SecurityGroupResources() map[string]AWSEC2Securit // GetAWSEC2SecurityGroupWithName retrieves all AWSEC2SecurityGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SecurityGroupWithName(name string) (AWSEC2SecurityGroup, error) { +func (t *Template) GetAWSEC2SecurityGroupWithName(name string) (*AWSEC2SecurityGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2SecurityGroup: + case *AWSEC2SecurityGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -177,12 +183,13 @@ func (t *Template) GetAWSEC2SecurityGroupWithName(name string) (AWSEC2SecurityGr if b, err := json.Marshal(resource); err == nil { var result AWSEC2SecurityGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2SecurityGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-securitygroupegress.go b/cloudformation/aws-ec2-securitygroupegress.go index fe4b7d4860..48047030ef 100644 --- a/cloudformation/aws-ec2-securitygroupegress.go +++ b/cloudformation/aws-ec2-securitygroupegress.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -102,7 +103,7 @@ func (r *AWSEC2SecurityGroupEgress) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2SecurityGroupEgress) MarshalJSON() ([]byte, error) { +func (r *AWSEC2SecurityGroupEgress) MarshalJSON() ([]byte, error) { type Properties AWSEC2SecurityGroupEgress return json.Marshal(&struct { Type string @@ -112,7 +113,7 @@ func (r AWSEC2SecurityGroupEgress) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -129,7 +130,11 @@ func (r *AWSEC2SecurityGroupEgress) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -149,11 +154,11 @@ func (r *AWSEC2SecurityGroupEgress) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2SecurityGroupEgressResources retrieves all AWSEC2SecurityGroupEgress items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SecurityGroupEgressResources() map[string]AWSEC2SecurityGroupEgress { - results := map[string]AWSEC2SecurityGroupEgress{} +func (t *Template) GetAllAWSEC2SecurityGroupEgressResources() map[string]*AWSEC2SecurityGroupEgress { + results := map[string]*AWSEC2SecurityGroupEgress{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2SecurityGroupEgress: + case *AWSEC2SecurityGroupEgress: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -165,7 +170,8 @@ func (t *Template) GetAllAWSEC2SecurityGroupEgressResources() map[string]AWSEC2S if b, err := json.Marshal(resource); err == nil { var result AWSEC2SecurityGroupEgress if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -177,10 +183,10 @@ func (t *Template) GetAllAWSEC2SecurityGroupEgressResources() map[string]AWSEC2S // GetAWSEC2SecurityGroupEgressWithName retrieves all AWSEC2SecurityGroupEgress items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SecurityGroupEgressWithName(name string) (AWSEC2SecurityGroupEgress, error) { +func (t *Template) GetAWSEC2SecurityGroupEgressWithName(name string) (*AWSEC2SecurityGroupEgress, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2SecurityGroupEgress: + case *AWSEC2SecurityGroupEgress: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -192,12 +198,13 @@ func (t *Template) GetAWSEC2SecurityGroupEgressWithName(name string) (AWSEC2Secu if b, err := json.Marshal(resource); err == nil { var result AWSEC2SecurityGroupEgress if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2SecurityGroupEgress{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-securitygroupingress.go b/cloudformation/aws-ec2-securitygroupingress.go index 6a027c1e91..a2a458cac6 100644 --- a/cloudformation/aws-ec2-securitygroupingress.go +++ b/cloudformation/aws-ec2-securitygroupingress.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -117,7 +118,7 @@ func (r *AWSEC2SecurityGroupIngress) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2SecurityGroupIngress) MarshalJSON() ([]byte, error) { +func (r *AWSEC2SecurityGroupIngress) MarshalJSON() ([]byte, error) { type Properties AWSEC2SecurityGroupIngress return json.Marshal(&struct { Type string @@ -127,7 +128,7 @@ func (r AWSEC2SecurityGroupIngress) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -144,7 +145,11 @@ func (r *AWSEC2SecurityGroupIngress) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -164,11 +169,11 @@ func (r *AWSEC2SecurityGroupIngress) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2SecurityGroupIngressResources retrieves all AWSEC2SecurityGroupIngress items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SecurityGroupIngressResources() map[string]AWSEC2SecurityGroupIngress { - results := map[string]AWSEC2SecurityGroupIngress{} +func (t *Template) GetAllAWSEC2SecurityGroupIngressResources() map[string]*AWSEC2SecurityGroupIngress { + results := map[string]*AWSEC2SecurityGroupIngress{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2SecurityGroupIngress: + case *AWSEC2SecurityGroupIngress: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -180,7 +185,8 @@ func (t *Template) GetAllAWSEC2SecurityGroupIngressResources() map[string]AWSEC2 if b, err := json.Marshal(resource); err == nil { var result AWSEC2SecurityGroupIngress if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -192,10 +198,10 @@ func (t *Template) GetAllAWSEC2SecurityGroupIngressResources() map[string]AWSEC2 // GetAWSEC2SecurityGroupIngressWithName retrieves all AWSEC2SecurityGroupIngress items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SecurityGroupIngressWithName(name string) (AWSEC2SecurityGroupIngress, error) { +func (t *Template) GetAWSEC2SecurityGroupIngressWithName(name string) (*AWSEC2SecurityGroupIngress, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2SecurityGroupIngress: + case *AWSEC2SecurityGroupIngress: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -207,12 +213,13 @@ func (t *Template) GetAWSEC2SecurityGroupIngressWithName(name string) (AWSEC2Sec if b, err := json.Marshal(resource); err == nil { var result AWSEC2SecurityGroupIngress if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2SecurityGroupIngress{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-spotfleet.go b/cloudformation/aws-ec2-spotfleet.go index ac56376948..699109e9c2 100644 --- a/cloudformation/aws-ec2-spotfleet.go +++ b/cloudformation/aws-ec2-spotfleet.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -62,7 +63,7 @@ func (r *AWSEC2SpotFleet) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2SpotFleet) MarshalJSON() ([]byte, error) { +func (r *AWSEC2SpotFleet) MarshalJSON() ([]byte, error) { type Properties AWSEC2SpotFleet return json.Marshal(&struct { Type string @@ -72,7 +73,7 @@ func (r AWSEC2SpotFleet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -89,7 +90,11 @@ func (r *AWSEC2SpotFleet) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -109,11 +114,11 @@ func (r *AWSEC2SpotFleet) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2SpotFleetResources retrieves all AWSEC2SpotFleet items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SpotFleetResources() map[string]AWSEC2SpotFleet { - results := map[string]AWSEC2SpotFleet{} +func (t *Template) GetAllAWSEC2SpotFleetResources() map[string]*AWSEC2SpotFleet { + results := map[string]*AWSEC2SpotFleet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2SpotFleet: + case *AWSEC2SpotFleet: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -125,7 +130,8 @@ func (t *Template) GetAllAWSEC2SpotFleetResources() map[string]AWSEC2SpotFleet { if b, err := json.Marshal(resource); err == nil { var result AWSEC2SpotFleet if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -137,10 +143,10 @@ func (t *Template) GetAllAWSEC2SpotFleetResources() map[string]AWSEC2SpotFleet { // GetAWSEC2SpotFleetWithName retrieves all AWSEC2SpotFleet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SpotFleetWithName(name string) (AWSEC2SpotFleet, error) { +func (t *Template) GetAWSEC2SpotFleetWithName(name string) (*AWSEC2SpotFleet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2SpotFleet: + case *AWSEC2SpotFleet: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -152,12 +158,13 @@ func (t *Template) GetAWSEC2SpotFleetWithName(name string) (AWSEC2SpotFleet, err if b, err := json.Marshal(resource); err == nil { var result AWSEC2SpotFleet if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2SpotFleet{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-subnet.go b/cloudformation/aws-ec2-subnet.go index 8bde7ffc08..f230a77121 100644 --- a/cloudformation/aws-ec2-subnet.go +++ b/cloudformation/aws-ec2-subnet.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -92,7 +93,7 @@ func (r *AWSEC2Subnet) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2Subnet) MarshalJSON() ([]byte, error) { +func (r *AWSEC2Subnet) MarshalJSON() ([]byte, error) { type Properties AWSEC2Subnet return json.Marshal(&struct { Type string @@ -102,7 +103,7 @@ func (r AWSEC2Subnet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -119,7 +120,11 @@ func (r *AWSEC2Subnet) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -139,11 +144,11 @@ func (r *AWSEC2Subnet) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2SubnetResources retrieves all AWSEC2Subnet items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SubnetResources() map[string]AWSEC2Subnet { - results := map[string]AWSEC2Subnet{} +func (t *Template) GetAllAWSEC2SubnetResources() map[string]*AWSEC2Subnet { + results := map[string]*AWSEC2Subnet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2Subnet: + case *AWSEC2Subnet: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -155,7 +160,8 @@ func (t *Template) GetAllAWSEC2SubnetResources() map[string]AWSEC2Subnet { if b, err := json.Marshal(resource); err == nil { var result AWSEC2Subnet if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -167,10 +173,10 @@ func (t *Template) GetAllAWSEC2SubnetResources() map[string]AWSEC2Subnet { // GetAWSEC2SubnetWithName retrieves all AWSEC2Subnet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SubnetWithName(name string) (AWSEC2Subnet, error) { +func (t *Template) GetAWSEC2SubnetWithName(name string) (*AWSEC2Subnet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2Subnet: + case *AWSEC2Subnet: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -182,12 +188,13 @@ func (t *Template) GetAWSEC2SubnetWithName(name string) (AWSEC2Subnet, error) { if b, err := json.Marshal(resource); err == nil { var result AWSEC2Subnet if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2Subnet{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-subnetcidrblock.go b/cloudformation/aws-ec2-subnetcidrblock.go index 47fe248308..702cb3a982 100644 --- a/cloudformation/aws-ec2-subnetcidrblock.go +++ b/cloudformation/aws-ec2-subnetcidrblock.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSEC2SubnetCidrBlock) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2SubnetCidrBlock) MarshalJSON() ([]byte, error) { +func (r *AWSEC2SubnetCidrBlock) MarshalJSON() ([]byte, error) { type Properties AWSEC2SubnetCidrBlock return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSEC2SubnetCidrBlock) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSEC2SubnetCidrBlock) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSEC2SubnetCidrBlock) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2SubnetCidrBlockResources retrieves all AWSEC2SubnetCidrBlock items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SubnetCidrBlockResources() map[string]AWSEC2SubnetCidrBlock { - results := map[string]AWSEC2SubnetCidrBlock{} +func (t *Template) GetAllAWSEC2SubnetCidrBlockResources() map[string]*AWSEC2SubnetCidrBlock { + results := map[string]*AWSEC2SubnetCidrBlock{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2SubnetCidrBlock: + case *AWSEC2SubnetCidrBlock: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSEC2SubnetCidrBlockResources() map[string]AWSEC2Subne if b, err := json.Marshal(resource); err == nil { var result AWSEC2SubnetCidrBlock if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSEC2SubnetCidrBlockResources() map[string]AWSEC2Subne // GetAWSEC2SubnetCidrBlockWithName retrieves all AWSEC2SubnetCidrBlock items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SubnetCidrBlockWithName(name string) (AWSEC2SubnetCidrBlock, error) { +func (t *Template) GetAWSEC2SubnetCidrBlockWithName(name string) (*AWSEC2SubnetCidrBlock, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2SubnetCidrBlock: + case *AWSEC2SubnetCidrBlock: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSEC2SubnetCidrBlockWithName(name string) (AWSEC2SubnetCi if b, err := json.Marshal(resource); err == nil { var result AWSEC2SubnetCidrBlock if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2SubnetCidrBlock{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-subnetnetworkaclassociation.go b/cloudformation/aws-ec2-subnetnetworkaclassociation.go index 4ed3daacb7..806f711ec0 100644 --- a/cloudformation/aws-ec2-subnetnetworkaclassociation.go +++ b/cloudformation/aws-ec2-subnetnetworkaclassociation.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSEC2SubnetNetworkAclAssociation) SetDeletionPolicy(policy DeletionPol // 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 AWSEC2SubnetNetworkAclAssociation) MarshalJSON() ([]byte, error) { +func (r *AWSEC2SubnetNetworkAclAssociation) MarshalJSON() ([]byte, error) { type Properties AWSEC2SubnetNetworkAclAssociation return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSEC2SubnetNetworkAclAssociation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSEC2SubnetNetworkAclAssociation) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSEC2SubnetNetworkAclAssociation) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2SubnetNetworkAclAssociationResources retrieves all AWSEC2SubnetNetworkAclAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SubnetNetworkAclAssociationResources() map[string]AWSEC2SubnetNetworkAclAssociation { - results := map[string]AWSEC2SubnetNetworkAclAssociation{} +func (t *Template) GetAllAWSEC2SubnetNetworkAclAssociationResources() map[string]*AWSEC2SubnetNetworkAclAssociation { + results := map[string]*AWSEC2SubnetNetworkAclAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2SubnetNetworkAclAssociation: + case *AWSEC2SubnetNetworkAclAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSEC2SubnetNetworkAclAssociationResources() map[string if b, err := json.Marshal(resource); err == nil { var result AWSEC2SubnetNetworkAclAssociation if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSEC2SubnetNetworkAclAssociationResources() map[string // GetAWSEC2SubnetNetworkAclAssociationWithName retrieves all AWSEC2SubnetNetworkAclAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SubnetNetworkAclAssociationWithName(name string) (AWSEC2SubnetNetworkAclAssociation, error) { +func (t *Template) GetAWSEC2SubnetNetworkAclAssociationWithName(name string) (*AWSEC2SubnetNetworkAclAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2SubnetNetworkAclAssociation: + case *AWSEC2SubnetNetworkAclAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSEC2SubnetNetworkAclAssociationWithName(name string) (AW if b, err := json.Marshal(resource); err == nil { var result AWSEC2SubnetNetworkAclAssociation if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2SubnetNetworkAclAssociation{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-subnetroutetableassociation.go b/cloudformation/aws-ec2-subnetroutetableassociation.go index a0d492ffb1..368cf0c6f7 100644 --- a/cloudformation/aws-ec2-subnetroutetableassociation.go +++ b/cloudformation/aws-ec2-subnetroutetableassociation.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSEC2SubnetRouteTableAssociation) SetDeletionPolicy(policy DeletionPol // 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 AWSEC2SubnetRouteTableAssociation) MarshalJSON() ([]byte, error) { +func (r *AWSEC2SubnetRouteTableAssociation) MarshalJSON() ([]byte, error) { type Properties AWSEC2SubnetRouteTableAssociation return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSEC2SubnetRouteTableAssociation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSEC2SubnetRouteTableAssociation) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSEC2SubnetRouteTableAssociation) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2SubnetRouteTableAssociationResources retrieves all AWSEC2SubnetRouteTableAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SubnetRouteTableAssociationResources() map[string]AWSEC2SubnetRouteTableAssociation { - results := map[string]AWSEC2SubnetRouteTableAssociation{} +func (t *Template) GetAllAWSEC2SubnetRouteTableAssociationResources() map[string]*AWSEC2SubnetRouteTableAssociation { + results := map[string]*AWSEC2SubnetRouteTableAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2SubnetRouteTableAssociation: + case *AWSEC2SubnetRouteTableAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSEC2SubnetRouteTableAssociationResources() map[string if b, err := json.Marshal(resource); err == nil { var result AWSEC2SubnetRouteTableAssociation if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSEC2SubnetRouteTableAssociationResources() map[string // GetAWSEC2SubnetRouteTableAssociationWithName retrieves all AWSEC2SubnetRouteTableAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SubnetRouteTableAssociationWithName(name string) (AWSEC2SubnetRouteTableAssociation, error) { +func (t *Template) GetAWSEC2SubnetRouteTableAssociationWithName(name string) (*AWSEC2SubnetRouteTableAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2SubnetRouteTableAssociation: + case *AWSEC2SubnetRouteTableAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSEC2SubnetRouteTableAssociationWithName(name string) (AW if b, err := json.Marshal(resource); err == nil { var result AWSEC2SubnetRouteTableAssociation if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2SubnetRouteTableAssociation{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-transitgateway.go b/cloudformation/aws-ec2-transitgateway.go index 1010467617..c1acbb4949 100644 --- a/cloudformation/aws-ec2-transitgateway.go +++ b/cloudformation/aws-ec2-transitgateway.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -97,7 +98,7 @@ func (r *AWSEC2TransitGateway) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2TransitGateway) MarshalJSON() ([]byte, error) { +func (r *AWSEC2TransitGateway) MarshalJSON() ([]byte, error) { type Properties AWSEC2TransitGateway return json.Marshal(&struct { Type string @@ -107,7 +108,7 @@ func (r AWSEC2TransitGateway) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -124,7 +125,11 @@ func (r *AWSEC2TransitGateway) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -144,11 +149,11 @@ func (r *AWSEC2TransitGateway) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2TransitGatewayResources retrieves all AWSEC2TransitGateway items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2TransitGatewayResources() map[string]AWSEC2TransitGateway { - results := map[string]AWSEC2TransitGateway{} +func (t *Template) GetAllAWSEC2TransitGatewayResources() map[string]*AWSEC2TransitGateway { + results := map[string]*AWSEC2TransitGateway{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2TransitGateway: + case *AWSEC2TransitGateway: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -160,7 +165,8 @@ func (t *Template) GetAllAWSEC2TransitGatewayResources() map[string]AWSEC2Transi if b, err := json.Marshal(resource); err == nil { var result AWSEC2TransitGateway if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -172,10 +178,10 @@ func (t *Template) GetAllAWSEC2TransitGatewayResources() map[string]AWSEC2Transi // GetAWSEC2TransitGatewayWithName retrieves all AWSEC2TransitGateway items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2TransitGatewayWithName(name string) (AWSEC2TransitGateway, error) { +func (t *Template) GetAWSEC2TransitGatewayWithName(name string) (*AWSEC2TransitGateway, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2TransitGateway: + case *AWSEC2TransitGateway: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -187,12 +193,13 @@ func (t *Template) GetAWSEC2TransitGatewayWithName(name string) (AWSEC2TransitGa if b, err := json.Marshal(resource); err == nil { var result AWSEC2TransitGateway if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2TransitGateway{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-transitgatewayattachment.go b/cloudformation/aws-ec2-transitgatewayattachment.go index 7502b90569..9d61f22660 100644 --- a/cloudformation/aws-ec2-transitgatewayattachment.go +++ b/cloudformation/aws-ec2-transitgatewayattachment.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSEC2TransitGatewayAttachment) SetDeletionPolicy(policy DeletionPolicy // 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 AWSEC2TransitGatewayAttachment) MarshalJSON() ([]byte, error) { +func (r *AWSEC2TransitGatewayAttachment) MarshalJSON() ([]byte, error) { type Properties AWSEC2TransitGatewayAttachment return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSEC2TransitGatewayAttachment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSEC2TransitGatewayAttachment) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSEC2TransitGatewayAttachment) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2TransitGatewayAttachmentResources retrieves all AWSEC2TransitGatewayAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2TransitGatewayAttachmentResources() map[string]AWSEC2TransitGatewayAttachment { - results := map[string]AWSEC2TransitGatewayAttachment{} +func (t *Template) GetAllAWSEC2TransitGatewayAttachmentResources() map[string]*AWSEC2TransitGatewayAttachment { + results := map[string]*AWSEC2TransitGatewayAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2TransitGatewayAttachment: + case *AWSEC2TransitGatewayAttachment: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSEC2TransitGatewayAttachmentResources() map[string]AW if b, err := json.Marshal(resource); err == nil { var result AWSEC2TransitGatewayAttachment if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSEC2TransitGatewayAttachmentResources() map[string]AW // GetAWSEC2TransitGatewayAttachmentWithName retrieves all AWSEC2TransitGatewayAttachment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2TransitGatewayAttachmentWithName(name string) (AWSEC2TransitGatewayAttachment, error) { +func (t *Template) GetAWSEC2TransitGatewayAttachmentWithName(name string) (*AWSEC2TransitGatewayAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2TransitGatewayAttachment: + case *AWSEC2TransitGatewayAttachment: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSEC2TransitGatewayAttachmentWithName(name string) (AWSEC if b, err := json.Marshal(resource); err == nil { var result AWSEC2TransitGatewayAttachment if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2TransitGatewayAttachment{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-transitgatewayroute.go b/cloudformation/aws-ec2-transitgatewayroute.go index 00a8308cf1..894d781e92 100644 --- a/cloudformation/aws-ec2-transitgatewayroute.go +++ b/cloudformation/aws-ec2-transitgatewayroute.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSEC2TransitGatewayRoute) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2TransitGatewayRoute) MarshalJSON() ([]byte, error) { +func (r *AWSEC2TransitGatewayRoute) MarshalJSON() ([]byte, error) { type Properties AWSEC2TransitGatewayRoute return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSEC2TransitGatewayRoute) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSEC2TransitGatewayRoute) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSEC2TransitGatewayRoute) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2TransitGatewayRouteResources retrieves all AWSEC2TransitGatewayRoute items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2TransitGatewayRouteResources() map[string]AWSEC2TransitGatewayRoute { - results := map[string]AWSEC2TransitGatewayRoute{} +func (t *Template) GetAllAWSEC2TransitGatewayRouteResources() map[string]*AWSEC2TransitGatewayRoute { + results := map[string]*AWSEC2TransitGatewayRoute{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2TransitGatewayRoute: + case *AWSEC2TransitGatewayRoute: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSEC2TransitGatewayRouteResources() map[string]AWSEC2T if b, err := json.Marshal(resource); err == nil { var result AWSEC2TransitGatewayRoute if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSEC2TransitGatewayRouteResources() map[string]AWSEC2T // GetAWSEC2TransitGatewayRouteWithName retrieves all AWSEC2TransitGatewayRoute items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2TransitGatewayRouteWithName(name string) (AWSEC2TransitGatewayRoute, error) { +func (t *Template) GetAWSEC2TransitGatewayRouteWithName(name string) (*AWSEC2TransitGatewayRoute, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2TransitGatewayRoute: + case *AWSEC2TransitGatewayRoute: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSEC2TransitGatewayRouteWithName(name string) (AWSEC2Tran if b, err := json.Marshal(resource); err == nil { var result AWSEC2TransitGatewayRoute if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2TransitGatewayRoute{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-transitgatewayroutetable.go b/cloudformation/aws-ec2-transitgatewayroutetable.go index 78f549cc15..e4d0dc7c85 100644 --- a/cloudformation/aws-ec2-transitgatewayroutetable.go +++ b/cloudformation/aws-ec2-transitgatewayroutetable.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSEC2TransitGatewayRouteTable) SetDeletionPolicy(policy DeletionPolicy // 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 AWSEC2TransitGatewayRouteTable) MarshalJSON() ([]byte, error) { +func (r *AWSEC2TransitGatewayRouteTable) MarshalJSON() ([]byte, error) { type Properties AWSEC2TransitGatewayRouteTable return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSEC2TransitGatewayRouteTable) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSEC2TransitGatewayRouteTable) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSEC2TransitGatewayRouteTable) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2TransitGatewayRouteTableResources retrieves all AWSEC2TransitGatewayRouteTable items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2TransitGatewayRouteTableResources() map[string]AWSEC2TransitGatewayRouteTable { - results := map[string]AWSEC2TransitGatewayRouteTable{} +func (t *Template) GetAllAWSEC2TransitGatewayRouteTableResources() map[string]*AWSEC2TransitGatewayRouteTable { + results := map[string]*AWSEC2TransitGatewayRouteTable{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2TransitGatewayRouteTable: + case *AWSEC2TransitGatewayRouteTable: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSEC2TransitGatewayRouteTableResources() map[string]AW if b, err := json.Marshal(resource); err == nil { var result AWSEC2TransitGatewayRouteTable if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSEC2TransitGatewayRouteTableResources() map[string]AW // GetAWSEC2TransitGatewayRouteTableWithName retrieves all AWSEC2TransitGatewayRouteTable items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2TransitGatewayRouteTableWithName(name string) (AWSEC2TransitGatewayRouteTable, error) { +func (t *Template) GetAWSEC2TransitGatewayRouteTableWithName(name string) (*AWSEC2TransitGatewayRouteTable, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2TransitGatewayRouteTable: + case *AWSEC2TransitGatewayRouteTable: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSEC2TransitGatewayRouteTableWithName(name string) (AWSEC if b, err := json.Marshal(resource); err == nil { var result AWSEC2TransitGatewayRouteTable if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2TransitGatewayRouteTable{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-transitgatewayroutetableassociation.go b/cloudformation/aws-ec2-transitgatewayroutetableassociation.go index ae1a115e78..c2116625ae 100644 --- a/cloudformation/aws-ec2-transitgatewayroutetableassociation.go +++ b/cloudformation/aws-ec2-transitgatewayroutetableassociation.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSEC2TransitGatewayRouteTableAssociation) SetDeletionPolicy(policy Del // 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 AWSEC2TransitGatewayRouteTableAssociation) MarshalJSON() ([]byte, error) { +func (r *AWSEC2TransitGatewayRouteTableAssociation) MarshalJSON() ([]byte, error) { type Properties AWSEC2TransitGatewayRouteTableAssociation return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSEC2TransitGatewayRouteTableAssociation) MarshalJSON() ([]byte, error) DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSEC2TransitGatewayRouteTableAssociation) UnmarshalJSON(b []byte) erro DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSEC2TransitGatewayRouteTableAssociation) UnmarshalJSON(b []byte) erro } // GetAllAWSEC2TransitGatewayRouteTableAssociationResources retrieves all AWSEC2TransitGatewayRouteTableAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2TransitGatewayRouteTableAssociationResources() map[string]AWSEC2TransitGatewayRouteTableAssociation { - results := map[string]AWSEC2TransitGatewayRouteTableAssociation{} +func (t *Template) GetAllAWSEC2TransitGatewayRouteTableAssociationResources() map[string]*AWSEC2TransitGatewayRouteTableAssociation { + results := map[string]*AWSEC2TransitGatewayRouteTableAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2TransitGatewayRouteTableAssociation: + case *AWSEC2TransitGatewayRouteTableAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSEC2TransitGatewayRouteTableAssociationResources() ma if b, err := json.Marshal(resource); err == nil { var result AWSEC2TransitGatewayRouteTableAssociation if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSEC2TransitGatewayRouteTableAssociationResources() ma // GetAWSEC2TransitGatewayRouteTableAssociationWithName retrieves all AWSEC2TransitGatewayRouteTableAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2TransitGatewayRouteTableAssociationWithName(name string) (AWSEC2TransitGatewayRouteTableAssociation, error) { +func (t *Template) GetAWSEC2TransitGatewayRouteTableAssociationWithName(name string) (*AWSEC2TransitGatewayRouteTableAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2TransitGatewayRouteTableAssociation: + case *AWSEC2TransitGatewayRouteTableAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSEC2TransitGatewayRouteTableAssociationWithName(name str if b, err := json.Marshal(resource); err == nil { var result AWSEC2TransitGatewayRouteTableAssociation if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2TransitGatewayRouteTableAssociation{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-transitgatewayroutetablepropagation.go b/cloudformation/aws-ec2-transitgatewayroutetablepropagation.go index f92028d804..ae848175a4 100644 --- a/cloudformation/aws-ec2-transitgatewayroutetablepropagation.go +++ b/cloudformation/aws-ec2-transitgatewayroutetablepropagation.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSEC2TransitGatewayRouteTablePropagation) SetDeletionPolicy(policy Del // 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 AWSEC2TransitGatewayRouteTablePropagation) MarshalJSON() ([]byte, error) { +func (r *AWSEC2TransitGatewayRouteTablePropagation) MarshalJSON() ([]byte, error) { type Properties AWSEC2TransitGatewayRouteTablePropagation return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSEC2TransitGatewayRouteTablePropagation) MarshalJSON() ([]byte, error) DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSEC2TransitGatewayRouteTablePropagation) UnmarshalJSON(b []byte) erro DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSEC2TransitGatewayRouteTablePropagation) UnmarshalJSON(b []byte) erro } // GetAllAWSEC2TransitGatewayRouteTablePropagationResources retrieves all AWSEC2TransitGatewayRouteTablePropagation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2TransitGatewayRouteTablePropagationResources() map[string]AWSEC2TransitGatewayRouteTablePropagation { - results := map[string]AWSEC2TransitGatewayRouteTablePropagation{} +func (t *Template) GetAllAWSEC2TransitGatewayRouteTablePropagationResources() map[string]*AWSEC2TransitGatewayRouteTablePropagation { + results := map[string]*AWSEC2TransitGatewayRouteTablePropagation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2TransitGatewayRouteTablePropagation: + case *AWSEC2TransitGatewayRouteTablePropagation: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSEC2TransitGatewayRouteTablePropagationResources() ma if b, err := json.Marshal(resource); err == nil { var result AWSEC2TransitGatewayRouteTablePropagation if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSEC2TransitGatewayRouteTablePropagationResources() ma // GetAWSEC2TransitGatewayRouteTablePropagationWithName retrieves all AWSEC2TransitGatewayRouteTablePropagation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2TransitGatewayRouteTablePropagationWithName(name string) (AWSEC2TransitGatewayRouteTablePropagation, error) { +func (t *Template) GetAWSEC2TransitGatewayRouteTablePropagationWithName(name string) (*AWSEC2TransitGatewayRouteTablePropagation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2TransitGatewayRouteTablePropagation: + case *AWSEC2TransitGatewayRouteTablePropagation: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSEC2TransitGatewayRouteTablePropagationWithName(name str if b, err := json.Marshal(resource); err == nil { var result AWSEC2TransitGatewayRouteTablePropagation if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2TransitGatewayRouteTablePropagation{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-trunkinterfaceassociation.go b/cloudformation/aws-ec2-trunkinterfaceassociation.go index 5b4596d7d1..05d6624732 100644 --- a/cloudformation/aws-ec2-trunkinterfaceassociation.go +++ b/cloudformation/aws-ec2-trunkinterfaceassociation.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSEC2TrunkInterfaceAssociation) SetDeletionPolicy(policy DeletionPolic // 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 AWSEC2TrunkInterfaceAssociation) MarshalJSON() ([]byte, error) { +func (r *AWSEC2TrunkInterfaceAssociation) MarshalJSON() ([]byte, error) { type Properties AWSEC2TrunkInterfaceAssociation return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSEC2TrunkInterfaceAssociation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSEC2TrunkInterfaceAssociation) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSEC2TrunkInterfaceAssociation) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2TrunkInterfaceAssociationResources retrieves all AWSEC2TrunkInterfaceAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2TrunkInterfaceAssociationResources() map[string]AWSEC2TrunkInterfaceAssociation { - results := map[string]AWSEC2TrunkInterfaceAssociation{} +func (t *Template) GetAllAWSEC2TrunkInterfaceAssociationResources() map[string]*AWSEC2TrunkInterfaceAssociation { + results := map[string]*AWSEC2TrunkInterfaceAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2TrunkInterfaceAssociation: + case *AWSEC2TrunkInterfaceAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSEC2TrunkInterfaceAssociationResources() map[string]A if b, err := json.Marshal(resource); err == nil { var result AWSEC2TrunkInterfaceAssociation if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSEC2TrunkInterfaceAssociationResources() map[string]A // GetAWSEC2TrunkInterfaceAssociationWithName retrieves all AWSEC2TrunkInterfaceAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2TrunkInterfaceAssociationWithName(name string) (AWSEC2TrunkInterfaceAssociation, error) { +func (t *Template) GetAWSEC2TrunkInterfaceAssociationWithName(name string) (*AWSEC2TrunkInterfaceAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2TrunkInterfaceAssociation: + case *AWSEC2TrunkInterfaceAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSEC2TrunkInterfaceAssociationWithName(name string) (AWSE if b, err := json.Marshal(resource); err == nil { var result AWSEC2TrunkInterfaceAssociation if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2TrunkInterfaceAssociation{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-volume.go b/cloudformation/aws-ec2-volume.go index 4dafc8bfa7..f25aa28399 100644 --- a/cloudformation/aws-ec2-volume.go +++ b/cloudformation/aws-ec2-volume.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -102,7 +103,7 @@ func (r *AWSEC2Volume) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2Volume) MarshalJSON() ([]byte, error) { +func (r *AWSEC2Volume) MarshalJSON() ([]byte, error) { type Properties AWSEC2Volume return json.Marshal(&struct { Type string @@ -112,7 +113,7 @@ func (r AWSEC2Volume) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -129,7 +130,11 @@ func (r *AWSEC2Volume) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -149,11 +154,11 @@ func (r *AWSEC2Volume) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2VolumeResources retrieves all AWSEC2Volume items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VolumeResources() map[string]AWSEC2Volume { - results := map[string]AWSEC2Volume{} +func (t *Template) GetAllAWSEC2VolumeResources() map[string]*AWSEC2Volume { + results := map[string]*AWSEC2Volume{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2Volume: + case *AWSEC2Volume: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -165,7 +170,8 @@ func (t *Template) GetAllAWSEC2VolumeResources() map[string]AWSEC2Volume { if b, err := json.Marshal(resource); err == nil { var result AWSEC2Volume if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -177,10 +183,10 @@ func (t *Template) GetAllAWSEC2VolumeResources() map[string]AWSEC2Volume { // GetAWSEC2VolumeWithName retrieves all AWSEC2Volume items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VolumeWithName(name string) (AWSEC2Volume, error) { +func (t *Template) GetAWSEC2VolumeWithName(name string) (*AWSEC2Volume, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2Volume: + case *AWSEC2Volume: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -192,12 +198,13 @@ func (t *Template) GetAWSEC2VolumeWithName(name string) (AWSEC2Volume, error) { if b, err := json.Marshal(resource); err == nil { var result AWSEC2Volume if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2Volume{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-volumeattachment.go b/cloudformation/aws-ec2-volumeattachment.go index 4ac5e65a44..b589c92304 100644 --- a/cloudformation/aws-ec2-volumeattachment.go +++ b/cloudformation/aws-ec2-volumeattachment.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSEC2VolumeAttachment) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2VolumeAttachment) MarshalJSON() ([]byte, error) { +func (r *AWSEC2VolumeAttachment) MarshalJSON() ([]byte, error) { type Properties AWSEC2VolumeAttachment return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSEC2VolumeAttachment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSEC2VolumeAttachment) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSEC2VolumeAttachment) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2VolumeAttachmentResources retrieves all AWSEC2VolumeAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VolumeAttachmentResources() map[string]AWSEC2VolumeAttachment { - results := map[string]AWSEC2VolumeAttachment{} +func (t *Template) GetAllAWSEC2VolumeAttachmentResources() map[string]*AWSEC2VolumeAttachment { + results := map[string]*AWSEC2VolumeAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2VolumeAttachment: + case *AWSEC2VolumeAttachment: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSEC2VolumeAttachmentResources() map[string]AWSEC2Volu if b, err := json.Marshal(resource); err == nil { var result AWSEC2VolumeAttachment if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSEC2VolumeAttachmentResources() map[string]AWSEC2Volu // GetAWSEC2VolumeAttachmentWithName retrieves all AWSEC2VolumeAttachment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VolumeAttachmentWithName(name string) (AWSEC2VolumeAttachment, error) { +func (t *Template) GetAWSEC2VolumeAttachmentWithName(name string) (*AWSEC2VolumeAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2VolumeAttachment: + case *AWSEC2VolumeAttachment: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSEC2VolumeAttachmentWithName(name string) (AWSEC2VolumeA if b, err := json.Marshal(resource); err == nil { var result AWSEC2VolumeAttachment if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2VolumeAttachment{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-vpc.go b/cloudformation/aws-ec2-vpc.go index 7734c769e9..8e10fd189a 100644 --- a/cloudformation/aws-ec2-vpc.go +++ b/cloudformation/aws-ec2-vpc.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSEC2VPC) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2VPC) MarshalJSON() ([]byte, error) { +func (r *AWSEC2VPC) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPC return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSEC2VPC) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSEC2VPC) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSEC2VPC) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2VPCResources retrieves all AWSEC2VPC items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCResources() map[string]AWSEC2VPC { - results := map[string]AWSEC2VPC{} +func (t *Template) GetAllAWSEC2VPCResources() map[string]*AWSEC2VPC { + results := map[string]*AWSEC2VPC{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2VPC: + case *AWSEC2VPC: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSEC2VPCResources() map[string]AWSEC2VPC { if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPC if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSEC2VPCResources() map[string]AWSEC2VPC { // GetAWSEC2VPCWithName retrieves all AWSEC2VPC items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCWithName(name string) (AWSEC2VPC, error) { +func (t *Template) GetAWSEC2VPCWithName(name string) (*AWSEC2VPC, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2VPC: + case *AWSEC2VPC: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSEC2VPCWithName(name string) (AWSEC2VPC, error) { if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPC if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2VPC{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-vpccidrblock.go b/cloudformation/aws-ec2-vpccidrblock.go index 31157b98b6..b24a54ef06 100644 --- a/cloudformation/aws-ec2-vpccidrblock.go +++ b/cloudformation/aws-ec2-vpccidrblock.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSEC2VPCCidrBlock) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2VPCCidrBlock) MarshalJSON() ([]byte, error) { +func (r *AWSEC2VPCCidrBlock) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPCCidrBlock return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSEC2VPCCidrBlock) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSEC2VPCCidrBlock) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSEC2VPCCidrBlock) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2VPCCidrBlockResources retrieves all AWSEC2VPCCidrBlock items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCCidrBlockResources() map[string]AWSEC2VPCCidrBlock { - results := map[string]AWSEC2VPCCidrBlock{} +func (t *Template) GetAllAWSEC2VPCCidrBlockResources() map[string]*AWSEC2VPCCidrBlock { + results := map[string]*AWSEC2VPCCidrBlock{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2VPCCidrBlock: + case *AWSEC2VPCCidrBlock: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSEC2VPCCidrBlockResources() map[string]AWSEC2VPCCidrB if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPCCidrBlock if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSEC2VPCCidrBlockResources() map[string]AWSEC2VPCCidrB // GetAWSEC2VPCCidrBlockWithName retrieves all AWSEC2VPCCidrBlock items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCCidrBlockWithName(name string) (AWSEC2VPCCidrBlock, error) { +func (t *Template) GetAWSEC2VPCCidrBlockWithName(name string) (*AWSEC2VPCCidrBlock, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2VPCCidrBlock: + case *AWSEC2VPCCidrBlock: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSEC2VPCCidrBlockWithName(name string) (AWSEC2VPCCidrBloc if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPCCidrBlock if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2VPCCidrBlock{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-vpcdhcpoptionsassociation.go b/cloudformation/aws-ec2-vpcdhcpoptionsassociation.go index d540dbbd77..8852fb1682 100644 --- a/cloudformation/aws-ec2-vpcdhcpoptionsassociation.go +++ b/cloudformation/aws-ec2-vpcdhcpoptionsassociation.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSEC2VPCDHCPOptionsAssociation) SetDeletionPolicy(policy DeletionPolic // 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 AWSEC2VPCDHCPOptionsAssociation) MarshalJSON() ([]byte, error) { +func (r *AWSEC2VPCDHCPOptionsAssociation) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPCDHCPOptionsAssociation return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSEC2VPCDHCPOptionsAssociation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSEC2VPCDHCPOptionsAssociation) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSEC2VPCDHCPOptionsAssociation) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2VPCDHCPOptionsAssociationResources retrieves all AWSEC2VPCDHCPOptionsAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCDHCPOptionsAssociationResources() map[string]AWSEC2VPCDHCPOptionsAssociation { - results := map[string]AWSEC2VPCDHCPOptionsAssociation{} +func (t *Template) GetAllAWSEC2VPCDHCPOptionsAssociationResources() map[string]*AWSEC2VPCDHCPOptionsAssociation { + results := map[string]*AWSEC2VPCDHCPOptionsAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2VPCDHCPOptionsAssociation: + case *AWSEC2VPCDHCPOptionsAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSEC2VPCDHCPOptionsAssociationResources() map[string]A if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPCDHCPOptionsAssociation if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSEC2VPCDHCPOptionsAssociationResources() map[string]A // GetAWSEC2VPCDHCPOptionsAssociationWithName retrieves all AWSEC2VPCDHCPOptionsAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCDHCPOptionsAssociationWithName(name string) (AWSEC2VPCDHCPOptionsAssociation, error) { +func (t *Template) GetAWSEC2VPCDHCPOptionsAssociationWithName(name string) (*AWSEC2VPCDHCPOptionsAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2VPCDHCPOptionsAssociation: + case *AWSEC2VPCDHCPOptionsAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSEC2VPCDHCPOptionsAssociationWithName(name string) (AWSE if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPCDHCPOptionsAssociation if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2VPCDHCPOptionsAssociation{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-vpcendpoint.go b/cloudformation/aws-ec2-vpcendpoint.go index 4d9fba864d..c3f37c76a9 100644 --- a/cloudformation/aws-ec2-vpcendpoint.go +++ b/cloudformation/aws-ec2-vpcendpoint.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -40,10 +41,10 @@ type AWSEC2VPCEndpoint struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html#cfn-ec2-vpcendpoint-subnetids SubnetIds []string `json:"SubnetIds,omitempty"` - // VPCEndpointType AWS CloudFormation Property + // VpcEndpointType AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html#cfn-ec2-vpcendpoint-vpcendpointtype - VPCEndpointType string `json:"VPCEndpointType,omitempty"` + VpcEndpointType string `json:"VpcEndpointType,omitempty"` // VpcId AWS CloudFormation Property // Required: true @@ -97,7 +98,7 @@ func (r *AWSEC2VPCEndpoint) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2VPCEndpoint) MarshalJSON() ([]byte, error) { +func (r *AWSEC2VPCEndpoint) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPCEndpoint return json.Marshal(&struct { Type string @@ -107,7 +108,7 @@ func (r AWSEC2VPCEndpoint) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -124,7 +125,11 @@ func (r *AWSEC2VPCEndpoint) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -144,11 +149,11 @@ func (r *AWSEC2VPCEndpoint) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2VPCEndpointResources retrieves all AWSEC2VPCEndpoint items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCEndpointResources() map[string]AWSEC2VPCEndpoint { - results := map[string]AWSEC2VPCEndpoint{} +func (t *Template) GetAllAWSEC2VPCEndpointResources() map[string]*AWSEC2VPCEndpoint { + results := map[string]*AWSEC2VPCEndpoint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2VPCEndpoint: + case *AWSEC2VPCEndpoint: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -160,7 +165,8 @@ func (t *Template) GetAllAWSEC2VPCEndpointResources() map[string]AWSEC2VPCEndpoi if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPCEndpoint if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -172,10 +178,10 @@ func (t *Template) GetAllAWSEC2VPCEndpointResources() map[string]AWSEC2VPCEndpoi // GetAWSEC2VPCEndpointWithName retrieves all AWSEC2VPCEndpoint items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCEndpointWithName(name string) (AWSEC2VPCEndpoint, error) { +func (t *Template) GetAWSEC2VPCEndpointWithName(name string) (*AWSEC2VPCEndpoint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2VPCEndpoint: + case *AWSEC2VPCEndpoint: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -187,12 +193,13 @@ func (t *Template) GetAWSEC2VPCEndpointWithName(name string) (AWSEC2VPCEndpoint, if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPCEndpoint if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2VPCEndpoint{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-vpcendpointconnectionnotification.go b/cloudformation/aws-ec2-vpcendpointconnectionnotification.go index f65d4cd01b..56d9668e04 100644 --- a/cloudformation/aws-ec2-vpcendpointconnectionnotification.go +++ b/cloudformation/aws-ec2-vpcendpointconnectionnotification.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSEC2VPCEndpointConnectionNotification) SetDeletionPolicy(policy Delet // 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 AWSEC2VPCEndpointConnectionNotification) MarshalJSON() ([]byte, error) { +func (r *AWSEC2VPCEndpointConnectionNotification) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPCEndpointConnectionNotification return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSEC2VPCEndpointConnectionNotification) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSEC2VPCEndpointConnectionNotification) UnmarshalJSON(b []byte) error DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSEC2VPCEndpointConnectionNotification) UnmarshalJSON(b []byte) error } // GetAllAWSEC2VPCEndpointConnectionNotificationResources retrieves all AWSEC2VPCEndpointConnectionNotification items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCEndpointConnectionNotificationResources() map[string]AWSEC2VPCEndpointConnectionNotification { - results := map[string]AWSEC2VPCEndpointConnectionNotification{} +func (t *Template) GetAllAWSEC2VPCEndpointConnectionNotificationResources() map[string]*AWSEC2VPCEndpointConnectionNotification { + results := map[string]*AWSEC2VPCEndpointConnectionNotification{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2VPCEndpointConnectionNotification: + case *AWSEC2VPCEndpointConnectionNotification: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSEC2VPCEndpointConnectionNotificationResources() map[ if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPCEndpointConnectionNotification if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSEC2VPCEndpointConnectionNotificationResources() map[ // GetAWSEC2VPCEndpointConnectionNotificationWithName retrieves all AWSEC2VPCEndpointConnectionNotification items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCEndpointConnectionNotificationWithName(name string) (AWSEC2VPCEndpointConnectionNotification, error) { +func (t *Template) GetAWSEC2VPCEndpointConnectionNotificationWithName(name string) (*AWSEC2VPCEndpointConnectionNotification, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2VPCEndpointConnectionNotification: + case *AWSEC2VPCEndpointConnectionNotification: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSEC2VPCEndpointConnectionNotificationWithName(name strin if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPCEndpointConnectionNotification if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2VPCEndpointConnectionNotification{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-vpcendpointservicepermissions.go b/cloudformation/aws-ec2-vpcendpointservicepermissions.go index 98064292bf..f0cd49933a 100644 --- a/cloudformation/aws-ec2-vpcendpointservicepermissions.go +++ b/cloudformation/aws-ec2-vpcendpointservicepermissions.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSEC2VPCEndpointServicePermissions) SetDeletionPolicy(policy DeletionP // 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 AWSEC2VPCEndpointServicePermissions) MarshalJSON() ([]byte, error) { +func (r *AWSEC2VPCEndpointServicePermissions) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPCEndpointServicePermissions return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSEC2VPCEndpointServicePermissions) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSEC2VPCEndpointServicePermissions) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSEC2VPCEndpointServicePermissions) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2VPCEndpointServicePermissionsResources retrieves all AWSEC2VPCEndpointServicePermissions items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCEndpointServicePermissionsResources() map[string]AWSEC2VPCEndpointServicePermissions { - results := map[string]AWSEC2VPCEndpointServicePermissions{} +func (t *Template) GetAllAWSEC2VPCEndpointServicePermissionsResources() map[string]*AWSEC2VPCEndpointServicePermissions { + results := map[string]*AWSEC2VPCEndpointServicePermissions{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2VPCEndpointServicePermissions: + case *AWSEC2VPCEndpointServicePermissions: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSEC2VPCEndpointServicePermissionsResources() map[stri if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPCEndpointServicePermissions if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSEC2VPCEndpointServicePermissionsResources() map[stri // GetAWSEC2VPCEndpointServicePermissionsWithName retrieves all AWSEC2VPCEndpointServicePermissions items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCEndpointServicePermissionsWithName(name string) (AWSEC2VPCEndpointServicePermissions, error) { +func (t *Template) GetAWSEC2VPCEndpointServicePermissionsWithName(name string) (*AWSEC2VPCEndpointServicePermissions, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2VPCEndpointServicePermissions: + case *AWSEC2VPCEndpointServicePermissions: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSEC2VPCEndpointServicePermissionsWithName(name string) ( if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPCEndpointServicePermissions if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2VPCEndpointServicePermissions{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-vpcgatewayattachment.go b/cloudformation/aws-ec2-vpcgatewayattachment.go index 243faa277f..7031bc9b81 100644 --- a/cloudformation/aws-ec2-vpcgatewayattachment.go +++ b/cloudformation/aws-ec2-vpcgatewayattachment.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSEC2VPCGatewayAttachment) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2VPCGatewayAttachment) MarshalJSON() ([]byte, error) { +func (r *AWSEC2VPCGatewayAttachment) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPCGatewayAttachment return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSEC2VPCGatewayAttachment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSEC2VPCGatewayAttachment) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSEC2VPCGatewayAttachment) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2VPCGatewayAttachmentResources retrieves all AWSEC2VPCGatewayAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCGatewayAttachmentResources() map[string]AWSEC2VPCGatewayAttachment { - results := map[string]AWSEC2VPCGatewayAttachment{} +func (t *Template) GetAllAWSEC2VPCGatewayAttachmentResources() map[string]*AWSEC2VPCGatewayAttachment { + results := map[string]*AWSEC2VPCGatewayAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2VPCGatewayAttachment: + case *AWSEC2VPCGatewayAttachment: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSEC2VPCGatewayAttachmentResources() map[string]AWSEC2 if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPCGatewayAttachment if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSEC2VPCGatewayAttachmentResources() map[string]AWSEC2 // GetAWSEC2VPCGatewayAttachmentWithName retrieves all AWSEC2VPCGatewayAttachment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCGatewayAttachmentWithName(name string) (AWSEC2VPCGatewayAttachment, error) { +func (t *Template) GetAWSEC2VPCGatewayAttachmentWithName(name string) (*AWSEC2VPCGatewayAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2VPCGatewayAttachment: + case *AWSEC2VPCGatewayAttachment: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSEC2VPCGatewayAttachmentWithName(name string) (AWSEC2VPC if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPCGatewayAttachment if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2VPCGatewayAttachment{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-vpcpeeringconnection.go b/cloudformation/aws-ec2-vpcpeeringconnection.go index 87dd19a57e..0daff768d7 100644 --- a/cloudformation/aws-ec2-vpcpeeringconnection.go +++ b/cloudformation/aws-ec2-vpcpeeringconnection.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -87,7 +88,7 @@ func (r *AWSEC2VPCPeeringConnection) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2VPCPeeringConnection) MarshalJSON() ([]byte, error) { +func (r *AWSEC2VPCPeeringConnection) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPCPeeringConnection return json.Marshal(&struct { Type string @@ -97,7 +98,7 @@ func (r AWSEC2VPCPeeringConnection) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -114,7 +115,11 @@ func (r *AWSEC2VPCPeeringConnection) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -134,11 +139,11 @@ func (r *AWSEC2VPCPeeringConnection) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2VPCPeeringConnectionResources retrieves all AWSEC2VPCPeeringConnection items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCPeeringConnectionResources() map[string]AWSEC2VPCPeeringConnection { - results := map[string]AWSEC2VPCPeeringConnection{} +func (t *Template) GetAllAWSEC2VPCPeeringConnectionResources() map[string]*AWSEC2VPCPeeringConnection { + results := map[string]*AWSEC2VPCPeeringConnection{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2VPCPeeringConnection: + case *AWSEC2VPCPeeringConnection: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -150,7 +155,8 @@ func (t *Template) GetAllAWSEC2VPCPeeringConnectionResources() map[string]AWSEC2 if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPCPeeringConnection if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -162,10 +168,10 @@ func (t *Template) GetAllAWSEC2VPCPeeringConnectionResources() map[string]AWSEC2 // GetAWSEC2VPCPeeringConnectionWithName retrieves all AWSEC2VPCPeeringConnection items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCPeeringConnectionWithName(name string) (AWSEC2VPCPeeringConnection, error) { +func (t *Template) GetAWSEC2VPCPeeringConnectionWithName(name string) (*AWSEC2VPCPeeringConnection, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2VPCPeeringConnection: + case *AWSEC2VPCPeeringConnection: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -177,12 +183,13 @@ func (t *Template) GetAWSEC2VPCPeeringConnectionWithName(name string) (AWSEC2VPC if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPCPeeringConnection if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2VPCPeeringConnection{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-vpnconnection.go b/cloudformation/aws-ec2-vpnconnection.go index 038c6699bc..ec7ccea1ab 100644 --- a/cloudformation/aws-ec2-vpnconnection.go +++ b/cloudformation/aws-ec2-vpnconnection.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -87,7 +88,7 @@ func (r *AWSEC2VPNConnection) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2VPNConnection) MarshalJSON() ([]byte, error) { +func (r *AWSEC2VPNConnection) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPNConnection return json.Marshal(&struct { Type string @@ -97,7 +98,7 @@ func (r AWSEC2VPNConnection) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -114,7 +115,11 @@ func (r *AWSEC2VPNConnection) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -134,11 +139,11 @@ func (r *AWSEC2VPNConnection) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2VPNConnectionResources retrieves all AWSEC2VPNConnection items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPNConnectionResources() map[string]AWSEC2VPNConnection { - results := map[string]AWSEC2VPNConnection{} +func (t *Template) GetAllAWSEC2VPNConnectionResources() map[string]*AWSEC2VPNConnection { + results := map[string]*AWSEC2VPNConnection{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2VPNConnection: + case *AWSEC2VPNConnection: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -150,7 +155,8 @@ func (t *Template) GetAllAWSEC2VPNConnectionResources() map[string]AWSEC2VPNConn if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPNConnection if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -162,10 +168,10 @@ func (t *Template) GetAllAWSEC2VPNConnectionResources() map[string]AWSEC2VPNConn // GetAWSEC2VPNConnectionWithName retrieves all AWSEC2VPNConnection items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPNConnectionWithName(name string) (AWSEC2VPNConnection, error) { +func (t *Template) GetAWSEC2VPNConnectionWithName(name string) (*AWSEC2VPNConnection, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2VPNConnection: + case *AWSEC2VPNConnection: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -177,12 +183,13 @@ func (t *Template) GetAWSEC2VPNConnectionWithName(name string) (AWSEC2VPNConnect if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPNConnection if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2VPNConnection{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-vpnconnectionroute.go b/cloudformation/aws-ec2-vpnconnectionroute.go index ce21b79ecf..e5074fcd25 100644 --- a/cloudformation/aws-ec2-vpnconnectionroute.go +++ b/cloudformation/aws-ec2-vpnconnectionroute.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSEC2VPNConnectionRoute) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2VPNConnectionRoute) MarshalJSON() ([]byte, error) { +func (r *AWSEC2VPNConnectionRoute) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPNConnectionRoute return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSEC2VPNConnectionRoute) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSEC2VPNConnectionRoute) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSEC2VPNConnectionRoute) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2VPNConnectionRouteResources retrieves all AWSEC2VPNConnectionRoute items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPNConnectionRouteResources() map[string]AWSEC2VPNConnectionRoute { - results := map[string]AWSEC2VPNConnectionRoute{} +func (t *Template) GetAllAWSEC2VPNConnectionRouteResources() map[string]*AWSEC2VPNConnectionRoute { + results := map[string]*AWSEC2VPNConnectionRoute{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2VPNConnectionRoute: + case *AWSEC2VPNConnectionRoute: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSEC2VPNConnectionRouteResources() map[string]AWSEC2VP if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPNConnectionRoute if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSEC2VPNConnectionRouteResources() map[string]AWSEC2VP // GetAWSEC2VPNConnectionRouteWithName retrieves all AWSEC2VPNConnectionRoute items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPNConnectionRouteWithName(name string) (AWSEC2VPNConnectionRoute, error) { +func (t *Template) GetAWSEC2VPNConnectionRouteWithName(name string) (*AWSEC2VPNConnectionRoute, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2VPNConnectionRoute: + case *AWSEC2VPNConnectionRoute: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSEC2VPNConnectionRouteWithName(name string) (AWSEC2VPNCo if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPNConnectionRoute if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2VPNConnectionRoute{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-vpngateway.go b/cloudformation/aws-ec2-vpngateway.go index aaca2073ad..12f972dbec 100644 --- a/cloudformation/aws-ec2-vpngateway.go +++ b/cloudformation/aws-ec2-vpngateway.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSEC2VPNGateway) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEC2VPNGateway) MarshalJSON() ([]byte, error) { +func (r *AWSEC2VPNGateway) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPNGateway return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSEC2VPNGateway) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSEC2VPNGateway) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSEC2VPNGateway) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2VPNGatewayResources retrieves all AWSEC2VPNGateway items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPNGatewayResources() map[string]AWSEC2VPNGateway { - results := map[string]AWSEC2VPNGateway{} +func (t *Template) GetAllAWSEC2VPNGatewayResources() map[string]*AWSEC2VPNGateway { + results := map[string]*AWSEC2VPNGateway{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2VPNGateway: + case *AWSEC2VPNGateway: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSEC2VPNGatewayResources() map[string]AWSEC2VPNGateway if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPNGateway if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSEC2VPNGatewayResources() map[string]AWSEC2VPNGateway // GetAWSEC2VPNGatewayWithName retrieves all AWSEC2VPNGateway items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPNGatewayWithName(name string) (AWSEC2VPNGateway, error) { +func (t *Template) GetAWSEC2VPNGatewayWithName(name string) (*AWSEC2VPNGateway, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2VPNGateway: + case *AWSEC2VPNGateway: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSEC2VPNGatewayWithName(name string) (AWSEC2VPNGateway, e if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPNGateway if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2VPNGateway{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ec2-vpngatewayroutepropagation.go b/cloudformation/aws-ec2-vpngatewayroutepropagation.go index 10aee85317..b0d3c708fd 100644 --- a/cloudformation/aws-ec2-vpngatewayroutepropagation.go +++ b/cloudformation/aws-ec2-vpngatewayroutepropagation.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSEC2VPNGatewayRoutePropagation) SetDeletionPolicy(policy DeletionPoli // 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 AWSEC2VPNGatewayRoutePropagation) MarshalJSON() ([]byte, error) { +func (r *AWSEC2VPNGatewayRoutePropagation) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPNGatewayRoutePropagation return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSEC2VPNGatewayRoutePropagation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSEC2VPNGatewayRoutePropagation) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSEC2VPNGatewayRoutePropagation) UnmarshalJSON(b []byte) error { } // GetAllAWSEC2VPNGatewayRoutePropagationResources retrieves all AWSEC2VPNGatewayRoutePropagation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPNGatewayRoutePropagationResources() map[string]AWSEC2VPNGatewayRoutePropagation { - results := map[string]AWSEC2VPNGatewayRoutePropagation{} +func (t *Template) GetAllAWSEC2VPNGatewayRoutePropagationResources() map[string]*AWSEC2VPNGatewayRoutePropagation { + results := map[string]*AWSEC2VPNGatewayRoutePropagation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEC2VPNGatewayRoutePropagation: + case *AWSEC2VPNGatewayRoutePropagation: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSEC2VPNGatewayRoutePropagationResources() map[string] if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPNGatewayRoutePropagation if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSEC2VPNGatewayRoutePropagationResources() map[string] // GetAWSEC2VPNGatewayRoutePropagationWithName retrieves all AWSEC2VPNGatewayRoutePropagation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPNGatewayRoutePropagationWithName(name string) (AWSEC2VPNGatewayRoutePropagation, error) { +func (t *Template) GetAWSEC2VPNGatewayRoutePropagationWithName(name string) (*AWSEC2VPNGatewayRoutePropagation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEC2VPNGatewayRoutePropagation: + case *AWSEC2VPNGatewayRoutePropagation: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSEC2VPNGatewayRoutePropagationWithName(name string) (AWS if b, err := json.Marshal(resource); err == nil { var result AWSEC2VPNGatewayRoutePropagation if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEC2VPNGatewayRoutePropagation{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ecr-repository.go b/cloudformation/aws-ecr-repository.go index aad911008f..924a387709 100644 --- a/cloudformation/aws-ecr-repository.go +++ b/cloudformation/aws-ecr-repository.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSECRRepository) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSECRRepository) MarshalJSON() ([]byte, error) { +func (r *AWSECRRepository) MarshalJSON() ([]byte, error) { type Properties AWSECRRepository return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSECRRepository) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSECRRepository) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSECRRepository) UnmarshalJSON(b []byte) error { } // GetAllAWSECRRepositoryResources retrieves all AWSECRRepository items from an AWS CloudFormation template -func (t *Template) GetAllAWSECRRepositoryResources() map[string]AWSECRRepository { - results := map[string]AWSECRRepository{} +func (t *Template) GetAllAWSECRRepositoryResources() map[string]*AWSECRRepository { + results := map[string]*AWSECRRepository{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSECRRepository: + case *AWSECRRepository: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSECRRepositoryResources() map[string]AWSECRRepository if b, err := json.Marshal(resource); err == nil { var result AWSECRRepository if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSECRRepositoryResources() map[string]AWSECRRepository // GetAWSECRRepositoryWithName retrieves all AWSECRRepository items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSECRRepositoryWithName(name string) (AWSECRRepository, error) { +func (t *Template) GetAWSECRRepositoryWithName(name string) (*AWSECRRepository, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSECRRepository: + case *AWSECRRepository: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSECRRepositoryWithName(name string) (AWSECRRepository, e if b, err := json.Marshal(resource); err == nil { var result AWSECRRepository if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSECRRepository{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ecs-cluster.go b/cloudformation/aws-ecs-cluster.go index b90050c6d0..0cbd59862a 100644 --- a/cloudformation/aws-ecs-cluster.go +++ b/cloudformation/aws-ecs-cluster.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -62,7 +63,7 @@ func (r *AWSECSCluster) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSECSCluster) MarshalJSON() ([]byte, error) { +func (r *AWSECSCluster) MarshalJSON() ([]byte, error) { type Properties AWSECSCluster return json.Marshal(&struct { Type string @@ -72,7 +73,7 @@ func (r AWSECSCluster) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -89,7 +90,11 @@ func (r *AWSECSCluster) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -109,11 +114,11 @@ func (r *AWSECSCluster) UnmarshalJSON(b []byte) error { } // GetAllAWSECSClusterResources retrieves all AWSECSCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSECSClusterResources() map[string]AWSECSCluster { - results := map[string]AWSECSCluster{} +func (t *Template) GetAllAWSECSClusterResources() map[string]*AWSECSCluster { + results := map[string]*AWSECSCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSECSCluster: + case *AWSECSCluster: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -125,7 +130,8 @@ func (t *Template) GetAllAWSECSClusterResources() map[string]AWSECSCluster { if b, err := json.Marshal(resource); err == nil { var result AWSECSCluster if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -137,10 +143,10 @@ func (t *Template) GetAllAWSECSClusterResources() map[string]AWSECSCluster { // GetAWSECSClusterWithName retrieves all AWSECSCluster items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSECSClusterWithName(name string) (AWSECSCluster, error) { +func (t *Template) GetAWSECSClusterWithName(name string) (*AWSECSCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSECSCluster: + case *AWSECSCluster: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -152,12 +158,13 @@ func (t *Template) GetAWSECSClusterWithName(name string) (AWSECSCluster, error) if b, err := json.Marshal(resource); err == nil { var result AWSECSCluster if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSECSCluster{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ecs-service.go b/cloudformation/aws-ecs-service.go index 8982635cc0..47757918be 100644 --- a/cloudformation/aws-ecs-service.go +++ b/cloudformation/aws-ecs-service.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -132,7 +133,7 @@ func (r *AWSECSService) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSECSService) MarshalJSON() ([]byte, error) { +func (r *AWSECSService) MarshalJSON() ([]byte, error) { type Properties AWSECSService return json.Marshal(&struct { Type string @@ -142,7 +143,7 @@ func (r AWSECSService) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -159,7 +160,11 @@ func (r *AWSECSService) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -179,11 +184,11 @@ func (r *AWSECSService) UnmarshalJSON(b []byte) error { } // GetAllAWSECSServiceResources retrieves all AWSECSService items from an AWS CloudFormation template -func (t *Template) GetAllAWSECSServiceResources() map[string]AWSECSService { - results := map[string]AWSECSService{} +func (t *Template) GetAllAWSECSServiceResources() map[string]*AWSECSService { + results := map[string]*AWSECSService{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSECSService: + case *AWSECSService: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -195,7 +200,8 @@ func (t *Template) GetAllAWSECSServiceResources() map[string]AWSECSService { if b, err := json.Marshal(resource); err == nil { var result AWSECSService if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -207,10 +213,10 @@ func (t *Template) GetAllAWSECSServiceResources() map[string]AWSECSService { // GetAWSECSServiceWithName retrieves all AWSECSService items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSECSServiceWithName(name string) (AWSECSService, error) { +func (t *Template) GetAWSECSServiceWithName(name string) (*AWSECSService, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSECSService: + case *AWSECSService: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -222,12 +228,13 @@ func (t *Template) GetAWSECSServiceWithName(name string) (AWSECSService, error) if b, err := json.Marshal(resource); err == nil { var result AWSECSService if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSECSService{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ecs-taskdefinition.go b/cloudformation/aws-ecs-taskdefinition.go index 4cddb04def..f162e7ee42 100644 --- a/cloudformation/aws-ecs-taskdefinition.go +++ b/cloudformation/aws-ecs-taskdefinition.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -107,7 +108,7 @@ func (r *AWSECSTaskDefinition) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSECSTaskDefinition) MarshalJSON() ([]byte, error) { +func (r *AWSECSTaskDefinition) MarshalJSON() ([]byte, error) { type Properties AWSECSTaskDefinition return json.Marshal(&struct { Type string @@ -117,7 +118,7 @@ func (r AWSECSTaskDefinition) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -134,7 +135,11 @@ func (r *AWSECSTaskDefinition) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -154,11 +159,11 @@ func (r *AWSECSTaskDefinition) UnmarshalJSON(b []byte) error { } // GetAllAWSECSTaskDefinitionResources retrieves all AWSECSTaskDefinition items from an AWS CloudFormation template -func (t *Template) GetAllAWSECSTaskDefinitionResources() map[string]AWSECSTaskDefinition { - results := map[string]AWSECSTaskDefinition{} +func (t *Template) GetAllAWSECSTaskDefinitionResources() map[string]*AWSECSTaskDefinition { + results := map[string]*AWSECSTaskDefinition{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSECSTaskDefinition: + case *AWSECSTaskDefinition: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -170,7 +175,8 @@ func (t *Template) GetAllAWSECSTaskDefinitionResources() map[string]AWSECSTaskDe if b, err := json.Marshal(resource); err == nil { var result AWSECSTaskDefinition if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -182,10 +188,10 @@ func (t *Template) GetAllAWSECSTaskDefinitionResources() map[string]AWSECSTaskDe // GetAWSECSTaskDefinitionWithName retrieves all AWSECSTaskDefinition items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSECSTaskDefinitionWithName(name string) (AWSECSTaskDefinition, error) { +func (t *Template) GetAWSECSTaskDefinitionWithName(name string) (*AWSECSTaskDefinition, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSECSTaskDefinition: + case *AWSECSTaskDefinition: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -197,12 +203,13 @@ func (t *Template) GetAWSECSTaskDefinitionWithName(name string) (AWSECSTaskDefin if b, err := json.Marshal(resource); err == nil { var result AWSECSTaskDefinition if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSECSTaskDefinition{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-efs-filesystem.go b/cloudformation/aws-efs-filesystem.go index 7ff1f3a1ad..a87b0b2afb 100644 --- a/cloudformation/aws-efs-filesystem.go +++ b/cloudformation/aws-efs-filesystem.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -87,7 +88,7 @@ func (r *AWSEFSFileSystem) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEFSFileSystem) MarshalJSON() ([]byte, error) { +func (r *AWSEFSFileSystem) MarshalJSON() ([]byte, error) { type Properties AWSEFSFileSystem return json.Marshal(&struct { Type string @@ -97,7 +98,7 @@ func (r AWSEFSFileSystem) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -114,7 +115,11 @@ func (r *AWSEFSFileSystem) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -134,11 +139,11 @@ func (r *AWSEFSFileSystem) UnmarshalJSON(b []byte) error { } // GetAllAWSEFSFileSystemResources retrieves all AWSEFSFileSystem items from an AWS CloudFormation template -func (t *Template) GetAllAWSEFSFileSystemResources() map[string]AWSEFSFileSystem { - results := map[string]AWSEFSFileSystem{} +func (t *Template) GetAllAWSEFSFileSystemResources() map[string]*AWSEFSFileSystem { + results := map[string]*AWSEFSFileSystem{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEFSFileSystem: + case *AWSEFSFileSystem: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -150,7 +155,8 @@ func (t *Template) GetAllAWSEFSFileSystemResources() map[string]AWSEFSFileSystem if b, err := json.Marshal(resource); err == nil { var result AWSEFSFileSystem if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -162,10 +168,10 @@ func (t *Template) GetAllAWSEFSFileSystemResources() map[string]AWSEFSFileSystem // GetAWSEFSFileSystemWithName retrieves all AWSEFSFileSystem items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEFSFileSystemWithName(name string) (AWSEFSFileSystem, error) { +func (t *Template) GetAWSEFSFileSystemWithName(name string) (*AWSEFSFileSystem, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEFSFileSystem: + case *AWSEFSFileSystem: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -177,12 +183,13 @@ func (t *Template) GetAWSEFSFileSystemWithName(name string) (AWSEFSFileSystem, e if b, err := json.Marshal(resource); err == nil { var result AWSEFSFileSystem if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEFSFileSystem{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-efs-mounttarget.go b/cloudformation/aws-efs-mounttarget.go index 54397bf6a5..f9d83da588 100644 --- a/cloudformation/aws-efs-mounttarget.go +++ b/cloudformation/aws-efs-mounttarget.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSEFSMountTarget) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEFSMountTarget) MarshalJSON() ([]byte, error) { +func (r *AWSEFSMountTarget) MarshalJSON() ([]byte, error) { type Properties AWSEFSMountTarget return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSEFSMountTarget) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSEFSMountTarget) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSEFSMountTarget) UnmarshalJSON(b []byte) error { } // GetAllAWSEFSMountTargetResources retrieves all AWSEFSMountTarget items from an AWS CloudFormation template -func (t *Template) GetAllAWSEFSMountTargetResources() map[string]AWSEFSMountTarget { - results := map[string]AWSEFSMountTarget{} +func (t *Template) GetAllAWSEFSMountTargetResources() map[string]*AWSEFSMountTarget { + results := map[string]*AWSEFSMountTarget{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEFSMountTarget: + case *AWSEFSMountTarget: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSEFSMountTargetResources() map[string]AWSEFSMountTarg if b, err := json.Marshal(resource); err == nil { var result AWSEFSMountTarget if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSEFSMountTargetResources() map[string]AWSEFSMountTarg // GetAWSEFSMountTargetWithName retrieves all AWSEFSMountTarget items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEFSMountTargetWithName(name string) (AWSEFSMountTarget, error) { +func (t *Template) GetAWSEFSMountTargetWithName(name string) (*AWSEFSMountTarget, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEFSMountTarget: + case *AWSEFSMountTarget: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSEFSMountTargetWithName(name string) (AWSEFSMountTarget, if b, err := json.Marshal(resource); err == nil { var result AWSEFSMountTarget if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEFSMountTarget{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-eks-cluster.go b/cloudformation/aws-eks-cluster.go index 42cc5c6dbc..e24d786380 100644 --- a/cloudformation/aws-eks-cluster.go +++ b/cloudformation/aws-eks-cluster.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSEKSCluster) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEKSCluster) MarshalJSON() ([]byte, error) { +func (r *AWSEKSCluster) MarshalJSON() ([]byte, error) { type Properties AWSEKSCluster return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSEKSCluster) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSEKSCluster) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSEKSCluster) UnmarshalJSON(b []byte) error { } // GetAllAWSEKSClusterResources retrieves all AWSEKSCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSEKSClusterResources() map[string]AWSEKSCluster { - results := map[string]AWSEKSCluster{} +func (t *Template) GetAllAWSEKSClusterResources() map[string]*AWSEKSCluster { + results := map[string]*AWSEKSCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEKSCluster: + case *AWSEKSCluster: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSEKSClusterResources() map[string]AWSEKSCluster { if b, err := json.Marshal(resource); err == nil { var result AWSEKSCluster if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSEKSClusterResources() map[string]AWSEKSCluster { // GetAWSEKSClusterWithName retrieves all AWSEKSCluster items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEKSClusterWithName(name string) (AWSEKSCluster, error) { +func (t *Template) GetAWSEKSClusterWithName(name string) (*AWSEKSCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEKSCluster: + case *AWSEKSCluster: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSEKSClusterWithName(name string) (AWSEKSCluster, error) if b, err := json.Marshal(resource); err == nil { var result AWSEKSCluster if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEKSCluster{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-elasticache-cachecluster.go b/cloudformation/aws-elasticache-cachecluster.go index f5939c7d2f..637bf9d393 100644 --- a/cloudformation/aws-elasticache-cachecluster.go +++ b/cloudformation/aws-elasticache-cachecluster.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -162,7 +163,7 @@ func (r *AWSElastiCacheCacheCluster) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSElastiCacheCacheCluster) MarshalJSON() ([]byte, error) { +func (r *AWSElastiCacheCacheCluster) MarshalJSON() ([]byte, error) { type Properties AWSElastiCacheCacheCluster return json.Marshal(&struct { Type string @@ -172,7 +173,7 @@ func (r AWSElastiCacheCacheCluster) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -189,7 +190,11 @@ func (r *AWSElastiCacheCacheCluster) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -209,11 +214,11 @@ func (r *AWSElastiCacheCacheCluster) UnmarshalJSON(b []byte) error { } // GetAllAWSElastiCacheCacheClusterResources retrieves all AWSElastiCacheCacheCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSElastiCacheCacheClusterResources() map[string]AWSElastiCacheCacheCluster { - results := map[string]AWSElastiCacheCacheCluster{} +func (t *Template) GetAllAWSElastiCacheCacheClusterResources() map[string]*AWSElastiCacheCacheCluster { + results := map[string]*AWSElastiCacheCacheCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSElastiCacheCacheCluster: + case *AWSElastiCacheCacheCluster: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -225,7 +230,8 @@ func (t *Template) GetAllAWSElastiCacheCacheClusterResources() map[string]AWSEla if b, err := json.Marshal(resource); err == nil { var result AWSElastiCacheCacheCluster if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -237,10 +243,10 @@ func (t *Template) GetAllAWSElastiCacheCacheClusterResources() map[string]AWSEla // GetAWSElastiCacheCacheClusterWithName retrieves all AWSElastiCacheCacheCluster items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElastiCacheCacheClusterWithName(name string) (AWSElastiCacheCacheCluster, error) { +func (t *Template) GetAWSElastiCacheCacheClusterWithName(name string) (*AWSElastiCacheCacheCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSElastiCacheCacheCluster: + case *AWSElastiCacheCacheCluster: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -252,12 +258,13 @@ func (t *Template) GetAWSElastiCacheCacheClusterWithName(name string) (AWSElasti if b, err := json.Marshal(resource); err == nil { var result AWSElastiCacheCacheCluster if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSElastiCacheCacheCluster{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-elasticache-parametergroup.go b/cloudformation/aws-elasticache-parametergroup.go index d1ecdb68f3..20bfb6611e 100644 --- a/cloudformation/aws-elasticache-parametergroup.go +++ b/cloudformation/aws-elasticache-parametergroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSElastiCacheParameterGroup) SetDeletionPolicy(policy DeletionPolicy) // 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 AWSElastiCacheParameterGroup) MarshalJSON() ([]byte, error) { +func (r *AWSElastiCacheParameterGroup) MarshalJSON() ([]byte, error) { type Properties AWSElastiCacheParameterGroup return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSElastiCacheParameterGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSElastiCacheParameterGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSElastiCacheParameterGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSElastiCacheParameterGroupResources retrieves all AWSElastiCacheParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSElastiCacheParameterGroupResources() map[string]AWSElastiCacheParameterGroup { - results := map[string]AWSElastiCacheParameterGroup{} +func (t *Template) GetAllAWSElastiCacheParameterGroupResources() map[string]*AWSElastiCacheParameterGroup { + results := map[string]*AWSElastiCacheParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSElastiCacheParameterGroup: + case *AWSElastiCacheParameterGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSElastiCacheParameterGroupResources() map[string]AWSE if b, err := json.Marshal(resource); err == nil { var result AWSElastiCacheParameterGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSElastiCacheParameterGroupResources() map[string]AWSE // GetAWSElastiCacheParameterGroupWithName retrieves all AWSElastiCacheParameterGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElastiCacheParameterGroupWithName(name string) (AWSElastiCacheParameterGroup, error) { +func (t *Template) GetAWSElastiCacheParameterGroupWithName(name string) (*AWSElastiCacheParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSElastiCacheParameterGroup: + case *AWSElastiCacheParameterGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSElastiCacheParameterGroupWithName(name string) (AWSElas if b, err := json.Marshal(resource); err == nil { var result AWSElastiCacheParameterGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSElastiCacheParameterGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-elasticache-replicationgroup.go b/cloudformation/aws-elasticache-replicationgroup.go index e8aa8d084f..19b2290965 100644 --- a/cloudformation/aws-elasticache-replicationgroup.go +++ b/cloudformation/aws-elasticache-replicationgroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -202,7 +203,7 @@ func (r *AWSElastiCacheReplicationGroup) SetDeletionPolicy(policy DeletionPolicy // 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 AWSElastiCacheReplicationGroup) MarshalJSON() ([]byte, error) { +func (r *AWSElastiCacheReplicationGroup) MarshalJSON() ([]byte, error) { type Properties AWSElastiCacheReplicationGroup return json.Marshal(&struct { Type string @@ -212,7 +213,7 @@ func (r AWSElastiCacheReplicationGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -229,7 +230,11 @@ func (r *AWSElastiCacheReplicationGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -249,11 +254,11 @@ func (r *AWSElastiCacheReplicationGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSElastiCacheReplicationGroupResources retrieves all AWSElastiCacheReplicationGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSElastiCacheReplicationGroupResources() map[string]AWSElastiCacheReplicationGroup { - results := map[string]AWSElastiCacheReplicationGroup{} +func (t *Template) GetAllAWSElastiCacheReplicationGroupResources() map[string]*AWSElastiCacheReplicationGroup { + results := map[string]*AWSElastiCacheReplicationGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSElastiCacheReplicationGroup: + case *AWSElastiCacheReplicationGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -265,7 +270,8 @@ func (t *Template) GetAllAWSElastiCacheReplicationGroupResources() map[string]AW if b, err := json.Marshal(resource); err == nil { var result AWSElastiCacheReplicationGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -277,10 +283,10 @@ func (t *Template) GetAllAWSElastiCacheReplicationGroupResources() map[string]AW // GetAWSElastiCacheReplicationGroupWithName retrieves all AWSElastiCacheReplicationGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElastiCacheReplicationGroupWithName(name string) (AWSElastiCacheReplicationGroup, error) { +func (t *Template) GetAWSElastiCacheReplicationGroupWithName(name string) (*AWSElastiCacheReplicationGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSElastiCacheReplicationGroup: + case *AWSElastiCacheReplicationGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -292,12 +298,13 @@ func (t *Template) GetAWSElastiCacheReplicationGroupWithName(name string) (AWSEl if b, err := json.Marshal(resource); err == nil { var result AWSElastiCacheReplicationGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSElastiCacheReplicationGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-elasticache-securitygroup.go b/cloudformation/aws-elasticache-securitygroup.go index 3f45ea6774..18b8cdbec0 100644 --- a/cloudformation/aws-elasticache-securitygroup.go +++ b/cloudformation/aws-elasticache-securitygroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -62,7 +63,7 @@ func (r *AWSElastiCacheSecurityGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSElastiCacheSecurityGroup) MarshalJSON() ([]byte, error) { +func (r *AWSElastiCacheSecurityGroup) MarshalJSON() ([]byte, error) { type Properties AWSElastiCacheSecurityGroup return json.Marshal(&struct { Type string @@ -72,7 +73,7 @@ func (r AWSElastiCacheSecurityGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -89,7 +90,11 @@ func (r *AWSElastiCacheSecurityGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -109,11 +114,11 @@ func (r *AWSElastiCacheSecurityGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSElastiCacheSecurityGroupResources retrieves all AWSElastiCacheSecurityGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSElastiCacheSecurityGroupResources() map[string]AWSElastiCacheSecurityGroup { - results := map[string]AWSElastiCacheSecurityGroup{} +func (t *Template) GetAllAWSElastiCacheSecurityGroupResources() map[string]*AWSElastiCacheSecurityGroup { + results := map[string]*AWSElastiCacheSecurityGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSElastiCacheSecurityGroup: + case *AWSElastiCacheSecurityGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -125,7 +130,8 @@ func (t *Template) GetAllAWSElastiCacheSecurityGroupResources() map[string]AWSEl if b, err := json.Marshal(resource); err == nil { var result AWSElastiCacheSecurityGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -137,10 +143,10 @@ func (t *Template) GetAllAWSElastiCacheSecurityGroupResources() map[string]AWSEl // GetAWSElastiCacheSecurityGroupWithName retrieves all AWSElastiCacheSecurityGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElastiCacheSecurityGroupWithName(name string) (AWSElastiCacheSecurityGroup, error) { +func (t *Template) GetAWSElastiCacheSecurityGroupWithName(name string) (*AWSElastiCacheSecurityGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSElastiCacheSecurityGroup: + case *AWSElastiCacheSecurityGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -152,12 +158,13 @@ func (t *Template) GetAWSElastiCacheSecurityGroupWithName(name string) (AWSElast if b, err := json.Marshal(resource); err == nil { var result AWSElastiCacheSecurityGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSElastiCacheSecurityGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-elasticache-securitygroupingress.go b/cloudformation/aws-elasticache-securitygroupingress.go index 49c9e127b6..903f63c6dd 100644 --- a/cloudformation/aws-elasticache-securitygroupingress.go +++ b/cloudformation/aws-elasticache-securitygroupingress.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSElastiCacheSecurityGroupIngress) SetDeletionPolicy(policy DeletionPo // 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 AWSElastiCacheSecurityGroupIngress) MarshalJSON() ([]byte, error) { +func (r *AWSElastiCacheSecurityGroupIngress) MarshalJSON() ([]byte, error) { type Properties AWSElastiCacheSecurityGroupIngress return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSElastiCacheSecurityGroupIngress) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSElastiCacheSecurityGroupIngress) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSElastiCacheSecurityGroupIngress) UnmarshalJSON(b []byte) error { } // GetAllAWSElastiCacheSecurityGroupIngressResources retrieves all AWSElastiCacheSecurityGroupIngress items from an AWS CloudFormation template -func (t *Template) GetAllAWSElastiCacheSecurityGroupIngressResources() map[string]AWSElastiCacheSecurityGroupIngress { - results := map[string]AWSElastiCacheSecurityGroupIngress{} +func (t *Template) GetAllAWSElastiCacheSecurityGroupIngressResources() map[string]*AWSElastiCacheSecurityGroupIngress { + results := map[string]*AWSElastiCacheSecurityGroupIngress{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSElastiCacheSecurityGroupIngress: + case *AWSElastiCacheSecurityGroupIngress: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSElastiCacheSecurityGroupIngressResources() map[strin if b, err := json.Marshal(resource); err == nil { var result AWSElastiCacheSecurityGroupIngress if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSElastiCacheSecurityGroupIngressResources() map[strin // GetAWSElastiCacheSecurityGroupIngressWithName retrieves all AWSElastiCacheSecurityGroupIngress items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElastiCacheSecurityGroupIngressWithName(name string) (AWSElastiCacheSecurityGroupIngress, error) { +func (t *Template) GetAWSElastiCacheSecurityGroupIngressWithName(name string) (*AWSElastiCacheSecurityGroupIngress, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSElastiCacheSecurityGroupIngress: + case *AWSElastiCacheSecurityGroupIngress: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSElastiCacheSecurityGroupIngressWithName(name string) (A if b, err := json.Marshal(resource); err == nil { var result AWSElastiCacheSecurityGroupIngress if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSElastiCacheSecurityGroupIngress{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-elasticache-subnetgroup.go b/cloudformation/aws-elasticache-subnetgroup.go index 2f75d24406..906d08d810 100644 --- a/cloudformation/aws-elasticache-subnetgroup.go +++ b/cloudformation/aws-elasticache-subnetgroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSElastiCacheSubnetGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSElastiCacheSubnetGroup) MarshalJSON() ([]byte, error) { +func (r *AWSElastiCacheSubnetGroup) MarshalJSON() ([]byte, error) { type Properties AWSElastiCacheSubnetGroup return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSElastiCacheSubnetGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSElastiCacheSubnetGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSElastiCacheSubnetGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSElastiCacheSubnetGroupResources retrieves all AWSElastiCacheSubnetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSElastiCacheSubnetGroupResources() map[string]AWSElastiCacheSubnetGroup { - results := map[string]AWSElastiCacheSubnetGroup{} +func (t *Template) GetAllAWSElastiCacheSubnetGroupResources() map[string]*AWSElastiCacheSubnetGroup { + results := map[string]*AWSElastiCacheSubnetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSElastiCacheSubnetGroup: + case *AWSElastiCacheSubnetGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSElastiCacheSubnetGroupResources() map[string]AWSElas if b, err := json.Marshal(resource); err == nil { var result AWSElastiCacheSubnetGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSElastiCacheSubnetGroupResources() map[string]AWSElas // GetAWSElastiCacheSubnetGroupWithName retrieves all AWSElastiCacheSubnetGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElastiCacheSubnetGroupWithName(name string) (AWSElastiCacheSubnetGroup, error) { +func (t *Template) GetAWSElastiCacheSubnetGroupWithName(name string) (*AWSElastiCacheSubnetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSElastiCacheSubnetGroup: + case *AWSElastiCacheSubnetGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSElastiCacheSubnetGroupWithName(name string) (AWSElastiC if b, err := json.Marshal(resource); err == nil { var result AWSElastiCacheSubnetGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSElastiCacheSubnetGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-elasticbeanstalk-application.go b/cloudformation/aws-elasticbeanstalk-application.go index 39b1247663..1f9be8ce79 100644 --- a/cloudformation/aws-elasticbeanstalk-application.go +++ b/cloudformation/aws-elasticbeanstalk-application.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSElasticBeanstalkApplication) SetDeletionPolicy(policy DeletionPolicy // 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 AWSElasticBeanstalkApplication) MarshalJSON() ([]byte, error) { +func (r *AWSElasticBeanstalkApplication) MarshalJSON() ([]byte, error) { type Properties AWSElasticBeanstalkApplication return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSElasticBeanstalkApplication) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSElasticBeanstalkApplication) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSElasticBeanstalkApplication) UnmarshalJSON(b []byte) error { } // GetAllAWSElasticBeanstalkApplicationResources retrieves all AWSElasticBeanstalkApplication items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticBeanstalkApplicationResources() map[string]AWSElasticBeanstalkApplication { - results := map[string]AWSElasticBeanstalkApplication{} +func (t *Template) GetAllAWSElasticBeanstalkApplicationResources() map[string]*AWSElasticBeanstalkApplication { + results := map[string]*AWSElasticBeanstalkApplication{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSElasticBeanstalkApplication: + case *AWSElasticBeanstalkApplication: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSElasticBeanstalkApplicationResources() map[string]AW if b, err := json.Marshal(resource); err == nil { var result AWSElasticBeanstalkApplication if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSElasticBeanstalkApplicationResources() map[string]AW // GetAWSElasticBeanstalkApplicationWithName retrieves all AWSElasticBeanstalkApplication items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticBeanstalkApplicationWithName(name string) (AWSElasticBeanstalkApplication, error) { +func (t *Template) GetAWSElasticBeanstalkApplicationWithName(name string) (*AWSElasticBeanstalkApplication, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSElasticBeanstalkApplication: + case *AWSElasticBeanstalkApplication: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSElasticBeanstalkApplicationWithName(name string) (AWSEl if b, err := json.Marshal(resource); err == nil { var result AWSElasticBeanstalkApplication if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSElasticBeanstalkApplication{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-elasticbeanstalk-applicationversion.go b/cloudformation/aws-elasticbeanstalk-applicationversion.go index 7d03015cfd..038c991694 100644 --- a/cloudformation/aws-elasticbeanstalk-applicationversion.go +++ b/cloudformation/aws-elasticbeanstalk-applicationversion.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSElasticBeanstalkApplicationVersion) SetDeletionPolicy(policy Deletio // 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 AWSElasticBeanstalkApplicationVersion) MarshalJSON() ([]byte, error) { +func (r *AWSElasticBeanstalkApplicationVersion) MarshalJSON() ([]byte, error) { type Properties AWSElasticBeanstalkApplicationVersion return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSElasticBeanstalkApplicationVersion) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSElasticBeanstalkApplicationVersion) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSElasticBeanstalkApplicationVersion) UnmarshalJSON(b []byte) error { } // GetAllAWSElasticBeanstalkApplicationVersionResources retrieves all AWSElasticBeanstalkApplicationVersion items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticBeanstalkApplicationVersionResources() map[string]AWSElasticBeanstalkApplicationVersion { - results := map[string]AWSElasticBeanstalkApplicationVersion{} +func (t *Template) GetAllAWSElasticBeanstalkApplicationVersionResources() map[string]*AWSElasticBeanstalkApplicationVersion { + results := map[string]*AWSElasticBeanstalkApplicationVersion{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSElasticBeanstalkApplicationVersion: + case *AWSElasticBeanstalkApplicationVersion: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSElasticBeanstalkApplicationVersionResources() map[st if b, err := json.Marshal(resource); err == nil { var result AWSElasticBeanstalkApplicationVersion if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSElasticBeanstalkApplicationVersionResources() map[st // GetAWSElasticBeanstalkApplicationVersionWithName retrieves all AWSElasticBeanstalkApplicationVersion items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticBeanstalkApplicationVersionWithName(name string) (AWSElasticBeanstalkApplicationVersion, error) { +func (t *Template) GetAWSElasticBeanstalkApplicationVersionWithName(name string) (*AWSElasticBeanstalkApplicationVersion, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSElasticBeanstalkApplicationVersion: + case *AWSElasticBeanstalkApplicationVersion: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSElasticBeanstalkApplicationVersionWithName(name string) if b, err := json.Marshal(resource); err == nil { var result AWSElasticBeanstalkApplicationVersion if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSElasticBeanstalkApplicationVersion{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-elasticbeanstalk-configurationtemplate.go b/cloudformation/aws-elasticbeanstalk-configurationtemplate.go index 07d72785f3..8f8add633c 100644 --- a/cloudformation/aws-elasticbeanstalk-configurationtemplate.go +++ b/cloudformation/aws-elasticbeanstalk-configurationtemplate.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -92,7 +93,7 @@ func (r *AWSElasticBeanstalkConfigurationTemplate) SetDeletionPolicy(policy Dele // 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 AWSElasticBeanstalkConfigurationTemplate) MarshalJSON() ([]byte, error) { +func (r *AWSElasticBeanstalkConfigurationTemplate) MarshalJSON() ([]byte, error) { type Properties AWSElasticBeanstalkConfigurationTemplate return json.Marshal(&struct { Type string @@ -102,7 +103,7 @@ func (r AWSElasticBeanstalkConfigurationTemplate) MarshalJSON() ([]byte, error) DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -119,7 +120,11 @@ func (r *AWSElasticBeanstalkConfigurationTemplate) UnmarshalJSON(b []byte) error DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -139,11 +144,11 @@ func (r *AWSElasticBeanstalkConfigurationTemplate) UnmarshalJSON(b []byte) error } // GetAllAWSElasticBeanstalkConfigurationTemplateResources retrieves all AWSElasticBeanstalkConfigurationTemplate items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticBeanstalkConfigurationTemplateResources() map[string]AWSElasticBeanstalkConfigurationTemplate { - results := map[string]AWSElasticBeanstalkConfigurationTemplate{} +func (t *Template) GetAllAWSElasticBeanstalkConfigurationTemplateResources() map[string]*AWSElasticBeanstalkConfigurationTemplate { + results := map[string]*AWSElasticBeanstalkConfigurationTemplate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSElasticBeanstalkConfigurationTemplate: + case *AWSElasticBeanstalkConfigurationTemplate: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -155,7 +160,8 @@ func (t *Template) GetAllAWSElasticBeanstalkConfigurationTemplateResources() map if b, err := json.Marshal(resource); err == nil { var result AWSElasticBeanstalkConfigurationTemplate if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -167,10 +173,10 @@ func (t *Template) GetAllAWSElasticBeanstalkConfigurationTemplateResources() map // GetAWSElasticBeanstalkConfigurationTemplateWithName retrieves all AWSElasticBeanstalkConfigurationTemplate items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticBeanstalkConfigurationTemplateWithName(name string) (AWSElasticBeanstalkConfigurationTemplate, error) { +func (t *Template) GetAWSElasticBeanstalkConfigurationTemplateWithName(name string) (*AWSElasticBeanstalkConfigurationTemplate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSElasticBeanstalkConfigurationTemplate: + case *AWSElasticBeanstalkConfigurationTemplate: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -182,12 +188,13 @@ func (t *Template) GetAWSElasticBeanstalkConfigurationTemplateWithName(name stri if b, err := json.Marshal(resource); err == nil { var result AWSElasticBeanstalkConfigurationTemplate if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSElasticBeanstalkConfigurationTemplate{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-elasticbeanstalk-environment.go b/cloudformation/aws-elasticbeanstalk-environment.go index 40f26361e3..47d20db5d4 100644 --- a/cloudformation/aws-elasticbeanstalk-environment.go +++ b/cloudformation/aws-elasticbeanstalk-environment.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -112,7 +113,7 @@ func (r *AWSElasticBeanstalkEnvironment) SetDeletionPolicy(policy DeletionPolicy // 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 AWSElasticBeanstalkEnvironment) MarshalJSON() ([]byte, error) { +func (r *AWSElasticBeanstalkEnvironment) MarshalJSON() ([]byte, error) { type Properties AWSElasticBeanstalkEnvironment return json.Marshal(&struct { Type string @@ -122,7 +123,7 @@ func (r AWSElasticBeanstalkEnvironment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -139,7 +140,11 @@ func (r *AWSElasticBeanstalkEnvironment) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -159,11 +164,11 @@ func (r *AWSElasticBeanstalkEnvironment) UnmarshalJSON(b []byte) error { } // GetAllAWSElasticBeanstalkEnvironmentResources retrieves all AWSElasticBeanstalkEnvironment items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticBeanstalkEnvironmentResources() map[string]AWSElasticBeanstalkEnvironment { - results := map[string]AWSElasticBeanstalkEnvironment{} +func (t *Template) GetAllAWSElasticBeanstalkEnvironmentResources() map[string]*AWSElasticBeanstalkEnvironment { + results := map[string]*AWSElasticBeanstalkEnvironment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSElasticBeanstalkEnvironment: + case *AWSElasticBeanstalkEnvironment: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -175,7 +180,8 @@ func (t *Template) GetAllAWSElasticBeanstalkEnvironmentResources() map[string]AW if b, err := json.Marshal(resource); err == nil { var result AWSElasticBeanstalkEnvironment if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -187,10 +193,10 @@ func (t *Template) GetAllAWSElasticBeanstalkEnvironmentResources() map[string]AW // GetAWSElasticBeanstalkEnvironmentWithName retrieves all AWSElasticBeanstalkEnvironment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticBeanstalkEnvironmentWithName(name string) (AWSElasticBeanstalkEnvironment, error) { +func (t *Template) GetAWSElasticBeanstalkEnvironmentWithName(name string) (*AWSElasticBeanstalkEnvironment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSElasticBeanstalkEnvironment: + case *AWSElasticBeanstalkEnvironment: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -202,12 +208,13 @@ func (t *Template) GetAWSElasticBeanstalkEnvironmentWithName(name string) (AWSEl if b, err := json.Marshal(resource); err == nil { var result AWSElasticBeanstalkEnvironment if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSElasticBeanstalkEnvironment{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-elasticloadbalancing-loadbalancer.go b/cloudformation/aws-elasticloadbalancing-loadbalancer.go index a318219376..b3f85136cf 100644 --- a/cloudformation/aws-elasticloadbalancing-loadbalancer.go +++ b/cloudformation/aws-elasticloadbalancing-loadbalancer.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -137,7 +138,7 @@ func (r *AWSElasticLoadBalancingLoadBalancer) SetDeletionPolicy(policy DeletionP // 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 AWSElasticLoadBalancingLoadBalancer) MarshalJSON() ([]byte, error) { +func (r *AWSElasticLoadBalancingLoadBalancer) MarshalJSON() ([]byte, error) { type Properties AWSElasticLoadBalancingLoadBalancer return json.Marshal(&struct { Type string @@ -147,7 +148,7 @@ func (r AWSElasticLoadBalancingLoadBalancer) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -164,7 +165,11 @@ func (r *AWSElasticLoadBalancingLoadBalancer) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -184,11 +189,11 @@ func (r *AWSElasticLoadBalancingLoadBalancer) UnmarshalJSON(b []byte) error { } // GetAllAWSElasticLoadBalancingLoadBalancerResources retrieves all AWSElasticLoadBalancingLoadBalancer items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticLoadBalancingLoadBalancerResources() map[string]AWSElasticLoadBalancingLoadBalancer { - results := map[string]AWSElasticLoadBalancingLoadBalancer{} +func (t *Template) GetAllAWSElasticLoadBalancingLoadBalancerResources() map[string]*AWSElasticLoadBalancingLoadBalancer { + results := map[string]*AWSElasticLoadBalancingLoadBalancer{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSElasticLoadBalancingLoadBalancer: + case *AWSElasticLoadBalancingLoadBalancer: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -200,7 +205,8 @@ func (t *Template) GetAllAWSElasticLoadBalancingLoadBalancerResources() map[stri if b, err := json.Marshal(resource); err == nil { var result AWSElasticLoadBalancingLoadBalancer if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -212,10 +218,10 @@ func (t *Template) GetAllAWSElasticLoadBalancingLoadBalancerResources() map[stri // GetAWSElasticLoadBalancingLoadBalancerWithName retrieves all AWSElasticLoadBalancingLoadBalancer items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticLoadBalancingLoadBalancerWithName(name string) (AWSElasticLoadBalancingLoadBalancer, error) { +func (t *Template) GetAWSElasticLoadBalancingLoadBalancerWithName(name string) (*AWSElasticLoadBalancingLoadBalancer, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSElasticLoadBalancingLoadBalancer: + case *AWSElasticLoadBalancingLoadBalancer: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -227,12 +233,13 @@ func (t *Template) GetAWSElasticLoadBalancingLoadBalancerWithName(name string) ( if b, err := json.Marshal(resource); err == nil { var result AWSElasticLoadBalancingLoadBalancer if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSElasticLoadBalancingLoadBalancer{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-elasticloadbalancingv2-listener.go b/cloudformation/aws-elasticloadbalancingv2-listener.go index cbb9aacc46..e108c11887 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listener.go +++ b/cloudformation/aws-elasticloadbalancingv2-listener.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -87,7 +88,7 @@ func (r *AWSElasticLoadBalancingV2Listener) SetDeletionPolicy(policy DeletionPol // 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 AWSElasticLoadBalancingV2Listener) MarshalJSON() ([]byte, error) { +func (r *AWSElasticLoadBalancingV2Listener) MarshalJSON() ([]byte, error) { type Properties AWSElasticLoadBalancingV2Listener return json.Marshal(&struct { Type string @@ -97,7 +98,7 @@ func (r AWSElasticLoadBalancingV2Listener) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -114,7 +115,11 @@ func (r *AWSElasticLoadBalancingV2Listener) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -134,11 +139,11 @@ func (r *AWSElasticLoadBalancingV2Listener) UnmarshalJSON(b []byte) error { } // GetAllAWSElasticLoadBalancingV2ListenerResources retrieves all AWSElasticLoadBalancingV2Listener items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerResources() map[string]AWSElasticLoadBalancingV2Listener { - results := map[string]AWSElasticLoadBalancingV2Listener{} +func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerResources() map[string]*AWSElasticLoadBalancingV2Listener { + results := map[string]*AWSElasticLoadBalancingV2Listener{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSElasticLoadBalancingV2Listener: + case *AWSElasticLoadBalancingV2Listener: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -150,7 +155,8 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerResources() map[string if b, err := json.Marshal(resource); err == nil { var result AWSElasticLoadBalancingV2Listener if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -162,10 +168,10 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerResources() map[string // GetAWSElasticLoadBalancingV2ListenerWithName retrieves all AWSElasticLoadBalancingV2Listener items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticLoadBalancingV2ListenerWithName(name string) (AWSElasticLoadBalancingV2Listener, error) { +func (t *Template) GetAWSElasticLoadBalancingV2ListenerWithName(name string) (*AWSElasticLoadBalancingV2Listener, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSElasticLoadBalancingV2Listener: + case *AWSElasticLoadBalancingV2Listener: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -177,12 +183,13 @@ func (t *Template) GetAWSElasticLoadBalancingV2ListenerWithName(name string) (AW if b, err := json.Marshal(resource); err == nil { var result AWSElasticLoadBalancingV2Listener if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSElasticLoadBalancingV2Listener{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-elasticloadbalancingv2-listenercertificate.go b/cloudformation/aws-elasticloadbalancingv2-listenercertificate.go index 2189063509..ce2d4040f4 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listenercertificate.go +++ b/cloudformation/aws-elasticloadbalancingv2-listenercertificate.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSElasticLoadBalancingV2ListenerCertificate) SetDeletionPolicy(policy // 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 AWSElasticLoadBalancingV2ListenerCertificate) MarshalJSON() ([]byte, error) { +func (r *AWSElasticLoadBalancingV2ListenerCertificate) MarshalJSON() ([]byte, error) { type Properties AWSElasticLoadBalancingV2ListenerCertificate return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSElasticLoadBalancingV2ListenerCertificate) MarshalJSON() ([]byte, err DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSElasticLoadBalancingV2ListenerCertificate) UnmarshalJSON(b []byte) e DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSElasticLoadBalancingV2ListenerCertificate) UnmarshalJSON(b []byte) e } // GetAllAWSElasticLoadBalancingV2ListenerCertificateResources retrieves all AWSElasticLoadBalancingV2ListenerCertificate items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerCertificateResources() map[string]AWSElasticLoadBalancingV2ListenerCertificate { - results := map[string]AWSElasticLoadBalancingV2ListenerCertificate{} +func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerCertificateResources() map[string]*AWSElasticLoadBalancingV2ListenerCertificate { + results := map[string]*AWSElasticLoadBalancingV2ListenerCertificate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSElasticLoadBalancingV2ListenerCertificate: + case *AWSElasticLoadBalancingV2ListenerCertificate: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerCertificateResources() if b, err := json.Marshal(resource); err == nil { var result AWSElasticLoadBalancingV2ListenerCertificate if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerCertificateResources() // GetAWSElasticLoadBalancingV2ListenerCertificateWithName retrieves all AWSElasticLoadBalancingV2ListenerCertificate items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticLoadBalancingV2ListenerCertificateWithName(name string) (AWSElasticLoadBalancingV2ListenerCertificate, error) { +func (t *Template) GetAWSElasticLoadBalancingV2ListenerCertificateWithName(name string) (*AWSElasticLoadBalancingV2ListenerCertificate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSElasticLoadBalancingV2ListenerCertificate: + case *AWSElasticLoadBalancingV2ListenerCertificate: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSElasticLoadBalancingV2ListenerCertificateWithName(name if b, err := json.Marshal(resource); err == nil { var result AWSElasticLoadBalancingV2ListenerCertificate if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSElasticLoadBalancingV2ListenerCertificate{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-elasticloadbalancingv2-listenerrule.go b/cloudformation/aws-elasticloadbalancingv2-listenerrule.go index 87069d58f5..2cf32e6c26 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listenerrule.go +++ b/cloudformation/aws-elasticloadbalancingv2-listenerrule.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSElasticLoadBalancingV2ListenerRule) SetDeletionPolicy(policy Deletio // 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 AWSElasticLoadBalancingV2ListenerRule) MarshalJSON() ([]byte, error) { +func (r *AWSElasticLoadBalancingV2ListenerRule) MarshalJSON() ([]byte, error) { type Properties AWSElasticLoadBalancingV2ListenerRule return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSElasticLoadBalancingV2ListenerRule) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSElasticLoadBalancingV2ListenerRule) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSElasticLoadBalancingV2ListenerRule) UnmarshalJSON(b []byte) error { } // GetAllAWSElasticLoadBalancingV2ListenerRuleResources retrieves all AWSElasticLoadBalancingV2ListenerRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerRuleResources() map[string]AWSElasticLoadBalancingV2ListenerRule { - results := map[string]AWSElasticLoadBalancingV2ListenerRule{} +func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerRuleResources() map[string]*AWSElasticLoadBalancingV2ListenerRule { + results := map[string]*AWSElasticLoadBalancingV2ListenerRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSElasticLoadBalancingV2ListenerRule: + case *AWSElasticLoadBalancingV2ListenerRule: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerRuleResources() map[st if b, err := json.Marshal(resource); err == nil { var result AWSElasticLoadBalancingV2ListenerRule if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerRuleResources() map[st // GetAWSElasticLoadBalancingV2ListenerRuleWithName retrieves all AWSElasticLoadBalancingV2ListenerRule items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticLoadBalancingV2ListenerRuleWithName(name string) (AWSElasticLoadBalancingV2ListenerRule, error) { +func (t *Template) GetAWSElasticLoadBalancingV2ListenerRuleWithName(name string) (*AWSElasticLoadBalancingV2ListenerRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSElasticLoadBalancingV2ListenerRule: + case *AWSElasticLoadBalancingV2ListenerRule: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSElasticLoadBalancingV2ListenerRuleWithName(name string) if b, err := json.Marshal(resource); err == nil { var result AWSElasticLoadBalancingV2ListenerRule if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSElasticLoadBalancingV2ListenerRule{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-elasticloadbalancingv2-loadbalancer.go b/cloudformation/aws-elasticloadbalancingv2-loadbalancer.go index 1e4e52d3c6..c479d171ca 100644 --- a/cloudformation/aws-elasticloadbalancingv2-loadbalancer.go +++ b/cloudformation/aws-elasticloadbalancingv2-loadbalancer.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -102,7 +103,7 @@ func (r *AWSElasticLoadBalancingV2LoadBalancer) SetDeletionPolicy(policy Deletio // 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 AWSElasticLoadBalancingV2LoadBalancer) MarshalJSON() ([]byte, error) { +func (r *AWSElasticLoadBalancingV2LoadBalancer) MarshalJSON() ([]byte, error) { type Properties AWSElasticLoadBalancingV2LoadBalancer return json.Marshal(&struct { Type string @@ -112,7 +113,7 @@ func (r AWSElasticLoadBalancingV2LoadBalancer) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -129,7 +130,11 @@ func (r *AWSElasticLoadBalancingV2LoadBalancer) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -149,11 +154,11 @@ func (r *AWSElasticLoadBalancingV2LoadBalancer) UnmarshalJSON(b []byte) error { } // GetAllAWSElasticLoadBalancingV2LoadBalancerResources retrieves all AWSElasticLoadBalancingV2LoadBalancer items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticLoadBalancingV2LoadBalancerResources() map[string]AWSElasticLoadBalancingV2LoadBalancer { - results := map[string]AWSElasticLoadBalancingV2LoadBalancer{} +func (t *Template) GetAllAWSElasticLoadBalancingV2LoadBalancerResources() map[string]*AWSElasticLoadBalancingV2LoadBalancer { + results := map[string]*AWSElasticLoadBalancingV2LoadBalancer{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSElasticLoadBalancingV2LoadBalancer: + case *AWSElasticLoadBalancingV2LoadBalancer: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -165,7 +170,8 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2LoadBalancerResources() map[st if b, err := json.Marshal(resource); err == nil { var result AWSElasticLoadBalancingV2LoadBalancer if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -177,10 +183,10 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2LoadBalancerResources() map[st // GetAWSElasticLoadBalancingV2LoadBalancerWithName retrieves all AWSElasticLoadBalancingV2LoadBalancer items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticLoadBalancingV2LoadBalancerWithName(name string) (AWSElasticLoadBalancingV2LoadBalancer, error) { +func (t *Template) GetAWSElasticLoadBalancingV2LoadBalancerWithName(name string) (*AWSElasticLoadBalancingV2LoadBalancer, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSElasticLoadBalancingV2LoadBalancer: + case *AWSElasticLoadBalancingV2LoadBalancer: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -192,12 +198,13 @@ func (t *Template) GetAWSElasticLoadBalancingV2LoadBalancerWithName(name string) if b, err := json.Marshal(resource); err == nil { var result AWSElasticLoadBalancingV2LoadBalancer if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSElasticLoadBalancingV2LoadBalancer{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-elasticloadbalancingv2-targetgroup.go b/cloudformation/aws-elasticloadbalancingv2-targetgroup.go index d48ac9282a..770fadedef 100644 --- a/cloudformation/aws-elasticloadbalancingv2-targetgroup.go +++ b/cloudformation/aws-elasticloadbalancingv2-targetgroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -10,6 +11,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html type AWSElasticLoadBalancingV2TargetGroup struct { + // HealthCheckEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-healthcheckenabled + HealthCheckEnabled bool `json:"HealthCheckEnabled,omitempty"` + // HealthCheckIntervalSeconds AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-healthcheckintervalseconds @@ -51,12 +57,12 @@ type AWSElasticLoadBalancingV2TargetGroup struct { Name string `json:"Name,omitempty"` // Port AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-port - Port int `json:"Port"` + Port int `json:"Port,omitempty"` // Protocol AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-protocol Protocol string `json:"Protocol,omitempty"` @@ -86,7 +92,7 @@ type AWSElasticLoadBalancingV2TargetGroup struct { UnhealthyThresholdCount int `json:"UnhealthyThresholdCount,omitempty"` // VpcId AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-vpcid VpcId string `json:"VpcId,omitempty"` @@ -137,7 +143,7 @@ func (r *AWSElasticLoadBalancingV2TargetGroup) SetDeletionPolicy(policy Deletion // 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 AWSElasticLoadBalancingV2TargetGroup) MarshalJSON() ([]byte, error) { +func (r *AWSElasticLoadBalancingV2TargetGroup) MarshalJSON() ([]byte, error) { type Properties AWSElasticLoadBalancingV2TargetGroup return json.Marshal(&struct { Type string @@ -147,7 +153,7 @@ func (r AWSElasticLoadBalancingV2TargetGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -164,7 +170,11 @@ func (r *AWSElasticLoadBalancingV2TargetGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -184,11 +194,11 @@ func (r *AWSElasticLoadBalancingV2TargetGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSElasticLoadBalancingV2TargetGroupResources retrieves all AWSElasticLoadBalancingV2TargetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticLoadBalancingV2TargetGroupResources() map[string]AWSElasticLoadBalancingV2TargetGroup { - results := map[string]AWSElasticLoadBalancingV2TargetGroup{} +func (t *Template) GetAllAWSElasticLoadBalancingV2TargetGroupResources() map[string]*AWSElasticLoadBalancingV2TargetGroup { + results := map[string]*AWSElasticLoadBalancingV2TargetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSElasticLoadBalancingV2TargetGroup: + case *AWSElasticLoadBalancingV2TargetGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -200,7 +210,8 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2TargetGroupResources() map[str if b, err := json.Marshal(resource); err == nil { var result AWSElasticLoadBalancingV2TargetGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -212,10 +223,10 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2TargetGroupResources() map[str // GetAWSElasticLoadBalancingV2TargetGroupWithName retrieves all AWSElasticLoadBalancingV2TargetGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticLoadBalancingV2TargetGroupWithName(name string) (AWSElasticLoadBalancingV2TargetGroup, error) { +func (t *Template) GetAWSElasticLoadBalancingV2TargetGroupWithName(name string) (*AWSElasticLoadBalancingV2TargetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSElasticLoadBalancingV2TargetGroup: + case *AWSElasticLoadBalancingV2TargetGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -227,12 +238,13 @@ func (t *Template) GetAWSElasticLoadBalancingV2TargetGroupWithName(name string) if b, err := json.Marshal(resource); err == nil { var result AWSElasticLoadBalancingV2TargetGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSElasticLoadBalancingV2TargetGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-elasticsearch-domain.go b/cloudformation/aws-elasticsearch-domain.go index 251e0960fd..8e7e6486f0 100644 --- a/cloudformation/aws-elasticsearch-domain.go +++ b/cloudformation/aws-elasticsearch-domain.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -45,6 +46,11 @@ type AWSElasticsearchDomain struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-encryptionatrestoptions EncryptionAtRestOptions *AWSElasticsearchDomain_EncryptionAtRestOptions `json:"EncryptionAtRestOptions,omitempty"` + // NodeToNodeEncryptionOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-nodetonodeencryptionoptions + NodeToNodeEncryptionOptions *AWSElasticsearchDomain_NodeToNodeEncryptionOptions `json:"NodeToNodeEncryptionOptions,omitempty"` + // SnapshotOptions AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-snapshotoptions @@ -107,7 +113,7 @@ func (r *AWSElasticsearchDomain) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSElasticsearchDomain) MarshalJSON() ([]byte, error) { +func (r *AWSElasticsearchDomain) MarshalJSON() ([]byte, error) { type Properties AWSElasticsearchDomain return json.Marshal(&struct { Type string @@ -117,7 +123,7 @@ func (r AWSElasticsearchDomain) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -134,7 +140,11 @@ func (r *AWSElasticsearchDomain) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -154,11 +164,11 @@ func (r *AWSElasticsearchDomain) UnmarshalJSON(b []byte) error { } // GetAllAWSElasticsearchDomainResources retrieves all AWSElasticsearchDomain items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticsearchDomainResources() map[string]AWSElasticsearchDomain { - results := map[string]AWSElasticsearchDomain{} +func (t *Template) GetAllAWSElasticsearchDomainResources() map[string]*AWSElasticsearchDomain { + results := map[string]*AWSElasticsearchDomain{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSElasticsearchDomain: + case *AWSElasticsearchDomain: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -170,7 +180,8 @@ func (t *Template) GetAllAWSElasticsearchDomainResources() map[string]AWSElastic if b, err := json.Marshal(resource); err == nil { var result AWSElasticsearchDomain if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -182,10 +193,10 @@ func (t *Template) GetAllAWSElasticsearchDomainResources() map[string]AWSElastic // GetAWSElasticsearchDomainWithName retrieves all AWSElasticsearchDomain items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticsearchDomainWithName(name string) (AWSElasticsearchDomain, error) { +func (t *Template) GetAWSElasticsearchDomainWithName(name string) (*AWSElasticsearchDomain, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSElasticsearchDomain: + case *AWSElasticsearchDomain: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -197,12 +208,13 @@ func (t *Template) GetAWSElasticsearchDomainWithName(name string) (AWSElasticsea if b, err := json.Marshal(resource); err == nil { var result AWSElasticsearchDomain if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSElasticsearchDomain{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-elasticsearch-domain_nodetonodeencryptionoptions.go b/cloudformation/aws-elasticsearch-domain_nodetonodeencryptionoptions.go new file mode 100644 index 0000000000..14aeb80f16 --- /dev/null +++ b/cloudformation/aws-elasticsearch-domain_nodetonodeencryptionoptions.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSElasticsearchDomain_NodeToNodeEncryptionOptions AWS CloudFormation Resource (AWS::Elasticsearch::Domain.NodeToNodeEncryptionOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-nodetonodeencryptionoptions.html +type AWSElasticsearchDomain_NodeToNodeEncryptionOptions struct { + + // Enabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-nodetonodeencryptionoptions.html#cfn-elasticsearch-domain-nodetonodeencryptionoptions-enabled + Enabled bool `json:"Enabled,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSElasticsearchDomain_NodeToNodeEncryptionOptions) AWSCloudFormationType() string { + return "AWS::Elasticsearch::Domain.NodeToNodeEncryptionOptions" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSElasticsearchDomain_NodeToNodeEncryptionOptions) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSElasticsearchDomain_NodeToNodeEncryptionOptions) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSElasticsearchDomain_NodeToNodeEncryptionOptions) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSElasticsearchDomain_NodeToNodeEncryptionOptions) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSElasticsearchDomain_NodeToNodeEncryptionOptions) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-emr-cluster.go b/cloudformation/aws-emr-cluster.go index e839f8dff2..c93e6206fd 100644 --- a/cloudformation/aws-emr-cluster.go +++ b/cloudformation/aws-emr-cluster.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -152,7 +153,7 @@ func (r *AWSEMRCluster) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEMRCluster) MarshalJSON() ([]byte, error) { +func (r *AWSEMRCluster) MarshalJSON() ([]byte, error) { type Properties AWSEMRCluster return json.Marshal(&struct { Type string @@ -162,7 +163,7 @@ func (r AWSEMRCluster) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -179,7 +180,11 @@ func (r *AWSEMRCluster) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -199,11 +204,11 @@ func (r *AWSEMRCluster) UnmarshalJSON(b []byte) error { } // GetAllAWSEMRClusterResources retrieves all AWSEMRCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSEMRClusterResources() map[string]AWSEMRCluster { - results := map[string]AWSEMRCluster{} +func (t *Template) GetAllAWSEMRClusterResources() map[string]*AWSEMRCluster { + results := map[string]*AWSEMRCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEMRCluster: + case *AWSEMRCluster: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -215,7 +220,8 @@ func (t *Template) GetAllAWSEMRClusterResources() map[string]AWSEMRCluster { if b, err := json.Marshal(resource); err == nil { var result AWSEMRCluster if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -227,10 +233,10 @@ func (t *Template) GetAllAWSEMRClusterResources() map[string]AWSEMRCluster { // GetAWSEMRClusterWithName retrieves all AWSEMRCluster items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEMRClusterWithName(name string) (AWSEMRCluster, error) { +func (t *Template) GetAWSEMRClusterWithName(name string) (*AWSEMRCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEMRCluster: + case *AWSEMRCluster: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -242,12 +248,13 @@ func (t *Template) GetAWSEMRClusterWithName(name string) (AWSEMRCluster, error) if b, err := json.Marshal(resource); err == nil { var result AWSEMRCluster if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEMRCluster{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-emr-instancefleetconfig.go b/cloudformation/aws-emr-instancefleetconfig.go index f106365728..f9e2e4fa76 100644 --- a/cloudformation/aws-emr-instancefleetconfig.go +++ b/cloudformation/aws-emr-instancefleetconfig.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -92,7 +93,7 @@ func (r *AWSEMRInstanceFleetConfig) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEMRInstanceFleetConfig) MarshalJSON() ([]byte, error) { +func (r *AWSEMRInstanceFleetConfig) MarshalJSON() ([]byte, error) { type Properties AWSEMRInstanceFleetConfig return json.Marshal(&struct { Type string @@ -102,7 +103,7 @@ func (r AWSEMRInstanceFleetConfig) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -119,7 +120,11 @@ func (r *AWSEMRInstanceFleetConfig) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -139,11 +144,11 @@ func (r *AWSEMRInstanceFleetConfig) UnmarshalJSON(b []byte) error { } // GetAllAWSEMRInstanceFleetConfigResources retrieves all AWSEMRInstanceFleetConfig items from an AWS CloudFormation template -func (t *Template) GetAllAWSEMRInstanceFleetConfigResources() map[string]AWSEMRInstanceFleetConfig { - results := map[string]AWSEMRInstanceFleetConfig{} +func (t *Template) GetAllAWSEMRInstanceFleetConfigResources() map[string]*AWSEMRInstanceFleetConfig { + results := map[string]*AWSEMRInstanceFleetConfig{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEMRInstanceFleetConfig: + case *AWSEMRInstanceFleetConfig: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -155,7 +160,8 @@ func (t *Template) GetAllAWSEMRInstanceFleetConfigResources() map[string]AWSEMRI if b, err := json.Marshal(resource); err == nil { var result AWSEMRInstanceFleetConfig if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -167,10 +173,10 @@ func (t *Template) GetAllAWSEMRInstanceFleetConfigResources() map[string]AWSEMRI // GetAWSEMRInstanceFleetConfigWithName retrieves all AWSEMRInstanceFleetConfig items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEMRInstanceFleetConfigWithName(name string) (AWSEMRInstanceFleetConfig, error) { +func (t *Template) GetAWSEMRInstanceFleetConfigWithName(name string) (*AWSEMRInstanceFleetConfig, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEMRInstanceFleetConfig: + case *AWSEMRInstanceFleetConfig: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -182,12 +188,13 @@ func (t *Template) GetAWSEMRInstanceFleetConfigWithName(name string) (AWSEMRInst if b, err := json.Marshal(resource); err == nil { var result AWSEMRInstanceFleetConfig if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEMRInstanceFleetConfig{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-emr-instancegroupconfig.go b/cloudformation/aws-emr-instancegroupconfig.go index 9d6c2ae924..e097c06197 100644 --- a/cloudformation/aws-emr-instancegroupconfig.go +++ b/cloudformation/aws-emr-instancegroupconfig.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -107,7 +108,7 @@ func (r *AWSEMRInstanceGroupConfig) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEMRInstanceGroupConfig) MarshalJSON() ([]byte, error) { +func (r *AWSEMRInstanceGroupConfig) MarshalJSON() ([]byte, error) { type Properties AWSEMRInstanceGroupConfig return json.Marshal(&struct { Type string @@ -117,7 +118,7 @@ func (r AWSEMRInstanceGroupConfig) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -134,7 +135,11 @@ func (r *AWSEMRInstanceGroupConfig) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -154,11 +159,11 @@ func (r *AWSEMRInstanceGroupConfig) UnmarshalJSON(b []byte) error { } // GetAllAWSEMRInstanceGroupConfigResources retrieves all AWSEMRInstanceGroupConfig items from an AWS CloudFormation template -func (t *Template) GetAllAWSEMRInstanceGroupConfigResources() map[string]AWSEMRInstanceGroupConfig { - results := map[string]AWSEMRInstanceGroupConfig{} +func (t *Template) GetAllAWSEMRInstanceGroupConfigResources() map[string]*AWSEMRInstanceGroupConfig { + results := map[string]*AWSEMRInstanceGroupConfig{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEMRInstanceGroupConfig: + case *AWSEMRInstanceGroupConfig: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -170,7 +175,8 @@ func (t *Template) GetAllAWSEMRInstanceGroupConfigResources() map[string]AWSEMRI if b, err := json.Marshal(resource); err == nil { var result AWSEMRInstanceGroupConfig if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -182,10 +188,10 @@ func (t *Template) GetAllAWSEMRInstanceGroupConfigResources() map[string]AWSEMRI // GetAWSEMRInstanceGroupConfigWithName retrieves all AWSEMRInstanceGroupConfig items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEMRInstanceGroupConfigWithName(name string) (AWSEMRInstanceGroupConfig, error) { +func (t *Template) GetAWSEMRInstanceGroupConfigWithName(name string) (*AWSEMRInstanceGroupConfig, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEMRInstanceGroupConfig: + case *AWSEMRInstanceGroupConfig: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -197,12 +203,13 @@ func (t *Template) GetAWSEMRInstanceGroupConfigWithName(name string) (AWSEMRInst if b, err := json.Marshal(resource); err == nil { var result AWSEMRInstanceGroupConfig if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEMRInstanceGroupConfig{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-emr-securityconfiguration.go b/cloudformation/aws-emr-securityconfiguration.go index 00961d42ca..76bffda396 100644 --- a/cloudformation/aws-emr-securityconfiguration.go +++ b/cloudformation/aws-emr-securityconfiguration.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSEMRSecurityConfiguration) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEMRSecurityConfiguration) MarshalJSON() ([]byte, error) { +func (r *AWSEMRSecurityConfiguration) MarshalJSON() ([]byte, error) { type Properties AWSEMRSecurityConfiguration return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSEMRSecurityConfiguration) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSEMRSecurityConfiguration) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSEMRSecurityConfiguration) UnmarshalJSON(b []byte) error { } // GetAllAWSEMRSecurityConfigurationResources retrieves all AWSEMRSecurityConfiguration items from an AWS CloudFormation template -func (t *Template) GetAllAWSEMRSecurityConfigurationResources() map[string]AWSEMRSecurityConfiguration { - results := map[string]AWSEMRSecurityConfiguration{} +func (t *Template) GetAllAWSEMRSecurityConfigurationResources() map[string]*AWSEMRSecurityConfiguration { + results := map[string]*AWSEMRSecurityConfiguration{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEMRSecurityConfiguration: + case *AWSEMRSecurityConfiguration: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSEMRSecurityConfigurationResources() map[string]AWSEM if b, err := json.Marshal(resource); err == nil { var result AWSEMRSecurityConfiguration if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSEMRSecurityConfigurationResources() map[string]AWSEM // GetAWSEMRSecurityConfigurationWithName retrieves all AWSEMRSecurityConfiguration items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEMRSecurityConfigurationWithName(name string) (AWSEMRSecurityConfiguration, error) { +func (t *Template) GetAWSEMRSecurityConfigurationWithName(name string) (*AWSEMRSecurityConfiguration, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEMRSecurityConfiguration: + case *AWSEMRSecurityConfiguration: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSEMRSecurityConfigurationWithName(name string) (AWSEMRSe if b, err := json.Marshal(resource); err == nil { var result AWSEMRSecurityConfiguration if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEMRSecurityConfiguration{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-emr-step.go b/cloudformation/aws-emr-step.go index cb719a6979..96bc0d8870 100644 --- a/cloudformation/aws-emr-step.go +++ b/cloudformation/aws-emr-step.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSEMRStep) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEMRStep) MarshalJSON() ([]byte, error) { +func (r *AWSEMRStep) MarshalJSON() ([]byte, error) { type Properties AWSEMRStep return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSEMRStep) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSEMRStep) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSEMRStep) UnmarshalJSON(b []byte) error { } // GetAllAWSEMRStepResources retrieves all AWSEMRStep items from an AWS CloudFormation template -func (t *Template) GetAllAWSEMRStepResources() map[string]AWSEMRStep { - results := map[string]AWSEMRStep{} +func (t *Template) GetAllAWSEMRStepResources() map[string]*AWSEMRStep { + results := map[string]*AWSEMRStep{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEMRStep: + case *AWSEMRStep: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSEMRStepResources() map[string]AWSEMRStep { if b, err := json.Marshal(resource); err == nil { var result AWSEMRStep if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSEMRStepResources() map[string]AWSEMRStep { // GetAWSEMRStepWithName retrieves all AWSEMRStep items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEMRStepWithName(name string) (AWSEMRStep, error) { +func (t *Template) GetAWSEMRStepWithName(name string) (*AWSEMRStep, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEMRStep: + case *AWSEMRStep: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSEMRStepWithName(name string) (AWSEMRStep, error) { if b, err := json.Marshal(resource); err == nil { var result AWSEMRStep if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEMRStep{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-events-eventbuspolicy.go b/cloudformation/aws-events-eventbuspolicy.go index e17f2091ed..7e34bd0405 100644 --- a/cloudformation/aws-events-eventbuspolicy.go +++ b/cloudformation/aws-events-eventbuspolicy.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSEventsEventBusPolicy) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEventsEventBusPolicy) MarshalJSON() ([]byte, error) { +func (r *AWSEventsEventBusPolicy) MarshalJSON() ([]byte, error) { type Properties AWSEventsEventBusPolicy return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSEventsEventBusPolicy) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSEventsEventBusPolicy) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSEventsEventBusPolicy) UnmarshalJSON(b []byte) error { } // GetAllAWSEventsEventBusPolicyResources retrieves all AWSEventsEventBusPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSEventsEventBusPolicyResources() map[string]AWSEventsEventBusPolicy { - results := map[string]AWSEventsEventBusPolicy{} +func (t *Template) GetAllAWSEventsEventBusPolicyResources() map[string]*AWSEventsEventBusPolicy { + results := map[string]*AWSEventsEventBusPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEventsEventBusPolicy: + case *AWSEventsEventBusPolicy: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSEventsEventBusPolicyResources() map[string]AWSEvents if b, err := json.Marshal(resource); err == nil { var result AWSEventsEventBusPolicy if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSEventsEventBusPolicyResources() map[string]AWSEvents // GetAWSEventsEventBusPolicyWithName retrieves all AWSEventsEventBusPolicy items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEventsEventBusPolicyWithName(name string) (AWSEventsEventBusPolicy, error) { +func (t *Template) GetAWSEventsEventBusPolicyWithName(name string) (*AWSEventsEventBusPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEventsEventBusPolicy: + case *AWSEventsEventBusPolicy: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSEventsEventBusPolicyWithName(name string) (AWSEventsEve if b, err := json.Marshal(resource); err == nil { var result AWSEventsEventBusPolicy if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEventsEventBusPolicy{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-events-rule.go b/cloudformation/aws-events-rule.go index 728a8e0d19..e101290425 100644 --- a/cloudformation/aws-events-rule.go +++ b/cloudformation/aws-events-rule.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -92,7 +93,7 @@ func (r *AWSEventsRule) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSEventsRule) MarshalJSON() ([]byte, error) { +func (r *AWSEventsRule) MarshalJSON() ([]byte, error) { type Properties AWSEventsRule return json.Marshal(&struct { Type string @@ -102,7 +103,7 @@ func (r AWSEventsRule) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -119,7 +120,11 @@ func (r *AWSEventsRule) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -139,11 +144,11 @@ func (r *AWSEventsRule) UnmarshalJSON(b []byte) error { } // GetAllAWSEventsRuleResources retrieves all AWSEventsRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSEventsRuleResources() map[string]AWSEventsRule { - results := map[string]AWSEventsRule{} +func (t *Template) GetAllAWSEventsRuleResources() map[string]*AWSEventsRule { + results := map[string]*AWSEventsRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSEventsRule: + case *AWSEventsRule: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -155,7 +160,8 @@ func (t *Template) GetAllAWSEventsRuleResources() map[string]AWSEventsRule { if b, err := json.Marshal(resource); err == nil { var result AWSEventsRule if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -167,10 +173,10 @@ func (t *Template) GetAllAWSEventsRuleResources() map[string]AWSEventsRule { // GetAWSEventsRuleWithName retrieves all AWSEventsRule items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEventsRuleWithName(name string) (AWSEventsRule, error) { +func (t *Template) GetAWSEventsRuleWithName(name string) (*AWSEventsRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSEventsRule: + case *AWSEventsRule: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -182,12 +188,13 @@ func (t *Template) GetAWSEventsRuleWithName(name string) (AWSEventsRule, error) if b, err := json.Marshal(resource); err == nil { var result AWSEventsRule if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSEventsRule{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-fsx-filesystem.go b/cloudformation/aws-fsx-filesystem.go new file mode 100644 index 0000000000..628b0b807c --- /dev/null +++ b/cloudformation/aws-fsx-filesystem.go @@ -0,0 +1,210 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSFSxFileSystem AWS CloudFormation Resource (AWS::FSx::FileSystem) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html +type AWSFSxFileSystem struct { + + // BackupId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-backupid + BackupId string `json:"BackupId,omitempty"` + + // FileSystemType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-filesystemtype + FileSystemType string `json:"FileSystemType,omitempty"` + + // KmsKeyId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-kmskeyid + KmsKeyId string `json:"KmsKeyId,omitempty"` + + // LustreConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-lustreconfiguration + LustreConfiguration *AWSFSxFileSystem_LustreConfiguration `json:"LustreConfiguration,omitempty"` + + // SecurityGroupIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-securitygroupids + SecurityGroupIds []string `json:"SecurityGroupIds,omitempty"` + + // StorageCapacity AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-storagecapacity + StorageCapacity int `json:"StorageCapacity,omitempty"` + + // SubnetIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-subnetids + SubnetIds []string `json:"SubnetIds,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-tags + Tags []AWSFSxFileSystem_TagEntry `json:"Tags,omitempty"` + + // WindowsConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-windowsconfiguration + WindowsConfiguration *AWSFSxFileSystem_WindowsConfiguration `json:"WindowsConfiguration,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSFSxFileSystem) AWSCloudFormationType() string { + return "AWS::FSx::FileSystem" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSFSxFileSystem) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSFSxFileSystem) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSFSxFileSystem) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSFSxFileSystem) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSFSxFileSystem) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSFSxFileSystem) MarshalJSON() ([]byte, error) { + type Properties AWSFSxFileSystem + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSFSxFileSystem) UnmarshalJSON(b []byte) error { + type Properties AWSFSxFileSystem + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSFSxFileSystem(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSFSxFileSystemResources retrieves all AWSFSxFileSystem items from an AWS CloudFormation template +func (t *Template) GetAllAWSFSxFileSystemResources() map[string]*AWSFSxFileSystem { + results := map[string]*AWSFSxFileSystem{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSFSxFileSystem: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::FSx::FileSystem" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSFSxFileSystem + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSFSxFileSystemWithName retrieves all AWSFSxFileSystem items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSFSxFileSystemWithName(name string) (*AWSFSxFileSystem, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSFSxFileSystem: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::FSx::FileSystem" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSFSxFileSystem + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-fsx-filesystem_lustreconfiguration.go b/cloudformation/aws-fsx-filesystem_lustreconfiguration.go new file mode 100644 index 0000000000..9b904af355 --- /dev/null +++ b/cloudformation/aws-fsx-filesystem_lustreconfiguration.go @@ -0,0 +1,70 @@ +package cloudformation + +// AWSFSxFileSystem_LustreConfiguration AWS CloudFormation Resource (AWS::FSx::FileSystem.LustreConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html +type AWSFSxFileSystem_LustreConfiguration struct { + + // ExportPath AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-exportpath + ExportPath string `json:"ExportPath,omitempty"` + + // ImportPath AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-importpath + ImportPath string `json:"ImportPath,omitempty"` + + // ImportedFileChunkSize AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-importedfilechunksize + ImportedFileChunkSize int `json:"ImportedFileChunkSize,omitempty"` + + // WeeklyMaintenanceStartTime AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-weeklymaintenancestarttime + WeeklyMaintenanceStartTime string `json:"WeeklyMaintenanceStartTime,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSFSxFileSystem_LustreConfiguration) AWSCloudFormationType() string { + return "AWS::FSx::FileSystem.LustreConfiguration" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSFSxFileSystem_LustreConfiguration) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSFSxFileSystem_LustreConfiguration) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSFSxFileSystem_LustreConfiguration) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSFSxFileSystem_LustreConfiguration) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSFSxFileSystem_LustreConfiguration) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-fsx-filesystem_tagentry.go b/cloudformation/aws-fsx-filesystem_tagentry.go new file mode 100644 index 0000000000..74bfcfd91e --- /dev/null +++ b/cloudformation/aws-fsx-filesystem_tagentry.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSFSxFileSystem_TagEntry AWS CloudFormation Resource (AWS::FSx::FileSystem.TagEntry) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-tagentry.html +type AWSFSxFileSystem_TagEntry struct { + + // Key AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-tagentry.html#cfn-fsx-filesystem-tagentry-key + Key string `json:"Key,omitempty"` + + // Value AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-tagentry.html#cfn-fsx-filesystem-tagentry-value + Value string `json:"Value,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSFSxFileSystem_TagEntry) AWSCloudFormationType() string { + return "AWS::FSx::FileSystem.TagEntry" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSFSxFileSystem_TagEntry) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSFSxFileSystem_TagEntry) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSFSxFileSystem_TagEntry) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSFSxFileSystem_TagEntry) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSFSxFileSystem_TagEntry) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-fsx-filesystem_windowsconfiguration.go b/cloudformation/aws-fsx-filesystem_windowsconfiguration.go new file mode 100644 index 0000000000..d5b2fa42ee --- /dev/null +++ b/cloudformation/aws-fsx-filesystem_windowsconfiguration.go @@ -0,0 +1,80 @@ +package cloudformation + +// AWSFSxFileSystem_WindowsConfiguration AWS CloudFormation Resource (AWS::FSx::FileSystem.WindowsConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html +type AWSFSxFileSystem_WindowsConfiguration struct { + + // ActiveDirectoryId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-activedirectoryid + ActiveDirectoryId string `json:"ActiveDirectoryId,omitempty"` + + // AutomaticBackupRetentionDays AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-automaticbackupretentiondays + AutomaticBackupRetentionDays int `json:"AutomaticBackupRetentionDays,omitempty"` + + // CopyTagsToBackups AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-copytagstobackups + CopyTagsToBackups bool `json:"CopyTagsToBackups,omitempty"` + + // DailyAutomaticBackupStartTime AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-dailyautomaticbackupstarttime + DailyAutomaticBackupStartTime string `json:"DailyAutomaticBackupStartTime,omitempty"` + + // ThroughputCapacity AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-throughputcapacity + ThroughputCapacity int `json:"ThroughputCapacity,omitempty"` + + // WeeklyMaintenanceStartTime AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-weeklymaintenancestarttime + WeeklyMaintenanceStartTime string `json:"WeeklyMaintenanceStartTime,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSFSxFileSystem_WindowsConfiguration) AWSCloudFormationType() string { + return "AWS::FSx::FileSystem.WindowsConfiguration" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSFSxFileSystem_WindowsConfiguration) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSFSxFileSystem_WindowsConfiguration) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSFSxFileSystem_WindowsConfiguration) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSFSxFileSystem_WindowsConfiguration) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSFSxFileSystem_WindowsConfiguration) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-gamelift-alias.go b/cloudformation/aws-gamelift-alias.go index 723178f0a5..6846affa27 100644 --- a/cloudformation/aws-gamelift-alias.go +++ b/cloudformation/aws-gamelift-alias.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSGameLiftAlias) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSGameLiftAlias) MarshalJSON() ([]byte, error) { +func (r *AWSGameLiftAlias) MarshalJSON() ([]byte, error) { type Properties AWSGameLiftAlias return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSGameLiftAlias) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSGameLiftAlias) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSGameLiftAlias) UnmarshalJSON(b []byte) error { } // GetAllAWSGameLiftAliasResources retrieves all AWSGameLiftAlias items from an AWS CloudFormation template -func (t *Template) GetAllAWSGameLiftAliasResources() map[string]AWSGameLiftAlias { - results := map[string]AWSGameLiftAlias{} +func (t *Template) GetAllAWSGameLiftAliasResources() map[string]*AWSGameLiftAlias { + results := map[string]*AWSGameLiftAlias{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSGameLiftAlias: + case *AWSGameLiftAlias: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSGameLiftAliasResources() map[string]AWSGameLiftAlias if b, err := json.Marshal(resource); err == nil { var result AWSGameLiftAlias if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSGameLiftAliasResources() map[string]AWSGameLiftAlias // GetAWSGameLiftAliasWithName retrieves all AWSGameLiftAlias items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGameLiftAliasWithName(name string) (AWSGameLiftAlias, error) { +func (t *Template) GetAWSGameLiftAliasWithName(name string) (*AWSGameLiftAlias, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSGameLiftAlias: + case *AWSGameLiftAlias: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSGameLiftAliasWithName(name string) (AWSGameLiftAlias, e if b, err := json.Marshal(resource); err == nil { var result AWSGameLiftAlias if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSGameLiftAlias{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-gamelift-build.go b/cloudformation/aws-gamelift-build.go index cd12d23d0c..7750d4acfc 100644 --- a/cloudformation/aws-gamelift-build.go +++ b/cloudformation/aws-gamelift-build.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSGameLiftBuild) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSGameLiftBuild) MarshalJSON() ([]byte, error) { +func (r *AWSGameLiftBuild) MarshalJSON() ([]byte, error) { type Properties AWSGameLiftBuild return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSGameLiftBuild) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSGameLiftBuild) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSGameLiftBuild) UnmarshalJSON(b []byte) error { } // GetAllAWSGameLiftBuildResources retrieves all AWSGameLiftBuild items from an AWS CloudFormation template -func (t *Template) GetAllAWSGameLiftBuildResources() map[string]AWSGameLiftBuild { - results := map[string]AWSGameLiftBuild{} +func (t *Template) GetAllAWSGameLiftBuildResources() map[string]*AWSGameLiftBuild { + results := map[string]*AWSGameLiftBuild{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSGameLiftBuild: + case *AWSGameLiftBuild: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSGameLiftBuildResources() map[string]AWSGameLiftBuild if b, err := json.Marshal(resource); err == nil { var result AWSGameLiftBuild if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSGameLiftBuildResources() map[string]AWSGameLiftBuild // GetAWSGameLiftBuildWithName retrieves all AWSGameLiftBuild items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGameLiftBuildWithName(name string) (AWSGameLiftBuild, error) { +func (t *Template) GetAWSGameLiftBuildWithName(name string) (*AWSGameLiftBuild, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSGameLiftBuild: + case *AWSGameLiftBuild: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSGameLiftBuildWithName(name string) (AWSGameLiftBuild, e if b, err := json.Marshal(resource); err == nil { var result AWSGameLiftBuild if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSGameLiftBuild{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-gamelift-fleet.go b/cloudformation/aws-gamelift-fleet.go index 5f5592b19b..d181024501 100644 --- a/cloudformation/aws-gamelift-fleet.go +++ b/cloudformation/aws-gamelift-fleet.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -112,7 +113,7 @@ func (r *AWSGameLiftFleet) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSGameLiftFleet) MarshalJSON() ([]byte, error) { +func (r *AWSGameLiftFleet) MarshalJSON() ([]byte, error) { type Properties AWSGameLiftFleet return json.Marshal(&struct { Type string @@ -122,7 +123,7 @@ func (r AWSGameLiftFleet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -139,7 +140,11 @@ func (r *AWSGameLiftFleet) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -159,11 +164,11 @@ func (r *AWSGameLiftFleet) UnmarshalJSON(b []byte) error { } // GetAllAWSGameLiftFleetResources retrieves all AWSGameLiftFleet items from an AWS CloudFormation template -func (t *Template) GetAllAWSGameLiftFleetResources() map[string]AWSGameLiftFleet { - results := map[string]AWSGameLiftFleet{} +func (t *Template) GetAllAWSGameLiftFleetResources() map[string]*AWSGameLiftFleet { + results := map[string]*AWSGameLiftFleet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSGameLiftFleet: + case *AWSGameLiftFleet: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -175,7 +180,8 @@ func (t *Template) GetAllAWSGameLiftFleetResources() map[string]AWSGameLiftFleet if b, err := json.Marshal(resource); err == nil { var result AWSGameLiftFleet if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -187,10 +193,10 @@ func (t *Template) GetAllAWSGameLiftFleetResources() map[string]AWSGameLiftFleet // GetAWSGameLiftFleetWithName retrieves all AWSGameLiftFleet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGameLiftFleetWithName(name string) (AWSGameLiftFleet, error) { +func (t *Template) GetAWSGameLiftFleetWithName(name string) (*AWSGameLiftFleet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSGameLiftFleet: + case *AWSGameLiftFleet: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -202,12 +208,13 @@ func (t *Template) GetAWSGameLiftFleetWithName(name string) (AWSGameLiftFleet, e if b, err := json.Marshal(resource); err == nil { var result AWSGameLiftFleet if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSGameLiftFleet{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-glue-classifier.go b/cloudformation/aws-glue-classifier.go index 5bad676c38..e01aa004a0 100644 --- a/cloudformation/aws-glue-classifier.go +++ b/cloudformation/aws-glue-classifier.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSGlueClassifier) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSGlueClassifier) MarshalJSON() ([]byte, error) { +func (r *AWSGlueClassifier) MarshalJSON() ([]byte, error) { type Properties AWSGlueClassifier return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSGlueClassifier) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSGlueClassifier) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSGlueClassifier) UnmarshalJSON(b []byte) error { } // GetAllAWSGlueClassifierResources retrieves all AWSGlueClassifier items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueClassifierResources() map[string]AWSGlueClassifier { - results := map[string]AWSGlueClassifier{} +func (t *Template) GetAllAWSGlueClassifierResources() map[string]*AWSGlueClassifier { + results := map[string]*AWSGlueClassifier{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSGlueClassifier: + case *AWSGlueClassifier: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSGlueClassifierResources() map[string]AWSGlueClassifi if b, err := json.Marshal(resource); err == nil { var result AWSGlueClassifier if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSGlueClassifierResources() map[string]AWSGlueClassifi // GetAWSGlueClassifierWithName retrieves all AWSGlueClassifier items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueClassifierWithName(name string) (AWSGlueClassifier, error) { +func (t *Template) GetAWSGlueClassifierWithName(name string) (*AWSGlueClassifier, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSGlueClassifier: + case *AWSGlueClassifier: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSGlueClassifierWithName(name string) (AWSGlueClassifier, if b, err := json.Marshal(resource); err == nil { var result AWSGlueClassifier if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSGlueClassifier{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-glue-connection.go b/cloudformation/aws-glue-connection.go index 5872e95213..05a62aec6c 100644 --- a/cloudformation/aws-glue-connection.go +++ b/cloudformation/aws-glue-connection.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSGlueConnection) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSGlueConnection) MarshalJSON() ([]byte, error) { +func (r *AWSGlueConnection) MarshalJSON() ([]byte, error) { type Properties AWSGlueConnection return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSGlueConnection) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSGlueConnection) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSGlueConnection) UnmarshalJSON(b []byte) error { } // GetAllAWSGlueConnectionResources retrieves all AWSGlueConnection items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueConnectionResources() map[string]AWSGlueConnection { - results := map[string]AWSGlueConnection{} +func (t *Template) GetAllAWSGlueConnectionResources() map[string]*AWSGlueConnection { + results := map[string]*AWSGlueConnection{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSGlueConnection: + case *AWSGlueConnection: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSGlueConnectionResources() map[string]AWSGlueConnecti if b, err := json.Marshal(resource); err == nil { var result AWSGlueConnection if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSGlueConnectionResources() map[string]AWSGlueConnecti // GetAWSGlueConnectionWithName retrieves all AWSGlueConnection items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueConnectionWithName(name string) (AWSGlueConnection, error) { +func (t *Template) GetAWSGlueConnectionWithName(name string) (*AWSGlueConnection, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSGlueConnection: + case *AWSGlueConnection: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSGlueConnectionWithName(name string) (AWSGlueConnection, if b, err := json.Marshal(resource); err == nil { var result AWSGlueConnection if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSGlueConnection{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-glue-crawler.go b/cloudformation/aws-glue-crawler.go index fa509c8d20..d3f8419ac0 100644 --- a/cloudformation/aws-glue-crawler.go +++ b/cloudformation/aws-glue-crawler.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -107,7 +108,7 @@ func (r *AWSGlueCrawler) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSGlueCrawler) MarshalJSON() ([]byte, error) { +func (r *AWSGlueCrawler) MarshalJSON() ([]byte, error) { type Properties AWSGlueCrawler return json.Marshal(&struct { Type string @@ -117,7 +118,7 @@ func (r AWSGlueCrawler) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -134,7 +135,11 @@ func (r *AWSGlueCrawler) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -154,11 +159,11 @@ func (r *AWSGlueCrawler) UnmarshalJSON(b []byte) error { } // GetAllAWSGlueCrawlerResources retrieves all AWSGlueCrawler items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueCrawlerResources() map[string]AWSGlueCrawler { - results := map[string]AWSGlueCrawler{} +func (t *Template) GetAllAWSGlueCrawlerResources() map[string]*AWSGlueCrawler { + results := map[string]*AWSGlueCrawler{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSGlueCrawler: + case *AWSGlueCrawler: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -170,7 +175,8 @@ func (t *Template) GetAllAWSGlueCrawlerResources() map[string]AWSGlueCrawler { if b, err := json.Marshal(resource); err == nil { var result AWSGlueCrawler if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -182,10 +188,10 @@ func (t *Template) GetAllAWSGlueCrawlerResources() map[string]AWSGlueCrawler { // GetAWSGlueCrawlerWithName retrieves all AWSGlueCrawler items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueCrawlerWithName(name string) (AWSGlueCrawler, error) { +func (t *Template) GetAWSGlueCrawlerWithName(name string) (*AWSGlueCrawler, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSGlueCrawler: + case *AWSGlueCrawler: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -197,12 +203,13 @@ func (t *Template) GetAWSGlueCrawlerWithName(name string) (AWSGlueCrawler, error if b, err := json.Marshal(resource); err == nil { var result AWSGlueCrawler if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSGlueCrawler{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-glue-database.go b/cloudformation/aws-glue-database.go index d7b951f6d5..e494e68ce9 100644 --- a/cloudformation/aws-glue-database.go +++ b/cloudformation/aws-glue-database.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSGlueDatabase) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSGlueDatabase) MarshalJSON() ([]byte, error) { +func (r *AWSGlueDatabase) MarshalJSON() ([]byte, error) { type Properties AWSGlueDatabase return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSGlueDatabase) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSGlueDatabase) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSGlueDatabase) UnmarshalJSON(b []byte) error { } // GetAllAWSGlueDatabaseResources retrieves all AWSGlueDatabase items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueDatabaseResources() map[string]AWSGlueDatabase { - results := map[string]AWSGlueDatabase{} +func (t *Template) GetAllAWSGlueDatabaseResources() map[string]*AWSGlueDatabase { + results := map[string]*AWSGlueDatabase{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSGlueDatabase: + case *AWSGlueDatabase: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSGlueDatabaseResources() map[string]AWSGlueDatabase { if b, err := json.Marshal(resource); err == nil { var result AWSGlueDatabase if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSGlueDatabaseResources() map[string]AWSGlueDatabase { // GetAWSGlueDatabaseWithName retrieves all AWSGlueDatabase items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueDatabaseWithName(name string) (AWSGlueDatabase, error) { +func (t *Template) GetAWSGlueDatabaseWithName(name string) (*AWSGlueDatabase, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSGlueDatabase: + case *AWSGlueDatabase: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSGlueDatabaseWithName(name string) (AWSGlueDatabase, err if b, err := json.Marshal(resource); err == nil { var result AWSGlueDatabase if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSGlueDatabase{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-glue-devendpoint.go b/cloudformation/aws-glue-devendpoint.go index b63f03230c..92615480cb 100644 --- a/cloudformation/aws-glue-devendpoint.go +++ b/cloudformation/aws-glue-devendpoint.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -97,7 +98,7 @@ func (r *AWSGlueDevEndpoint) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSGlueDevEndpoint) MarshalJSON() ([]byte, error) { +func (r *AWSGlueDevEndpoint) MarshalJSON() ([]byte, error) { type Properties AWSGlueDevEndpoint return json.Marshal(&struct { Type string @@ -107,7 +108,7 @@ func (r AWSGlueDevEndpoint) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -124,7 +125,11 @@ func (r *AWSGlueDevEndpoint) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -144,11 +149,11 @@ func (r *AWSGlueDevEndpoint) UnmarshalJSON(b []byte) error { } // GetAllAWSGlueDevEndpointResources retrieves all AWSGlueDevEndpoint items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueDevEndpointResources() map[string]AWSGlueDevEndpoint { - results := map[string]AWSGlueDevEndpoint{} +func (t *Template) GetAllAWSGlueDevEndpointResources() map[string]*AWSGlueDevEndpoint { + results := map[string]*AWSGlueDevEndpoint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSGlueDevEndpoint: + case *AWSGlueDevEndpoint: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -160,7 +165,8 @@ func (t *Template) GetAllAWSGlueDevEndpointResources() map[string]AWSGlueDevEndp if b, err := json.Marshal(resource); err == nil { var result AWSGlueDevEndpoint if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -172,10 +178,10 @@ func (t *Template) GetAllAWSGlueDevEndpointResources() map[string]AWSGlueDevEndp // GetAWSGlueDevEndpointWithName retrieves all AWSGlueDevEndpoint items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueDevEndpointWithName(name string) (AWSGlueDevEndpoint, error) { +func (t *Template) GetAWSGlueDevEndpointWithName(name string) (*AWSGlueDevEndpoint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSGlueDevEndpoint: + case *AWSGlueDevEndpoint: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -187,12 +193,13 @@ func (t *Template) GetAWSGlueDevEndpointWithName(name string) (AWSGlueDevEndpoin if b, err := json.Marshal(resource); err == nil { var result AWSGlueDevEndpoint if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSGlueDevEndpoint{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-glue-job.go b/cloudformation/aws-glue-job.go index d9bc88bdf2..c99b4b92a7 100644 --- a/cloudformation/aws-glue-job.go +++ b/cloudformation/aws-glue-job.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -107,7 +108,7 @@ func (r *AWSGlueJob) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSGlueJob) MarshalJSON() ([]byte, error) { +func (r *AWSGlueJob) MarshalJSON() ([]byte, error) { type Properties AWSGlueJob return json.Marshal(&struct { Type string @@ -117,7 +118,7 @@ func (r AWSGlueJob) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -134,7 +135,11 @@ func (r *AWSGlueJob) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -154,11 +159,11 @@ func (r *AWSGlueJob) UnmarshalJSON(b []byte) error { } // GetAllAWSGlueJobResources retrieves all AWSGlueJob items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueJobResources() map[string]AWSGlueJob { - results := map[string]AWSGlueJob{} +func (t *Template) GetAllAWSGlueJobResources() map[string]*AWSGlueJob { + results := map[string]*AWSGlueJob{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSGlueJob: + case *AWSGlueJob: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -170,7 +175,8 @@ func (t *Template) GetAllAWSGlueJobResources() map[string]AWSGlueJob { if b, err := json.Marshal(resource); err == nil { var result AWSGlueJob if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -182,10 +188,10 @@ func (t *Template) GetAllAWSGlueJobResources() map[string]AWSGlueJob { // GetAWSGlueJobWithName retrieves all AWSGlueJob items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueJobWithName(name string) (AWSGlueJob, error) { +func (t *Template) GetAWSGlueJobWithName(name string) (*AWSGlueJob, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSGlueJob: + case *AWSGlueJob: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -197,12 +203,13 @@ func (t *Template) GetAWSGlueJobWithName(name string) (AWSGlueJob, error) { if b, err := json.Marshal(resource); err == nil { var result AWSGlueJob if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSGlueJob{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-glue-partition.go b/cloudformation/aws-glue-partition.go index 475f7e488b..1b90500243 100644 --- a/cloudformation/aws-glue-partition.go +++ b/cloudformation/aws-glue-partition.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSGluePartition) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSGluePartition) MarshalJSON() ([]byte, error) { +func (r *AWSGluePartition) MarshalJSON() ([]byte, error) { type Properties AWSGluePartition return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSGluePartition) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSGluePartition) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSGluePartition) UnmarshalJSON(b []byte) error { } // GetAllAWSGluePartitionResources retrieves all AWSGluePartition items from an AWS CloudFormation template -func (t *Template) GetAllAWSGluePartitionResources() map[string]AWSGluePartition { - results := map[string]AWSGluePartition{} +func (t *Template) GetAllAWSGluePartitionResources() map[string]*AWSGluePartition { + results := map[string]*AWSGluePartition{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSGluePartition: + case *AWSGluePartition: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSGluePartitionResources() map[string]AWSGluePartition if b, err := json.Marshal(resource); err == nil { var result AWSGluePartition if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSGluePartitionResources() map[string]AWSGluePartition // GetAWSGluePartitionWithName retrieves all AWSGluePartition items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGluePartitionWithName(name string) (AWSGluePartition, error) { +func (t *Template) GetAWSGluePartitionWithName(name string) (*AWSGluePartition, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSGluePartition: + case *AWSGluePartition: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSGluePartitionWithName(name string) (AWSGluePartition, e if b, err := json.Marshal(resource); err == nil { var result AWSGluePartition if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSGluePartition{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-glue-table.go b/cloudformation/aws-glue-table.go index d0b830cb3e..bda2656c1a 100644 --- a/cloudformation/aws-glue-table.go +++ b/cloudformation/aws-glue-table.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSGlueTable) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSGlueTable) MarshalJSON() ([]byte, error) { +func (r *AWSGlueTable) MarshalJSON() ([]byte, error) { type Properties AWSGlueTable return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSGlueTable) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSGlueTable) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSGlueTable) UnmarshalJSON(b []byte) error { } // GetAllAWSGlueTableResources retrieves all AWSGlueTable items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueTableResources() map[string]AWSGlueTable { - results := map[string]AWSGlueTable{} +func (t *Template) GetAllAWSGlueTableResources() map[string]*AWSGlueTable { + results := map[string]*AWSGlueTable{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSGlueTable: + case *AWSGlueTable: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSGlueTableResources() map[string]AWSGlueTable { if b, err := json.Marshal(resource); err == nil { var result AWSGlueTable if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSGlueTableResources() map[string]AWSGlueTable { // GetAWSGlueTableWithName retrieves all AWSGlueTable items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueTableWithName(name string) (AWSGlueTable, error) { +func (t *Template) GetAWSGlueTableWithName(name string) (*AWSGlueTable, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSGlueTable: + case *AWSGlueTable: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSGlueTableWithName(name string) (AWSGlueTable, error) { if b, err := json.Marshal(resource); err == nil { var result AWSGlueTable if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSGlueTable{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-glue-trigger.go b/cloudformation/aws-glue-trigger.go index 292bed9215..bd830c435c 100644 --- a/cloudformation/aws-glue-trigger.go +++ b/cloudformation/aws-glue-trigger.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -87,7 +88,7 @@ func (r *AWSGlueTrigger) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSGlueTrigger) MarshalJSON() ([]byte, error) { +func (r *AWSGlueTrigger) MarshalJSON() ([]byte, error) { type Properties AWSGlueTrigger return json.Marshal(&struct { Type string @@ -97,7 +98,7 @@ func (r AWSGlueTrigger) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -114,7 +115,11 @@ func (r *AWSGlueTrigger) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -134,11 +139,11 @@ func (r *AWSGlueTrigger) UnmarshalJSON(b []byte) error { } // GetAllAWSGlueTriggerResources retrieves all AWSGlueTrigger items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueTriggerResources() map[string]AWSGlueTrigger { - results := map[string]AWSGlueTrigger{} +func (t *Template) GetAllAWSGlueTriggerResources() map[string]*AWSGlueTrigger { + results := map[string]*AWSGlueTrigger{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSGlueTrigger: + case *AWSGlueTrigger: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -150,7 +155,8 @@ func (t *Template) GetAllAWSGlueTriggerResources() map[string]AWSGlueTrigger { if b, err := json.Marshal(resource); err == nil { var result AWSGlueTrigger if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -162,10 +168,10 @@ func (t *Template) GetAllAWSGlueTriggerResources() map[string]AWSGlueTrigger { // GetAWSGlueTriggerWithName retrieves all AWSGlueTrigger items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueTriggerWithName(name string) (AWSGlueTrigger, error) { +func (t *Template) GetAWSGlueTriggerWithName(name string) (*AWSGlueTrigger, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSGlueTrigger: + case *AWSGlueTrigger: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -177,12 +183,13 @@ func (t *Template) GetAWSGlueTriggerWithName(name string) (AWSGlueTrigger, error if b, err := json.Marshal(resource); err == nil { var result AWSGlueTrigger if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSGlueTrigger{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-guardduty-detector.go b/cloudformation/aws-guardduty-detector.go index 79a80b4a9f..128caeada8 100644 --- a/cloudformation/aws-guardduty-detector.go +++ b/cloudformation/aws-guardduty-detector.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSGuardDutyDetector) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSGuardDutyDetector) MarshalJSON() ([]byte, error) { +func (r *AWSGuardDutyDetector) MarshalJSON() ([]byte, error) { type Properties AWSGuardDutyDetector return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSGuardDutyDetector) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSGuardDutyDetector) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSGuardDutyDetector) UnmarshalJSON(b []byte) error { } // GetAllAWSGuardDutyDetectorResources retrieves all AWSGuardDutyDetector items from an AWS CloudFormation template -func (t *Template) GetAllAWSGuardDutyDetectorResources() map[string]AWSGuardDutyDetector { - results := map[string]AWSGuardDutyDetector{} +func (t *Template) GetAllAWSGuardDutyDetectorResources() map[string]*AWSGuardDutyDetector { + results := map[string]*AWSGuardDutyDetector{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSGuardDutyDetector: + case *AWSGuardDutyDetector: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSGuardDutyDetectorResources() map[string]AWSGuardDuty if b, err := json.Marshal(resource); err == nil { var result AWSGuardDutyDetector if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSGuardDutyDetectorResources() map[string]AWSGuardDuty // GetAWSGuardDutyDetectorWithName retrieves all AWSGuardDutyDetector items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGuardDutyDetectorWithName(name string) (AWSGuardDutyDetector, error) { +func (t *Template) GetAWSGuardDutyDetectorWithName(name string) (*AWSGuardDutyDetector, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSGuardDutyDetector: + case *AWSGuardDutyDetector: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSGuardDutyDetectorWithName(name string) (AWSGuardDutyDet if b, err := json.Marshal(resource); err == nil { var result AWSGuardDutyDetector if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSGuardDutyDetector{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-guardduty-filter.go b/cloudformation/aws-guardduty-filter.go index bbe8d2a4d5..6c54a427f9 100644 --- a/cloudformation/aws-guardduty-filter.go +++ b/cloudformation/aws-guardduty-filter.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -87,7 +88,7 @@ func (r *AWSGuardDutyFilter) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSGuardDutyFilter) MarshalJSON() ([]byte, error) { +func (r *AWSGuardDutyFilter) MarshalJSON() ([]byte, error) { type Properties AWSGuardDutyFilter return json.Marshal(&struct { Type string @@ -97,7 +98,7 @@ func (r AWSGuardDutyFilter) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -114,7 +115,11 @@ func (r *AWSGuardDutyFilter) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -134,11 +139,11 @@ func (r *AWSGuardDutyFilter) UnmarshalJSON(b []byte) error { } // GetAllAWSGuardDutyFilterResources retrieves all AWSGuardDutyFilter items from an AWS CloudFormation template -func (t *Template) GetAllAWSGuardDutyFilterResources() map[string]AWSGuardDutyFilter { - results := map[string]AWSGuardDutyFilter{} +func (t *Template) GetAllAWSGuardDutyFilterResources() map[string]*AWSGuardDutyFilter { + results := map[string]*AWSGuardDutyFilter{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSGuardDutyFilter: + case *AWSGuardDutyFilter: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -150,7 +155,8 @@ func (t *Template) GetAllAWSGuardDutyFilterResources() map[string]AWSGuardDutyFi if b, err := json.Marshal(resource); err == nil { var result AWSGuardDutyFilter if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -162,10 +168,10 @@ func (t *Template) GetAllAWSGuardDutyFilterResources() map[string]AWSGuardDutyFi // GetAWSGuardDutyFilterWithName retrieves all AWSGuardDutyFilter items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGuardDutyFilterWithName(name string) (AWSGuardDutyFilter, error) { +func (t *Template) GetAWSGuardDutyFilterWithName(name string) (*AWSGuardDutyFilter, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSGuardDutyFilter: + case *AWSGuardDutyFilter: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -177,12 +183,13 @@ func (t *Template) GetAWSGuardDutyFilterWithName(name string) (AWSGuardDutyFilte if b, err := json.Marshal(resource); err == nil { var result AWSGuardDutyFilter if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSGuardDutyFilter{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-guardduty-ipset.go b/cloudformation/aws-guardduty-ipset.go index 4d4c1d770f..b551487fe3 100644 --- a/cloudformation/aws-guardduty-ipset.go +++ b/cloudformation/aws-guardduty-ipset.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSGuardDutyIPSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSGuardDutyIPSet) MarshalJSON() ([]byte, error) { +func (r *AWSGuardDutyIPSet) MarshalJSON() ([]byte, error) { type Properties AWSGuardDutyIPSet return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSGuardDutyIPSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSGuardDutyIPSet) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSGuardDutyIPSet) UnmarshalJSON(b []byte) error { } // GetAllAWSGuardDutyIPSetResources retrieves all AWSGuardDutyIPSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSGuardDutyIPSetResources() map[string]AWSGuardDutyIPSet { - results := map[string]AWSGuardDutyIPSet{} +func (t *Template) GetAllAWSGuardDutyIPSetResources() map[string]*AWSGuardDutyIPSet { + results := map[string]*AWSGuardDutyIPSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSGuardDutyIPSet: + case *AWSGuardDutyIPSet: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSGuardDutyIPSetResources() map[string]AWSGuardDutyIPS if b, err := json.Marshal(resource); err == nil { var result AWSGuardDutyIPSet if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSGuardDutyIPSetResources() map[string]AWSGuardDutyIPS // GetAWSGuardDutyIPSetWithName retrieves all AWSGuardDutyIPSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGuardDutyIPSetWithName(name string) (AWSGuardDutyIPSet, error) { +func (t *Template) GetAWSGuardDutyIPSetWithName(name string) (*AWSGuardDutyIPSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSGuardDutyIPSet: + case *AWSGuardDutyIPSet: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSGuardDutyIPSetWithName(name string) (AWSGuardDutyIPSet, if b, err := json.Marshal(resource); err == nil { var result AWSGuardDutyIPSet if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSGuardDutyIPSet{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-guardduty-master.go b/cloudformation/aws-guardduty-master.go index 5265328689..b93c7f5a7c 100644 --- a/cloudformation/aws-guardduty-master.go +++ b/cloudformation/aws-guardduty-master.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSGuardDutyMaster) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSGuardDutyMaster) MarshalJSON() ([]byte, error) { +func (r *AWSGuardDutyMaster) MarshalJSON() ([]byte, error) { type Properties AWSGuardDutyMaster return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSGuardDutyMaster) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSGuardDutyMaster) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSGuardDutyMaster) UnmarshalJSON(b []byte) error { } // GetAllAWSGuardDutyMasterResources retrieves all AWSGuardDutyMaster items from an AWS CloudFormation template -func (t *Template) GetAllAWSGuardDutyMasterResources() map[string]AWSGuardDutyMaster { - results := map[string]AWSGuardDutyMaster{} +func (t *Template) GetAllAWSGuardDutyMasterResources() map[string]*AWSGuardDutyMaster { + results := map[string]*AWSGuardDutyMaster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSGuardDutyMaster: + case *AWSGuardDutyMaster: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSGuardDutyMasterResources() map[string]AWSGuardDutyMa if b, err := json.Marshal(resource); err == nil { var result AWSGuardDutyMaster if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSGuardDutyMasterResources() map[string]AWSGuardDutyMa // GetAWSGuardDutyMasterWithName retrieves all AWSGuardDutyMaster items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGuardDutyMasterWithName(name string) (AWSGuardDutyMaster, error) { +func (t *Template) GetAWSGuardDutyMasterWithName(name string) (*AWSGuardDutyMaster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSGuardDutyMaster: + case *AWSGuardDutyMaster: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSGuardDutyMasterWithName(name string) (AWSGuardDutyMaste if b, err := json.Marshal(resource); err == nil { var result AWSGuardDutyMaster if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSGuardDutyMaster{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-guardduty-member.go b/cloudformation/aws-guardduty-member.go index 37dd0dcfeb..503bc55dcc 100644 --- a/cloudformation/aws-guardduty-member.go +++ b/cloudformation/aws-guardduty-member.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -87,7 +88,7 @@ func (r *AWSGuardDutyMember) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSGuardDutyMember) MarshalJSON() ([]byte, error) { +func (r *AWSGuardDutyMember) MarshalJSON() ([]byte, error) { type Properties AWSGuardDutyMember return json.Marshal(&struct { Type string @@ -97,7 +98,7 @@ func (r AWSGuardDutyMember) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -114,7 +115,11 @@ func (r *AWSGuardDutyMember) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -134,11 +139,11 @@ func (r *AWSGuardDutyMember) UnmarshalJSON(b []byte) error { } // GetAllAWSGuardDutyMemberResources retrieves all AWSGuardDutyMember items from an AWS CloudFormation template -func (t *Template) GetAllAWSGuardDutyMemberResources() map[string]AWSGuardDutyMember { - results := map[string]AWSGuardDutyMember{} +func (t *Template) GetAllAWSGuardDutyMemberResources() map[string]*AWSGuardDutyMember { + results := map[string]*AWSGuardDutyMember{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSGuardDutyMember: + case *AWSGuardDutyMember: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -150,7 +155,8 @@ func (t *Template) GetAllAWSGuardDutyMemberResources() map[string]AWSGuardDutyMe if b, err := json.Marshal(resource); err == nil { var result AWSGuardDutyMember if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -162,10 +168,10 @@ func (t *Template) GetAllAWSGuardDutyMemberResources() map[string]AWSGuardDutyMe // GetAWSGuardDutyMemberWithName retrieves all AWSGuardDutyMember items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGuardDutyMemberWithName(name string) (AWSGuardDutyMember, error) { +func (t *Template) GetAWSGuardDutyMemberWithName(name string) (*AWSGuardDutyMember, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSGuardDutyMember: + case *AWSGuardDutyMember: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -177,12 +183,13 @@ func (t *Template) GetAWSGuardDutyMemberWithName(name string) (AWSGuardDutyMembe if b, err := json.Marshal(resource); err == nil { var result AWSGuardDutyMember if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSGuardDutyMember{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-guardduty-threatintelset.go b/cloudformation/aws-guardduty-threatintelset.go index ac366c79b1..b536f5ac91 100644 --- a/cloudformation/aws-guardduty-threatintelset.go +++ b/cloudformation/aws-guardduty-threatintelset.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSGuardDutyThreatIntelSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSGuardDutyThreatIntelSet) MarshalJSON() ([]byte, error) { +func (r *AWSGuardDutyThreatIntelSet) MarshalJSON() ([]byte, error) { type Properties AWSGuardDutyThreatIntelSet return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSGuardDutyThreatIntelSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSGuardDutyThreatIntelSet) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSGuardDutyThreatIntelSet) UnmarshalJSON(b []byte) error { } // GetAllAWSGuardDutyThreatIntelSetResources retrieves all AWSGuardDutyThreatIntelSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSGuardDutyThreatIntelSetResources() map[string]AWSGuardDutyThreatIntelSet { - results := map[string]AWSGuardDutyThreatIntelSet{} +func (t *Template) GetAllAWSGuardDutyThreatIntelSetResources() map[string]*AWSGuardDutyThreatIntelSet { + results := map[string]*AWSGuardDutyThreatIntelSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSGuardDutyThreatIntelSet: + case *AWSGuardDutyThreatIntelSet: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSGuardDutyThreatIntelSetResources() map[string]AWSGua if b, err := json.Marshal(resource); err == nil { var result AWSGuardDutyThreatIntelSet if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSGuardDutyThreatIntelSetResources() map[string]AWSGua // GetAWSGuardDutyThreatIntelSetWithName retrieves all AWSGuardDutyThreatIntelSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGuardDutyThreatIntelSetWithName(name string) (AWSGuardDutyThreatIntelSet, error) { +func (t *Template) GetAWSGuardDutyThreatIntelSetWithName(name string) (*AWSGuardDutyThreatIntelSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSGuardDutyThreatIntelSet: + case *AWSGuardDutyThreatIntelSet: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSGuardDutyThreatIntelSetWithName(name string) (AWSGuardD if b, err := json.Marshal(resource); err == nil { var result AWSGuardDutyThreatIntelSet if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSGuardDutyThreatIntelSet{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-iam-accesskey.go b/cloudformation/aws-iam-accesskey.go index 9bdf62cee5..af72b1024e 100644 --- a/cloudformation/aws-iam-accesskey.go +++ b/cloudformation/aws-iam-accesskey.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSIAMAccessKey) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSIAMAccessKey) MarshalJSON() ([]byte, error) { +func (r *AWSIAMAccessKey) MarshalJSON() ([]byte, error) { type Properties AWSIAMAccessKey return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSIAMAccessKey) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSIAMAccessKey) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSIAMAccessKey) UnmarshalJSON(b []byte) error { } // GetAllAWSIAMAccessKeyResources retrieves all AWSIAMAccessKey items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMAccessKeyResources() map[string]AWSIAMAccessKey { - results := map[string]AWSIAMAccessKey{} +func (t *Template) GetAllAWSIAMAccessKeyResources() map[string]*AWSIAMAccessKey { + results := map[string]*AWSIAMAccessKey{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSIAMAccessKey: + case *AWSIAMAccessKey: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSIAMAccessKeyResources() map[string]AWSIAMAccessKey { if b, err := json.Marshal(resource); err == nil { var result AWSIAMAccessKey if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSIAMAccessKeyResources() map[string]AWSIAMAccessKey { // GetAWSIAMAccessKeyWithName retrieves all AWSIAMAccessKey items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMAccessKeyWithName(name string) (AWSIAMAccessKey, error) { +func (t *Template) GetAWSIAMAccessKeyWithName(name string) (*AWSIAMAccessKey, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSIAMAccessKey: + case *AWSIAMAccessKey: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSIAMAccessKeyWithName(name string) (AWSIAMAccessKey, err if b, err := json.Marshal(resource); err == nil { var result AWSIAMAccessKey if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSIAMAccessKey{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-iam-group.go b/cloudformation/aws-iam-group.go index dd9a8de9f5..d94308f93f 100644 --- a/cloudformation/aws-iam-group.go +++ b/cloudformation/aws-iam-group.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSIAMGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSIAMGroup) MarshalJSON() ([]byte, error) { +func (r *AWSIAMGroup) MarshalJSON() ([]byte, error) { type Properties AWSIAMGroup return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSIAMGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSIAMGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSIAMGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSIAMGroupResources retrieves all AWSIAMGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMGroupResources() map[string]AWSIAMGroup { - results := map[string]AWSIAMGroup{} +func (t *Template) GetAllAWSIAMGroupResources() map[string]*AWSIAMGroup { + results := map[string]*AWSIAMGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSIAMGroup: + case *AWSIAMGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSIAMGroupResources() map[string]AWSIAMGroup { if b, err := json.Marshal(resource); err == nil { var result AWSIAMGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSIAMGroupResources() map[string]AWSIAMGroup { // GetAWSIAMGroupWithName retrieves all AWSIAMGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMGroupWithName(name string) (AWSIAMGroup, error) { +func (t *Template) GetAWSIAMGroupWithName(name string) (*AWSIAMGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSIAMGroup: + case *AWSIAMGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSIAMGroupWithName(name string) (AWSIAMGroup, error) { if b, err := json.Marshal(resource); err == nil { var result AWSIAMGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSIAMGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-iam-instanceprofile.go b/cloudformation/aws-iam-instanceprofile.go index bfa611dcae..ab978fa6b7 100644 --- a/cloudformation/aws-iam-instanceprofile.go +++ b/cloudformation/aws-iam-instanceprofile.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSIAMInstanceProfile) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSIAMInstanceProfile) MarshalJSON() ([]byte, error) { +func (r *AWSIAMInstanceProfile) MarshalJSON() ([]byte, error) { type Properties AWSIAMInstanceProfile return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSIAMInstanceProfile) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSIAMInstanceProfile) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSIAMInstanceProfile) UnmarshalJSON(b []byte) error { } // GetAllAWSIAMInstanceProfileResources retrieves all AWSIAMInstanceProfile items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMInstanceProfileResources() map[string]AWSIAMInstanceProfile { - results := map[string]AWSIAMInstanceProfile{} +func (t *Template) GetAllAWSIAMInstanceProfileResources() map[string]*AWSIAMInstanceProfile { + results := map[string]*AWSIAMInstanceProfile{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSIAMInstanceProfile: + case *AWSIAMInstanceProfile: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSIAMInstanceProfileResources() map[string]AWSIAMInsta if b, err := json.Marshal(resource); err == nil { var result AWSIAMInstanceProfile if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSIAMInstanceProfileResources() map[string]AWSIAMInsta // GetAWSIAMInstanceProfileWithName retrieves all AWSIAMInstanceProfile items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMInstanceProfileWithName(name string) (AWSIAMInstanceProfile, error) { +func (t *Template) GetAWSIAMInstanceProfileWithName(name string) (*AWSIAMInstanceProfile, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSIAMInstanceProfile: + case *AWSIAMInstanceProfile: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSIAMInstanceProfileWithName(name string) (AWSIAMInstance if b, err := json.Marshal(resource); err == nil { var result AWSIAMInstanceProfile if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSIAMInstanceProfile{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-iam-managedpolicy.go b/cloudformation/aws-iam-managedpolicy.go index 750b58ccea..0c9c188dcc 100644 --- a/cloudformation/aws-iam-managedpolicy.go +++ b/cloudformation/aws-iam-managedpolicy.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -92,7 +93,7 @@ func (r *AWSIAMManagedPolicy) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSIAMManagedPolicy) MarshalJSON() ([]byte, error) { +func (r *AWSIAMManagedPolicy) MarshalJSON() ([]byte, error) { type Properties AWSIAMManagedPolicy return json.Marshal(&struct { Type string @@ -102,7 +103,7 @@ func (r AWSIAMManagedPolicy) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -119,7 +120,11 @@ func (r *AWSIAMManagedPolicy) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -139,11 +144,11 @@ func (r *AWSIAMManagedPolicy) UnmarshalJSON(b []byte) error { } // GetAllAWSIAMManagedPolicyResources retrieves all AWSIAMManagedPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMManagedPolicyResources() map[string]AWSIAMManagedPolicy { - results := map[string]AWSIAMManagedPolicy{} +func (t *Template) GetAllAWSIAMManagedPolicyResources() map[string]*AWSIAMManagedPolicy { + results := map[string]*AWSIAMManagedPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSIAMManagedPolicy: + case *AWSIAMManagedPolicy: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -155,7 +160,8 @@ func (t *Template) GetAllAWSIAMManagedPolicyResources() map[string]AWSIAMManaged if b, err := json.Marshal(resource); err == nil { var result AWSIAMManagedPolicy if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -167,10 +173,10 @@ func (t *Template) GetAllAWSIAMManagedPolicyResources() map[string]AWSIAMManaged // GetAWSIAMManagedPolicyWithName retrieves all AWSIAMManagedPolicy items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMManagedPolicyWithName(name string) (AWSIAMManagedPolicy, error) { +func (t *Template) GetAWSIAMManagedPolicyWithName(name string) (*AWSIAMManagedPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSIAMManagedPolicy: + case *AWSIAMManagedPolicy: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -182,12 +188,13 @@ func (t *Template) GetAWSIAMManagedPolicyWithName(name string) (AWSIAMManagedPol if b, err := json.Marshal(resource); err == nil { var result AWSIAMManagedPolicy if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSIAMManagedPolicy{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-iam-policy.go b/cloudformation/aws-iam-policy.go index bf699c813f..c42e23ab5f 100644 --- a/cloudformation/aws-iam-policy.go +++ b/cloudformation/aws-iam-policy.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSIAMPolicy) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSIAMPolicy) MarshalJSON() ([]byte, error) { +func (r *AWSIAMPolicy) MarshalJSON() ([]byte, error) { type Properties AWSIAMPolicy return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSIAMPolicy) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSIAMPolicy) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSIAMPolicy) UnmarshalJSON(b []byte) error { } // GetAllAWSIAMPolicyResources retrieves all AWSIAMPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMPolicyResources() map[string]AWSIAMPolicy { - results := map[string]AWSIAMPolicy{} +func (t *Template) GetAllAWSIAMPolicyResources() map[string]*AWSIAMPolicy { + results := map[string]*AWSIAMPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSIAMPolicy: + case *AWSIAMPolicy: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSIAMPolicyResources() map[string]AWSIAMPolicy { if b, err := json.Marshal(resource); err == nil { var result AWSIAMPolicy if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSIAMPolicyResources() map[string]AWSIAMPolicy { // GetAWSIAMPolicyWithName retrieves all AWSIAMPolicy items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMPolicyWithName(name string) (AWSIAMPolicy, error) { +func (t *Template) GetAWSIAMPolicyWithName(name string) (*AWSIAMPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSIAMPolicy: + case *AWSIAMPolicy: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSIAMPolicyWithName(name string) (AWSIAMPolicy, error) { if b, err := json.Marshal(resource); err == nil { var result AWSIAMPolicy if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSIAMPolicy{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-iam-role.go b/cloudformation/aws-iam-role.go index 109c65753c..bf69c9eb71 100644 --- a/cloudformation/aws-iam-role.go +++ b/cloudformation/aws-iam-role.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -92,7 +93,7 @@ func (r *AWSIAMRole) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSIAMRole) MarshalJSON() ([]byte, error) { +func (r *AWSIAMRole) MarshalJSON() ([]byte, error) { type Properties AWSIAMRole return json.Marshal(&struct { Type string @@ -102,7 +103,7 @@ func (r AWSIAMRole) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -119,7 +120,11 @@ func (r *AWSIAMRole) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -139,11 +144,11 @@ func (r *AWSIAMRole) UnmarshalJSON(b []byte) error { } // GetAllAWSIAMRoleResources retrieves all AWSIAMRole items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMRoleResources() map[string]AWSIAMRole { - results := map[string]AWSIAMRole{} +func (t *Template) GetAllAWSIAMRoleResources() map[string]*AWSIAMRole { + results := map[string]*AWSIAMRole{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSIAMRole: + case *AWSIAMRole: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -155,7 +160,8 @@ func (t *Template) GetAllAWSIAMRoleResources() map[string]AWSIAMRole { if b, err := json.Marshal(resource); err == nil { var result AWSIAMRole if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -167,10 +173,10 @@ func (t *Template) GetAllAWSIAMRoleResources() map[string]AWSIAMRole { // GetAWSIAMRoleWithName retrieves all AWSIAMRole items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMRoleWithName(name string) (AWSIAMRole, error) { +func (t *Template) GetAWSIAMRoleWithName(name string) (*AWSIAMRole, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSIAMRole: + case *AWSIAMRole: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -182,12 +188,13 @@ func (t *Template) GetAWSIAMRoleWithName(name string) (AWSIAMRole, error) { if b, err := json.Marshal(resource); err == nil { var result AWSIAMRole if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSIAMRole{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-iam-servicelinkedrole.go b/cloudformation/aws-iam-servicelinkedrole.go index d3b968d289..3cabd272b6 100644 --- a/cloudformation/aws-iam-servicelinkedrole.go +++ b/cloudformation/aws-iam-servicelinkedrole.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSIAMServiceLinkedRole) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSIAMServiceLinkedRole) MarshalJSON() ([]byte, error) { +func (r *AWSIAMServiceLinkedRole) MarshalJSON() ([]byte, error) { type Properties AWSIAMServiceLinkedRole return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSIAMServiceLinkedRole) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSIAMServiceLinkedRole) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSIAMServiceLinkedRole) UnmarshalJSON(b []byte) error { } // GetAllAWSIAMServiceLinkedRoleResources retrieves all AWSIAMServiceLinkedRole items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMServiceLinkedRoleResources() map[string]AWSIAMServiceLinkedRole { - results := map[string]AWSIAMServiceLinkedRole{} +func (t *Template) GetAllAWSIAMServiceLinkedRoleResources() map[string]*AWSIAMServiceLinkedRole { + results := map[string]*AWSIAMServiceLinkedRole{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSIAMServiceLinkedRole: + case *AWSIAMServiceLinkedRole: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSIAMServiceLinkedRoleResources() map[string]AWSIAMSer if b, err := json.Marshal(resource); err == nil { var result AWSIAMServiceLinkedRole if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSIAMServiceLinkedRoleResources() map[string]AWSIAMSer // GetAWSIAMServiceLinkedRoleWithName retrieves all AWSIAMServiceLinkedRole items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMServiceLinkedRoleWithName(name string) (AWSIAMServiceLinkedRole, error) { +func (t *Template) GetAWSIAMServiceLinkedRoleWithName(name string) (*AWSIAMServiceLinkedRole, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSIAMServiceLinkedRole: + case *AWSIAMServiceLinkedRole: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSIAMServiceLinkedRoleWithName(name string) (AWSIAMServic if b, err := json.Marshal(resource); err == nil { var result AWSIAMServiceLinkedRole if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSIAMServiceLinkedRole{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-iam-user.go b/cloudformation/aws-iam-user.go index ac9c7d594e..b91a867cb5 100644 --- a/cloudformation/aws-iam-user.go +++ b/cloudformation/aws-iam-user.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -92,7 +93,7 @@ func (r *AWSIAMUser) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSIAMUser) MarshalJSON() ([]byte, error) { +func (r *AWSIAMUser) MarshalJSON() ([]byte, error) { type Properties AWSIAMUser return json.Marshal(&struct { Type string @@ -102,7 +103,7 @@ func (r AWSIAMUser) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -119,7 +120,11 @@ func (r *AWSIAMUser) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -139,11 +144,11 @@ func (r *AWSIAMUser) UnmarshalJSON(b []byte) error { } // GetAllAWSIAMUserResources retrieves all AWSIAMUser items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMUserResources() map[string]AWSIAMUser { - results := map[string]AWSIAMUser{} +func (t *Template) GetAllAWSIAMUserResources() map[string]*AWSIAMUser { + results := map[string]*AWSIAMUser{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSIAMUser: + case *AWSIAMUser: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -155,7 +160,8 @@ func (t *Template) GetAllAWSIAMUserResources() map[string]AWSIAMUser { if b, err := json.Marshal(resource); err == nil { var result AWSIAMUser if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -167,10 +173,10 @@ func (t *Template) GetAllAWSIAMUserResources() map[string]AWSIAMUser { // GetAWSIAMUserWithName retrieves all AWSIAMUser items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMUserWithName(name string) (AWSIAMUser, error) { +func (t *Template) GetAWSIAMUserWithName(name string) (*AWSIAMUser, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSIAMUser: + case *AWSIAMUser: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -182,12 +188,13 @@ func (t *Template) GetAWSIAMUserWithName(name string) (AWSIAMUser, error) { if b, err := json.Marshal(resource); err == nil { var result AWSIAMUser if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSIAMUser{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-iam-usertogroupaddition.go b/cloudformation/aws-iam-usertogroupaddition.go index 6f9f35e6e4..5ad12bbdb2 100644 --- a/cloudformation/aws-iam-usertogroupaddition.go +++ b/cloudformation/aws-iam-usertogroupaddition.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSIAMUserToGroupAddition) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSIAMUserToGroupAddition) MarshalJSON() ([]byte, error) { +func (r *AWSIAMUserToGroupAddition) MarshalJSON() ([]byte, error) { type Properties AWSIAMUserToGroupAddition return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSIAMUserToGroupAddition) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSIAMUserToGroupAddition) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSIAMUserToGroupAddition) UnmarshalJSON(b []byte) error { } // GetAllAWSIAMUserToGroupAdditionResources retrieves all AWSIAMUserToGroupAddition items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMUserToGroupAdditionResources() map[string]AWSIAMUserToGroupAddition { - results := map[string]AWSIAMUserToGroupAddition{} +func (t *Template) GetAllAWSIAMUserToGroupAdditionResources() map[string]*AWSIAMUserToGroupAddition { + results := map[string]*AWSIAMUserToGroupAddition{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSIAMUserToGroupAddition: + case *AWSIAMUserToGroupAddition: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSIAMUserToGroupAdditionResources() map[string]AWSIAMU if b, err := json.Marshal(resource); err == nil { var result AWSIAMUserToGroupAddition if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSIAMUserToGroupAdditionResources() map[string]AWSIAMU // GetAWSIAMUserToGroupAdditionWithName retrieves all AWSIAMUserToGroupAddition items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMUserToGroupAdditionWithName(name string) (AWSIAMUserToGroupAddition, error) { +func (t *Template) GetAWSIAMUserToGroupAdditionWithName(name string) (*AWSIAMUserToGroupAddition, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSIAMUserToGroupAddition: + case *AWSIAMUserToGroupAddition: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSIAMUserToGroupAdditionWithName(name string) (AWSIAMUser if b, err := json.Marshal(resource); err == nil { var result AWSIAMUserToGroupAddition if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSIAMUserToGroupAddition{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-inspector-assessmenttarget.go b/cloudformation/aws-inspector-assessmenttarget.go index eb27b58624..9774d65a7e 100644 --- a/cloudformation/aws-inspector-assessmenttarget.go +++ b/cloudformation/aws-inspector-assessmenttarget.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -16,7 +17,7 @@ type AWSInspectorAssessmentTarget struct { AssessmentTargetName string `json:"AssessmentTargetName,omitempty"` // ResourceGroupArn AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttarget.html#cfn-inspector-assessmenttarget-resourcegrouparn ResourceGroupArn string `json:"ResourceGroupArn,omitempty"` @@ -67,7 +68,7 @@ func (r *AWSInspectorAssessmentTarget) SetDeletionPolicy(policy DeletionPolicy) // 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 AWSInspectorAssessmentTarget) MarshalJSON() ([]byte, error) { +func (r *AWSInspectorAssessmentTarget) MarshalJSON() ([]byte, error) { type Properties AWSInspectorAssessmentTarget return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSInspectorAssessmentTarget) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSInspectorAssessmentTarget) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSInspectorAssessmentTarget) UnmarshalJSON(b []byte) error { } // GetAllAWSInspectorAssessmentTargetResources retrieves all AWSInspectorAssessmentTarget items from an AWS CloudFormation template -func (t *Template) GetAllAWSInspectorAssessmentTargetResources() map[string]AWSInspectorAssessmentTarget { - results := map[string]AWSInspectorAssessmentTarget{} +func (t *Template) GetAllAWSInspectorAssessmentTargetResources() map[string]*AWSInspectorAssessmentTarget { + results := map[string]*AWSInspectorAssessmentTarget{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSInspectorAssessmentTarget: + case *AWSInspectorAssessmentTarget: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSInspectorAssessmentTargetResources() map[string]AWSI if b, err := json.Marshal(resource); err == nil { var result AWSInspectorAssessmentTarget if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSInspectorAssessmentTargetResources() map[string]AWSI // GetAWSInspectorAssessmentTargetWithName retrieves all AWSInspectorAssessmentTarget items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSInspectorAssessmentTargetWithName(name string) (AWSInspectorAssessmentTarget, error) { +func (t *Template) GetAWSInspectorAssessmentTargetWithName(name string) (*AWSInspectorAssessmentTarget, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSInspectorAssessmentTarget: + case *AWSInspectorAssessmentTarget: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSInspectorAssessmentTargetWithName(name string) (AWSInsp if b, err := json.Marshal(resource); err == nil { var result AWSInspectorAssessmentTarget if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSInspectorAssessmentTarget{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-inspector-assessmenttemplate.go b/cloudformation/aws-inspector-assessmenttemplate.go index 26d74f050d..be7e2392c4 100644 --- a/cloudformation/aws-inspector-assessmenttemplate.go +++ b/cloudformation/aws-inspector-assessmenttemplate.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSInspectorAssessmentTemplate) SetDeletionPolicy(policy DeletionPolicy // 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 AWSInspectorAssessmentTemplate) MarshalJSON() ([]byte, error) { +func (r *AWSInspectorAssessmentTemplate) MarshalJSON() ([]byte, error) { type Properties AWSInspectorAssessmentTemplate return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSInspectorAssessmentTemplate) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSInspectorAssessmentTemplate) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSInspectorAssessmentTemplate) UnmarshalJSON(b []byte) error { } // GetAllAWSInspectorAssessmentTemplateResources retrieves all AWSInspectorAssessmentTemplate items from an AWS CloudFormation template -func (t *Template) GetAllAWSInspectorAssessmentTemplateResources() map[string]AWSInspectorAssessmentTemplate { - results := map[string]AWSInspectorAssessmentTemplate{} +func (t *Template) GetAllAWSInspectorAssessmentTemplateResources() map[string]*AWSInspectorAssessmentTemplate { + results := map[string]*AWSInspectorAssessmentTemplate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSInspectorAssessmentTemplate: + case *AWSInspectorAssessmentTemplate: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSInspectorAssessmentTemplateResources() map[string]AW if b, err := json.Marshal(resource); err == nil { var result AWSInspectorAssessmentTemplate if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSInspectorAssessmentTemplateResources() map[string]AW // GetAWSInspectorAssessmentTemplateWithName retrieves all AWSInspectorAssessmentTemplate items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSInspectorAssessmentTemplateWithName(name string) (AWSInspectorAssessmentTemplate, error) { +func (t *Template) GetAWSInspectorAssessmentTemplateWithName(name string) (*AWSInspectorAssessmentTemplate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSInspectorAssessmentTemplate: + case *AWSInspectorAssessmentTemplate: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSInspectorAssessmentTemplateWithName(name string) (AWSIn if b, err := json.Marshal(resource); err == nil { var result AWSInspectorAssessmentTemplate if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSInspectorAssessmentTemplate{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-inspector-resourcegroup.go b/cloudformation/aws-inspector-resourcegroup.go index b155bef72e..79bffb2391 100644 --- a/cloudformation/aws-inspector-resourcegroup.go +++ b/cloudformation/aws-inspector-resourcegroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -62,7 +63,7 @@ func (r *AWSInspectorResourceGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSInspectorResourceGroup) MarshalJSON() ([]byte, error) { +func (r *AWSInspectorResourceGroup) MarshalJSON() ([]byte, error) { type Properties AWSInspectorResourceGroup return json.Marshal(&struct { Type string @@ -72,7 +73,7 @@ func (r AWSInspectorResourceGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -89,7 +90,11 @@ func (r *AWSInspectorResourceGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -109,11 +114,11 @@ func (r *AWSInspectorResourceGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSInspectorResourceGroupResources retrieves all AWSInspectorResourceGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSInspectorResourceGroupResources() map[string]AWSInspectorResourceGroup { - results := map[string]AWSInspectorResourceGroup{} +func (t *Template) GetAllAWSInspectorResourceGroupResources() map[string]*AWSInspectorResourceGroup { + results := map[string]*AWSInspectorResourceGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSInspectorResourceGroup: + case *AWSInspectorResourceGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -125,7 +130,8 @@ func (t *Template) GetAllAWSInspectorResourceGroupResources() map[string]AWSInsp if b, err := json.Marshal(resource); err == nil { var result AWSInspectorResourceGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -137,10 +143,10 @@ func (t *Template) GetAllAWSInspectorResourceGroupResources() map[string]AWSInsp // GetAWSInspectorResourceGroupWithName retrieves all AWSInspectorResourceGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSInspectorResourceGroupWithName(name string) (AWSInspectorResourceGroup, error) { +func (t *Template) GetAWSInspectorResourceGroupWithName(name string) (*AWSInspectorResourceGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSInspectorResourceGroup: + case *AWSInspectorResourceGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -152,12 +158,13 @@ func (t *Template) GetAWSInspectorResourceGroupWithName(name string) (AWSInspect if b, err := json.Marshal(resource); err == nil { var result AWSInspectorResourceGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSInspectorResourceGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-iot-certificate.go b/cloudformation/aws-iot-certificate.go index e5ec694b21..4b8e9ef8e8 100644 --- a/cloudformation/aws-iot-certificate.go +++ b/cloudformation/aws-iot-certificate.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSIoTCertificate) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSIoTCertificate) MarshalJSON() ([]byte, error) { +func (r *AWSIoTCertificate) MarshalJSON() ([]byte, error) { type Properties AWSIoTCertificate return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSIoTCertificate) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSIoTCertificate) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSIoTCertificate) UnmarshalJSON(b []byte) error { } // GetAllAWSIoTCertificateResources retrieves all AWSIoTCertificate items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTCertificateResources() map[string]AWSIoTCertificate { - results := map[string]AWSIoTCertificate{} +func (t *Template) GetAllAWSIoTCertificateResources() map[string]*AWSIoTCertificate { + results := map[string]*AWSIoTCertificate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSIoTCertificate: + case *AWSIoTCertificate: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSIoTCertificateResources() map[string]AWSIoTCertifica if b, err := json.Marshal(resource); err == nil { var result AWSIoTCertificate if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSIoTCertificateResources() map[string]AWSIoTCertifica // GetAWSIoTCertificateWithName retrieves all AWSIoTCertificate items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTCertificateWithName(name string) (AWSIoTCertificate, error) { +func (t *Template) GetAWSIoTCertificateWithName(name string) (*AWSIoTCertificate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSIoTCertificate: + case *AWSIoTCertificate: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSIoTCertificateWithName(name string) (AWSIoTCertificate, if b, err := json.Marshal(resource); err == nil { var result AWSIoTCertificate if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSIoTCertificate{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-iot-policy.go b/cloudformation/aws-iot-policy.go index 48d958db2e..af28f607df 100644 --- a/cloudformation/aws-iot-policy.go +++ b/cloudformation/aws-iot-policy.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSIoTPolicy) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSIoTPolicy) MarshalJSON() ([]byte, error) { +func (r *AWSIoTPolicy) MarshalJSON() ([]byte, error) { type Properties AWSIoTPolicy return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSIoTPolicy) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSIoTPolicy) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSIoTPolicy) UnmarshalJSON(b []byte) error { } // GetAllAWSIoTPolicyResources retrieves all AWSIoTPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTPolicyResources() map[string]AWSIoTPolicy { - results := map[string]AWSIoTPolicy{} +func (t *Template) GetAllAWSIoTPolicyResources() map[string]*AWSIoTPolicy { + results := map[string]*AWSIoTPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSIoTPolicy: + case *AWSIoTPolicy: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSIoTPolicyResources() map[string]AWSIoTPolicy { if b, err := json.Marshal(resource); err == nil { var result AWSIoTPolicy if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSIoTPolicyResources() map[string]AWSIoTPolicy { // GetAWSIoTPolicyWithName retrieves all AWSIoTPolicy items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTPolicyWithName(name string) (AWSIoTPolicy, error) { +func (t *Template) GetAWSIoTPolicyWithName(name string) (*AWSIoTPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSIoTPolicy: + case *AWSIoTPolicy: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSIoTPolicyWithName(name string) (AWSIoTPolicy, error) { if b, err := json.Marshal(resource); err == nil { var result AWSIoTPolicy if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSIoTPolicy{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-iot-policyprincipalattachment.go b/cloudformation/aws-iot-policyprincipalattachment.go index 1da4838ff9..de9ffdb40b 100644 --- a/cloudformation/aws-iot-policyprincipalattachment.go +++ b/cloudformation/aws-iot-policyprincipalattachment.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSIoTPolicyPrincipalAttachment) SetDeletionPolicy(policy DeletionPolic // 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 AWSIoTPolicyPrincipalAttachment) MarshalJSON() ([]byte, error) { +func (r *AWSIoTPolicyPrincipalAttachment) MarshalJSON() ([]byte, error) { type Properties AWSIoTPolicyPrincipalAttachment return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSIoTPolicyPrincipalAttachment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSIoTPolicyPrincipalAttachment) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSIoTPolicyPrincipalAttachment) UnmarshalJSON(b []byte) error { } // GetAllAWSIoTPolicyPrincipalAttachmentResources retrieves all AWSIoTPolicyPrincipalAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTPolicyPrincipalAttachmentResources() map[string]AWSIoTPolicyPrincipalAttachment { - results := map[string]AWSIoTPolicyPrincipalAttachment{} +func (t *Template) GetAllAWSIoTPolicyPrincipalAttachmentResources() map[string]*AWSIoTPolicyPrincipalAttachment { + results := map[string]*AWSIoTPolicyPrincipalAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSIoTPolicyPrincipalAttachment: + case *AWSIoTPolicyPrincipalAttachment: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSIoTPolicyPrincipalAttachmentResources() map[string]A if b, err := json.Marshal(resource); err == nil { var result AWSIoTPolicyPrincipalAttachment if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSIoTPolicyPrincipalAttachmentResources() map[string]A // GetAWSIoTPolicyPrincipalAttachmentWithName retrieves all AWSIoTPolicyPrincipalAttachment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTPolicyPrincipalAttachmentWithName(name string) (AWSIoTPolicyPrincipalAttachment, error) { +func (t *Template) GetAWSIoTPolicyPrincipalAttachmentWithName(name string) (*AWSIoTPolicyPrincipalAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSIoTPolicyPrincipalAttachment: + case *AWSIoTPolicyPrincipalAttachment: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSIoTPolicyPrincipalAttachmentWithName(name string) (AWSI if b, err := json.Marshal(resource); err == nil { var result AWSIoTPolicyPrincipalAttachment if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSIoTPolicyPrincipalAttachment{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-iot-thing.go b/cloudformation/aws-iot-thing.go index c6a6669279..9e08baea9b 100644 --- a/cloudformation/aws-iot-thing.go +++ b/cloudformation/aws-iot-thing.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSIoTThing) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSIoTThing) MarshalJSON() ([]byte, error) { +func (r *AWSIoTThing) MarshalJSON() ([]byte, error) { type Properties AWSIoTThing return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSIoTThing) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSIoTThing) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSIoTThing) UnmarshalJSON(b []byte) error { } // GetAllAWSIoTThingResources retrieves all AWSIoTThing items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTThingResources() map[string]AWSIoTThing { - results := map[string]AWSIoTThing{} +func (t *Template) GetAllAWSIoTThingResources() map[string]*AWSIoTThing { + results := map[string]*AWSIoTThing{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSIoTThing: + case *AWSIoTThing: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSIoTThingResources() map[string]AWSIoTThing { if b, err := json.Marshal(resource); err == nil { var result AWSIoTThing if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSIoTThingResources() map[string]AWSIoTThing { // GetAWSIoTThingWithName retrieves all AWSIoTThing items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTThingWithName(name string) (AWSIoTThing, error) { +func (t *Template) GetAWSIoTThingWithName(name string) (*AWSIoTThing, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSIoTThing: + case *AWSIoTThing: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSIoTThingWithName(name string) (AWSIoTThing, error) { if b, err := json.Marshal(resource); err == nil { var result AWSIoTThing if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSIoTThing{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-iot-thingprincipalattachment.go b/cloudformation/aws-iot-thingprincipalattachment.go index bf36854d8d..f37ee96033 100644 --- a/cloudformation/aws-iot-thingprincipalattachment.go +++ b/cloudformation/aws-iot-thingprincipalattachment.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSIoTThingPrincipalAttachment) SetDeletionPolicy(policy DeletionPolicy // 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 AWSIoTThingPrincipalAttachment) MarshalJSON() ([]byte, error) { +func (r *AWSIoTThingPrincipalAttachment) MarshalJSON() ([]byte, error) { type Properties AWSIoTThingPrincipalAttachment return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSIoTThingPrincipalAttachment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSIoTThingPrincipalAttachment) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSIoTThingPrincipalAttachment) UnmarshalJSON(b []byte) error { } // GetAllAWSIoTThingPrincipalAttachmentResources retrieves all AWSIoTThingPrincipalAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTThingPrincipalAttachmentResources() map[string]AWSIoTThingPrincipalAttachment { - results := map[string]AWSIoTThingPrincipalAttachment{} +func (t *Template) GetAllAWSIoTThingPrincipalAttachmentResources() map[string]*AWSIoTThingPrincipalAttachment { + results := map[string]*AWSIoTThingPrincipalAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSIoTThingPrincipalAttachment: + case *AWSIoTThingPrincipalAttachment: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSIoTThingPrincipalAttachmentResources() map[string]AW if b, err := json.Marshal(resource); err == nil { var result AWSIoTThingPrincipalAttachment if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSIoTThingPrincipalAttachmentResources() map[string]AW // GetAWSIoTThingPrincipalAttachmentWithName retrieves all AWSIoTThingPrincipalAttachment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTThingPrincipalAttachmentWithName(name string) (AWSIoTThingPrincipalAttachment, error) { +func (t *Template) GetAWSIoTThingPrincipalAttachmentWithName(name string) (*AWSIoTThingPrincipalAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSIoTThingPrincipalAttachment: + case *AWSIoTThingPrincipalAttachment: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSIoTThingPrincipalAttachmentWithName(name string) (AWSIo if b, err := json.Marshal(resource); err == nil { var result AWSIoTThingPrincipalAttachment if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSIoTThingPrincipalAttachment{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-iot-topicrule.go b/cloudformation/aws-iot-topicrule.go index 8b8de34550..20a463ae46 100644 --- a/cloudformation/aws-iot-topicrule.go +++ b/cloudformation/aws-iot-topicrule.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSIoTTopicRule) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSIoTTopicRule) MarshalJSON() ([]byte, error) { +func (r *AWSIoTTopicRule) MarshalJSON() ([]byte, error) { type Properties AWSIoTTopicRule return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSIoTTopicRule) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSIoTTopicRule) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSIoTTopicRule) UnmarshalJSON(b []byte) error { } // GetAllAWSIoTTopicRuleResources retrieves all AWSIoTTopicRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTTopicRuleResources() map[string]AWSIoTTopicRule { - results := map[string]AWSIoTTopicRule{} +func (t *Template) GetAllAWSIoTTopicRuleResources() map[string]*AWSIoTTopicRule { + results := map[string]*AWSIoTTopicRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSIoTTopicRule: + case *AWSIoTTopicRule: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSIoTTopicRuleResources() map[string]AWSIoTTopicRule { if b, err := json.Marshal(resource); err == nil { var result AWSIoTTopicRule if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSIoTTopicRuleResources() map[string]AWSIoTTopicRule { // GetAWSIoTTopicRuleWithName retrieves all AWSIoTTopicRule items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTTopicRuleWithName(name string) (AWSIoTTopicRule, error) { +func (t *Template) GetAWSIoTTopicRuleWithName(name string) (*AWSIoTTopicRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSIoTTopicRule: + case *AWSIoTTopicRule: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSIoTTopicRuleWithName(name string) (AWSIoTTopicRule, err if b, err := json.Marshal(resource); err == nil { var result AWSIoTTopicRule if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSIoTTopicRule{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-iot1click-device.go b/cloudformation/aws-iot1click-device.go index 0559d8e59e..f14d949c23 100644 --- a/cloudformation/aws-iot1click-device.go +++ b/cloudformation/aws-iot1click-device.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSIoT1ClickDevice) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSIoT1ClickDevice) MarshalJSON() ([]byte, error) { +func (r *AWSIoT1ClickDevice) MarshalJSON() ([]byte, error) { type Properties AWSIoT1ClickDevice return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSIoT1ClickDevice) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSIoT1ClickDevice) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSIoT1ClickDevice) UnmarshalJSON(b []byte) error { } // GetAllAWSIoT1ClickDeviceResources retrieves all AWSIoT1ClickDevice items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoT1ClickDeviceResources() map[string]AWSIoT1ClickDevice { - results := map[string]AWSIoT1ClickDevice{} +func (t *Template) GetAllAWSIoT1ClickDeviceResources() map[string]*AWSIoT1ClickDevice { + results := map[string]*AWSIoT1ClickDevice{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSIoT1ClickDevice: + case *AWSIoT1ClickDevice: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSIoT1ClickDeviceResources() map[string]AWSIoT1ClickDe if b, err := json.Marshal(resource); err == nil { var result AWSIoT1ClickDevice if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSIoT1ClickDeviceResources() map[string]AWSIoT1ClickDe // GetAWSIoT1ClickDeviceWithName retrieves all AWSIoT1ClickDevice items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoT1ClickDeviceWithName(name string) (AWSIoT1ClickDevice, error) { +func (t *Template) GetAWSIoT1ClickDeviceWithName(name string) (*AWSIoT1ClickDevice, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSIoT1ClickDevice: + case *AWSIoT1ClickDevice: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSIoT1ClickDeviceWithName(name string) (AWSIoT1ClickDevic if b, err := json.Marshal(resource); err == nil { var result AWSIoT1ClickDevice if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSIoT1ClickDevice{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-iot1click-placement.go b/cloudformation/aws-iot1click-placement.go index 86f892d57f..87ee91dd9d 100644 --- a/cloudformation/aws-iot1click-placement.go +++ b/cloudformation/aws-iot1click-placement.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSIoT1ClickPlacement) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSIoT1ClickPlacement) MarshalJSON() ([]byte, error) { +func (r *AWSIoT1ClickPlacement) MarshalJSON() ([]byte, error) { type Properties AWSIoT1ClickPlacement return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSIoT1ClickPlacement) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSIoT1ClickPlacement) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSIoT1ClickPlacement) UnmarshalJSON(b []byte) error { } // GetAllAWSIoT1ClickPlacementResources retrieves all AWSIoT1ClickPlacement items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoT1ClickPlacementResources() map[string]AWSIoT1ClickPlacement { - results := map[string]AWSIoT1ClickPlacement{} +func (t *Template) GetAllAWSIoT1ClickPlacementResources() map[string]*AWSIoT1ClickPlacement { + results := map[string]*AWSIoT1ClickPlacement{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSIoT1ClickPlacement: + case *AWSIoT1ClickPlacement: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSIoT1ClickPlacementResources() map[string]AWSIoT1Clic if b, err := json.Marshal(resource); err == nil { var result AWSIoT1ClickPlacement if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSIoT1ClickPlacementResources() map[string]AWSIoT1Clic // GetAWSIoT1ClickPlacementWithName retrieves all AWSIoT1ClickPlacement items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoT1ClickPlacementWithName(name string) (AWSIoT1ClickPlacement, error) { +func (t *Template) GetAWSIoT1ClickPlacementWithName(name string) (*AWSIoT1ClickPlacement, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSIoT1ClickPlacement: + case *AWSIoT1ClickPlacement: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSIoT1ClickPlacementWithName(name string) (AWSIoT1ClickPl if b, err := json.Marshal(resource); err == nil { var result AWSIoT1ClickPlacement if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSIoT1ClickPlacement{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-iot1click-project.go b/cloudformation/aws-iot1click-project.go index 0682d3ea2c..04c1385e4d 100644 --- a/cloudformation/aws-iot1click-project.go +++ b/cloudformation/aws-iot1click-project.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSIoT1ClickProject) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSIoT1ClickProject) MarshalJSON() ([]byte, error) { +func (r *AWSIoT1ClickProject) MarshalJSON() ([]byte, error) { type Properties AWSIoT1ClickProject return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSIoT1ClickProject) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSIoT1ClickProject) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSIoT1ClickProject) UnmarshalJSON(b []byte) error { } // GetAllAWSIoT1ClickProjectResources retrieves all AWSIoT1ClickProject items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoT1ClickProjectResources() map[string]AWSIoT1ClickProject { - results := map[string]AWSIoT1ClickProject{} +func (t *Template) GetAllAWSIoT1ClickProjectResources() map[string]*AWSIoT1ClickProject { + results := map[string]*AWSIoT1ClickProject{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSIoT1ClickProject: + case *AWSIoT1ClickProject: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSIoT1ClickProjectResources() map[string]AWSIoT1ClickP if b, err := json.Marshal(resource); err == nil { var result AWSIoT1ClickProject if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSIoT1ClickProjectResources() map[string]AWSIoT1ClickP // GetAWSIoT1ClickProjectWithName retrieves all AWSIoT1ClickProject items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoT1ClickProjectWithName(name string) (AWSIoT1ClickProject, error) { +func (t *Template) GetAWSIoT1ClickProjectWithName(name string) (*AWSIoT1ClickProject, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSIoT1ClickProject: + case *AWSIoT1ClickProject: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSIoT1ClickProjectWithName(name string) (AWSIoT1ClickProj if b, err := json.Marshal(resource); err == nil { var result AWSIoT1ClickProject if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSIoT1ClickProject{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-iotanalytics-channel.go b/cloudformation/aws-iotanalytics-channel.go new file mode 100644 index 0000000000..fb35973f50 --- /dev/null +++ b/cloudformation/aws-iotanalytics-channel.go @@ -0,0 +1,180 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSIoTAnalyticsChannel AWS CloudFormation Resource (AWS::IoTAnalytics::Channel) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-channel.html +type AWSIoTAnalyticsChannel struct { + + // ChannelName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-channel.html#cfn-iotanalytics-channel-channelname + ChannelName string `json:"ChannelName,omitempty"` + + // RetentionPeriod AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-channel.html#cfn-iotanalytics-channel-retentionperiod + RetentionPeriod *AWSIoTAnalyticsChannel_RetentionPeriod `json:"RetentionPeriod,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-channel.html#cfn-iotanalytics-channel-tags + Tags []Tag `json:"Tags,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsChannel) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Channel" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsChannel) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsChannel) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsChannel) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsChannel) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsChannel) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSIoTAnalyticsChannel) MarshalJSON() ([]byte, error) { + type Properties AWSIoTAnalyticsChannel + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSIoTAnalyticsChannel) UnmarshalJSON(b []byte) error { + type Properties AWSIoTAnalyticsChannel + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSIoTAnalyticsChannel(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSIoTAnalyticsChannelResources retrieves all AWSIoTAnalyticsChannel items from an AWS CloudFormation template +func (t *Template) GetAllAWSIoTAnalyticsChannelResources() map[string]*AWSIoTAnalyticsChannel { + results := map[string]*AWSIoTAnalyticsChannel{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIoTAnalyticsChannel: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::IoTAnalytics::Channel" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSIoTAnalyticsChannel + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSIoTAnalyticsChannelWithName retrieves all AWSIoTAnalyticsChannel items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIoTAnalyticsChannelWithName(name string) (*AWSIoTAnalyticsChannel, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIoTAnalyticsChannel: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::IoTAnalytics::Channel" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSIoTAnalyticsChannel + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-iotanalytics-channel_retentionperiod.go b/cloudformation/aws-iotanalytics-channel_retentionperiod.go new file mode 100644 index 0000000000..dd2cad0f29 --- /dev/null +++ b/cloudformation/aws-iotanalytics-channel_retentionperiod.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSIoTAnalyticsChannel_RetentionPeriod AWS CloudFormation Resource (AWS::IoTAnalytics::Channel.RetentionPeriod) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-retentionperiod.html +type AWSIoTAnalyticsChannel_RetentionPeriod struct { + + // NumberOfDays AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-retentionperiod.html#cfn-iotanalytics-channel-retentionperiod-numberofdays + NumberOfDays int `json:"NumberOfDays,omitempty"` + + // Unlimited AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-retentionperiod.html#cfn-iotanalytics-channel-retentionperiod-unlimited + Unlimited bool `json:"Unlimited,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsChannel_RetentionPeriod) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Channel.RetentionPeriod" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsChannel_RetentionPeriod) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsChannel_RetentionPeriod) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsChannel_RetentionPeriod) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsChannel_RetentionPeriod) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsChannel_RetentionPeriod) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-dataset.go b/cloudformation/aws-iotanalytics-dataset.go new file mode 100644 index 0000000000..02ac974072 --- /dev/null +++ b/cloudformation/aws-iotanalytics-dataset.go @@ -0,0 +1,190 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSIoTAnalyticsDataset AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-dataset.html +type AWSIoTAnalyticsDataset struct { + + // Actions AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-dataset.html#cfn-iotanalytics-dataset-actions + Actions []AWSIoTAnalyticsDataset_Action `json:"Actions,omitempty"` + + // DatasetName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-dataset.html#cfn-iotanalytics-dataset-datasetname + DatasetName string `json:"DatasetName,omitempty"` + + // RetentionPeriod AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-dataset.html#cfn-iotanalytics-dataset-retentionperiod + RetentionPeriod *AWSIoTAnalyticsDataset_RetentionPeriod `json:"RetentionPeriod,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-dataset.html#cfn-iotanalytics-dataset-tags + Tags []Tag `json:"Tags,omitempty"` + + // Triggers AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-dataset.html#cfn-iotanalytics-dataset-triggers + Triggers []AWSIoTAnalyticsDataset_Trigger `json:"Triggers,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsDataset) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Dataset" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsDataset) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSIoTAnalyticsDataset) MarshalJSON() ([]byte, error) { + type Properties AWSIoTAnalyticsDataset + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSIoTAnalyticsDataset) UnmarshalJSON(b []byte) error { + type Properties AWSIoTAnalyticsDataset + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSIoTAnalyticsDataset(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSIoTAnalyticsDatasetResources retrieves all AWSIoTAnalyticsDataset items from an AWS CloudFormation template +func (t *Template) GetAllAWSIoTAnalyticsDatasetResources() map[string]*AWSIoTAnalyticsDataset { + results := map[string]*AWSIoTAnalyticsDataset{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIoTAnalyticsDataset: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::IoTAnalytics::Dataset" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSIoTAnalyticsDataset + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSIoTAnalyticsDatasetWithName retrieves all AWSIoTAnalyticsDataset items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIoTAnalyticsDatasetWithName(name string) (*AWSIoTAnalyticsDataset, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIoTAnalyticsDataset: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::IoTAnalytics::Dataset" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSIoTAnalyticsDataset + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-iotanalytics-dataset_action.go b/cloudformation/aws-iotanalytics-dataset_action.go new file mode 100644 index 0000000000..0267563d8e --- /dev/null +++ b/cloudformation/aws-iotanalytics-dataset_action.go @@ -0,0 +1,65 @@ +package cloudformation + +// AWSIoTAnalyticsDataset_Action AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.Action) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-action.html +type AWSIoTAnalyticsDataset_Action struct { + + // ActionName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-action.html#cfn-iotanalytics-dataset-action-actionname + ActionName string `json:"ActionName,omitempty"` + + // ContainerAction AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-action.html#cfn-iotanalytics-dataset-action-containeraction + ContainerAction *AWSIoTAnalyticsDataset_ContainerAction `json:"ContainerAction,omitempty"` + + // QueryAction AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-action.html#cfn-iotanalytics-dataset-action-queryaction + QueryAction *AWSIoTAnalyticsDataset_QueryAction `json:"QueryAction,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsDataset_Action) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Dataset.Action" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_Action) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_Action) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_Action) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_Action) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsDataset_Action) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-dataset_containeraction.go b/cloudformation/aws-iotanalytics-dataset_containeraction.go new file mode 100644 index 0000000000..048a93092b --- /dev/null +++ b/cloudformation/aws-iotanalytics-dataset_containeraction.go @@ -0,0 +1,70 @@ +package cloudformation + +// AWSIoTAnalyticsDataset_ContainerAction AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.ContainerAction) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-containeraction.html +type AWSIoTAnalyticsDataset_ContainerAction struct { + + // ExecutionRoleArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-containeraction.html#cfn-iotanalytics-dataset-containeraction-executionrolearn + ExecutionRoleArn string `json:"ExecutionRoleArn,omitempty"` + + // Image AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-containeraction.html#cfn-iotanalytics-dataset-containeraction-image + Image string `json:"Image,omitempty"` + + // ResourceConfiguration AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-containeraction.html#cfn-iotanalytics-dataset-containeraction-resourceconfiguration + ResourceConfiguration *AWSIoTAnalyticsDataset_ResourceConfiguration `json:"ResourceConfiguration,omitempty"` + + // Variables AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-containeraction.html#cfn-iotanalytics-dataset-containeraction-variables + Variables []AWSIoTAnalyticsDataset_Variable `json:"Variables,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsDataset_ContainerAction) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Dataset.ContainerAction" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_ContainerAction) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_ContainerAction) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_ContainerAction) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_ContainerAction) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsDataset_ContainerAction) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-dataset_datasetcontentversionvalue.go b/cloudformation/aws-iotanalytics-dataset_datasetcontentversionvalue.go new file mode 100644 index 0000000000..852c084fff --- /dev/null +++ b/cloudformation/aws-iotanalytics-dataset_datasetcontentversionvalue.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSIoTAnalyticsDataset_DatasetContentVersionValue AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.DatasetContentVersionValue) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable-datasetcontentversionvalue.html +type AWSIoTAnalyticsDataset_DatasetContentVersionValue struct { + + // DatasetName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable-datasetcontentversionvalue.html#cfn-iotanalytics-dataset-variable-datasetcontentversionvalue-datasetname + DatasetName string `json:"DatasetName,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsDataset_DatasetContentVersionValue) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Dataset.DatasetContentVersionValue" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_DatasetContentVersionValue) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_DatasetContentVersionValue) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_DatasetContentVersionValue) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_DatasetContentVersionValue) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsDataset_DatasetContentVersionValue) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-dataset_deltatime.go b/cloudformation/aws-iotanalytics-dataset_deltatime.go new file mode 100644 index 0000000000..0bdd3a3903 --- /dev/null +++ b/cloudformation/aws-iotanalytics-dataset_deltatime.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSIoTAnalyticsDataset_DeltaTime AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.DeltaTime) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-deltatime.html +type AWSIoTAnalyticsDataset_DeltaTime struct { + + // OffsetSeconds AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-deltatime.html#cfn-iotanalytics-dataset-deltatime-offsetseconds + OffsetSeconds int `json:"OffsetSeconds"` + + // TimeExpression AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-deltatime.html#cfn-iotanalytics-dataset-deltatime-timeexpression + TimeExpression string `json:"TimeExpression,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsDataset_DeltaTime) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Dataset.DeltaTime" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_DeltaTime) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_DeltaTime) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_DeltaTime) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_DeltaTime) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsDataset_DeltaTime) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-dataset_filter.go b/cloudformation/aws-iotanalytics-dataset_filter.go new file mode 100644 index 0000000000..9a1a034733 --- /dev/null +++ b/cloudformation/aws-iotanalytics-dataset_filter.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSIoTAnalyticsDataset_Filter AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.Filter) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-filter.html +type AWSIoTAnalyticsDataset_Filter struct { + + // DeltaTime AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-filter.html#cfn-iotanalytics-dataset-filter-deltatime + DeltaTime *AWSIoTAnalyticsDataset_DeltaTime `json:"DeltaTime,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsDataset_Filter) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Dataset.Filter" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_Filter) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_Filter) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_Filter) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_Filter) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsDataset_Filter) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-dataset_outputfileurivalue.go b/cloudformation/aws-iotanalytics-dataset_outputfileurivalue.go new file mode 100644 index 0000000000..23ccd50bc0 --- /dev/null +++ b/cloudformation/aws-iotanalytics-dataset_outputfileurivalue.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSIoTAnalyticsDataset_OutputFileUriValue AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.OutputFileUriValue) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable-outputfileurivalue.html +type AWSIoTAnalyticsDataset_OutputFileUriValue struct { + + // FileName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable-outputfileurivalue.html#cfn-iotanalytics-dataset-variable-outputfileurivalue-filename + FileName string `json:"FileName,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsDataset_OutputFileUriValue) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Dataset.OutputFileUriValue" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_OutputFileUriValue) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_OutputFileUriValue) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_OutputFileUriValue) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_OutputFileUriValue) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsDataset_OutputFileUriValue) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-dataset_queryaction.go b/cloudformation/aws-iotanalytics-dataset_queryaction.go new file mode 100644 index 0000000000..bf769abed8 --- /dev/null +++ b/cloudformation/aws-iotanalytics-dataset_queryaction.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSIoTAnalyticsDataset_QueryAction AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.QueryAction) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-queryaction.html +type AWSIoTAnalyticsDataset_QueryAction struct { + + // Filters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-queryaction.html#cfn-iotanalytics-dataset-queryaction-filters + Filters []AWSIoTAnalyticsDataset_Filter `json:"Filters,omitempty"` + + // SqlQuery AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-queryaction.html#cfn-iotanalytics-dataset-queryaction-sqlquery + SqlQuery string `json:"SqlQuery,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsDataset_QueryAction) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Dataset.QueryAction" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_QueryAction) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_QueryAction) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_QueryAction) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_QueryAction) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsDataset_QueryAction) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-dataset_resourceconfiguration.go b/cloudformation/aws-iotanalytics-dataset_resourceconfiguration.go new file mode 100644 index 0000000000..d6ca08840d --- /dev/null +++ b/cloudformation/aws-iotanalytics-dataset_resourceconfiguration.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSIoTAnalyticsDataset_ResourceConfiguration AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.ResourceConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-resourceconfiguration.html +type AWSIoTAnalyticsDataset_ResourceConfiguration struct { + + // ComputeType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-resourceconfiguration.html#cfn-iotanalytics-dataset-resourceconfiguration-computetype + ComputeType string `json:"ComputeType,omitempty"` + + // VolumeSizeInGB AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-resourceconfiguration.html#cfn-iotanalytics-dataset-resourceconfiguration-volumesizeingb + VolumeSizeInGB int `json:"VolumeSizeInGB"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsDataset_ResourceConfiguration) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Dataset.ResourceConfiguration" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_ResourceConfiguration) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_ResourceConfiguration) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_ResourceConfiguration) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_ResourceConfiguration) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsDataset_ResourceConfiguration) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-dataset_retentionperiod.go b/cloudformation/aws-iotanalytics-dataset_retentionperiod.go new file mode 100644 index 0000000000..99537165b4 --- /dev/null +++ b/cloudformation/aws-iotanalytics-dataset_retentionperiod.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSIoTAnalyticsDataset_RetentionPeriod AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.RetentionPeriod) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-retentionperiod.html +type AWSIoTAnalyticsDataset_RetentionPeriod struct { + + // NumberOfDays AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-retentionperiod.html#cfn-iotanalytics-dataset-retentionperiod-numberofdays + NumberOfDays int `json:"NumberOfDays"` + + // Unlimited AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-retentionperiod.html#cfn-iotanalytics-dataset-retentionperiod-unlimited + Unlimited bool `json:"Unlimited"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsDataset_RetentionPeriod) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Dataset.RetentionPeriod" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_RetentionPeriod) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_RetentionPeriod) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_RetentionPeriod) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_RetentionPeriod) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsDataset_RetentionPeriod) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-dataset_schedule.go b/cloudformation/aws-iotanalytics-dataset_schedule.go new file mode 100644 index 0000000000..78501ddb88 --- /dev/null +++ b/cloudformation/aws-iotanalytics-dataset_schedule.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSIoTAnalyticsDataset_Schedule AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.Schedule) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-trigger-schedule.html +type AWSIoTAnalyticsDataset_Schedule struct { + + // ScheduleExpression AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-trigger-schedule.html#cfn-iotanalytics-dataset-trigger-schedule-scheduleexpression + ScheduleExpression string `json:"ScheduleExpression,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsDataset_Schedule) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Dataset.Schedule" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_Schedule) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_Schedule) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_Schedule) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_Schedule) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsDataset_Schedule) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-dataset_trigger.go b/cloudformation/aws-iotanalytics-dataset_trigger.go new file mode 100644 index 0000000000..ba0b35cf3d --- /dev/null +++ b/cloudformation/aws-iotanalytics-dataset_trigger.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSIoTAnalyticsDataset_Trigger AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.Trigger) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-trigger.html +type AWSIoTAnalyticsDataset_Trigger struct { + + // Schedule AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-trigger.html#cfn-iotanalytics-dataset-trigger-schedule + Schedule *AWSIoTAnalyticsDataset_Schedule `json:"Schedule,omitempty"` + + // TriggeringDataset AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-trigger.html#cfn-iotanalytics-dataset-trigger-triggeringdataset + TriggeringDataset *AWSIoTAnalyticsDataset_TriggeringDataset `json:"TriggeringDataset,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsDataset_Trigger) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Dataset.Trigger" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_Trigger) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_Trigger) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_Trigger) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_Trigger) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsDataset_Trigger) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-dataset_triggeringdataset.go b/cloudformation/aws-iotanalytics-dataset_triggeringdataset.go new file mode 100644 index 0000000000..dd826fb7a5 --- /dev/null +++ b/cloudformation/aws-iotanalytics-dataset_triggeringdataset.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSIoTAnalyticsDataset_TriggeringDataset AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.TriggeringDataset) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-triggeringdataset.html +type AWSIoTAnalyticsDataset_TriggeringDataset struct { + + // DatasetName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-triggeringdataset.html#cfn-iotanalytics-dataset-triggeringdataset-datasetname + DatasetName string `json:"DatasetName,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsDataset_TriggeringDataset) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Dataset.TriggeringDataset" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_TriggeringDataset) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_TriggeringDataset) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_TriggeringDataset) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_TriggeringDataset) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsDataset_TriggeringDataset) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-dataset_variable.go b/cloudformation/aws-iotanalytics-dataset_variable.go new file mode 100644 index 0000000000..0d91213b01 --- /dev/null +++ b/cloudformation/aws-iotanalytics-dataset_variable.go @@ -0,0 +1,75 @@ +package cloudformation + +// AWSIoTAnalyticsDataset_Variable AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.Variable) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable.html +type AWSIoTAnalyticsDataset_Variable struct { + + // DatasetContentVersionValue AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable.html#cfn-iotanalytics-dataset-variable-datasetcontentversionvalue + DatasetContentVersionValue *AWSIoTAnalyticsDataset_DatasetContentVersionValue `json:"DatasetContentVersionValue,omitempty"` + + // DoubleValue AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable.html#cfn-iotanalytics-dataset-variable-doublevalue + DoubleValue float64 `json:"DoubleValue,omitempty"` + + // OutputFileUriValue AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable.html#cfn-iotanalytics-dataset-variable-outputfileurivalue + OutputFileUriValue *AWSIoTAnalyticsDataset_OutputFileUriValue `json:"OutputFileUriValue,omitempty"` + + // StringValue AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable.html#cfn-iotanalytics-dataset-variable-stringvalue + StringValue string `json:"StringValue,omitempty"` + + // VariableName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable.html#cfn-iotanalytics-dataset-variable-variablename + VariableName string `json:"VariableName,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsDataset_Variable) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Dataset.Variable" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_Variable) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDataset_Variable) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_Variable) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDataset_Variable) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsDataset_Variable) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-datastore.go b/cloudformation/aws-iotanalytics-datastore.go new file mode 100644 index 0000000000..7c8be7440d --- /dev/null +++ b/cloudformation/aws-iotanalytics-datastore.go @@ -0,0 +1,180 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSIoTAnalyticsDatastore AWS CloudFormation Resource (AWS::IoTAnalytics::Datastore) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-datastore.html +type AWSIoTAnalyticsDatastore struct { + + // DatastoreName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-datastore.html#cfn-iotanalytics-datastore-datastorename + DatastoreName string `json:"DatastoreName,omitempty"` + + // RetentionPeriod AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-datastore.html#cfn-iotanalytics-datastore-retentionperiod + RetentionPeriod *AWSIoTAnalyticsDatastore_RetentionPeriod `json:"RetentionPeriod,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-datastore.html#cfn-iotanalytics-datastore-tags + Tags []Tag `json:"Tags,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsDatastore) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Datastore" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDatastore) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDatastore) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDatastore) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDatastore) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsDatastore) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSIoTAnalyticsDatastore) MarshalJSON() ([]byte, error) { + type Properties AWSIoTAnalyticsDatastore + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSIoTAnalyticsDatastore) UnmarshalJSON(b []byte) error { + type Properties AWSIoTAnalyticsDatastore + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSIoTAnalyticsDatastore(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSIoTAnalyticsDatastoreResources retrieves all AWSIoTAnalyticsDatastore items from an AWS CloudFormation template +func (t *Template) GetAllAWSIoTAnalyticsDatastoreResources() map[string]*AWSIoTAnalyticsDatastore { + results := map[string]*AWSIoTAnalyticsDatastore{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIoTAnalyticsDatastore: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::IoTAnalytics::Datastore" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSIoTAnalyticsDatastore + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSIoTAnalyticsDatastoreWithName retrieves all AWSIoTAnalyticsDatastore items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIoTAnalyticsDatastoreWithName(name string) (*AWSIoTAnalyticsDatastore, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIoTAnalyticsDatastore: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::IoTAnalytics::Datastore" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSIoTAnalyticsDatastore + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-iotanalytics-datastore_retentionperiod.go b/cloudformation/aws-iotanalytics-datastore_retentionperiod.go new file mode 100644 index 0000000000..ff5b1c577d --- /dev/null +++ b/cloudformation/aws-iotanalytics-datastore_retentionperiod.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSIoTAnalyticsDatastore_RetentionPeriod AWS CloudFormation Resource (AWS::IoTAnalytics::Datastore.RetentionPeriod) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-retentionperiod.html +type AWSIoTAnalyticsDatastore_RetentionPeriod struct { + + // NumberOfDays AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-retentionperiod.html#cfn-iotanalytics-datastore-retentionperiod-numberofdays + NumberOfDays int `json:"NumberOfDays,omitempty"` + + // Unlimited AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-retentionperiod.html#cfn-iotanalytics-datastore-retentionperiod-unlimited + Unlimited bool `json:"Unlimited,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsDatastore_RetentionPeriod) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Datastore.RetentionPeriod" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDatastore_RetentionPeriod) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsDatastore_RetentionPeriod) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDatastore_RetentionPeriod) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsDatastore_RetentionPeriod) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsDatastore_RetentionPeriod) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-pipeline.go b/cloudformation/aws-iotanalytics-pipeline.go new file mode 100644 index 0000000000..3c9beffde1 --- /dev/null +++ b/cloudformation/aws-iotanalytics-pipeline.go @@ -0,0 +1,180 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSIoTAnalyticsPipeline AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-pipeline.html +type AWSIoTAnalyticsPipeline struct { + + // PipelineActivities AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-pipeline.html#cfn-iotanalytics-pipeline-pipelineactivities + PipelineActivities []AWSIoTAnalyticsPipeline_Activity `json:"PipelineActivities,omitempty"` + + // PipelineName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-pipeline.html#cfn-iotanalytics-pipeline-pipelinename + PipelineName string `json:"PipelineName,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-pipeline.html#cfn-iotanalytics-pipeline-tags + Tags []Tag `json:"Tags,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsPipeline) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Pipeline" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsPipeline) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSIoTAnalyticsPipeline) MarshalJSON() ([]byte, error) { + type Properties AWSIoTAnalyticsPipeline + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSIoTAnalyticsPipeline) UnmarshalJSON(b []byte) error { + type Properties AWSIoTAnalyticsPipeline + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSIoTAnalyticsPipeline(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSIoTAnalyticsPipelineResources retrieves all AWSIoTAnalyticsPipeline items from an AWS CloudFormation template +func (t *Template) GetAllAWSIoTAnalyticsPipelineResources() map[string]*AWSIoTAnalyticsPipeline { + results := map[string]*AWSIoTAnalyticsPipeline{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIoTAnalyticsPipeline: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::IoTAnalytics::Pipeline" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSIoTAnalyticsPipeline + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSIoTAnalyticsPipelineWithName retrieves all AWSIoTAnalyticsPipeline items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIoTAnalyticsPipelineWithName(name string) (*AWSIoTAnalyticsPipeline, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIoTAnalyticsPipeline: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::IoTAnalytics::Pipeline" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSIoTAnalyticsPipeline + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-iotanalytics-pipeline_activity.go b/cloudformation/aws-iotanalytics-pipeline_activity.go new file mode 100644 index 0000000000..24c8848284 --- /dev/null +++ b/cloudformation/aws-iotanalytics-pipeline_activity.go @@ -0,0 +1,100 @@ +package cloudformation + +// AWSIoTAnalyticsPipeline_Activity AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.Activity) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html +type AWSIoTAnalyticsPipeline_Activity struct { + + // AddAttributes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html#cfn-iotanalytics-pipeline-activity-addattributes + AddAttributes *AWSIoTAnalyticsPipeline_AddAttributes `json:"AddAttributes,omitempty"` + + // Channel AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html#cfn-iotanalytics-pipeline-activity-channel + Channel *AWSIoTAnalyticsPipeline_Channel `json:"Channel,omitempty"` + + // Datastore AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html#cfn-iotanalytics-pipeline-activity-datastore + Datastore *AWSIoTAnalyticsPipeline_Datastore `json:"Datastore,omitempty"` + + // DeviceRegistryEnrich AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html#cfn-iotanalytics-pipeline-activity-deviceregistryenrich + DeviceRegistryEnrich *AWSIoTAnalyticsPipeline_DeviceRegistryEnrich `json:"DeviceRegistryEnrich,omitempty"` + + // DeviceShadowEnrich AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html#cfn-iotanalytics-pipeline-activity-deviceshadowenrich + DeviceShadowEnrich *AWSIoTAnalyticsPipeline_DeviceShadowEnrich `json:"DeviceShadowEnrich,omitempty"` + + // Filter AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html#cfn-iotanalytics-pipeline-activity-filter + Filter *AWSIoTAnalyticsPipeline_Filter `json:"Filter,omitempty"` + + // Lambda AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html#cfn-iotanalytics-pipeline-activity-lambda + Lambda *AWSIoTAnalyticsPipeline_Lambda `json:"Lambda,omitempty"` + + // Math AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html#cfn-iotanalytics-pipeline-activity-math + Math *AWSIoTAnalyticsPipeline_Math `json:"Math,omitempty"` + + // RemoveAttributes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html#cfn-iotanalytics-pipeline-activity-removeattributes + RemoveAttributes *AWSIoTAnalyticsPipeline_RemoveAttributes `json:"RemoveAttributes,omitempty"` + + // SelectAttributes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html#cfn-iotanalytics-pipeline-activity-selectattributes + SelectAttributes *AWSIoTAnalyticsPipeline_SelectAttributes `json:"SelectAttributes,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsPipeline_Activity) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Pipeline.Activity" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline_Activity) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline_Activity) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline_Activity) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline_Activity) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsPipeline_Activity) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-pipeline_addattributes.go b/cloudformation/aws-iotanalytics-pipeline_addattributes.go new file mode 100644 index 0000000000..65d208a8bd --- /dev/null +++ b/cloudformation/aws-iotanalytics-pipeline_addattributes.go @@ -0,0 +1,65 @@ +package cloudformation + +// AWSIoTAnalyticsPipeline_AddAttributes AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.AddAttributes) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-addattributes.html +type AWSIoTAnalyticsPipeline_AddAttributes struct { + + // Attributes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-addattributes.html#cfn-iotanalytics-pipeline-addattributes-attributes + Attributes interface{} `json:"Attributes,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-addattributes.html#cfn-iotanalytics-pipeline-addattributes-name + Name string `json:"Name,omitempty"` + + // Next AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-addattributes.html#cfn-iotanalytics-pipeline-addattributes-next + Next string `json:"Next,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsPipeline_AddAttributes) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Pipeline.AddAttributes" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline_AddAttributes) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline_AddAttributes) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline_AddAttributes) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline_AddAttributes) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsPipeline_AddAttributes) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-pipeline_channel.go b/cloudformation/aws-iotanalytics-pipeline_channel.go new file mode 100644 index 0000000000..ae38d1a432 --- /dev/null +++ b/cloudformation/aws-iotanalytics-pipeline_channel.go @@ -0,0 +1,65 @@ +package cloudformation + +// AWSIoTAnalyticsPipeline_Channel AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.Channel) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-channel.html +type AWSIoTAnalyticsPipeline_Channel struct { + + // ChannelName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-channel.html#cfn-iotanalytics-pipeline-channel-channelname + ChannelName string `json:"ChannelName,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-channel.html#cfn-iotanalytics-pipeline-channel-name + Name string `json:"Name,omitempty"` + + // Next AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-channel.html#cfn-iotanalytics-pipeline-channel-next + Next string `json:"Next,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsPipeline_Channel) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Pipeline.Channel" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline_Channel) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline_Channel) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline_Channel) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline_Channel) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsPipeline_Channel) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-pipeline_datastore.go b/cloudformation/aws-iotanalytics-pipeline_datastore.go new file mode 100644 index 0000000000..f31a8bb959 --- /dev/null +++ b/cloudformation/aws-iotanalytics-pipeline_datastore.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSIoTAnalyticsPipeline_Datastore AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.Datastore) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-datastore.html +type AWSIoTAnalyticsPipeline_Datastore struct { + + // DatastoreName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-datastore.html#cfn-iotanalytics-pipeline-datastore-datastorename + DatastoreName string `json:"DatastoreName,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-datastore.html#cfn-iotanalytics-pipeline-datastore-name + Name string `json:"Name,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsPipeline_Datastore) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Pipeline.Datastore" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline_Datastore) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline_Datastore) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline_Datastore) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline_Datastore) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsPipeline_Datastore) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-pipeline_deviceregistryenrich.go b/cloudformation/aws-iotanalytics-pipeline_deviceregistryenrich.go new file mode 100644 index 0000000000..e30e67f7f6 --- /dev/null +++ b/cloudformation/aws-iotanalytics-pipeline_deviceregistryenrich.go @@ -0,0 +1,75 @@ +package cloudformation + +// AWSIoTAnalyticsPipeline_DeviceRegistryEnrich AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.DeviceRegistryEnrich) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceregistryenrich.html +type AWSIoTAnalyticsPipeline_DeviceRegistryEnrich struct { + + // Attribute AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceregistryenrich.html#cfn-iotanalytics-pipeline-deviceregistryenrich-attribute + Attribute string `json:"Attribute,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceregistryenrich.html#cfn-iotanalytics-pipeline-deviceregistryenrich-name + Name string `json:"Name,omitempty"` + + // Next AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceregistryenrich.html#cfn-iotanalytics-pipeline-deviceregistryenrich-next + Next string `json:"Next,omitempty"` + + // RoleArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceregistryenrich.html#cfn-iotanalytics-pipeline-deviceregistryenrich-rolearn + RoleArn string `json:"RoleArn,omitempty"` + + // ThingName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceregistryenrich.html#cfn-iotanalytics-pipeline-deviceregistryenrich-thingname + ThingName string `json:"ThingName,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsPipeline_DeviceRegistryEnrich) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Pipeline.DeviceRegistryEnrich" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline_DeviceRegistryEnrich) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline_DeviceRegistryEnrich) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline_DeviceRegistryEnrich) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline_DeviceRegistryEnrich) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsPipeline_DeviceRegistryEnrich) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-pipeline_deviceshadowenrich.go b/cloudformation/aws-iotanalytics-pipeline_deviceshadowenrich.go new file mode 100644 index 0000000000..5923b04e10 --- /dev/null +++ b/cloudformation/aws-iotanalytics-pipeline_deviceshadowenrich.go @@ -0,0 +1,75 @@ +package cloudformation + +// AWSIoTAnalyticsPipeline_DeviceShadowEnrich AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.DeviceShadowEnrich) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceshadowenrich.html +type AWSIoTAnalyticsPipeline_DeviceShadowEnrich struct { + + // Attribute AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceshadowenrich.html#cfn-iotanalytics-pipeline-deviceshadowenrich-attribute + Attribute string `json:"Attribute,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceshadowenrich.html#cfn-iotanalytics-pipeline-deviceshadowenrich-name + Name string `json:"Name,omitempty"` + + // Next AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceshadowenrich.html#cfn-iotanalytics-pipeline-deviceshadowenrich-next + Next string `json:"Next,omitempty"` + + // RoleArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceshadowenrich.html#cfn-iotanalytics-pipeline-deviceshadowenrich-rolearn + RoleArn string `json:"RoleArn,omitempty"` + + // ThingName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceshadowenrich.html#cfn-iotanalytics-pipeline-deviceshadowenrich-thingname + ThingName string `json:"ThingName,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsPipeline_DeviceShadowEnrich) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Pipeline.DeviceShadowEnrich" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline_DeviceShadowEnrich) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline_DeviceShadowEnrich) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline_DeviceShadowEnrich) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline_DeviceShadowEnrich) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsPipeline_DeviceShadowEnrich) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-pipeline_filter.go b/cloudformation/aws-iotanalytics-pipeline_filter.go new file mode 100644 index 0000000000..ff53308a21 --- /dev/null +++ b/cloudformation/aws-iotanalytics-pipeline_filter.go @@ -0,0 +1,65 @@ +package cloudformation + +// AWSIoTAnalyticsPipeline_Filter AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.Filter) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-filter.html +type AWSIoTAnalyticsPipeline_Filter struct { + + // Filter AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-filter.html#cfn-iotanalytics-pipeline-filter-filter + Filter string `json:"Filter,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-filter.html#cfn-iotanalytics-pipeline-filter-name + Name string `json:"Name,omitempty"` + + // Next AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-filter.html#cfn-iotanalytics-pipeline-filter-next + Next string `json:"Next,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsPipeline_Filter) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Pipeline.Filter" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline_Filter) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline_Filter) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline_Filter) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline_Filter) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsPipeline_Filter) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-pipeline_lambda.go b/cloudformation/aws-iotanalytics-pipeline_lambda.go new file mode 100644 index 0000000000..293dcff6da --- /dev/null +++ b/cloudformation/aws-iotanalytics-pipeline_lambda.go @@ -0,0 +1,70 @@ +package cloudformation + +// AWSIoTAnalyticsPipeline_Lambda AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.Lambda) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-lambda.html +type AWSIoTAnalyticsPipeline_Lambda struct { + + // BatchSize AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-lambda.html#cfn-iotanalytics-pipeline-lambda-batchsize + BatchSize int `json:"BatchSize,omitempty"` + + // LambdaName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-lambda.html#cfn-iotanalytics-pipeline-lambda-lambdaname + LambdaName string `json:"LambdaName,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-lambda.html#cfn-iotanalytics-pipeline-lambda-name + Name string `json:"Name,omitempty"` + + // Next AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-lambda.html#cfn-iotanalytics-pipeline-lambda-next + Next string `json:"Next,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsPipeline_Lambda) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Pipeline.Lambda" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline_Lambda) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline_Lambda) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline_Lambda) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline_Lambda) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsPipeline_Lambda) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-pipeline_math.go b/cloudformation/aws-iotanalytics-pipeline_math.go new file mode 100644 index 0000000000..a33d7a4449 --- /dev/null +++ b/cloudformation/aws-iotanalytics-pipeline_math.go @@ -0,0 +1,70 @@ +package cloudformation + +// AWSIoTAnalyticsPipeline_Math AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.Math) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-math.html +type AWSIoTAnalyticsPipeline_Math struct { + + // Attribute AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-math.html#cfn-iotanalytics-pipeline-math-attribute + Attribute string `json:"Attribute,omitempty"` + + // Math AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-math.html#cfn-iotanalytics-pipeline-math-math + Math string `json:"Math,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-math.html#cfn-iotanalytics-pipeline-math-name + Name string `json:"Name,omitempty"` + + // Next AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-math.html#cfn-iotanalytics-pipeline-math-next + Next string `json:"Next,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsPipeline_Math) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Pipeline.Math" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline_Math) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline_Math) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline_Math) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline_Math) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsPipeline_Math) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-pipeline_removeattributes.go b/cloudformation/aws-iotanalytics-pipeline_removeattributes.go new file mode 100644 index 0000000000..b4b2c51c47 --- /dev/null +++ b/cloudformation/aws-iotanalytics-pipeline_removeattributes.go @@ -0,0 +1,65 @@ +package cloudformation + +// AWSIoTAnalyticsPipeline_RemoveAttributes AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.RemoveAttributes) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-removeattributes.html +type AWSIoTAnalyticsPipeline_RemoveAttributes struct { + + // Attributes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-removeattributes.html#cfn-iotanalytics-pipeline-removeattributes-attributes + Attributes []string `json:"Attributes,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-removeattributes.html#cfn-iotanalytics-pipeline-removeattributes-name + Name string `json:"Name,omitempty"` + + // Next AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-removeattributes.html#cfn-iotanalytics-pipeline-removeattributes-next + Next string `json:"Next,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsPipeline_RemoveAttributes) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Pipeline.RemoveAttributes" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline_RemoveAttributes) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline_RemoveAttributes) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline_RemoveAttributes) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline_RemoveAttributes) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsPipeline_RemoveAttributes) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-iotanalytics-pipeline_selectattributes.go b/cloudformation/aws-iotanalytics-pipeline_selectattributes.go new file mode 100644 index 0000000000..d322c63467 --- /dev/null +++ b/cloudformation/aws-iotanalytics-pipeline_selectattributes.go @@ -0,0 +1,65 @@ +package cloudformation + +// AWSIoTAnalyticsPipeline_SelectAttributes AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.SelectAttributes) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-selectattributes.html +type AWSIoTAnalyticsPipeline_SelectAttributes struct { + + // Attributes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-selectattributes.html#cfn-iotanalytics-pipeline-selectattributes-attributes + Attributes []string `json:"Attributes,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-selectattributes.html#cfn-iotanalytics-pipeline-selectattributes-name + Name string `json:"Name,omitempty"` + + // Next AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-selectattributes.html#cfn-iotanalytics-pipeline-selectattributes-next + Next string `json:"Next,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSIoTAnalyticsPipeline_SelectAttributes) AWSCloudFormationType() string { + return "AWS::IoTAnalytics::Pipeline.SelectAttributes" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline_SelectAttributes) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSIoTAnalyticsPipeline_SelectAttributes) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline_SelectAttributes) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSIoTAnalyticsPipeline_SelectAttributes) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSIoTAnalyticsPipeline_SelectAttributes) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesis-stream.go b/cloudformation/aws-kinesis-stream.go index 769c4b3119..cfa83dd9fd 100644 --- a/cloudformation/aws-kinesis-stream.go +++ b/cloudformation/aws-kinesis-stream.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSKinesisStream) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSKinesisStream) MarshalJSON() ([]byte, error) { +func (r *AWSKinesisStream) MarshalJSON() ([]byte, error) { type Properties AWSKinesisStream return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSKinesisStream) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSKinesisStream) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSKinesisStream) UnmarshalJSON(b []byte) error { } // GetAllAWSKinesisStreamResources retrieves all AWSKinesisStream items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisStreamResources() map[string]AWSKinesisStream { - results := map[string]AWSKinesisStream{} +func (t *Template) GetAllAWSKinesisStreamResources() map[string]*AWSKinesisStream { + results := map[string]*AWSKinesisStream{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSKinesisStream: + case *AWSKinesisStream: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSKinesisStreamResources() map[string]AWSKinesisStream if b, err := json.Marshal(resource); err == nil { var result AWSKinesisStream if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSKinesisStreamResources() map[string]AWSKinesisStream // GetAWSKinesisStreamWithName retrieves all AWSKinesisStream items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisStreamWithName(name string) (AWSKinesisStream, error) { +func (t *Template) GetAWSKinesisStreamWithName(name string) (*AWSKinesisStream, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSKinesisStream: + case *AWSKinesisStream: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSKinesisStreamWithName(name string) (AWSKinesisStream, e if b, err := json.Marshal(resource); err == nil { var result AWSKinesisStream if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSKinesisStream{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-kinesis-streamconsumer.go b/cloudformation/aws-kinesis-streamconsumer.go index 5c06b2b088..571c73a7c8 100644 --- a/cloudformation/aws-kinesis-streamconsumer.go +++ b/cloudformation/aws-kinesis-streamconsumer.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSKinesisStreamConsumer) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSKinesisStreamConsumer) MarshalJSON() ([]byte, error) { +func (r *AWSKinesisStreamConsumer) MarshalJSON() ([]byte, error) { type Properties AWSKinesisStreamConsumer return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSKinesisStreamConsumer) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSKinesisStreamConsumer) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSKinesisStreamConsumer) UnmarshalJSON(b []byte) error { } // GetAllAWSKinesisStreamConsumerResources retrieves all AWSKinesisStreamConsumer items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisStreamConsumerResources() map[string]AWSKinesisStreamConsumer { - results := map[string]AWSKinesisStreamConsumer{} +func (t *Template) GetAllAWSKinesisStreamConsumerResources() map[string]*AWSKinesisStreamConsumer { + results := map[string]*AWSKinesisStreamConsumer{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSKinesisStreamConsumer: + case *AWSKinesisStreamConsumer: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSKinesisStreamConsumerResources() map[string]AWSKines if b, err := json.Marshal(resource); err == nil { var result AWSKinesisStreamConsumer if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSKinesisStreamConsumerResources() map[string]AWSKines // GetAWSKinesisStreamConsumerWithName retrieves all AWSKinesisStreamConsumer items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisStreamConsumerWithName(name string) (AWSKinesisStreamConsumer, error) { +func (t *Template) GetAWSKinesisStreamConsumerWithName(name string) (*AWSKinesisStreamConsumer, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSKinesisStreamConsumer: + case *AWSKinesisStreamConsumer: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSKinesisStreamConsumerWithName(name string) (AWSKinesisS if b, err := json.Marshal(resource); err == nil { var result AWSKinesisStreamConsumer if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSKinesisStreamConsumer{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-kinesisanalytics-application.go b/cloudformation/aws-kinesisanalytics-application.go index 11949b2a4e..cc288b719a 100644 --- a/cloudformation/aws-kinesisanalytics-application.go +++ b/cloudformation/aws-kinesisanalytics-application.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSKinesisAnalyticsApplication) SetDeletionPolicy(policy DeletionPolicy // 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 AWSKinesisAnalyticsApplication) MarshalJSON() ([]byte, error) { +func (r *AWSKinesisAnalyticsApplication) MarshalJSON() ([]byte, error) { type Properties AWSKinesisAnalyticsApplication return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSKinesisAnalyticsApplication) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSKinesisAnalyticsApplication) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSKinesisAnalyticsApplication) UnmarshalJSON(b []byte) error { } // GetAllAWSKinesisAnalyticsApplicationResources retrieves all AWSKinesisAnalyticsApplication items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisAnalyticsApplicationResources() map[string]AWSKinesisAnalyticsApplication { - results := map[string]AWSKinesisAnalyticsApplication{} +func (t *Template) GetAllAWSKinesisAnalyticsApplicationResources() map[string]*AWSKinesisAnalyticsApplication { + results := map[string]*AWSKinesisAnalyticsApplication{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSKinesisAnalyticsApplication: + case *AWSKinesisAnalyticsApplication: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSKinesisAnalyticsApplicationResources() map[string]AW if b, err := json.Marshal(resource); err == nil { var result AWSKinesisAnalyticsApplication if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSKinesisAnalyticsApplicationResources() map[string]AW // GetAWSKinesisAnalyticsApplicationWithName retrieves all AWSKinesisAnalyticsApplication items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisAnalyticsApplicationWithName(name string) (AWSKinesisAnalyticsApplication, error) { +func (t *Template) GetAWSKinesisAnalyticsApplicationWithName(name string) (*AWSKinesisAnalyticsApplication, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSKinesisAnalyticsApplication: + case *AWSKinesisAnalyticsApplication: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSKinesisAnalyticsApplicationWithName(name string) (AWSKi if b, err := json.Marshal(resource); err == nil { var result AWSKinesisAnalyticsApplication if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSKinesisAnalyticsApplication{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-kinesisanalytics-applicationoutput.go b/cloudformation/aws-kinesisanalytics-applicationoutput.go index 47fa698d9b..072a764f52 100644 --- a/cloudformation/aws-kinesisanalytics-applicationoutput.go +++ b/cloudformation/aws-kinesisanalytics-applicationoutput.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSKinesisAnalyticsApplicationOutput) SetDeletionPolicy(policy Deletion // 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 AWSKinesisAnalyticsApplicationOutput) MarshalJSON() ([]byte, error) { +func (r *AWSKinesisAnalyticsApplicationOutput) MarshalJSON() ([]byte, error) { type Properties AWSKinesisAnalyticsApplicationOutput return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSKinesisAnalyticsApplicationOutput) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSKinesisAnalyticsApplicationOutput) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSKinesisAnalyticsApplicationOutput) UnmarshalJSON(b []byte) error { } // GetAllAWSKinesisAnalyticsApplicationOutputResources retrieves all AWSKinesisAnalyticsApplicationOutput items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisAnalyticsApplicationOutputResources() map[string]AWSKinesisAnalyticsApplicationOutput { - results := map[string]AWSKinesisAnalyticsApplicationOutput{} +func (t *Template) GetAllAWSKinesisAnalyticsApplicationOutputResources() map[string]*AWSKinesisAnalyticsApplicationOutput { + results := map[string]*AWSKinesisAnalyticsApplicationOutput{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSKinesisAnalyticsApplicationOutput: + case *AWSKinesisAnalyticsApplicationOutput: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSKinesisAnalyticsApplicationOutputResources() map[str if b, err := json.Marshal(resource); err == nil { var result AWSKinesisAnalyticsApplicationOutput if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSKinesisAnalyticsApplicationOutputResources() map[str // GetAWSKinesisAnalyticsApplicationOutputWithName retrieves all AWSKinesisAnalyticsApplicationOutput items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisAnalyticsApplicationOutputWithName(name string) (AWSKinesisAnalyticsApplicationOutput, error) { +func (t *Template) GetAWSKinesisAnalyticsApplicationOutputWithName(name string) (*AWSKinesisAnalyticsApplicationOutput, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSKinesisAnalyticsApplicationOutput: + case *AWSKinesisAnalyticsApplicationOutput: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSKinesisAnalyticsApplicationOutputWithName(name string) if b, err := json.Marshal(resource); err == nil { var result AWSKinesisAnalyticsApplicationOutput if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSKinesisAnalyticsApplicationOutput{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource.go b/cloudformation/aws-kinesisanalytics-applicationreferencedatasource.go index 1821f910b9..62ab48ba58 100644 --- a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource.go +++ b/cloudformation/aws-kinesisanalytics-applicationreferencedatasource.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSKinesisAnalyticsApplicationReferenceDataSource) SetDeletionPolicy(po // 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 AWSKinesisAnalyticsApplicationReferenceDataSource) MarshalJSON() ([]byte, error) { +func (r *AWSKinesisAnalyticsApplicationReferenceDataSource) MarshalJSON() ([]byte, error) { type Properties AWSKinesisAnalyticsApplicationReferenceDataSource return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSKinesisAnalyticsApplicationReferenceDataSource) MarshalJSON() ([]byte DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSKinesisAnalyticsApplicationReferenceDataSource) UnmarshalJSON(b []by DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSKinesisAnalyticsApplicationReferenceDataSource) UnmarshalJSON(b []by } // GetAllAWSKinesisAnalyticsApplicationReferenceDataSourceResources retrieves all AWSKinesisAnalyticsApplicationReferenceDataSource items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisAnalyticsApplicationReferenceDataSourceResources() map[string]AWSKinesisAnalyticsApplicationReferenceDataSource { - results := map[string]AWSKinesisAnalyticsApplicationReferenceDataSource{} +func (t *Template) GetAllAWSKinesisAnalyticsApplicationReferenceDataSourceResources() map[string]*AWSKinesisAnalyticsApplicationReferenceDataSource { + results := map[string]*AWSKinesisAnalyticsApplicationReferenceDataSource{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSKinesisAnalyticsApplicationReferenceDataSource: + case *AWSKinesisAnalyticsApplicationReferenceDataSource: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSKinesisAnalyticsApplicationReferenceDataSourceResour if b, err := json.Marshal(resource); err == nil { var result AWSKinesisAnalyticsApplicationReferenceDataSource if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSKinesisAnalyticsApplicationReferenceDataSourceResour // GetAWSKinesisAnalyticsApplicationReferenceDataSourceWithName retrieves all AWSKinesisAnalyticsApplicationReferenceDataSource items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisAnalyticsApplicationReferenceDataSourceWithName(name string) (AWSKinesisAnalyticsApplicationReferenceDataSource, error) { +func (t *Template) GetAWSKinesisAnalyticsApplicationReferenceDataSourceWithName(name string) (*AWSKinesisAnalyticsApplicationReferenceDataSource, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSKinesisAnalyticsApplicationReferenceDataSource: + case *AWSKinesisAnalyticsApplicationReferenceDataSource: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSKinesisAnalyticsApplicationReferenceDataSourceWithName( if b, err := json.Marshal(resource); err == nil { var result AWSKinesisAnalyticsApplicationReferenceDataSource if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSKinesisAnalyticsApplicationReferenceDataSource{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-kinesisanalyticsv2-application.go b/cloudformation/aws-kinesisanalyticsv2-application.go new file mode 100644 index 0000000000..3640806312 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application.go @@ -0,0 +1,190 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSKinesisAnalyticsV2Application AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html +type AWSKinesisAnalyticsV2Application struct { + + // ApplicationConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html#cfn-kinesisanalyticsv2-application-applicationconfiguration + ApplicationConfiguration *AWSKinesisAnalyticsV2Application_ApplicationConfiguration `json:"ApplicationConfiguration,omitempty"` + + // ApplicationDescription AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html#cfn-kinesisanalyticsv2-application-applicationdescription + ApplicationDescription string `json:"ApplicationDescription,omitempty"` + + // ApplicationName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html#cfn-kinesisanalyticsv2-application-applicationname + ApplicationName string `json:"ApplicationName,omitempty"` + + // RuntimeEnvironment AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html#cfn-kinesisanalyticsv2-application-runtimeenvironment + RuntimeEnvironment string `json:"RuntimeEnvironment,omitempty"` + + // ServiceExecutionRole AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html#cfn-kinesisanalyticsv2-application-serviceexecutionrole + ServiceExecutionRole string `json:"ServiceExecutionRole,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSKinesisAnalyticsV2Application) MarshalJSON() ([]byte, error) { + type Properties AWSKinesisAnalyticsV2Application + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSKinesisAnalyticsV2Application) UnmarshalJSON(b []byte) error { + type Properties AWSKinesisAnalyticsV2Application + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSKinesisAnalyticsV2Application(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSKinesisAnalyticsV2ApplicationResources retrieves all AWSKinesisAnalyticsV2Application items from an AWS CloudFormation template +func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationResources() map[string]*AWSKinesisAnalyticsV2Application { + results := map[string]*AWSKinesisAnalyticsV2Application{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSKinesisAnalyticsV2Application: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::KinesisAnalyticsV2::Application" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSKinesisAnalyticsV2Application + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSKinesisAnalyticsV2ApplicationWithName retrieves all AWSKinesisAnalyticsV2Application items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSKinesisAnalyticsV2ApplicationWithName(name string) (*AWSKinesisAnalyticsV2Application, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSKinesisAnalyticsV2Application: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::KinesisAnalyticsV2::Application" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSKinesisAnalyticsV2Application + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_applicationcodeconfiguration.go b/cloudformation/aws-kinesisanalyticsv2-application_applicationcodeconfiguration.go new file mode 100644 index 0000000000..0ce4f9d04d --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_applicationcodeconfiguration.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_ApplicationCodeConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.ApplicationCodeConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationcodeconfiguration.html +type AWSKinesisAnalyticsV2Application_ApplicationCodeConfiguration struct { + + // CodeContent AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationcodeconfiguration.html#cfn-kinesisanalyticsv2-application-applicationcodeconfiguration-codecontent + CodeContent *AWSKinesisAnalyticsV2Application_CodeContent `json:"CodeContent,omitempty"` + + // CodeContentType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationcodeconfiguration.html#cfn-kinesisanalyticsv2-application-applicationcodeconfiguration-codecontenttype + CodeContentType string `json:"CodeContentType,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_ApplicationCodeConfiguration) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.ApplicationCodeConfiguration" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_ApplicationCodeConfiguration) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_ApplicationCodeConfiguration) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_ApplicationCodeConfiguration) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_ApplicationCodeConfiguration) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_ApplicationCodeConfiguration) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_applicationconfiguration.go b/cloudformation/aws-kinesisanalyticsv2-application_applicationconfiguration.go new file mode 100644 index 0000000000..cc941aa4a4 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_applicationconfiguration.go @@ -0,0 +1,75 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_ApplicationConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.ApplicationConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html +type AWSKinesisAnalyticsV2Application_ApplicationConfiguration struct { + + // ApplicationCodeConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html#cfn-kinesisanalyticsv2-application-applicationconfiguration-applicationcodeconfiguration + ApplicationCodeConfiguration *AWSKinesisAnalyticsV2Application_ApplicationCodeConfiguration `json:"ApplicationCodeConfiguration,omitempty"` + + // ApplicationSnapshotConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html#cfn-kinesisanalyticsv2-application-applicationconfiguration-applicationsnapshotconfiguration + ApplicationSnapshotConfiguration *AWSKinesisAnalyticsV2Application_ApplicationSnapshotConfiguration `json:"ApplicationSnapshotConfiguration,omitempty"` + + // EnvironmentProperties AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html#cfn-kinesisanalyticsv2-application-applicationconfiguration-environmentproperties + EnvironmentProperties *AWSKinesisAnalyticsV2Application_EnvironmentProperties `json:"EnvironmentProperties,omitempty"` + + // FlinkApplicationConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html#cfn-kinesisanalyticsv2-application-applicationconfiguration-flinkapplicationconfiguration + FlinkApplicationConfiguration *AWSKinesisAnalyticsV2Application_FlinkApplicationConfiguration `json:"FlinkApplicationConfiguration,omitempty"` + + // SqlApplicationConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html#cfn-kinesisanalyticsv2-application-applicationconfiguration-sqlapplicationconfiguration + SqlApplicationConfiguration *AWSKinesisAnalyticsV2Application_SqlApplicationConfiguration `json:"SqlApplicationConfiguration,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_ApplicationConfiguration) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.ApplicationConfiguration" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_ApplicationConfiguration) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_ApplicationConfiguration) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_ApplicationConfiguration) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_ApplicationConfiguration) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_ApplicationConfiguration) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_applicationsnapshotconfiguration.go b/cloudformation/aws-kinesisanalyticsv2-application_applicationsnapshotconfiguration.go new file mode 100644 index 0000000000..3f2f924ae4 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_applicationsnapshotconfiguration.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_ApplicationSnapshotConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.ApplicationSnapshotConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationsnapshotconfiguration.html +type AWSKinesisAnalyticsV2Application_ApplicationSnapshotConfiguration struct { + + // SnapshotsEnabled AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationsnapshotconfiguration.html#cfn-kinesisanalyticsv2-application-applicationsnapshotconfiguration-snapshotsenabled + SnapshotsEnabled bool `json:"SnapshotsEnabled"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_ApplicationSnapshotConfiguration) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.ApplicationSnapshotConfiguration" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_ApplicationSnapshotConfiguration) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_ApplicationSnapshotConfiguration) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_ApplicationSnapshotConfiguration) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_ApplicationSnapshotConfiguration) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_ApplicationSnapshotConfiguration) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_checkpointconfiguration.go b/cloudformation/aws-kinesisanalyticsv2-application_checkpointconfiguration.go new file mode 100644 index 0000000000..9f7581226e --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_checkpointconfiguration.go @@ -0,0 +1,70 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_CheckpointConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.CheckpointConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-checkpointconfiguration.html +type AWSKinesisAnalyticsV2Application_CheckpointConfiguration struct { + + // CheckpointInterval AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-checkpointconfiguration.html#cfn-kinesisanalyticsv2-application-checkpointconfiguration-checkpointinterval + CheckpointInterval int `json:"CheckpointInterval,omitempty"` + + // CheckpointingEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-checkpointconfiguration.html#cfn-kinesisanalyticsv2-application-checkpointconfiguration-checkpointingenabled + CheckpointingEnabled bool `json:"CheckpointingEnabled,omitempty"` + + // ConfigurationType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-checkpointconfiguration.html#cfn-kinesisanalyticsv2-application-checkpointconfiguration-configurationtype + ConfigurationType string `json:"ConfigurationType,omitempty"` + + // MinPauseBetweenCheckpoints AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-checkpointconfiguration.html#cfn-kinesisanalyticsv2-application-checkpointconfiguration-minpausebetweencheckpoints + MinPauseBetweenCheckpoints int `json:"MinPauseBetweenCheckpoints,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_CheckpointConfiguration) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.CheckpointConfiguration" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_CheckpointConfiguration) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_CheckpointConfiguration) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_CheckpointConfiguration) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_CheckpointConfiguration) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_CheckpointConfiguration) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_codecontent.go b/cloudformation/aws-kinesisanalyticsv2-application_codecontent.go new file mode 100644 index 0000000000..bf965a45e7 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_codecontent.go @@ -0,0 +1,65 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_CodeContent AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.CodeContent) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-codecontent.html +type AWSKinesisAnalyticsV2Application_CodeContent struct { + + // S3ContentLocation AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-codecontent.html#cfn-kinesisanalyticsv2-application-codecontent-s3contentlocation + S3ContentLocation *AWSKinesisAnalyticsV2Application_S3ContentLocation `json:"S3ContentLocation,omitempty"` + + // TextContent AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-codecontent.html#cfn-kinesisanalyticsv2-application-codecontent-textcontent + TextContent string `json:"TextContent,omitempty"` + + // ZipFileContent AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-codecontent.html#cfn-kinesisanalyticsv2-application-codecontent-zipfilecontent + ZipFileContent string `json:"ZipFileContent,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_CodeContent) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.CodeContent" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_CodeContent) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_CodeContent) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_CodeContent) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_CodeContent) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_CodeContent) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_csvmappingparameters.go b/cloudformation/aws-kinesisanalyticsv2-application_csvmappingparameters.go new file mode 100644 index 0000000000..8ea56e59d2 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_csvmappingparameters.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_CSVMappingParameters AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.CSVMappingParameters) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-csvmappingparameters.html +type AWSKinesisAnalyticsV2Application_CSVMappingParameters struct { + + // RecordColumnDelimiter AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-csvmappingparameters.html#cfn-kinesisanalyticsv2-application-csvmappingparameters-recordcolumndelimiter + RecordColumnDelimiter string `json:"RecordColumnDelimiter,omitempty"` + + // RecordRowDelimiter AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-csvmappingparameters.html#cfn-kinesisanalyticsv2-application-csvmappingparameters-recordrowdelimiter + RecordRowDelimiter string `json:"RecordRowDelimiter,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_CSVMappingParameters) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.CSVMappingParameters" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_CSVMappingParameters) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_CSVMappingParameters) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_CSVMappingParameters) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_CSVMappingParameters) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_CSVMappingParameters) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_environmentproperties.go b/cloudformation/aws-kinesisanalyticsv2-application_environmentproperties.go new file mode 100644 index 0000000000..408ce61180 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_environmentproperties.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_EnvironmentProperties AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.EnvironmentProperties) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-environmentproperties.html +type AWSKinesisAnalyticsV2Application_EnvironmentProperties struct { + + // PropertyGroups AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-environmentproperties.html#cfn-kinesisanalyticsv2-application-environmentproperties-propertygroups + PropertyGroups []AWSKinesisAnalyticsV2Application_PropertyGroup `json:"PropertyGroups,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_EnvironmentProperties) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.EnvironmentProperties" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_EnvironmentProperties) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_EnvironmentProperties) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_EnvironmentProperties) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_EnvironmentProperties) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_EnvironmentProperties) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_flinkapplicationconfiguration.go b/cloudformation/aws-kinesisanalyticsv2-application_flinkapplicationconfiguration.go new file mode 100644 index 0000000000..6bea12bd31 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_flinkapplicationconfiguration.go @@ -0,0 +1,65 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_FlinkApplicationConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.FlinkApplicationConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-flinkapplicationconfiguration.html +type AWSKinesisAnalyticsV2Application_FlinkApplicationConfiguration struct { + + // CheckpointConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-flinkapplicationconfiguration.html#cfn-kinesisanalyticsv2-application-flinkapplicationconfiguration-checkpointconfiguration + CheckpointConfiguration *AWSKinesisAnalyticsV2Application_CheckpointConfiguration `json:"CheckpointConfiguration,omitempty"` + + // MonitoringConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-flinkapplicationconfiguration.html#cfn-kinesisanalyticsv2-application-flinkapplicationconfiguration-monitoringconfiguration + MonitoringConfiguration *AWSKinesisAnalyticsV2Application_MonitoringConfiguration `json:"MonitoringConfiguration,omitempty"` + + // ParallelismConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-flinkapplicationconfiguration.html#cfn-kinesisanalyticsv2-application-flinkapplicationconfiguration-parallelismconfiguration + ParallelismConfiguration *AWSKinesisAnalyticsV2Application_ParallelismConfiguration `json:"ParallelismConfiguration,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_FlinkApplicationConfiguration) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.FlinkApplicationConfiguration" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_FlinkApplicationConfiguration) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_FlinkApplicationConfiguration) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_FlinkApplicationConfiguration) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_FlinkApplicationConfiguration) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_FlinkApplicationConfiguration) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_input.go b/cloudformation/aws-kinesisanalyticsv2-application_input.go new file mode 100644 index 0000000000..3a1d1f9d91 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_input.go @@ -0,0 +1,80 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_Input AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.Input) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html +type AWSKinesisAnalyticsV2Application_Input struct { + + // InputParallelism AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html#cfn-kinesisanalyticsv2-application-input-inputparallelism + InputParallelism *AWSKinesisAnalyticsV2Application_InputParallelism `json:"InputParallelism,omitempty"` + + // InputProcessingConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html#cfn-kinesisanalyticsv2-application-input-inputprocessingconfiguration + InputProcessingConfiguration *AWSKinesisAnalyticsV2Application_InputProcessingConfiguration `json:"InputProcessingConfiguration,omitempty"` + + // InputSchema AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html#cfn-kinesisanalyticsv2-application-input-inputschema + InputSchema *AWSKinesisAnalyticsV2Application_InputSchema `json:"InputSchema,omitempty"` + + // KinesisFirehoseInput AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html#cfn-kinesisanalyticsv2-application-input-kinesisfirehoseinput + KinesisFirehoseInput *AWSKinesisAnalyticsV2Application_KinesisFirehoseInput `json:"KinesisFirehoseInput,omitempty"` + + // KinesisStreamsInput AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html#cfn-kinesisanalyticsv2-application-input-kinesisstreamsinput + KinesisStreamsInput *AWSKinesisAnalyticsV2Application_KinesisStreamsInput `json:"KinesisStreamsInput,omitempty"` + + // NamePrefix AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html#cfn-kinesisanalyticsv2-application-input-nameprefix + NamePrefix string `json:"NamePrefix,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_Input) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.Input" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_Input) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_Input) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_Input) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_Input) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_Input) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_inputlambdaprocessor.go b/cloudformation/aws-kinesisanalyticsv2-application_inputlambdaprocessor.go new file mode 100644 index 0000000000..3e72979d52 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_inputlambdaprocessor.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_InputLambdaProcessor AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.InputLambdaProcessor) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputlambdaprocessor.html +type AWSKinesisAnalyticsV2Application_InputLambdaProcessor struct { + + // ResourceARN AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputlambdaprocessor.html#cfn-kinesisanalyticsv2-application-inputlambdaprocessor-resourcearn + ResourceARN string `json:"ResourceARN,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_InputLambdaProcessor) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.InputLambdaProcessor" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_InputLambdaProcessor) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_InputLambdaProcessor) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_InputLambdaProcessor) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_InputLambdaProcessor) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_InputLambdaProcessor) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_inputparallelism.go b/cloudformation/aws-kinesisanalyticsv2-application_inputparallelism.go new file mode 100644 index 0000000000..39cc22d5db --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_inputparallelism.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_InputParallelism AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.InputParallelism) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputparallelism.html +type AWSKinesisAnalyticsV2Application_InputParallelism struct { + + // Count AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputparallelism.html#cfn-kinesisanalyticsv2-application-inputparallelism-count + Count int `json:"Count,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_InputParallelism) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.InputParallelism" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_InputParallelism) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_InputParallelism) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_InputParallelism) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_InputParallelism) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_InputParallelism) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_inputprocessingconfiguration.go b/cloudformation/aws-kinesisanalyticsv2-application_inputprocessingconfiguration.go new file mode 100644 index 0000000000..142ad1f043 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_inputprocessingconfiguration.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_InputProcessingConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.InputProcessingConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputprocessingconfiguration.html +type AWSKinesisAnalyticsV2Application_InputProcessingConfiguration struct { + + // InputLambdaProcessor AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputprocessingconfiguration.html#cfn-kinesisanalyticsv2-application-inputprocessingconfiguration-inputlambdaprocessor + InputLambdaProcessor *AWSKinesisAnalyticsV2Application_InputLambdaProcessor `json:"InputLambdaProcessor,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_InputProcessingConfiguration) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.InputProcessingConfiguration" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_InputProcessingConfiguration) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_InputProcessingConfiguration) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_InputProcessingConfiguration) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_InputProcessingConfiguration) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_InputProcessingConfiguration) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_inputschema.go b/cloudformation/aws-kinesisanalyticsv2-application_inputschema.go new file mode 100644 index 0000000000..689bec4854 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_inputschema.go @@ -0,0 +1,65 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_InputSchema AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.InputSchema) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputschema.html +type AWSKinesisAnalyticsV2Application_InputSchema struct { + + // RecordColumns AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputschema.html#cfn-kinesisanalyticsv2-application-inputschema-recordcolumns + RecordColumns []AWSKinesisAnalyticsV2Application_RecordColumn `json:"RecordColumns,omitempty"` + + // RecordEncoding AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputschema.html#cfn-kinesisanalyticsv2-application-inputschema-recordencoding + RecordEncoding string `json:"RecordEncoding,omitempty"` + + // RecordFormat AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputschema.html#cfn-kinesisanalyticsv2-application-inputschema-recordformat + RecordFormat *AWSKinesisAnalyticsV2Application_RecordFormat `json:"RecordFormat,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_InputSchema) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.InputSchema" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_InputSchema) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_InputSchema) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_InputSchema) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_InputSchema) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_InputSchema) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_jsonmappingparameters.go b/cloudformation/aws-kinesisanalyticsv2-application_jsonmappingparameters.go new file mode 100644 index 0000000000..b697af65a9 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_jsonmappingparameters.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_JSONMappingParameters AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.JSONMappingParameters) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-jsonmappingparameters.html +type AWSKinesisAnalyticsV2Application_JSONMappingParameters struct { + + // RecordRowPath AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-jsonmappingparameters.html#cfn-kinesisanalyticsv2-application-jsonmappingparameters-recordrowpath + RecordRowPath string `json:"RecordRowPath,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_JSONMappingParameters) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.JSONMappingParameters" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_JSONMappingParameters) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_JSONMappingParameters) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_JSONMappingParameters) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_JSONMappingParameters) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_JSONMappingParameters) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_kinesisfirehoseinput.go b/cloudformation/aws-kinesisanalyticsv2-application_kinesisfirehoseinput.go new file mode 100644 index 0000000000..380e783d25 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_kinesisfirehoseinput.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_KinesisFirehoseInput AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.KinesisFirehoseInput) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-kinesisfirehoseinput.html +type AWSKinesisAnalyticsV2Application_KinesisFirehoseInput struct { + + // ResourceARN AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-kinesisfirehoseinput.html#cfn-kinesisanalyticsv2-application-kinesisfirehoseinput-resourcearn + ResourceARN string `json:"ResourceARN,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_KinesisFirehoseInput) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.KinesisFirehoseInput" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_KinesisFirehoseInput) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_KinesisFirehoseInput) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_KinesisFirehoseInput) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_KinesisFirehoseInput) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_KinesisFirehoseInput) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_kinesisstreamsinput.go b/cloudformation/aws-kinesisanalyticsv2-application_kinesisstreamsinput.go new file mode 100644 index 0000000000..ecc9436276 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_kinesisstreamsinput.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_KinesisStreamsInput AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.KinesisStreamsInput) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-kinesisstreamsinput.html +type AWSKinesisAnalyticsV2Application_KinesisStreamsInput struct { + + // ResourceARN AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-kinesisstreamsinput.html#cfn-kinesisanalyticsv2-application-kinesisstreamsinput-resourcearn + ResourceARN string `json:"ResourceARN,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_KinesisStreamsInput) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.KinesisStreamsInput" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_KinesisStreamsInput) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_KinesisStreamsInput) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_KinesisStreamsInput) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_KinesisStreamsInput) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_KinesisStreamsInput) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_mappingparameters.go b/cloudformation/aws-kinesisanalyticsv2-application_mappingparameters.go new file mode 100644 index 0000000000..dc70e64623 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_mappingparameters.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_MappingParameters AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.MappingParameters) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-mappingparameters.html +type AWSKinesisAnalyticsV2Application_MappingParameters struct { + + // CSVMappingParameters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-mappingparameters.html#cfn-kinesisanalyticsv2-application-mappingparameters-csvmappingparameters + CSVMappingParameters *AWSKinesisAnalyticsV2Application_CSVMappingParameters `json:"CSVMappingParameters,omitempty"` + + // JSONMappingParameters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-mappingparameters.html#cfn-kinesisanalyticsv2-application-mappingparameters-jsonmappingparameters + JSONMappingParameters *AWSKinesisAnalyticsV2Application_JSONMappingParameters `json:"JSONMappingParameters,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_MappingParameters) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.MappingParameters" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_MappingParameters) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_MappingParameters) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_MappingParameters) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_MappingParameters) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_MappingParameters) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_monitoringconfiguration.go b/cloudformation/aws-kinesisanalyticsv2-application_monitoringconfiguration.go new file mode 100644 index 0000000000..be2d16de36 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_monitoringconfiguration.go @@ -0,0 +1,65 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_MonitoringConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.MonitoringConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-monitoringconfiguration.html +type AWSKinesisAnalyticsV2Application_MonitoringConfiguration struct { + + // ConfigurationType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-monitoringconfiguration.html#cfn-kinesisanalyticsv2-application-monitoringconfiguration-configurationtype + ConfigurationType string `json:"ConfigurationType,omitempty"` + + // LogLevel AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-monitoringconfiguration.html#cfn-kinesisanalyticsv2-application-monitoringconfiguration-loglevel + LogLevel string `json:"LogLevel,omitempty"` + + // MetricsLevel AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-monitoringconfiguration.html#cfn-kinesisanalyticsv2-application-monitoringconfiguration-metricslevel + MetricsLevel string `json:"MetricsLevel,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_MonitoringConfiguration) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.MonitoringConfiguration" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_MonitoringConfiguration) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_MonitoringConfiguration) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_MonitoringConfiguration) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_MonitoringConfiguration) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_MonitoringConfiguration) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_parallelismconfiguration.go b/cloudformation/aws-kinesisanalyticsv2-application_parallelismconfiguration.go new file mode 100644 index 0000000000..f763cfc1dd --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_parallelismconfiguration.go @@ -0,0 +1,70 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_ParallelismConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.ParallelismConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-parallelismconfiguration.html +type AWSKinesisAnalyticsV2Application_ParallelismConfiguration struct { + + // AutoScalingEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-parallelismconfiguration.html#cfn-kinesisanalyticsv2-application-parallelismconfiguration-autoscalingenabled + AutoScalingEnabled bool `json:"AutoScalingEnabled,omitempty"` + + // ConfigurationType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-parallelismconfiguration.html#cfn-kinesisanalyticsv2-application-parallelismconfiguration-configurationtype + ConfigurationType string `json:"ConfigurationType,omitempty"` + + // Parallelism AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-parallelismconfiguration.html#cfn-kinesisanalyticsv2-application-parallelismconfiguration-parallelism + Parallelism int `json:"Parallelism,omitempty"` + + // ParallelismPerKPU AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-parallelismconfiguration.html#cfn-kinesisanalyticsv2-application-parallelismconfiguration-parallelismperkpu + ParallelismPerKPU int `json:"ParallelismPerKPU,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_ParallelismConfiguration) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.ParallelismConfiguration" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_ParallelismConfiguration) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_ParallelismConfiguration) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_ParallelismConfiguration) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_ParallelismConfiguration) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_ParallelismConfiguration) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_propertygroup.go b/cloudformation/aws-kinesisanalyticsv2-application_propertygroup.go new file mode 100644 index 0000000000..6100d143ec --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_propertygroup.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_PropertyGroup AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.PropertyGroup) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-propertygroup.html +type AWSKinesisAnalyticsV2Application_PropertyGroup struct { + + // PropertyGroupId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-propertygroup.html#cfn-kinesisanalyticsv2-application-propertygroup-propertygroupid + PropertyGroupId string `json:"PropertyGroupId,omitempty"` + + // PropertyMap AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-propertygroup.html#cfn-kinesisanalyticsv2-application-propertygroup-propertymap + PropertyMap interface{} `json:"PropertyMap,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_PropertyGroup) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.PropertyGroup" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_PropertyGroup) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_PropertyGroup) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_PropertyGroup) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_PropertyGroup) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_PropertyGroup) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_recordcolumn.go b/cloudformation/aws-kinesisanalyticsv2-application_recordcolumn.go new file mode 100644 index 0000000000..9631103d34 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_recordcolumn.go @@ -0,0 +1,65 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_RecordColumn AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.RecordColumn) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordcolumn.html +type AWSKinesisAnalyticsV2Application_RecordColumn struct { + + // Mapping AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordcolumn.html#cfn-kinesisanalyticsv2-application-recordcolumn-mapping + Mapping string `json:"Mapping,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordcolumn.html#cfn-kinesisanalyticsv2-application-recordcolumn-name + Name string `json:"Name,omitempty"` + + // SqlType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordcolumn.html#cfn-kinesisanalyticsv2-application-recordcolumn-sqltype + SqlType string `json:"SqlType,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_RecordColumn) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.RecordColumn" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_RecordColumn) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_RecordColumn) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_RecordColumn) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_RecordColumn) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_RecordColumn) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_recordformat.go b/cloudformation/aws-kinesisanalyticsv2-application_recordformat.go new file mode 100644 index 0000000000..01bda0a0f9 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_recordformat.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_RecordFormat AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.RecordFormat) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordformat.html +type AWSKinesisAnalyticsV2Application_RecordFormat struct { + + // MappingParameters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordformat.html#cfn-kinesisanalyticsv2-application-recordformat-mappingparameters + MappingParameters *AWSKinesisAnalyticsV2Application_MappingParameters `json:"MappingParameters,omitempty"` + + // RecordFormatType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordformat.html#cfn-kinesisanalyticsv2-application-recordformat-recordformattype + RecordFormatType string `json:"RecordFormatType,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_RecordFormat) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.RecordFormat" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_RecordFormat) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_RecordFormat) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_RecordFormat) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_RecordFormat) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_RecordFormat) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_s3contentlocation.go b/cloudformation/aws-kinesisanalyticsv2-application_s3contentlocation.go new file mode 100644 index 0000000000..e8ce3bf672 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_s3contentlocation.go @@ -0,0 +1,65 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_S3ContentLocation AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.S3ContentLocation) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-s3contentlocation.html +type AWSKinesisAnalyticsV2Application_S3ContentLocation struct { + + // BucketARN AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-s3contentlocation.html#cfn-kinesisanalyticsv2-application-s3contentlocation-bucketarn + BucketARN string `json:"BucketARN,omitempty"` + + // FileKey AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-s3contentlocation.html#cfn-kinesisanalyticsv2-application-s3contentlocation-filekey + FileKey string `json:"FileKey,omitempty"` + + // ObjectVersion AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-s3contentlocation.html#cfn-kinesisanalyticsv2-application-s3contentlocation-objectversion + ObjectVersion string `json:"ObjectVersion,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_S3ContentLocation) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.S3ContentLocation" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_S3ContentLocation) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_S3ContentLocation) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_S3ContentLocation) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_S3ContentLocation) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_S3ContentLocation) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-application_sqlapplicationconfiguration.go b/cloudformation/aws-kinesisanalyticsv2-application_sqlapplicationconfiguration.go new file mode 100644 index 0000000000..c5d3cad475 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-application_sqlapplicationconfiguration.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSKinesisAnalyticsV2Application_SqlApplicationConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-sqlapplicationconfiguration.html +type AWSKinesisAnalyticsV2Application_SqlApplicationConfiguration struct { + + // Inputs AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-sqlapplicationconfiguration.html#cfn-kinesisanalyticsv2-application-sqlapplicationconfiguration-inputs + Inputs []AWSKinesisAnalyticsV2Application_Input `json:"Inputs,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2Application_SqlApplicationConfiguration) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_SqlApplicationConfiguration) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2Application_SqlApplicationConfiguration) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_SqlApplicationConfiguration) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2Application_SqlApplicationConfiguration) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2Application_SqlApplicationConfiguration) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.go b/cloudformation/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.go new file mode 100644 index 0000000000..99b16e005f --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.go @@ -0,0 +1,175 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationcloudwatchloggingoption.html +type AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption struct { + + // ApplicationName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationcloudwatchloggingoption.html#cfn-kinesisanalyticsv2-applicationcloudwatchloggingoption-applicationname + ApplicationName string `json:"ApplicationName,omitempty"` + + // CloudWatchLoggingOption AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationcloudwatchloggingoption.html#cfn-kinesisanalyticsv2-applicationcloudwatchloggingoption-cloudwatchloggingoption + CloudWatchLoggingOption *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption_CloudWatchLoggingOption `json:"CloudWatchLoggingOption,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption) MarshalJSON() ([]byte, error) { + type Properties AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption) UnmarshalJSON(b []byte) error { + type Properties AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionResources retrieves all AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption items from an AWS CloudFormation template +func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionResources() map[string]*AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption { + results := map[string]*AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionWithName retrieves all AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionWithName(name string) (*AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption_cloudwatchloggingoption.go b/cloudformation/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption_cloudwatchloggingoption.go new file mode 100644 index 0000000000..1eec946d6b --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption_cloudwatchloggingoption.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption_CloudWatchLoggingOption AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption.CloudWatchLoggingOption) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationcloudwatchloggingoption-cloudwatchloggingoption.html +type AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption_CloudWatchLoggingOption struct { + + // LogStreamARN AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationcloudwatchloggingoption-cloudwatchloggingoption.html#cfn-kinesisanalyticsv2-applicationcloudwatchloggingoption-cloudwatchloggingoption-logstreamarn + LogStreamARN string `json:"LogStreamARN,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption_CloudWatchLoggingOption) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption.CloudWatchLoggingOption" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption_CloudWatchLoggingOption) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption_CloudWatchLoggingOption) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption_CloudWatchLoggingOption) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption_CloudWatchLoggingOption) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption_CloudWatchLoggingOption) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationoutput.go b/cloudformation/aws-kinesisanalyticsv2-applicationoutput.go new file mode 100644 index 0000000000..5f5bb87215 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-applicationoutput.go @@ -0,0 +1,175 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSKinesisAnalyticsV2ApplicationOutput AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationOutput) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html +type AWSKinesisAnalyticsV2ApplicationOutput struct { + + // ApplicationName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html#cfn-kinesisanalyticsv2-applicationoutput-applicationname + ApplicationName string `json:"ApplicationName,omitempty"` + + // Output AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html#cfn-kinesisanalyticsv2-applicationoutput-output + Output *AWSKinesisAnalyticsV2ApplicationOutput_Output `json:"Output,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2ApplicationOutput) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::ApplicationOutput" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSKinesisAnalyticsV2ApplicationOutput) MarshalJSON() ([]byte, error) { + type Properties AWSKinesisAnalyticsV2ApplicationOutput + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSKinesisAnalyticsV2ApplicationOutput) UnmarshalJSON(b []byte) error { + type Properties AWSKinesisAnalyticsV2ApplicationOutput + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSKinesisAnalyticsV2ApplicationOutput(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSKinesisAnalyticsV2ApplicationOutputResources retrieves all AWSKinesisAnalyticsV2ApplicationOutput items from an AWS CloudFormation template +func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationOutputResources() map[string]*AWSKinesisAnalyticsV2ApplicationOutput { + results := map[string]*AWSKinesisAnalyticsV2ApplicationOutput{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSKinesisAnalyticsV2ApplicationOutput: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::KinesisAnalyticsV2::ApplicationOutput" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSKinesisAnalyticsV2ApplicationOutput + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSKinesisAnalyticsV2ApplicationOutputWithName retrieves all AWSKinesisAnalyticsV2ApplicationOutput items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSKinesisAnalyticsV2ApplicationOutputWithName(name string) (*AWSKinesisAnalyticsV2ApplicationOutput, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSKinesisAnalyticsV2ApplicationOutput: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::KinesisAnalyticsV2::ApplicationOutput" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSKinesisAnalyticsV2ApplicationOutput + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationoutput_destinationschema.go b/cloudformation/aws-kinesisanalyticsv2-applicationoutput_destinationschema.go new file mode 100644 index 0000000000..bd1a1b18bd --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-applicationoutput_destinationschema.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSKinesisAnalyticsV2ApplicationOutput_DestinationSchema AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationOutput.DestinationSchema) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-destinationschema.html +type AWSKinesisAnalyticsV2ApplicationOutput_DestinationSchema struct { + + // RecordFormatType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-destinationschema.html#cfn-kinesisanalyticsv2-applicationoutput-destinationschema-recordformattype + RecordFormatType string `json:"RecordFormatType,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2ApplicationOutput_DestinationSchema) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::ApplicationOutput.DestinationSchema" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_DestinationSchema) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_DestinationSchema) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_DestinationSchema) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_DestinationSchema) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_DestinationSchema) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationoutput_kinesisfirehoseoutput.go b/cloudformation/aws-kinesisanalyticsv2-applicationoutput_kinesisfirehoseoutput.go new file mode 100644 index 0000000000..15bc21c7ac --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-applicationoutput_kinesisfirehoseoutput.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSKinesisAnalyticsV2ApplicationOutput_KinesisFirehoseOutput AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisFirehoseOutput) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-kinesisfirehoseoutput.html +type AWSKinesisAnalyticsV2ApplicationOutput_KinesisFirehoseOutput struct { + + // ResourceARN AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-kinesisfirehoseoutput.html#cfn-kinesisanalyticsv2-applicationoutput-kinesisfirehoseoutput-resourcearn + ResourceARN string `json:"ResourceARN,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2ApplicationOutput_KinesisFirehoseOutput) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisFirehoseOutput" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_KinesisFirehoseOutput) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_KinesisFirehoseOutput) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_KinesisFirehoseOutput) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_KinesisFirehoseOutput) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_KinesisFirehoseOutput) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationoutput_kinesisstreamsoutput.go b/cloudformation/aws-kinesisanalyticsv2-applicationoutput_kinesisstreamsoutput.go new file mode 100644 index 0000000000..8747532d4a --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-applicationoutput_kinesisstreamsoutput.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSKinesisAnalyticsV2ApplicationOutput_KinesisStreamsOutput AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisStreamsOutput) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-kinesisstreamsoutput.html +type AWSKinesisAnalyticsV2ApplicationOutput_KinesisStreamsOutput struct { + + // ResourceARN AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-kinesisstreamsoutput.html#cfn-kinesisanalyticsv2-applicationoutput-kinesisstreamsoutput-resourcearn + ResourceARN string `json:"ResourceARN,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2ApplicationOutput_KinesisStreamsOutput) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisStreamsOutput" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_KinesisStreamsOutput) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_KinesisStreamsOutput) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_KinesisStreamsOutput) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_KinesisStreamsOutput) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_KinesisStreamsOutput) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationoutput_lambdaoutput.go b/cloudformation/aws-kinesisanalyticsv2-applicationoutput_lambdaoutput.go new file mode 100644 index 0000000000..f7568bd7fe --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-applicationoutput_lambdaoutput.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSKinesisAnalyticsV2ApplicationOutput_LambdaOutput AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationOutput.LambdaOutput) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-lambdaoutput.html +type AWSKinesisAnalyticsV2ApplicationOutput_LambdaOutput struct { + + // ResourceARN AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-lambdaoutput.html#cfn-kinesisanalyticsv2-applicationoutput-lambdaoutput-resourcearn + ResourceARN string `json:"ResourceARN,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2ApplicationOutput_LambdaOutput) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::ApplicationOutput.LambdaOutput" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_LambdaOutput) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_LambdaOutput) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_LambdaOutput) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_LambdaOutput) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_LambdaOutput) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationoutput_output.go b/cloudformation/aws-kinesisanalyticsv2-applicationoutput_output.go new file mode 100644 index 0000000000..541265fa81 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-applicationoutput_output.go @@ -0,0 +1,75 @@ +package cloudformation + +// AWSKinesisAnalyticsV2ApplicationOutput_Output AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationOutput.Output) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html +type AWSKinesisAnalyticsV2ApplicationOutput_Output struct { + + // DestinationSchema AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html#cfn-kinesisanalyticsv2-applicationoutput-output-destinationschema + DestinationSchema *AWSKinesisAnalyticsV2ApplicationOutput_DestinationSchema `json:"DestinationSchema,omitempty"` + + // KinesisFirehoseOutput AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html#cfn-kinesisanalyticsv2-applicationoutput-output-kinesisfirehoseoutput + KinesisFirehoseOutput *AWSKinesisAnalyticsV2ApplicationOutput_KinesisFirehoseOutput `json:"KinesisFirehoseOutput,omitempty"` + + // KinesisStreamsOutput AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html#cfn-kinesisanalyticsv2-applicationoutput-output-kinesisstreamsoutput + KinesisStreamsOutput *AWSKinesisAnalyticsV2ApplicationOutput_KinesisStreamsOutput `json:"KinesisStreamsOutput,omitempty"` + + // LambdaOutput AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html#cfn-kinesisanalyticsv2-applicationoutput-output-lambdaoutput + LambdaOutput *AWSKinesisAnalyticsV2ApplicationOutput_LambdaOutput `json:"LambdaOutput,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html#cfn-kinesisanalyticsv2-applicationoutput-output-name + Name string `json:"Name,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2ApplicationOutput_Output) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::ApplicationOutput.Output" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_Output) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_Output) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_Output) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_Output) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2ApplicationOutput_Output) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource.go b/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource.go new file mode 100644 index 0000000000..f99556e9ab --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource.go @@ -0,0 +1,175 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSKinesisAnalyticsV2ApplicationReferenceDataSource AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html +type AWSKinesisAnalyticsV2ApplicationReferenceDataSource struct { + + // ApplicationName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-applicationname + ApplicationName string `json:"ApplicationName,omitempty"` + + // ReferenceDataSource AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource + ReferenceDataSource *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceDataSource `json:"ReferenceDataSource,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSKinesisAnalyticsV2ApplicationReferenceDataSource) MarshalJSON() ([]byte, error) { + type Properties AWSKinesisAnalyticsV2ApplicationReferenceDataSource + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource) UnmarshalJSON(b []byte) error { + type Properties AWSKinesisAnalyticsV2ApplicationReferenceDataSource + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSKinesisAnalyticsV2ApplicationReferenceDataSource(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSKinesisAnalyticsV2ApplicationReferenceDataSourceResources retrieves all AWSKinesisAnalyticsV2ApplicationReferenceDataSource items from an AWS CloudFormation template +func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationReferenceDataSourceResources() map[string]*AWSKinesisAnalyticsV2ApplicationReferenceDataSource { + results := map[string]*AWSKinesisAnalyticsV2ApplicationReferenceDataSource{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSKinesisAnalyticsV2ApplicationReferenceDataSource: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSKinesisAnalyticsV2ApplicationReferenceDataSource + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSKinesisAnalyticsV2ApplicationReferenceDataSourceWithName retrieves all AWSKinesisAnalyticsV2ApplicationReferenceDataSource items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSKinesisAnalyticsV2ApplicationReferenceDataSourceWithName(name string) (*AWSKinesisAnalyticsV2ApplicationReferenceDataSource, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSKinesisAnalyticsV2ApplicationReferenceDataSource: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSKinesisAnalyticsV2ApplicationReferenceDataSource + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_csvmappingparameters.go b/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_csvmappingparameters.go new file mode 100644 index 0000000000..934af5914e --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_csvmappingparameters.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSKinesisAnalyticsV2ApplicationReferenceDataSource_CSVMappingParameters AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.CSVMappingParameters) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-csvmappingparameters.html +type AWSKinesisAnalyticsV2ApplicationReferenceDataSource_CSVMappingParameters struct { + + // RecordColumnDelimiter AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-csvmappingparameters.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-csvmappingparameters-recordcolumndelimiter + RecordColumnDelimiter string `json:"RecordColumnDelimiter,omitempty"` + + // RecordRowDelimiter AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-csvmappingparameters.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-csvmappingparameters-recordrowdelimiter + RecordRowDelimiter string `json:"RecordRowDelimiter,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_CSVMappingParameters) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.CSVMappingParameters" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_CSVMappingParameters) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_CSVMappingParameters) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_CSVMappingParameters) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_CSVMappingParameters) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_CSVMappingParameters) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_jsonmappingparameters.go b/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_jsonmappingparameters.go new file mode 100644 index 0000000000..bce17aa3de --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_jsonmappingparameters.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSKinesisAnalyticsV2ApplicationReferenceDataSource_JSONMappingParameters AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.JSONMappingParameters) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-jsonmappingparameters.html +type AWSKinesisAnalyticsV2ApplicationReferenceDataSource_JSONMappingParameters struct { + + // RecordRowPath AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-jsonmappingparameters.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-jsonmappingparameters-recordrowpath + RecordRowPath string `json:"RecordRowPath,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_JSONMappingParameters) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.JSONMappingParameters" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_JSONMappingParameters) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_JSONMappingParameters) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_JSONMappingParameters) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_JSONMappingParameters) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_JSONMappingParameters) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_mappingparameters.go b/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_mappingparameters.go new file mode 100644 index 0000000000..ceb8fec33d --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_mappingparameters.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSKinesisAnalyticsV2ApplicationReferenceDataSource_MappingParameters AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.MappingParameters) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-mappingparameters.html +type AWSKinesisAnalyticsV2ApplicationReferenceDataSource_MappingParameters struct { + + // CSVMappingParameters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-mappingparameters.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-mappingparameters-csvmappingparameters + CSVMappingParameters *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_CSVMappingParameters `json:"CSVMappingParameters,omitempty"` + + // JSONMappingParameters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-mappingparameters.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-mappingparameters-jsonmappingparameters + JSONMappingParameters *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_JSONMappingParameters `json:"JSONMappingParameters,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_MappingParameters) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.MappingParameters" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_MappingParameters) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_MappingParameters) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_MappingParameters) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_MappingParameters) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_MappingParameters) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_recordcolumn.go b/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_recordcolumn.go new file mode 100644 index 0000000000..8f438e30dc --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_recordcolumn.go @@ -0,0 +1,65 @@ +package cloudformation + +// AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordColumn AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordColumn) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn.html +type AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordColumn struct { + + // Mapping AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn-mapping + Mapping string `json:"Mapping,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn-name + Name string `json:"Name,omitempty"` + + // SqlType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn-sqltype + SqlType string `json:"SqlType,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordColumn) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordColumn" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordColumn) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordColumn) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordColumn) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordColumn) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordColumn) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_recordformat.go b/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_recordformat.go new file mode 100644 index 0000000000..8fb613a5c0 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_recordformat.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordFormat AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordFormat) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordformat.html +type AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordFormat struct { + + // MappingParameters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordformat.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-recordformat-mappingparameters + MappingParameters *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_MappingParameters `json:"MappingParameters,omitempty"` + + // RecordFormatType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordformat.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-recordformat-recordformattype + RecordFormatType string `json:"RecordFormatType,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordFormat) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordFormat" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordFormat) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordFormat) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordFormat) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordFormat) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordFormat) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_referencedatasource.go b/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_referencedatasource.go new file mode 100644 index 0000000000..2502cb197d --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_referencedatasource.go @@ -0,0 +1,65 @@ +package cloudformation + +// AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceDataSource AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceDataSource) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource.html +type AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceDataSource struct { + + // ReferenceSchema AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource-referenceschema + ReferenceSchema *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceSchema `json:"ReferenceSchema,omitempty"` + + // S3ReferenceDataSource AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource-s3referencedatasource + S3ReferenceDataSource *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_S3ReferenceDataSource `json:"S3ReferenceDataSource,omitempty"` + + // TableName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource-tablename + TableName string `json:"TableName,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceDataSource) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceDataSource" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceDataSource) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceDataSource) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceDataSource) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceDataSource) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceDataSource) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_referenceschema.go b/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_referenceschema.go new file mode 100644 index 0000000000..4e9c792c49 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_referenceschema.go @@ -0,0 +1,65 @@ +package cloudformation + +// AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceSchema AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceSchema) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referenceschema.html +type AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceSchema struct { + + // RecordColumns AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referenceschema.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referenceschema-recordcolumns + RecordColumns []AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordColumn `json:"RecordColumns,omitempty"` + + // RecordEncoding AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referenceschema.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referenceschema-recordencoding + RecordEncoding string `json:"RecordEncoding,omitempty"` + + // RecordFormat AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referenceschema.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referenceschema-recordformat + RecordFormat *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordFormat `json:"RecordFormat,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceSchema) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceSchema" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceSchema) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceSchema) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceSchema) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceSchema) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceSchema) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_s3referencedatasource.go b/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_s3referencedatasource.go new file mode 100644 index 0000000000..ed511c8268 --- /dev/null +++ b/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_s3referencedatasource.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSKinesisAnalyticsV2ApplicationReferenceDataSource_S3ReferenceDataSource AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.S3ReferenceDataSource) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-s3referencedatasource.html +type AWSKinesisAnalyticsV2ApplicationReferenceDataSource_S3ReferenceDataSource struct { + + // BucketARN AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-s3referencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-s3referencedatasource-bucketarn + BucketARN string `json:"BucketARN,omitempty"` + + // FileKey AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-s3referencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-s3referencedatasource-filekey + FileKey string `json:"FileKey,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_S3ReferenceDataSource) AWSCloudFormationType() string { + return "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.S3ReferenceDataSource" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_S3ReferenceDataSource) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_S3ReferenceDataSource) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_S3ReferenceDataSource) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_S3ReferenceDataSource) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_S3ReferenceDataSource) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-kinesisfirehose-deliverystream.go b/cloudformation/aws-kinesisfirehose-deliverystream.go index f87ac94b20..848a83981c 100644 --- a/cloudformation/aws-kinesisfirehose-deliverystream.go +++ b/cloudformation/aws-kinesisfirehose-deliverystream.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -97,7 +98,7 @@ func (r *AWSKinesisFirehoseDeliveryStream) SetDeletionPolicy(policy DeletionPoli // 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 AWSKinesisFirehoseDeliveryStream) MarshalJSON() ([]byte, error) { +func (r *AWSKinesisFirehoseDeliveryStream) MarshalJSON() ([]byte, error) { type Properties AWSKinesisFirehoseDeliveryStream return json.Marshal(&struct { Type string @@ -107,7 +108,7 @@ func (r AWSKinesisFirehoseDeliveryStream) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -124,7 +125,11 @@ func (r *AWSKinesisFirehoseDeliveryStream) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -144,11 +149,11 @@ func (r *AWSKinesisFirehoseDeliveryStream) UnmarshalJSON(b []byte) error { } // GetAllAWSKinesisFirehoseDeliveryStreamResources retrieves all AWSKinesisFirehoseDeliveryStream items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisFirehoseDeliveryStreamResources() map[string]AWSKinesisFirehoseDeliveryStream { - results := map[string]AWSKinesisFirehoseDeliveryStream{} +func (t *Template) GetAllAWSKinesisFirehoseDeliveryStreamResources() map[string]*AWSKinesisFirehoseDeliveryStream { + results := map[string]*AWSKinesisFirehoseDeliveryStream{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSKinesisFirehoseDeliveryStream: + case *AWSKinesisFirehoseDeliveryStream: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -160,7 +165,8 @@ func (t *Template) GetAllAWSKinesisFirehoseDeliveryStreamResources() map[string] if b, err := json.Marshal(resource); err == nil { var result AWSKinesisFirehoseDeliveryStream if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -172,10 +178,10 @@ func (t *Template) GetAllAWSKinesisFirehoseDeliveryStreamResources() map[string] // GetAWSKinesisFirehoseDeliveryStreamWithName retrieves all AWSKinesisFirehoseDeliveryStream items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisFirehoseDeliveryStreamWithName(name string) (AWSKinesisFirehoseDeliveryStream, error) { +func (t *Template) GetAWSKinesisFirehoseDeliveryStreamWithName(name string) (*AWSKinesisFirehoseDeliveryStream, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSKinesisFirehoseDeliveryStream: + case *AWSKinesisFirehoseDeliveryStream: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -187,12 +193,13 @@ func (t *Template) GetAWSKinesisFirehoseDeliveryStreamWithName(name string) (AWS if b, err := json.Marshal(resource); err == nil { var result AWSKinesisFirehoseDeliveryStream if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSKinesisFirehoseDeliveryStream{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-kms-alias.go b/cloudformation/aws-kms-alias.go index ff46ba0799..278522248c 100644 --- a/cloudformation/aws-kms-alias.go +++ b/cloudformation/aws-kms-alias.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSKMSAlias) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSKMSAlias) MarshalJSON() ([]byte, error) { +func (r *AWSKMSAlias) MarshalJSON() ([]byte, error) { type Properties AWSKMSAlias return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSKMSAlias) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSKMSAlias) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSKMSAlias) UnmarshalJSON(b []byte) error { } // GetAllAWSKMSAliasResources retrieves all AWSKMSAlias items from an AWS CloudFormation template -func (t *Template) GetAllAWSKMSAliasResources() map[string]AWSKMSAlias { - results := map[string]AWSKMSAlias{} +func (t *Template) GetAllAWSKMSAliasResources() map[string]*AWSKMSAlias { + results := map[string]*AWSKMSAlias{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSKMSAlias: + case *AWSKMSAlias: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSKMSAliasResources() map[string]AWSKMSAlias { if b, err := json.Marshal(resource); err == nil { var result AWSKMSAlias if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSKMSAliasResources() map[string]AWSKMSAlias { // GetAWSKMSAliasWithName retrieves all AWSKMSAlias items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKMSAliasWithName(name string) (AWSKMSAlias, error) { +func (t *Template) GetAWSKMSAliasWithName(name string) (*AWSKMSAlias, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSKMSAlias: + case *AWSKMSAlias: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSKMSAliasWithName(name string) (AWSKMSAlias, error) { if b, err := json.Marshal(resource); err == nil { var result AWSKMSAlias if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSKMSAlias{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-kms-key.go b/cloudformation/aws-kms-key.go index 41804e5663..2c9678b1fe 100644 --- a/cloudformation/aws-kms-key.go +++ b/cloudformation/aws-kms-key.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -92,7 +93,7 @@ func (r *AWSKMSKey) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSKMSKey) MarshalJSON() ([]byte, error) { +func (r *AWSKMSKey) MarshalJSON() ([]byte, error) { type Properties AWSKMSKey return json.Marshal(&struct { Type string @@ -102,7 +103,7 @@ func (r AWSKMSKey) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -119,7 +120,11 @@ func (r *AWSKMSKey) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -139,11 +144,11 @@ func (r *AWSKMSKey) UnmarshalJSON(b []byte) error { } // GetAllAWSKMSKeyResources retrieves all AWSKMSKey items from an AWS CloudFormation template -func (t *Template) GetAllAWSKMSKeyResources() map[string]AWSKMSKey { - results := map[string]AWSKMSKey{} +func (t *Template) GetAllAWSKMSKeyResources() map[string]*AWSKMSKey { + results := map[string]*AWSKMSKey{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSKMSKey: + case *AWSKMSKey: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -155,7 +160,8 @@ func (t *Template) GetAllAWSKMSKeyResources() map[string]AWSKMSKey { if b, err := json.Marshal(resource); err == nil { var result AWSKMSKey if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -167,10 +173,10 @@ func (t *Template) GetAllAWSKMSKeyResources() map[string]AWSKMSKey { // GetAWSKMSKeyWithName retrieves all AWSKMSKey items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKMSKeyWithName(name string) (AWSKMSKey, error) { +func (t *Template) GetAWSKMSKeyWithName(name string) (*AWSKMSKey, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSKMSKey: + case *AWSKMSKey: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -182,12 +188,13 @@ func (t *Template) GetAWSKMSKeyWithName(name string) (AWSKMSKey, error) { if b, err := json.Marshal(resource); err == nil { var result AWSKMSKey if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSKMSKey{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-lambda-alias.go b/cloudformation/aws-lambda-alias.go index 957f5618bb..9ded56e86b 100644 --- a/cloudformation/aws-lambda-alias.go +++ b/cloudformation/aws-lambda-alias.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -91,7 +92,7 @@ func (r *AWSLambdaAlias) SetUpdatePolicy(policy *UpdatePolicy) { // 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 AWSLambdaAlias) MarshalJSON() ([]byte, error) { +func (r *AWSLambdaAlias) MarshalJSON() ([]byte, error) { type Properties AWSLambdaAlias return json.Marshal(&struct { Type string @@ -102,7 +103,7 @@ func (r AWSLambdaAlias) MarshalJSON() ([]byte, error) { UpdatePolicy *UpdatePolicy `json:"UpdatePolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -120,7 +121,11 @@ func (r *AWSLambdaAlias) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -140,11 +145,11 @@ func (r *AWSLambdaAlias) UnmarshalJSON(b []byte) error { } // GetAllAWSLambdaAliasResources retrieves all AWSLambdaAlias items from an AWS CloudFormation template -func (t *Template) GetAllAWSLambdaAliasResources() map[string]AWSLambdaAlias { - results := map[string]AWSLambdaAlias{} +func (t *Template) GetAllAWSLambdaAliasResources() map[string]*AWSLambdaAlias { + results := map[string]*AWSLambdaAlias{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSLambdaAlias: + case *AWSLambdaAlias: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -156,7 +161,8 @@ func (t *Template) GetAllAWSLambdaAliasResources() map[string]AWSLambdaAlias { if b, err := json.Marshal(resource); err == nil { var result AWSLambdaAlias if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -168,10 +174,10 @@ func (t *Template) GetAllAWSLambdaAliasResources() map[string]AWSLambdaAlias { // GetAWSLambdaAliasWithName retrieves all AWSLambdaAlias items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLambdaAliasWithName(name string) (AWSLambdaAlias, error) { +func (t *Template) GetAWSLambdaAliasWithName(name string) (*AWSLambdaAlias, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSLambdaAlias: + case *AWSLambdaAlias: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -183,12 +189,13 @@ func (t *Template) GetAWSLambdaAliasWithName(name string) (AWSLambdaAlias, error if b, err := json.Marshal(resource); err == nil { var result AWSLambdaAlias if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSLambdaAlias{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-lambda-eventsourcemapping.go b/cloudformation/aws-lambda-eventsourcemapping.go index a7b0dbaf9d..6994f36847 100644 --- a/cloudformation/aws-lambda-eventsourcemapping.go +++ b/cloudformation/aws-lambda-eventsourcemapping.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSLambdaEventSourceMapping) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSLambdaEventSourceMapping) MarshalJSON() ([]byte, error) { +func (r *AWSLambdaEventSourceMapping) MarshalJSON() ([]byte, error) { type Properties AWSLambdaEventSourceMapping return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSLambdaEventSourceMapping) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSLambdaEventSourceMapping) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSLambdaEventSourceMapping) UnmarshalJSON(b []byte) error { } // GetAllAWSLambdaEventSourceMappingResources retrieves all AWSLambdaEventSourceMapping items from an AWS CloudFormation template -func (t *Template) GetAllAWSLambdaEventSourceMappingResources() map[string]AWSLambdaEventSourceMapping { - results := map[string]AWSLambdaEventSourceMapping{} +func (t *Template) GetAllAWSLambdaEventSourceMappingResources() map[string]*AWSLambdaEventSourceMapping { + results := map[string]*AWSLambdaEventSourceMapping{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSLambdaEventSourceMapping: + case *AWSLambdaEventSourceMapping: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSLambdaEventSourceMappingResources() map[string]AWSLa if b, err := json.Marshal(resource); err == nil { var result AWSLambdaEventSourceMapping if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSLambdaEventSourceMappingResources() map[string]AWSLa // GetAWSLambdaEventSourceMappingWithName retrieves all AWSLambdaEventSourceMapping items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLambdaEventSourceMappingWithName(name string) (AWSLambdaEventSourceMapping, error) { +func (t *Template) GetAWSLambdaEventSourceMappingWithName(name string) (*AWSLambdaEventSourceMapping, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSLambdaEventSourceMapping: + case *AWSLambdaEventSourceMapping: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSLambdaEventSourceMappingWithName(name string) (AWSLambd if b, err := json.Marshal(resource); err == nil { var result AWSLambdaEventSourceMapping if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSLambdaEventSourceMapping{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-lambda-function.go b/cloudformation/aws-lambda-function.go index 5803b2f15f..1b9ef035ee 100644 --- a/cloudformation/aws-lambda-function.go +++ b/cloudformation/aws-lambda-function.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -137,7 +138,7 @@ func (r *AWSLambdaFunction) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSLambdaFunction) MarshalJSON() ([]byte, error) { +func (r *AWSLambdaFunction) MarshalJSON() ([]byte, error) { type Properties AWSLambdaFunction return json.Marshal(&struct { Type string @@ -147,7 +148,7 @@ func (r AWSLambdaFunction) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -164,7 +165,11 @@ func (r *AWSLambdaFunction) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -184,11 +189,11 @@ func (r *AWSLambdaFunction) UnmarshalJSON(b []byte) error { } // GetAllAWSLambdaFunctionResources retrieves all AWSLambdaFunction items from an AWS CloudFormation template -func (t *Template) GetAllAWSLambdaFunctionResources() map[string]AWSLambdaFunction { - results := map[string]AWSLambdaFunction{} +func (t *Template) GetAllAWSLambdaFunctionResources() map[string]*AWSLambdaFunction { + results := map[string]*AWSLambdaFunction{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSLambdaFunction: + case *AWSLambdaFunction: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -200,7 +205,8 @@ func (t *Template) GetAllAWSLambdaFunctionResources() map[string]AWSLambdaFuncti if b, err := json.Marshal(resource); err == nil { var result AWSLambdaFunction if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -212,10 +218,10 @@ func (t *Template) GetAllAWSLambdaFunctionResources() map[string]AWSLambdaFuncti // GetAWSLambdaFunctionWithName retrieves all AWSLambdaFunction items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLambdaFunctionWithName(name string) (AWSLambdaFunction, error) { +func (t *Template) GetAWSLambdaFunctionWithName(name string) (*AWSLambdaFunction, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSLambdaFunction: + case *AWSLambdaFunction: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -227,12 +233,13 @@ func (t *Template) GetAWSLambdaFunctionWithName(name string) (AWSLambdaFunction, if b, err := json.Marshal(resource); err == nil { var result AWSLambdaFunction if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSLambdaFunction{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-lambda-layerversion.go b/cloudformation/aws-lambda-layerversion.go new file mode 100644 index 0000000000..5d3e0a7c16 --- /dev/null +++ b/cloudformation/aws-lambda-layerversion.go @@ -0,0 +1,190 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSLambdaLayerVersion AWS CloudFormation Resource (AWS::Lambda::LayerVersion) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html +type AWSLambdaLayerVersion struct { + + // CompatibleRuntimes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatibleruntimes + CompatibleRuntimes []string `json:"CompatibleRuntimes,omitempty"` + + // Content AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-content + Content *AWSLambdaLayerVersion_Content `json:"Content,omitempty"` + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-description + Description string `json:"Description,omitempty"` + + // LayerName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-layername + LayerName string `json:"LayerName,omitempty"` + + // LicenseInfo AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-licenseinfo + LicenseInfo string `json:"LicenseInfo,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSLambdaLayerVersion) AWSCloudFormationType() string { + return "AWS::Lambda::LayerVersion" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSLambdaLayerVersion) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSLambdaLayerVersion) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSLambdaLayerVersion) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSLambdaLayerVersion) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSLambdaLayerVersion) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSLambdaLayerVersion) MarshalJSON() ([]byte, error) { + type Properties AWSLambdaLayerVersion + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSLambdaLayerVersion) UnmarshalJSON(b []byte) error { + type Properties AWSLambdaLayerVersion + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSLambdaLayerVersion(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSLambdaLayerVersionResources retrieves all AWSLambdaLayerVersion items from an AWS CloudFormation template +func (t *Template) GetAllAWSLambdaLayerVersionResources() map[string]*AWSLambdaLayerVersion { + results := map[string]*AWSLambdaLayerVersion{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSLambdaLayerVersion: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::Lambda::LayerVersion" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSLambdaLayerVersion + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSLambdaLayerVersionWithName retrieves all AWSLambdaLayerVersion items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSLambdaLayerVersionWithName(name string) (*AWSLambdaLayerVersion, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSLambdaLayerVersion: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::Lambda::LayerVersion" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSLambdaLayerVersion + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-lambda-layerversion_content.go b/cloudformation/aws-lambda-layerversion_content.go new file mode 100644 index 0000000000..8b788425fe --- /dev/null +++ b/cloudformation/aws-lambda-layerversion_content.go @@ -0,0 +1,65 @@ +package cloudformation + +// AWSLambdaLayerVersion_Content AWS CloudFormation Resource (AWS::Lambda::LayerVersion.Content) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html +type AWSLambdaLayerVersion_Content struct { + + // S3Bucket AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3bucket + S3Bucket string `json:"S3Bucket,omitempty"` + + // S3Key AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3key + S3Key string `json:"S3Key,omitempty"` + + // S3ObjectVersion AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3objectversion + S3ObjectVersion string `json:"S3ObjectVersion,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSLambdaLayerVersion_Content) AWSCloudFormationType() string { + return "AWS::Lambda::LayerVersion.Content" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSLambdaLayerVersion_Content) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSLambdaLayerVersion_Content) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSLambdaLayerVersion_Content) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSLambdaLayerVersion_Content) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSLambdaLayerVersion_Content) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-lambda-layerversionpermission.go b/cloudformation/aws-lambda-layerversionpermission.go new file mode 100644 index 0000000000..fa1191b750 --- /dev/null +++ b/cloudformation/aws-lambda-layerversionpermission.go @@ -0,0 +1,185 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSLambdaLayerVersionPermission AWS CloudFormation Resource (AWS::Lambda::LayerVersionPermission) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversionpermission.html +type AWSLambdaLayerVersionPermission struct { + + // Action AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversionpermission.html#cfn-lambda-layerversionpermission-action + Action string `json:"Action,omitempty"` + + // LayerVersionArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversionpermission.html#cfn-lambda-layerversionpermission-layerversionarn + LayerVersionArn string `json:"LayerVersionArn,omitempty"` + + // OrganizationId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversionpermission.html#cfn-lambda-layerversionpermission-organizationid + OrganizationId string `json:"OrganizationId,omitempty"` + + // Principal AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversionpermission.html#cfn-lambda-layerversionpermission-principal + Principal string `json:"Principal,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSLambdaLayerVersionPermission) AWSCloudFormationType() string { + return "AWS::Lambda::LayerVersionPermission" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSLambdaLayerVersionPermission) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSLambdaLayerVersionPermission) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSLambdaLayerVersionPermission) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSLambdaLayerVersionPermission) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSLambdaLayerVersionPermission) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSLambdaLayerVersionPermission) MarshalJSON() ([]byte, error) { + type Properties AWSLambdaLayerVersionPermission + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSLambdaLayerVersionPermission) UnmarshalJSON(b []byte) error { + type Properties AWSLambdaLayerVersionPermission + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSLambdaLayerVersionPermission(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSLambdaLayerVersionPermissionResources retrieves all AWSLambdaLayerVersionPermission items from an AWS CloudFormation template +func (t *Template) GetAllAWSLambdaLayerVersionPermissionResources() map[string]*AWSLambdaLayerVersionPermission { + results := map[string]*AWSLambdaLayerVersionPermission{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSLambdaLayerVersionPermission: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::Lambda::LayerVersionPermission" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSLambdaLayerVersionPermission + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSLambdaLayerVersionPermissionWithName retrieves all AWSLambdaLayerVersionPermission items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSLambdaLayerVersionPermissionWithName(name string) (*AWSLambdaLayerVersionPermission, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSLambdaLayerVersionPermission: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::Lambda::LayerVersionPermission" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSLambdaLayerVersionPermission + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-lambda-permission.go b/cloudformation/aws-lambda-permission.go index 401847977a..bcc49fa183 100644 --- a/cloudformation/aws-lambda-permission.go +++ b/cloudformation/aws-lambda-permission.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -87,7 +88,7 @@ func (r *AWSLambdaPermission) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSLambdaPermission) MarshalJSON() ([]byte, error) { +func (r *AWSLambdaPermission) MarshalJSON() ([]byte, error) { type Properties AWSLambdaPermission return json.Marshal(&struct { Type string @@ -97,7 +98,7 @@ func (r AWSLambdaPermission) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -114,7 +115,11 @@ func (r *AWSLambdaPermission) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -134,11 +139,11 @@ func (r *AWSLambdaPermission) UnmarshalJSON(b []byte) error { } // GetAllAWSLambdaPermissionResources retrieves all AWSLambdaPermission items from an AWS CloudFormation template -func (t *Template) GetAllAWSLambdaPermissionResources() map[string]AWSLambdaPermission { - results := map[string]AWSLambdaPermission{} +func (t *Template) GetAllAWSLambdaPermissionResources() map[string]*AWSLambdaPermission { + results := map[string]*AWSLambdaPermission{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSLambdaPermission: + case *AWSLambdaPermission: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -150,7 +155,8 @@ func (t *Template) GetAllAWSLambdaPermissionResources() map[string]AWSLambdaPerm if b, err := json.Marshal(resource); err == nil { var result AWSLambdaPermission if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -162,10 +168,10 @@ func (t *Template) GetAllAWSLambdaPermissionResources() map[string]AWSLambdaPerm // GetAWSLambdaPermissionWithName retrieves all AWSLambdaPermission items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLambdaPermissionWithName(name string) (AWSLambdaPermission, error) { +func (t *Template) GetAWSLambdaPermissionWithName(name string) (*AWSLambdaPermission, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSLambdaPermission: + case *AWSLambdaPermission: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -177,12 +183,13 @@ func (t *Template) GetAWSLambdaPermissionWithName(name string) (AWSLambdaPermiss if b, err := json.Marshal(resource); err == nil { var result AWSLambdaPermission if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSLambdaPermission{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-lambda-version.go b/cloudformation/aws-lambda-version.go index 2731f19b22..0c4cdd9400 100644 --- a/cloudformation/aws-lambda-version.go +++ b/cloudformation/aws-lambda-version.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSLambdaVersion) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSLambdaVersion) MarshalJSON() ([]byte, error) { +func (r *AWSLambdaVersion) MarshalJSON() ([]byte, error) { type Properties AWSLambdaVersion return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSLambdaVersion) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSLambdaVersion) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSLambdaVersion) UnmarshalJSON(b []byte) error { } // GetAllAWSLambdaVersionResources retrieves all AWSLambdaVersion items from an AWS CloudFormation template -func (t *Template) GetAllAWSLambdaVersionResources() map[string]AWSLambdaVersion { - results := map[string]AWSLambdaVersion{} +func (t *Template) GetAllAWSLambdaVersionResources() map[string]*AWSLambdaVersion { + results := map[string]*AWSLambdaVersion{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSLambdaVersion: + case *AWSLambdaVersion: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSLambdaVersionResources() map[string]AWSLambdaVersion if b, err := json.Marshal(resource); err == nil { var result AWSLambdaVersion if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSLambdaVersionResources() map[string]AWSLambdaVersion // GetAWSLambdaVersionWithName retrieves all AWSLambdaVersion items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLambdaVersionWithName(name string) (AWSLambdaVersion, error) { +func (t *Template) GetAWSLambdaVersionWithName(name string) (*AWSLambdaVersion, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSLambdaVersion: + case *AWSLambdaVersion: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSLambdaVersionWithName(name string) (AWSLambdaVersion, e if b, err := json.Marshal(resource); err == nil { var result AWSLambdaVersion if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSLambdaVersion{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-logs-destination.go b/cloudformation/aws-logs-destination.go index 28d6528e6e..f83468d274 100644 --- a/cloudformation/aws-logs-destination.go +++ b/cloudformation/aws-logs-destination.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSLogsDestination) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSLogsDestination) MarshalJSON() ([]byte, error) { +func (r *AWSLogsDestination) MarshalJSON() ([]byte, error) { type Properties AWSLogsDestination return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSLogsDestination) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSLogsDestination) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSLogsDestination) UnmarshalJSON(b []byte) error { } // GetAllAWSLogsDestinationResources retrieves all AWSLogsDestination items from an AWS CloudFormation template -func (t *Template) GetAllAWSLogsDestinationResources() map[string]AWSLogsDestination { - results := map[string]AWSLogsDestination{} +func (t *Template) GetAllAWSLogsDestinationResources() map[string]*AWSLogsDestination { + results := map[string]*AWSLogsDestination{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSLogsDestination: + case *AWSLogsDestination: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSLogsDestinationResources() map[string]AWSLogsDestina if b, err := json.Marshal(resource); err == nil { var result AWSLogsDestination if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSLogsDestinationResources() map[string]AWSLogsDestina // GetAWSLogsDestinationWithName retrieves all AWSLogsDestination items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLogsDestinationWithName(name string) (AWSLogsDestination, error) { +func (t *Template) GetAWSLogsDestinationWithName(name string) (*AWSLogsDestination, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSLogsDestination: + case *AWSLogsDestination: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSLogsDestinationWithName(name string) (AWSLogsDestinatio if b, err := json.Marshal(resource); err == nil { var result AWSLogsDestination if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSLogsDestination{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-logs-loggroup.go b/cloudformation/aws-logs-loggroup.go index cc4f4369ae..e011989f3a 100644 --- a/cloudformation/aws-logs-loggroup.go +++ b/cloudformation/aws-logs-loggroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSLogsLogGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSLogsLogGroup) MarshalJSON() ([]byte, error) { +func (r *AWSLogsLogGroup) MarshalJSON() ([]byte, error) { type Properties AWSLogsLogGroup return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSLogsLogGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSLogsLogGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSLogsLogGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSLogsLogGroupResources retrieves all AWSLogsLogGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSLogsLogGroupResources() map[string]AWSLogsLogGroup { - results := map[string]AWSLogsLogGroup{} +func (t *Template) GetAllAWSLogsLogGroupResources() map[string]*AWSLogsLogGroup { + results := map[string]*AWSLogsLogGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSLogsLogGroup: + case *AWSLogsLogGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSLogsLogGroupResources() map[string]AWSLogsLogGroup { if b, err := json.Marshal(resource); err == nil { var result AWSLogsLogGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSLogsLogGroupResources() map[string]AWSLogsLogGroup { // GetAWSLogsLogGroupWithName retrieves all AWSLogsLogGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLogsLogGroupWithName(name string) (AWSLogsLogGroup, error) { +func (t *Template) GetAWSLogsLogGroupWithName(name string) (*AWSLogsLogGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSLogsLogGroup: + case *AWSLogsLogGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSLogsLogGroupWithName(name string) (AWSLogsLogGroup, err if b, err := json.Marshal(resource); err == nil { var result AWSLogsLogGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSLogsLogGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-logs-logstream.go b/cloudformation/aws-logs-logstream.go index 56092d907a..d787e0debd 100644 --- a/cloudformation/aws-logs-logstream.go +++ b/cloudformation/aws-logs-logstream.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSLogsLogStream) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSLogsLogStream) MarshalJSON() ([]byte, error) { +func (r *AWSLogsLogStream) MarshalJSON() ([]byte, error) { type Properties AWSLogsLogStream return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSLogsLogStream) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSLogsLogStream) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSLogsLogStream) UnmarshalJSON(b []byte) error { } // GetAllAWSLogsLogStreamResources retrieves all AWSLogsLogStream items from an AWS CloudFormation template -func (t *Template) GetAllAWSLogsLogStreamResources() map[string]AWSLogsLogStream { - results := map[string]AWSLogsLogStream{} +func (t *Template) GetAllAWSLogsLogStreamResources() map[string]*AWSLogsLogStream { + results := map[string]*AWSLogsLogStream{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSLogsLogStream: + case *AWSLogsLogStream: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSLogsLogStreamResources() map[string]AWSLogsLogStream if b, err := json.Marshal(resource); err == nil { var result AWSLogsLogStream if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSLogsLogStreamResources() map[string]AWSLogsLogStream // GetAWSLogsLogStreamWithName retrieves all AWSLogsLogStream items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLogsLogStreamWithName(name string) (AWSLogsLogStream, error) { +func (t *Template) GetAWSLogsLogStreamWithName(name string) (*AWSLogsLogStream, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSLogsLogStream: + case *AWSLogsLogStream: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSLogsLogStreamWithName(name string) (AWSLogsLogStream, e if b, err := json.Marshal(resource); err == nil { var result AWSLogsLogStream if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSLogsLogStream{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-logs-metricfilter.go b/cloudformation/aws-logs-metricfilter.go index 96fe625b7f..ce4ffefc5f 100644 --- a/cloudformation/aws-logs-metricfilter.go +++ b/cloudformation/aws-logs-metricfilter.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSLogsMetricFilter) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSLogsMetricFilter) MarshalJSON() ([]byte, error) { +func (r *AWSLogsMetricFilter) MarshalJSON() ([]byte, error) { type Properties AWSLogsMetricFilter return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSLogsMetricFilter) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSLogsMetricFilter) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSLogsMetricFilter) UnmarshalJSON(b []byte) error { } // GetAllAWSLogsMetricFilterResources retrieves all AWSLogsMetricFilter items from an AWS CloudFormation template -func (t *Template) GetAllAWSLogsMetricFilterResources() map[string]AWSLogsMetricFilter { - results := map[string]AWSLogsMetricFilter{} +func (t *Template) GetAllAWSLogsMetricFilterResources() map[string]*AWSLogsMetricFilter { + results := map[string]*AWSLogsMetricFilter{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSLogsMetricFilter: + case *AWSLogsMetricFilter: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSLogsMetricFilterResources() map[string]AWSLogsMetric if b, err := json.Marshal(resource); err == nil { var result AWSLogsMetricFilter if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSLogsMetricFilterResources() map[string]AWSLogsMetric // GetAWSLogsMetricFilterWithName retrieves all AWSLogsMetricFilter items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLogsMetricFilterWithName(name string) (AWSLogsMetricFilter, error) { +func (t *Template) GetAWSLogsMetricFilterWithName(name string) (*AWSLogsMetricFilter, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSLogsMetricFilter: + case *AWSLogsMetricFilter: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSLogsMetricFilterWithName(name string) (AWSLogsMetricFil if b, err := json.Marshal(resource); err == nil { var result AWSLogsMetricFilter if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSLogsMetricFilter{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-logs-subscriptionfilter.go b/cloudformation/aws-logs-subscriptionfilter.go index 8b6fbc0e37..c3a55b1d63 100644 --- a/cloudformation/aws-logs-subscriptionfilter.go +++ b/cloudformation/aws-logs-subscriptionfilter.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSLogsSubscriptionFilter) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSLogsSubscriptionFilter) MarshalJSON() ([]byte, error) { +func (r *AWSLogsSubscriptionFilter) MarshalJSON() ([]byte, error) { type Properties AWSLogsSubscriptionFilter return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSLogsSubscriptionFilter) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSLogsSubscriptionFilter) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSLogsSubscriptionFilter) UnmarshalJSON(b []byte) error { } // GetAllAWSLogsSubscriptionFilterResources retrieves all AWSLogsSubscriptionFilter items from an AWS CloudFormation template -func (t *Template) GetAllAWSLogsSubscriptionFilterResources() map[string]AWSLogsSubscriptionFilter { - results := map[string]AWSLogsSubscriptionFilter{} +func (t *Template) GetAllAWSLogsSubscriptionFilterResources() map[string]*AWSLogsSubscriptionFilter { + results := map[string]*AWSLogsSubscriptionFilter{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSLogsSubscriptionFilter: + case *AWSLogsSubscriptionFilter: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSLogsSubscriptionFilterResources() map[string]AWSLogs if b, err := json.Marshal(resource); err == nil { var result AWSLogsSubscriptionFilter if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSLogsSubscriptionFilterResources() map[string]AWSLogs // GetAWSLogsSubscriptionFilterWithName retrieves all AWSLogsSubscriptionFilter items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLogsSubscriptionFilterWithName(name string) (AWSLogsSubscriptionFilter, error) { +func (t *Template) GetAWSLogsSubscriptionFilterWithName(name string) (*AWSLogsSubscriptionFilter, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSLogsSubscriptionFilter: + case *AWSLogsSubscriptionFilter: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSLogsSubscriptionFilterWithName(name string) (AWSLogsSub if b, err := json.Marshal(resource); err == nil { var result AWSLogsSubscriptionFilter if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSLogsSubscriptionFilter{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-neptune-dbcluster.go b/cloudformation/aws-neptune-dbcluster.go index ef60b8cd25..218a1d1d51 100644 --- a/cloudformation/aws-neptune-dbcluster.go +++ b/cloudformation/aws-neptune-dbcluster.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -127,7 +128,7 @@ func (r *AWSNeptuneDBCluster) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSNeptuneDBCluster) MarshalJSON() ([]byte, error) { +func (r *AWSNeptuneDBCluster) MarshalJSON() ([]byte, error) { type Properties AWSNeptuneDBCluster return json.Marshal(&struct { Type string @@ -137,7 +138,7 @@ func (r AWSNeptuneDBCluster) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -154,7 +155,11 @@ func (r *AWSNeptuneDBCluster) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -174,11 +179,11 @@ func (r *AWSNeptuneDBCluster) UnmarshalJSON(b []byte) error { } // GetAllAWSNeptuneDBClusterResources retrieves all AWSNeptuneDBCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSNeptuneDBClusterResources() map[string]AWSNeptuneDBCluster { - results := map[string]AWSNeptuneDBCluster{} +func (t *Template) GetAllAWSNeptuneDBClusterResources() map[string]*AWSNeptuneDBCluster { + results := map[string]*AWSNeptuneDBCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSNeptuneDBCluster: + case *AWSNeptuneDBCluster: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -190,7 +195,8 @@ func (t *Template) GetAllAWSNeptuneDBClusterResources() map[string]AWSNeptuneDBC if b, err := json.Marshal(resource); err == nil { var result AWSNeptuneDBCluster if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -202,10 +208,10 @@ func (t *Template) GetAllAWSNeptuneDBClusterResources() map[string]AWSNeptuneDBC // GetAWSNeptuneDBClusterWithName retrieves all AWSNeptuneDBCluster items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSNeptuneDBClusterWithName(name string) (AWSNeptuneDBCluster, error) { +func (t *Template) GetAWSNeptuneDBClusterWithName(name string) (*AWSNeptuneDBCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSNeptuneDBCluster: + case *AWSNeptuneDBCluster: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -217,12 +223,13 @@ func (t *Template) GetAWSNeptuneDBClusterWithName(name string) (AWSNeptuneDBClus if b, err := json.Marshal(resource); err == nil { var result AWSNeptuneDBCluster if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSNeptuneDBCluster{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-neptune-dbclusterparametergroup.go b/cloudformation/aws-neptune-dbclusterparametergroup.go index d24b5263fb..f978e78a71 100644 --- a/cloudformation/aws-neptune-dbclusterparametergroup.go +++ b/cloudformation/aws-neptune-dbclusterparametergroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSNeptuneDBClusterParameterGroup) SetDeletionPolicy(policy DeletionPol // 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 AWSNeptuneDBClusterParameterGroup) MarshalJSON() ([]byte, error) { +func (r *AWSNeptuneDBClusterParameterGroup) MarshalJSON() ([]byte, error) { type Properties AWSNeptuneDBClusterParameterGroup return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSNeptuneDBClusterParameterGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSNeptuneDBClusterParameterGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSNeptuneDBClusterParameterGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSNeptuneDBClusterParameterGroupResources retrieves all AWSNeptuneDBClusterParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSNeptuneDBClusterParameterGroupResources() map[string]AWSNeptuneDBClusterParameterGroup { - results := map[string]AWSNeptuneDBClusterParameterGroup{} +func (t *Template) GetAllAWSNeptuneDBClusterParameterGroupResources() map[string]*AWSNeptuneDBClusterParameterGroup { + results := map[string]*AWSNeptuneDBClusterParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSNeptuneDBClusterParameterGroup: + case *AWSNeptuneDBClusterParameterGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSNeptuneDBClusterParameterGroupResources() map[string if b, err := json.Marshal(resource); err == nil { var result AWSNeptuneDBClusterParameterGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSNeptuneDBClusterParameterGroupResources() map[string // GetAWSNeptuneDBClusterParameterGroupWithName retrieves all AWSNeptuneDBClusterParameterGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSNeptuneDBClusterParameterGroupWithName(name string) (AWSNeptuneDBClusterParameterGroup, error) { +func (t *Template) GetAWSNeptuneDBClusterParameterGroupWithName(name string) (*AWSNeptuneDBClusterParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSNeptuneDBClusterParameterGroup: + case *AWSNeptuneDBClusterParameterGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSNeptuneDBClusterParameterGroupWithName(name string) (AW if b, err := json.Marshal(resource); err == nil { var result AWSNeptuneDBClusterParameterGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSNeptuneDBClusterParameterGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-neptune-dbinstance.go b/cloudformation/aws-neptune-dbinstance.go index dac63282d3..73c6fe9361 100644 --- a/cloudformation/aws-neptune-dbinstance.go +++ b/cloudformation/aws-neptune-dbinstance.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -112,7 +113,7 @@ func (r *AWSNeptuneDBInstance) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSNeptuneDBInstance) MarshalJSON() ([]byte, error) { +func (r *AWSNeptuneDBInstance) MarshalJSON() ([]byte, error) { type Properties AWSNeptuneDBInstance return json.Marshal(&struct { Type string @@ -122,7 +123,7 @@ func (r AWSNeptuneDBInstance) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -139,7 +140,11 @@ func (r *AWSNeptuneDBInstance) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -159,11 +164,11 @@ func (r *AWSNeptuneDBInstance) UnmarshalJSON(b []byte) error { } // GetAllAWSNeptuneDBInstanceResources retrieves all AWSNeptuneDBInstance items from an AWS CloudFormation template -func (t *Template) GetAllAWSNeptuneDBInstanceResources() map[string]AWSNeptuneDBInstance { - results := map[string]AWSNeptuneDBInstance{} +func (t *Template) GetAllAWSNeptuneDBInstanceResources() map[string]*AWSNeptuneDBInstance { + results := map[string]*AWSNeptuneDBInstance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSNeptuneDBInstance: + case *AWSNeptuneDBInstance: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -175,7 +180,8 @@ func (t *Template) GetAllAWSNeptuneDBInstanceResources() map[string]AWSNeptuneDB if b, err := json.Marshal(resource); err == nil { var result AWSNeptuneDBInstance if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -187,10 +193,10 @@ func (t *Template) GetAllAWSNeptuneDBInstanceResources() map[string]AWSNeptuneDB // GetAWSNeptuneDBInstanceWithName retrieves all AWSNeptuneDBInstance items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSNeptuneDBInstanceWithName(name string) (AWSNeptuneDBInstance, error) { +func (t *Template) GetAWSNeptuneDBInstanceWithName(name string) (*AWSNeptuneDBInstance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSNeptuneDBInstance: + case *AWSNeptuneDBInstance: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -202,12 +208,13 @@ func (t *Template) GetAWSNeptuneDBInstanceWithName(name string) (AWSNeptuneDBIns if b, err := json.Marshal(resource); err == nil { var result AWSNeptuneDBInstance if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSNeptuneDBInstance{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-neptune-dbparametergroup.go b/cloudformation/aws-neptune-dbparametergroup.go index 861756359c..62a9ad4d54 100644 --- a/cloudformation/aws-neptune-dbparametergroup.go +++ b/cloudformation/aws-neptune-dbparametergroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSNeptuneDBParameterGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSNeptuneDBParameterGroup) MarshalJSON() ([]byte, error) { +func (r *AWSNeptuneDBParameterGroup) MarshalJSON() ([]byte, error) { type Properties AWSNeptuneDBParameterGroup return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSNeptuneDBParameterGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSNeptuneDBParameterGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSNeptuneDBParameterGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSNeptuneDBParameterGroupResources retrieves all AWSNeptuneDBParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSNeptuneDBParameterGroupResources() map[string]AWSNeptuneDBParameterGroup { - results := map[string]AWSNeptuneDBParameterGroup{} +func (t *Template) GetAllAWSNeptuneDBParameterGroupResources() map[string]*AWSNeptuneDBParameterGroup { + results := map[string]*AWSNeptuneDBParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSNeptuneDBParameterGroup: + case *AWSNeptuneDBParameterGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSNeptuneDBParameterGroupResources() map[string]AWSNep if b, err := json.Marshal(resource); err == nil { var result AWSNeptuneDBParameterGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSNeptuneDBParameterGroupResources() map[string]AWSNep // GetAWSNeptuneDBParameterGroupWithName retrieves all AWSNeptuneDBParameterGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSNeptuneDBParameterGroupWithName(name string) (AWSNeptuneDBParameterGroup, error) { +func (t *Template) GetAWSNeptuneDBParameterGroupWithName(name string) (*AWSNeptuneDBParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSNeptuneDBParameterGroup: + case *AWSNeptuneDBParameterGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSNeptuneDBParameterGroupWithName(name string) (AWSNeptun if b, err := json.Marshal(resource); err == nil { var result AWSNeptuneDBParameterGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSNeptuneDBParameterGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-neptune-dbsubnetgroup.go b/cloudformation/aws-neptune-dbsubnetgroup.go index 354f95224a..50cadebc3d 100644 --- a/cloudformation/aws-neptune-dbsubnetgroup.go +++ b/cloudformation/aws-neptune-dbsubnetgroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSNeptuneDBSubnetGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSNeptuneDBSubnetGroup) MarshalJSON() ([]byte, error) { +func (r *AWSNeptuneDBSubnetGroup) MarshalJSON() ([]byte, error) { type Properties AWSNeptuneDBSubnetGroup return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSNeptuneDBSubnetGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSNeptuneDBSubnetGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSNeptuneDBSubnetGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSNeptuneDBSubnetGroupResources retrieves all AWSNeptuneDBSubnetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSNeptuneDBSubnetGroupResources() map[string]AWSNeptuneDBSubnetGroup { - results := map[string]AWSNeptuneDBSubnetGroup{} +func (t *Template) GetAllAWSNeptuneDBSubnetGroupResources() map[string]*AWSNeptuneDBSubnetGroup { + results := map[string]*AWSNeptuneDBSubnetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSNeptuneDBSubnetGroup: + case *AWSNeptuneDBSubnetGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSNeptuneDBSubnetGroupResources() map[string]AWSNeptun if b, err := json.Marshal(resource); err == nil { var result AWSNeptuneDBSubnetGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSNeptuneDBSubnetGroupResources() map[string]AWSNeptun // GetAWSNeptuneDBSubnetGroupWithName retrieves all AWSNeptuneDBSubnetGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSNeptuneDBSubnetGroupWithName(name string) (AWSNeptuneDBSubnetGroup, error) { +func (t *Template) GetAWSNeptuneDBSubnetGroupWithName(name string) (*AWSNeptuneDBSubnetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSNeptuneDBSubnetGroup: + case *AWSNeptuneDBSubnetGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSNeptuneDBSubnetGroupWithName(name string) (AWSNeptuneDB if b, err := json.Marshal(resource); err == nil { var result AWSNeptuneDBSubnetGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSNeptuneDBSubnetGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-opsworks-app.go b/cloudformation/aws-opsworks-app.go index d27b90a7f7..4688749c83 100644 --- a/cloudformation/aws-opsworks-app.go +++ b/cloudformation/aws-opsworks-app.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -117,7 +118,7 @@ func (r *AWSOpsWorksApp) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSOpsWorksApp) MarshalJSON() ([]byte, error) { +func (r *AWSOpsWorksApp) MarshalJSON() ([]byte, error) { type Properties AWSOpsWorksApp return json.Marshal(&struct { Type string @@ -127,7 +128,7 @@ func (r AWSOpsWorksApp) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -144,7 +145,11 @@ func (r *AWSOpsWorksApp) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -164,11 +169,11 @@ func (r *AWSOpsWorksApp) UnmarshalJSON(b []byte) error { } // GetAllAWSOpsWorksAppResources retrieves all AWSOpsWorksApp items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksAppResources() map[string]AWSOpsWorksApp { - results := map[string]AWSOpsWorksApp{} +func (t *Template) GetAllAWSOpsWorksAppResources() map[string]*AWSOpsWorksApp { + results := map[string]*AWSOpsWorksApp{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSOpsWorksApp: + case *AWSOpsWorksApp: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -180,7 +185,8 @@ func (t *Template) GetAllAWSOpsWorksAppResources() map[string]AWSOpsWorksApp { if b, err := json.Marshal(resource); err == nil { var result AWSOpsWorksApp if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -192,10 +198,10 @@ func (t *Template) GetAllAWSOpsWorksAppResources() map[string]AWSOpsWorksApp { // GetAWSOpsWorksAppWithName retrieves all AWSOpsWorksApp items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksAppWithName(name string) (AWSOpsWorksApp, error) { +func (t *Template) GetAWSOpsWorksAppWithName(name string) (*AWSOpsWorksApp, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSOpsWorksApp: + case *AWSOpsWorksApp: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -207,12 +213,13 @@ func (t *Template) GetAWSOpsWorksAppWithName(name string) (AWSOpsWorksApp, error if b, err := json.Marshal(resource); err == nil { var result AWSOpsWorksApp if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSOpsWorksApp{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-opsworks-elasticloadbalancerattachment.go b/cloudformation/aws-opsworks-elasticloadbalancerattachment.go index 3446a1793e..c6b3111773 100644 --- a/cloudformation/aws-opsworks-elasticloadbalancerattachment.go +++ b/cloudformation/aws-opsworks-elasticloadbalancerattachment.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSOpsWorksElasticLoadBalancerAttachment) SetDeletionPolicy(policy Dele // 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 AWSOpsWorksElasticLoadBalancerAttachment) MarshalJSON() ([]byte, error) { +func (r *AWSOpsWorksElasticLoadBalancerAttachment) MarshalJSON() ([]byte, error) { type Properties AWSOpsWorksElasticLoadBalancerAttachment return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSOpsWorksElasticLoadBalancerAttachment) MarshalJSON() ([]byte, error) DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSOpsWorksElasticLoadBalancerAttachment) UnmarshalJSON(b []byte) error DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSOpsWorksElasticLoadBalancerAttachment) UnmarshalJSON(b []byte) error } // GetAllAWSOpsWorksElasticLoadBalancerAttachmentResources retrieves all AWSOpsWorksElasticLoadBalancerAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksElasticLoadBalancerAttachmentResources() map[string]AWSOpsWorksElasticLoadBalancerAttachment { - results := map[string]AWSOpsWorksElasticLoadBalancerAttachment{} +func (t *Template) GetAllAWSOpsWorksElasticLoadBalancerAttachmentResources() map[string]*AWSOpsWorksElasticLoadBalancerAttachment { + results := map[string]*AWSOpsWorksElasticLoadBalancerAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSOpsWorksElasticLoadBalancerAttachment: + case *AWSOpsWorksElasticLoadBalancerAttachment: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSOpsWorksElasticLoadBalancerAttachmentResources() map if b, err := json.Marshal(resource); err == nil { var result AWSOpsWorksElasticLoadBalancerAttachment if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSOpsWorksElasticLoadBalancerAttachmentResources() map // GetAWSOpsWorksElasticLoadBalancerAttachmentWithName retrieves all AWSOpsWorksElasticLoadBalancerAttachment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksElasticLoadBalancerAttachmentWithName(name string) (AWSOpsWorksElasticLoadBalancerAttachment, error) { +func (t *Template) GetAWSOpsWorksElasticLoadBalancerAttachmentWithName(name string) (*AWSOpsWorksElasticLoadBalancerAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSOpsWorksElasticLoadBalancerAttachment: + case *AWSOpsWorksElasticLoadBalancerAttachment: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSOpsWorksElasticLoadBalancerAttachmentWithName(name stri if b, err := json.Marshal(resource); err == nil { var result AWSOpsWorksElasticLoadBalancerAttachment if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSOpsWorksElasticLoadBalancerAttachment{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-opsworks-instance.go b/cloudformation/aws-opsworks-instance.go index 6d0d97b0f4..6deccb6c35 100644 --- a/cloudformation/aws-opsworks-instance.go +++ b/cloudformation/aws-opsworks-instance.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -162,7 +163,7 @@ func (r *AWSOpsWorksInstance) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSOpsWorksInstance) MarshalJSON() ([]byte, error) { +func (r *AWSOpsWorksInstance) MarshalJSON() ([]byte, error) { type Properties AWSOpsWorksInstance return json.Marshal(&struct { Type string @@ -172,7 +173,7 @@ func (r AWSOpsWorksInstance) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -189,7 +190,11 @@ func (r *AWSOpsWorksInstance) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -209,11 +214,11 @@ func (r *AWSOpsWorksInstance) UnmarshalJSON(b []byte) error { } // GetAllAWSOpsWorksInstanceResources retrieves all AWSOpsWorksInstance items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksInstanceResources() map[string]AWSOpsWorksInstance { - results := map[string]AWSOpsWorksInstance{} +func (t *Template) GetAllAWSOpsWorksInstanceResources() map[string]*AWSOpsWorksInstance { + results := map[string]*AWSOpsWorksInstance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSOpsWorksInstance: + case *AWSOpsWorksInstance: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -225,7 +230,8 @@ func (t *Template) GetAllAWSOpsWorksInstanceResources() map[string]AWSOpsWorksIn if b, err := json.Marshal(resource); err == nil { var result AWSOpsWorksInstance if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -237,10 +243,10 @@ func (t *Template) GetAllAWSOpsWorksInstanceResources() map[string]AWSOpsWorksIn // GetAWSOpsWorksInstanceWithName retrieves all AWSOpsWorksInstance items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksInstanceWithName(name string) (AWSOpsWorksInstance, error) { +func (t *Template) GetAWSOpsWorksInstanceWithName(name string) (*AWSOpsWorksInstance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSOpsWorksInstance: + case *AWSOpsWorksInstance: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -252,12 +258,13 @@ func (t *Template) GetAWSOpsWorksInstanceWithName(name string) (AWSOpsWorksInsta if b, err := json.Marshal(resource); err == nil { var result AWSOpsWorksInstance if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSOpsWorksInstance{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-opsworks-layer.go b/cloudformation/aws-opsworks-layer.go index aa3817d098..5a70510abd 100644 --- a/cloudformation/aws-opsworks-layer.go +++ b/cloudformation/aws-opsworks-layer.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -152,7 +153,7 @@ func (r *AWSOpsWorksLayer) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSOpsWorksLayer) MarshalJSON() ([]byte, error) { +func (r *AWSOpsWorksLayer) MarshalJSON() ([]byte, error) { type Properties AWSOpsWorksLayer return json.Marshal(&struct { Type string @@ -162,7 +163,7 @@ func (r AWSOpsWorksLayer) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -179,7 +180,11 @@ func (r *AWSOpsWorksLayer) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -199,11 +204,11 @@ func (r *AWSOpsWorksLayer) UnmarshalJSON(b []byte) error { } // GetAllAWSOpsWorksLayerResources retrieves all AWSOpsWorksLayer items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksLayerResources() map[string]AWSOpsWorksLayer { - results := map[string]AWSOpsWorksLayer{} +func (t *Template) GetAllAWSOpsWorksLayerResources() map[string]*AWSOpsWorksLayer { + results := map[string]*AWSOpsWorksLayer{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSOpsWorksLayer: + case *AWSOpsWorksLayer: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -215,7 +220,8 @@ func (t *Template) GetAllAWSOpsWorksLayerResources() map[string]AWSOpsWorksLayer if b, err := json.Marshal(resource); err == nil { var result AWSOpsWorksLayer if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -227,10 +233,10 @@ func (t *Template) GetAllAWSOpsWorksLayerResources() map[string]AWSOpsWorksLayer // GetAWSOpsWorksLayerWithName retrieves all AWSOpsWorksLayer items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksLayerWithName(name string) (AWSOpsWorksLayer, error) { +func (t *Template) GetAWSOpsWorksLayerWithName(name string) (*AWSOpsWorksLayer, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSOpsWorksLayer: + case *AWSOpsWorksLayer: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -242,12 +248,13 @@ func (t *Template) GetAWSOpsWorksLayerWithName(name string) (AWSOpsWorksLayer, e if b, err := json.Marshal(resource); err == nil { var result AWSOpsWorksLayer if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSOpsWorksLayer{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-opsworks-stack.go b/cloudformation/aws-opsworks-stack.go index 2cbf311393..8509c09180 100644 --- a/cloudformation/aws-opsworks-stack.go +++ b/cloudformation/aws-opsworks-stack.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -182,7 +183,7 @@ func (r *AWSOpsWorksStack) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSOpsWorksStack) MarshalJSON() ([]byte, error) { +func (r *AWSOpsWorksStack) MarshalJSON() ([]byte, error) { type Properties AWSOpsWorksStack return json.Marshal(&struct { Type string @@ -192,7 +193,7 @@ func (r AWSOpsWorksStack) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -209,7 +210,11 @@ func (r *AWSOpsWorksStack) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -229,11 +234,11 @@ func (r *AWSOpsWorksStack) UnmarshalJSON(b []byte) error { } // GetAllAWSOpsWorksStackResources retrieves all AWSOpsWorksStack items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksStackResources() map[string]AWSOpsWorksStack { - results := map[string]AWSOpsWorksStack{} +func (t *Template) GetAllAWSOpsWorksStackResources() map[string]*AWSOpsWorksStack { + results := map[string]*AWSOpsWorksStack{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSOpsWorksStack: + case *AWSOpsWorksStack: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -245,7 +250,8 @@ func (t *Template) GetAllAWSOpsWorksStackResources() map[string]AWSOpsWorksStack if b, err := json.Marshal(resource); err == nil { var result AWSOpsWorksStack if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -257,10 +263,10 @@ func (t *Template) GetAllAWSOpsWorksStackResources() map[string]AWSOpsWorksStack // GetAWSOpsWorksStackWithName retrieves all AWSOpsWorksStack items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksStackWithName(name string) (AWSOpsWorksStack, error) { +func (t *Template) GetAWSOpsWorksStackWithName(name string) (*AWSOpsWorksStack, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSOpsWorksStack: + case *AWSOpsWorksStack: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -272,12 +278,13 @@ func (t *Template) GetAWSOpsWorksStackWithName(name string) (AWSOpsWorksStack, e if b, err := json.Marshal(resource); err == nil { var result AWSOpsWorksStack if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSOpsWorksStack{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-opsworks-userprofile.go b/cloudformation/aws-opsworks-userprofile.go index 6444165022..194ba7f56a 100644 --- a/cloudformation/aws-opsworks-userprofile.go +++ b/cloudformation/aws-opsworks-userprofile.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSOpsWorksUserProfile) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSOpsWorksUserProfile) MarshalJSON() ([]byte, error) { +func (r *AWSOpsWorksUserProfile) MarshalJSON() ([]byte, error) { type Properties AWSOpsWorksUserProfile return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSOpsWorksUserProfile) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSOpsWorksUserProfile) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSOpsWorksUserProfile) UnmarshalJSON(b []byte) error { } // GetAllAWSOpsWorksUserProfileResources retrieves all AWSOpsWorksUserProfile items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksUserProfileResources() map[string]AWSOpsWorksUserProfile { - results := map[string]AWSOpsWorksUserProfile{} +func (t *Template) GetAllAWSOpsWorksUserProfileResources() map[string]*AWSOpsWorksUserProfile { + results := map[string]*AWSOpsWorksUserProfile{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSOpsWorksUserProfile: + case *AWSOpsWorksUserProfile: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSOpsWorksUserProfileResources() map[string]AWSOpsWork if b, err := json.Marshal(resource); err == nil { var result AWSOpsWorksUserProfile if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSOpsWorksUserProfileResources() map[string]AWSOpsWork // GetAWSOpsWorksUserProfileWithName retrieves all AWSOpsWorksUserProfile items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksUserProfileWithName(name string) (AWSOpsWorksUserProfile, error) { +func (t *Template) GetAWSOpsWorksUserProfileWithName(name string) (*AWSOpsWorksUserProfile, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSOpsWorksUserProfile: + case *AWSOpsWorksUserProfile: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSOpsWorksUserProfileWithName(name string) (AWSOpsWorksUs if b, err := json.Marshal(resource); err == nil { var result AWSOpsWorksUserProfile if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSOpsWorksUserProfile{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-opsworks-volume.go b/cloudformation/aws-opsworks-volume.go index 8d96614f92..782b0761c9 100644 --- a/cloudformation/aws-opsworks-volume.go +++ b/cloudformation/aws-opsworks-volume.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSOpsWorksVolume) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSOpsWorksVolume) MarshalJSON() ([]byte, error) { +func (r *AWSOpsWorksVolume) MarshalJSON() ([]byte, error) { type Properties AWSOpsWorksVolume return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSOpsWorksVolume) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSOpsWorksVolume) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSOpsWorksVolume) UnmarshalJSON(b []byte) error { } // GetAllAWSOpsWorksVolumeResources retrieves all AWSOpsWorksVolume items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksVolumeResources() map[string]AWSOpsWorksVolume { - results := map[string]AWSOpsWorksVolume{} +func (t *Template) GetAllAWSOpsWorksVolumeResources() map[string]*AWSOpsWorksVolume { + results := map[string]*AWSOpsWorksVolume{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSOpsWorksVolume: + case *AWSOpsWorksVolume: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSOpsWorksVolumeResources() map[string]AWSOpsWorksVolu if b, err := json.Marshal(resource); err == nil { var result AWSOpsWorksVolume if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSOpsWorksVolumeResources() map[string]AWSOpsWorksVolu // GetAWSOpsWorksVolumeWithName retrieves all AWSOpsWorksVolume items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksVolumeWithName(name string) (AWSOpsWorksVolume, error) { +func (t *Template) GetAWSOpsWorksVolumeWithName(name string) (*AWSOpsWorksVolume, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSOpsWorksVolume: + case *AWSOpsWorksVolume: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSOpsWorksVolumeWithName(name string) (AWSOpsWorksVolume, if b, err := json.Marshal(resource); err == nil { var result AWSOpsWorksVolume if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSOpsWorksVolume{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-opsworkscm-server.go b/cloudformation/aws-opsworkscm-server.go new file mode 100644 index 0000000000..f59d6e2d8e --- /dev/null +++ b/cloudformation/aws-opsworkscm-server.go @@ -0,0 +1,250 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSOpsWorksCMServer AWS CloudFormation Resource (AWS::OpsWorksCM::Server) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html +type AWSOpsWorksCMServer struct { + + // AssociatePublicIpAddress AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html#cfn-opsworkscm-server-associatepublicipaddress + AssociatePublicIpAddress bool `json:"AssociatePublicIpAddress,omitempty"` + + // BackupId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html#cfn-opsworkscm-server-backupid + BackupId string `json:"BackupId,omitempty"` + + // BackupRetentionCount AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html#cfn-opsworkscm-server-backupretentioncount + BackupRetentionCount int `json:"BackupRetentionCount,omitempty"` + + // DisableAutomatedBackup AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html#cfn-opsworkscm-server-disableautomatedbackup + DisableAutomatedBackup bool `json:"DisableAutomatedBackup,omitempty"` + + // Engine AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html#cfn-opsworkscm-server-engine + Engine string `json:"Engine,omitempty"` + + // EngineAttributes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html#cfn-opsworkscm-server-engineattributes + EngineAttributes []AWSOpsWorksCMServer_EngineAttribute `json:"EngineAttributes,omitempty"` + + // EngineModel AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html#cfn-opsworkscm-server-enginemodel + EngineModel string `json:"EngineModel,omitempty"` + + // EngineVersion AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html#cfn-opsworkscm-server-engineversion + EngineVersion string `json:"EngineVersion,omitempty"` + + // InstanceProfileArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html#cfn-opsworkscm-server-instanceprofilearn + InstanceProfileArn string `json:"InstanceProfileArn,omitempty"` + + // InstanceType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html#cfn-opsworkscm-server-instancetype + InstanceType string `json:"InstanceType,omitempty"` + + // KeyPair AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html#cfn-opsworkscm-server-keypair + KeyPair string `json:"KeyPair,omitempty"` + + // PreferredBackupWindow AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html#cfn-opsworkscm-server-preferredbackupwindow + PreferredBackupWindow string `json:"PreferredBackupWindow,omitempty"` + + // PreferredMaintenanceWindow AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html#cfn-opsworkscm-server-preferredmaintenancewindow + PreferredMaintenanceWindow string `json:"PreferredMaintenanceWindow,omitempty"` + + // SecurityGroupIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html#cfn-opsworkscm-server-securitygroupids + SecurityGroupIds []string `json:"SecurityGroupIds,omitempty"` + + // ServerName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html#cfn-opsworkscm-server-servername + ServerName string `json:"ServerName,omitempty"` + + // ServiceRoleArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html#cfn-opsworkscm-server-servicerolearn + ServiceRoleArn string `json:"ServiceRoleArn,omitempty"` + + // SubnetIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html#cfn-opsworkscm-server-subnetids + SubnetIds []string `json:"SubnetIds,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSOpsWorksCMServer) AWSCloudFormationType() string { + return "AWS::OpsWorksCM::Server" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSOpsWorksCMServer) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSOpsWorksCMServer) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSOpsWorksCMServer) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSOpsWorksCMServer) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSOpsWorksCMServer) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSOpsWorksCMServer) MarshalJSON() ([]byte, error) { + type Properties AWSOpsWorksCMServer + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSOpsWorksCMServer) UnmarshalJSON(b []byte) error { + type Properties AWSOpsWorksCMServer + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSOpsWorksCMServer(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSOpsWorksCMServerResources retrieves all AWSOpsWorksCMServer items from an AWS CloudFormation template +func (t *Template) GetAllAWSOpsWorksCMServerResources() map[string]*AWSOpsWorksCMServer { + results := map[string]*AWSOpsWorksCMServer{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSOpsWorksCMServer: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::OpsWorksCM::Server" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSOpsWorksCMServer + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSOpsWorksCMServerWithName retrieves all AWSOpsWorksCMServer items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSOpsWorksCMServerWithName(name string) (*AWSOpsWorksCMServer, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSOpsWorksCMServer: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::OpsWorksCM::Server" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSOpsWorksCMServer + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-opsworkscm-server_engineattribute.go b/cloudformation/aws-opsworkscm-server_engineattribute.go new file mode 100644 index 0000000000..a01e708e88 --- /dev/null +++ b/cloudformation/aws-opsworkscm-server_engineattribute.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSOpsWorksCMServer_EngineAttribute AWS CloudFormation Resource (AWS::OpsWorksCM::Server.EngineAttribute) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworkscm-server-engineattribute.html +type AWSOpsWorksCMServer_EngineAttribute struct { + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworkscm-server-engineattribute.html#cfn-opsworkscm-server-engineattribute-name + Name string `json:"Name,omitempty"` + + // Value AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworkscm-server-engineattribute.html#cfn-opsworkscm-server-engineattribute-value + Value string `json:"Value,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSOpsWorksCMServer_EngineAttribute) AWSCloudFormationType() string { + return "AWS::OpsWorksCM::Server.EngineAttribute" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSOpsWorksCMServer_EngineAttribute) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSOpsWorksCMServer_EngineAttribute) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSOpsWorksCMServer_EngineAttribute) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSOpsWorksCMServer_EngineAttribute) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSOpsWorksCMServer_EngineAttribute) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-ram-resourceshare.go b/cloudformation/aws-ram-resourceshare.go new file mode 100644 index 0000000000..374b7ab58a --- /dev/null +++ b/cloudformation/aws-ram-resourceshare.go @@ -0,0 +1,190 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSRAMResourceShare AWS CloudFormation Resource (AWS::RAM::ResourceShare) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ram-resourceshare.html +type AWSRAMResourceShare struct { + + // AllowExternalPrincipals AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ram-resourceshare.html#cfn-ram-resourceshare-allowexternalprincipals + AllowExternalPrincipals bool `json:"AllowExternalPrincipals,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ram-resourceshare.html#cfn-ram-resourceshare-name + Name string `json:"Name,omitempty"` + + // Principals AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ram-resourceshare.html#cfn-ram-resourceshare-principals + Principals []string `json:"Principals,omitempty"` + + // ResourceArns AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ram-resourceshare.html#cfn-ram-resourceshare-resourcearns + ResourceArns []string `json:"ResourceArns,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ram-resourceshare.html#cfn-ram-resourceshare-tags + Tags []Tag `json:"Tags,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSRAMResourceShare) AWSCloudFormationType() string { + return "AWS::RAM::ResourceShare" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRAMResourceShare) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRAMResourceShare) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRAMResourceShare) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRAMResourceShare) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSRAMResourceShare) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSRAMResourceShare) MarshalJSON() ([]byte, error) { + type Properties AWSRAMResourceShare + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSRAMResourceShare) UnmarshalJSON(b []byte) error { + type Properties AWSRAMResourceShare + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSRAMResourceShare(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSRAMResourceShareResources retrieves all AWSRAMResourceShare items from an AWS CloudFormation template +func (t *Template) GetAllAWSRAMResourceShareResources() map[string]*AWSRAMResourceShare { + results := map[string]*AWSRAMResourceShare{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRAMResourceShare: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::RAM::ResourceShare" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSRAMResourceShare + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSRAMResourceShareWithName retrieves all AWSRAMResourceShare items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRAMResourceShareWithName(name string) (*AWSRAMResourceShare, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRAMResourceShare: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::RAM::ResourceShare" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSRAMResourceShare + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-rds-dbcluster.go b/cloudformation/aws-rds-dbcluster.go index dca1df72ed..fdc1bb79cd 100644 --- a/cloudformation/aws-rds-dbcluster.go +++ b/cloudformation/aws-rds-dbcluster.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -120,6 +121,11 @@ type AWSRDSDBCluster struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-snapshotidentifier SnapshotIdentifier string `json:"SnapshotIdentifier,omitempty"` + // SourceRegion AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-sourceregion + SourceRegion string `json:"SourceRegion,omitempty"` + // StorageEncrypted AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-storageencrypted @@ -182,7 +188,7 @@ func (r *AWSRDSDBCluster) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSRDSDBCluster) MarshalJSON() ([]byte, error) { +func (r *AWSRDSDBCluster) MarshalJSON() ([]byte, error) { type Properties AWSRDSDBCluster return json.Marshal(&struct { Type string @@ -192,7 +198,7 @@ func (r AWSRDSDBCluster) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -209,7 +215,11 @@ func (r *AWSRDSDBCluster) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -229,11 +239,11 @@ func (r *AWSRDSDBCluster) UnmarshalJSON(b []byte) error { } // GetAllAWSRDSDBClusterResources retrieves all AWSRDSDBCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSDBClusterResources() map[string]AWSRDSDBCluster { - results := map[string]AWSRDSDBCluster{} +func (t *Template) GetAllAWSRDSDBClusterResources() map[string]*AWSRDSDBCluster { + results := map[string]*AWSRDSDBCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSRDSDBCluster: + case *AWSRDSDBCluster: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -245,7 +255,8 @@ func (t *Template) GetAllAWSRDSDBClusterResources() map[string]AWSRDSDBCluster { if b, err := json.Marshal(resource); err == nil { var result AWSRDSDBCluster if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -257,10 +268,10 @@ func (t *Template) GetAllAWSRDSDBClusterResources() map[string]AWSRDSDBCluster { // GetAWSRDSDBClusterWithName retrieves all AWSRDSDBCluster items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSDBClusterWithName(name string) (AWSRDSDBCluster, error) { +func (t *Template) GetAWSRDSDBClusterWithName(name string) (*AWSRDSDBCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSRDSDBCluster: + case *AWSRDSDBCluster: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -272,12 +283,13 @@ func (t *Template) GetAWSRDSDBClusterWithName(name string) (AWSRDSDBCluster, err if b, err := json.Marshal(resource); err == nil { var result AWSRDSDBCluster if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSRDSDBCluster{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-rds-dbclusterparametergroup.go b/cloudformation/aws-rds-dbclusterparametergroup.go index f4c5e20f4e..19b9928b9f 100644 --- a/cloudformation/aws-rds-dbclusterparametergroup.go +++ b/cloudformation/aws-rds-dbclusterparametergroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSRDSDBClusterParameterGroup) SetDeletionPolicy(policy DeletionPolicy) // 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 AWSRDSDBClusterParameterGroup) MarshalJSON() ([]byte, error) { +func (r *AWSRDSDBClusterParameterGroup) MarshalJSON() ([]byte, error) { type Properties AWSRDSDBClusterParameterGroup return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSRDSDBClusterParameterGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSRDSDBClusterParameterGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSRDSDBClusterParameterGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSRDSDBClusterParameterGroupResources retrieves all AWSRDSDBClusterParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSDBClusterParameterGroupResources() map[string]AWSRDSDBClusterParameterGroup { - results := map[string]AWSRDSDBClusterParameterGroup{} +func (t *Template) GetAllAWSRDSDBClusterParameterGroupResources() map[string]*AWSRDSDBClusterParameterGroup { + results := map[string]*AWSRDSDBClusterParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSRDSDBClusterParameterGroup: + case *AWSRDSDBClusterParameterGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSRDSDBClusterParameterGroupResources() map[string]AWS if b, err := json.Marshal(resource); err == nil { var result AWSRDSDBClusterParameterGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSRDSDBClusterParameterGroupResources() map[string]AWS // GetAWSRDSDBClusterParameterGroupWithName retrieves all AWSRDSDBClusterParameterGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSDBClusterParameterGroupWithName(name string) (AWSRDSDBClusterParameterGroup, error) { +func (t *Template) GetAWSRDSDBClusterParameterGroupWithName(name string) (*AWSRDSDBClusterParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSRDSDBClusterParameterGroup: + case *AWSRDSDBClusterParameterGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSRDSDBClusterParameterGroupWithName(name string) (AWSRDS if b, err := json.Marshal(resource); err == nil { var result AWSRDSDBClusterParameterGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSRDSDBClusterParameterGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-rds-dbinstance.go b/cloudformation/aws-rds-dbinstance.go index a1c1333e3e..18cfa8d614 100644 --- a/cloudformation/aws-rds-dbinstance.go +++ b/cloudformation/aws-rds-dbinstance.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -245,6 +246,11 @@ type AWSRDSDBInstance struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-timezone Timezone string `json:"Timezone,omitempty"` + // UseDefaultProcessorFeatures AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-usedefaultprocessorfeatures + UseDefaultProcessorFeatures bool `json:"UseDefaultProcessorFeatures,omitempty"` + // VPCSecurityGroups AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-vpcsecuritygroups @@ -297,7 +303,7 @@ func (r *AWSRDSDBInstance) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSRDSDBInstance) MarshalJSON() ([]byte, error) { +func (r *AWSRDSDBInstance) MarshalJSON() ([]byte, error) { type Properties AWSRDSDBInstance return json.Marshal(&struct { Type string @@ -307,7 +313,7 @@ func (r AWSRDSDBInstance) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -324,7 +330,11 @@ func (r *AWSRDSDBInstance) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -344,11 +354,11 @@ func (r *AWSRDSDBInstance) UnmarshalJSON(b []byte) error { } // GetAllAWSRDSDBInstanceResources retrieves all AWSRDSDBInstance items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSDBInstanceResources() map[string]AWSRDSDBInstance { - results := map[string]AWSRDSDBInstance{} +func (t *Template) GetAllAWSRDSDBInstanceResources() map[string]*AWSRDSDBInstance { + results := map[string]*AWSRDSDBInstance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSRDSDBInstance: + case *AWSRDSDBInstance: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -360,7 +370,8 @@ func (t *Template) GetAllAWSRDSDBInstanceResources() map[string]AWSRDSDBInstance if b, err := json.Marshal(resource); err == nil { var result AWSRDSDBInstance if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -372,10 +383,10 @@ func (t *Template) GetAllAWSRDSDBInstanceResources() map[string]AWSRDSDBInstance // GetAWSRDSDBInstanceWithName retrieves all AWSRDSDBInstance items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSDBInstanceWithName(name string) (AWSRDSDBInstance, error) { +func (t *Template) GetAWSRDSDBInstanceWithName(name string) (*AWSRDSDBInstance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSRDSDBInstance: + case *AWSRDSDBInstance: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -387,12 +398,13 @@ func (t *Template) GetAWSRDSDBInstanceWithName(name string) (AWSRDSDBInstance, e if b, err := json.Marshal(resource); err == nil { var result AWSRDSDBInstance if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSRDSDBInstance{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-rds-dbparametergroup.go b/cloudformation/aws-rds-dbparametergroup.go index 7e52480be9..94413f1820 100644 --- a/cloudformation/aws-rds-dbparametergroup.go +++ b/cloudformation/aws-rds-dbparametergroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSRDSDBParameterGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSRDSDBParameterGroup) MarshalJSON() ([]byte, error) { +func (r *AWSRDSDBParameterGroup) MarshalJSON() ([]byte, error) { type Properties AWSRDSDBParameterGroup return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSRDSDBParameterGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSRDSDBParameterGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSRDSDBParameterGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSRDSDBParameterGroupResources retrieves all AWSRDSDBParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSDBParameterGroupResources() map[string]AWSRDSDBParameterGroup { - results := map[string]AWSRDSDBParameterGroup{} +func (t *Template) GetAllAWSRDSDBParameterGroupResources() map[string]*AWSRDSDBParameterGroup { + results := map[string]*AWSRDSDBParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSRDSDBParameterGroup: + case *AWSRDSDBParameterGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSRDSDBParameterGroupResources() map[string]AWSRDSDBPa if b, err := json.Marshal(resource); err == nil { var result AWSRDSDBParameterGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSRDSDBParameterGroupResources() map[string]AWSRDSDBPa // GetAWSRDSDBParameterGroupWithName retrieves all AWSRDSDBParameterGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSDBParameterGroupWithName(name string) (AWSRDSDBParameterGroup, error) { +func (t *Template) GetAWSRDSDBParameterGroupWithName(name string) (*AWSRDSDBParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSRDSDBParameterGroup: + case *AWSRDSDBParameterGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSRDSDBParameterGroupWithName(name string) (AWSRDSDBParam if b, err := json.Marshal(resource); err == nil { var result AWSRDSDBParameterGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSRDSDBParameterGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-rds-dbsecuritygroup.go b/cloudformation/aws-rds-dbsecuritygroup.go index 78479e9dce..da0916e440 100644 --- a/cloudformation/aws-rds-dbsecuritygroup.go +++ b/cloudformation/aws-rds-dbsecuritygroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSRDSDBSecurityGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSRDSDBSecurityGroup) MarshalJSON() ([]byte, error) { +func (r *AWSRDSDBSecurityGroup) MarshalJSON() ([]byte, error) { type Properties AWSRDSDBSecurityGroup return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSRDSDBSecurityGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSRDSDBSecurityGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSRDSDBSecurityGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSRDSDBSecurityGroupResources retrieves all AWSRDSDBSecurityGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSDBSecurityGroupResources() map[string]AWSRDSDBSecurityGroup { - results := map[string]AWSRDSDBSecurityGroup{} +func (t *Template) GetAllAWSRDSDBSecurityGroupResources() map[string]*AWSRDSDBSecurityGroup { + results := map[string]*AWSRDSDBSecurityGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSRDSDBSecurityGroup: + case *AWSRDSDBSecurityGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSRDSDBSecurityGroupResources() map[string]AWSRDSDBSec if b, err := json.Marshal(resource); err == nil { var result AWSRDSDBSecurityGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSRDSDBSecurityGroupResources() map[string]AWSRDSDBSec // GetAWSRDSDBSecurityGroupWithName retrieves all AWSRDSDBSecurityGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSDBSecurityGroupWithName(name string) (AWSRDSDBSecurityGroup, error) { +func (t *Template) GetAWSRDSDBSecurityGroupWithName(name string) (*AWSRDSDBSecurityGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSRDSDBSecurityGroup: + case *AWSRDSDBSecurityGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSRDSDBSecurityGroupWithName(name string) (AWSRDSDBSecuri if b, err := json.Marshal(resource); err == nil { var result AWSRDSDBSecurityGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSRDSDBSecurityGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-rds-dbsecuritygroupingress.go b/cloudformation/aws-rds-dbsecuritygroupingress.go index cc3f899e78..ae864a9cc2 100644 --- a/cloudformation/aws-rds-dbsecuritygroupingress.go +++ b/cloudformation/aws-rds-dbsecuritygroupingress.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSRDSDBSecurityGroupIngress) SetDeletionPolicy(policy DeletionPolicy) // 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 AWSRDSDBSecurityGroupIngress) MarshalJSON() ([]byte, error) { +func (r *AWSRDSDBSecurityGroupIngress) MarshalJSON() ([]byte, error) { type Properties AWSRDSDBSecurityGroupIngress return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSRDSDBSecurityGroupIngress) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSRDSDBSecurityGroupIngress) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSRDSDBSecurityGroupIngress) UnmarshalJSON(b []byte) error { } // GetAllAWSRDSDBSecurityGroupIngressResources retrieves all AWSRDSDBSecurityGroupIngress items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSDBSecurityGroupIngressResources() map[string]AWSRDSDBSecurityGroupIngress { - results := map[string]AWSRDSDBSecurityGroupIngress{} +func (t *Template) GetAllAWSRDSDBSecurityGroupIngressResources() map[string]*AWSRDSDBSecurityGroupIngress { + results := map[string]*AWSRDSDBSecurityGroupIngress{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSRDSDBSecurityGroupIngress: + case *AWSRDSDBSecurityGroupIngress: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSRDSDBSecurityGroupIngressResources() map[string]AWSR if b, err := json.Marshal(resource); err == nil { var result AWSRDSDBSecurityGroupIngress if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSRDSDBSecurityGroupIngressResources() map[string]AWSR // GetAWSRDSDBSecurityGroupIngressWithName retrieves all AWSRDSDBSecurityGroupIngress items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSDBSecurityGroupIngressWithName(name string) (AWSRDSDBSecurityGroupIngress, error) { +func (t *Template) GetAWSRDSDBSecurityGroupIngressWithName(name string) (*AWSRDSDBSecurityGroupIngress, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSRDSDBSecurityGroupIngress: + case *AWSRDSDBSecurityGroupIngress: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSRDSDBSecurityGroupIngressWithName(name string) (AWSRDSD if b, err := json.Marshal(resource); err == nil { var result AWSRDSDBSecurityGroupIngress if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSRDSDBSecurityGroupIngress{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-rds-dbsubnetgroup.go b/cloudformation/aws-rds-dbsubnetgroup.go index beb87284bd..75bbdcab76 100644 --- a/cloudformation/aws-rds-dbsubnetgroup.go +++ b/cloudformation/aws-rds-dbsubnetgroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSRDSDBSubnetGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSRDSDBSubnetGroup) MarshalJSON() ([]byte, error) { +func (r *AWSRDSDBSubnetGroup) MarshalJSON() ([]byte, error) { type Properties AWSRDSDBSubnetGroup return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSRDSDBSubnetGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSRDSDBSubnetGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSRDSDBSubnetGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSRDSDBSubnetGroupResources retrieves all AWSRDSDBSubnetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSDBSubnetGroupResources() map[string]AWSRDSDBSubnetGroup { - results := map[string]AWSRDSDBSubnetGroup{} +func (t *Template) GetAllAWSRDSDBSubnetGroupResources() map[string]*AWSRDSDBSubnetGroup { + results := map[string]*AWSRDSDBSubnetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSRDSDBSubnetGroup: + case *AWSRDSDBSubnetGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSRDSDBSubnetGroupResources() map[string]AWSRDSDBSubne if b, err := json.Marshal(resource); err == nil { var result AWSRDSDBSubnetGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSRDSDBSubnetGroupResources() map[string]AWSRDSDBSubne // GetAWSRDSDBSubnetGroupWithName retrieves all AWSRDSDBSubnetGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSDBSubnetGroupWithName(name string) (AWSRDSDBSubnetGroup, error) { +func (t *Template) GetAWSRDSDBSubnetGroupWithName(name string) (*AWSRDSDBSubnetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSRDSDBSubnetGroup: + case *AWSRDSDBSubnetGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSRDSDBSubnetGroupWithName(name string) (AWSRDSDBSubnetGr if b, err := json.Marshal(resource); err == nil { var result AWSRDSDBSubnetGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSRDSDBSubnetGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-rds-eventsubscription.go b/cloudformation/aws-rds-eventsubscription.go index 94c2c32ecb..ec07fca00f 100644 --- a/cloudformation/aws-rds-eventsubscription.go +++ b/cloudformation/aws-rds-eventsubscription.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSRDSEventSubscription) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSRDSEventSubscription) MarshalJSON() ([]byte, error) { +func (r *AWSRDSEventSubscription) MarshalJSON() ([]byte, error) { type Properties AWSRDSEventSubscription return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSRDSEventSubscription) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSRDSEventSubscription) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSRDSEventSubscription) UnmarshalJSON(b []byte) error { } // GetAllAWSRDSEventSubscriptionResources retrieves all AWSRDSEventSubscription items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSEventSubscriptionResources() map[string]AWSRDSEventSubscription { - results := map[string]AWSRDSEventSubscription{} +func (t *Template) GetAllAWSRDSEventSubscriptionResources() map[string]*AWSRDSEventSubscription { + results := map[string]*AWSRDSEventSubscription{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSRDSEventSubscription: + case *AWSRDSEventSubscription: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSRDSEventSubscriptionResources() map[string]AWSRDSEve if b, err := json.Marshal(resource); err == nil { var result AWSRDSEventSubscription if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSRDSEventSubscriptionResources() map[string]AWSRDSEve // GetAWSRDSEventSubscriptionWithName retrieves all AWSRDSEventSubscription items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSEventSubscriptionWithName(name string) (AWSRDSEventSubscription, error) { +func (t *Template) GetAWSRDSEventSubscriptionWithName(name string) (*AWSRDSEventSubscription, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSRDSEventSubscription: + case *AWSRDSEventSubscription: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSRDSEventSubscriptionWithName(name string) (AWSRDSEventS if b, err := json.Marshal(resource); err == nil { var result AWSRDSEventSubscription if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSRDSEventSubscription{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-rds-optiongroup.go b/cloudformation/aws-rds-optiongroup.go index 5668ec7fff..b5af870a54 100644 --- a/cloudformation/aws-rds-optiongroup.go +++ b/cloudformation/aws-rds-optiongroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSRDSOptionGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSRDSOptionGroup) MarshalJSON() ([]byte, error) { +func (r *AWSRDSOptionGroup) MarshalJSON() ([]byte, error) { type Properties AWSRDSOptionGroup return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSRDSOptionGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSRDSOptionGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSRDSOptionGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSRDSOptionGroupResources retrieves all AWSRDSOptionGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSOptionGroupResources() map[string]AWSRDSOptionGroup { - results := map[string]AWSRDSOptionGroup{} +func (t *Template) GetAllAWSRDSOptionGroupResources() map[string]*AWSRDSOptionGroup { + results := map[string]*AWSRDSOptionGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSRDSOptionGroup: + case *AWSRDSOptionGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSRDSOptionGroupResources() map[string]AWSRDSOptionGro if b, err := json.Marshal(resource); err == nil { var result AWSRDSOptionGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSRDSOptionGroupResources() map[string]AWSRDSOptionGro // GetAWSRDSOptionGroupWithName retrieves all AWSRDSOptionGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSOptionGroupWithName(name string) (AWSRDSOptionGroup, error) { +func (t *Template) GetAWSRDSOptionGroupWithName(name string) (*AWSRDSOptionGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSRDSOptionGroup: + case *AWSRDSOptionGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSRDSOptionGroupWithName(name string) (AWSRDSOptionGroup, if b, err := json.Marshal(resource); err == nil { var result AWSRDSOptionGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSRDSOptionGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-redshift-cluster.go b/cloudformation/aws-redshift-cluster.go index 4e2542cda1..30f654d908 100644 --- a/cloudformation/aws-redshift-cluster.go +++ b/cloudformation/aws-redshift-cluster.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -202,7 +203,7 @@ func (r *AWSRedshiftCluster) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSRedshiftCluster) MarshalJSON() ([]byte, error) { +func (r *AWSRedshiftCluster) MarshalJSON() ([]byte, error) { type Properties AWSRedshiftCluster return json.Marshal(&struct { Type string @@ -212,7 +213,7 @@ func (r AWSRedshiftCluster) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -229,7 +230,11 @@ func (r *AWSRedshiftCluster) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -249,11 +254,11 @@ func (r *AWSRedshiftCluster) UnmarshalJSON(b []byte) error { } // GetAllAWSRedshiftClusterResources retrieves all AWSRedshiftCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSRedshiftClusterResources() map[string]AWSRedshiftCluster { - results := map[string]AWSRedshiftCluster{} +func (t *Template) GetAllAWSRedshiftClusterResources() map[string]*AWSRedshiftCluster { + results := map[string]*AWSRedshiftCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSRedshiftCluster: + case *AWSRedshiftCluster: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -265,7 +270,8 @@ func (t *Template) GetAllAWSRedshiftClusterResources() map[string]AWSRedshiftClu if b, err := json.Marshal(resource); err == nil { var result AWSRedshiftCluster if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -277,10 +283,10 @@ func (t *Template) GetAllAWSRedshiftClusterResources() map[string]AWSRedshiftClu // GetAWSRedshiftClusterWithName retrieves all AWSRedshiftCluster items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRedshiftClusterWithName(name string) (AWSRedshiftCluster, error) { +func (t *Template) GetAWSRedshiftClusterWithName(name string) (*AWSRedshiftCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSRedshiftCluster: + case *AWSRedshiftCluster: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -292,12 +298,13 @@ func (t *Template) GetAWSRedshiftClusterWithName(name string) (AWSRedshiftCluste if b, err := json.Marshal(resource); err == nil { var result AWSRedshiftCluster if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSRedshiftCluster{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-redshift-clusterparametergroup.go b/cloudformation/aws-redshift-clusterparametergroup.go index 9e7b919450..4bafcfce6e 100644 --- a/cloudformation/aws-redshift-clusterparametergroup.go +++ b/cloudformation/aws-redshift-clusterparametergroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSRedshiftClusterParameterGroup) SetDeletionPolicy(policy DeletionPoli // 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 AWSRedshiftClusterParameterGroup) MarshalJSON() ([]byte, error) { +func (r *AWSRedshiftClusterParameterGroup) MarshalJSON() ([]byte, error) { type Properties AWSRedshiftClusterParameterGroup return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSRedshiftClusterParameterGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSRedshiftClusterParameterGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSRedshiftClusterParameterGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSRedshiftClusterParameterGroupResources retrieves all AWSRedshiftClusterParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRedshiftClusterParameterGroupResources() map[string]AWSRedshiftClusterParameterGroup { - results := map[string]AWSRedshiftClusterParameterGroup{} +func (t *Template) GetAllAWSRedshiftClusterParameterGroupResources() map[string]*AWSRedshiftClusterParameterGroup { + results := map[string]*AWSRedshiftClusterParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSRedshiftClusterParameterGroup: + case *AWSRedshiftClusterParameterGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSRedshiftClusterParameterGroupResources() map[string] if b, err := json.Marshal(resource); err == nil { var result AWSRedshiftClusterParameterGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSRedshiftClusterParameterGroupResources() map[string] // GetAWSRedshiftClusterParameterGroupWithName retrieves all AWSRedshiftClusterParameterGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRedshiftClusterParameterGroupWithName(name string) (AWSRedshiftClusterParameterGroup, error) { +func (t *Template) GetAWSRedshiftClusterParameterGroupWithName(name string) (*AWSRedshiftClusterParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSRedshiftClusterParameterGroup: + case *AWSRedshiftClusterParameterGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSRedshiftClusterParameterGroupWithName(name string) (AWS if b, err := json.Marshal(resource); err == nil { var result AWSRedshiftClusterParameterGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSRedshiftClusterParameterGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-redshift-clustersecuritygroup.go b/cloudformation/aws-redshift-clustersecuritygroup.go index 344403c40e..05541bde6b 100644 --- a/cloudformation/aws-redshift-clustersecuritygroup.go +++ b/cloudformation/aws-redshift-clustersecuritygroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSRedshiftClusterSecurityGroup) SetDeletionPolicy(policy DeletionPolic // 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 AWSRedshiftClusterSecurityGroup) MarshalJSON() ([]byte, error) { +func (r *AWSRedshiftClusterSecurityGroup) MarshalJSON() ([]byte, error) { type Properties AWSRedshiftClusterSecurityGroup return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSRedshiftClusterSecurityGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSRedshiftClusterSecurityGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSRedshiftClusterSecurityGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSRedshiftClusterSecurityGroupResources retrieves all AWSRedshiftClusterSecurityGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRedshiftClusterSecurityGroupResources() map[string]AWSRedshiftClusterSecurityGroup { - results := map[string]AWSRedshiftClusterSecurityGroup{} +func (t *Template) GetAllAWSRedshiftClusterSecurityGroupResources() map[string]*AWSRedshiftClusterSecurityGroup { + results := map[string]*AWSRedshiftClusterSecurityGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSRedshiftClusterSecurityGroup: + case *AWSRedshiftClusterSecurityGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSRedshiftClusterSecurityGroupResources() map[string]A if b, err := json.Marshal(resource); err == nil { var result AWSRedshiftClusterSecurityGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSRedshiftClusterSecurityGroupResources() map[string]A // GetAWSRedshiftClusterSecurityGroupWithName retrieves all AWSRedshiftClusterSecurityGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRedshiftClusterSecurityGroupWithName(name string) (AWSRedshiftClusterSecurityGroup, error) { +func (t *Template) GetAWSRedshiftClusterSecurityGroupWithName(name string) (*AWSRedshiftClusterSecurityGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSRedshiftClusterSecurityGroup: + case *AWSRedshiftClusterSecurityGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSRedshiftClusterSecurityGroupWithName(name string) (AWSR if b, err := json.Marshal(resource); err == nil { var result AWSRedshiftClusterSecurityGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSRedshiftClusterSecurityGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-redshift-clustersecuritygroupingress.go b/cloudformation/aws-redshift-clustersecuritygroupingress.go index 2917e2a787..e9332b4284 100644 --- a/cloudformation/aws-redshift-clustersecuritygroupingress.go +++ b/cloudformation/aws-redshift-clustersecuritygroupingress.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSRedshiftClusterSecurityGroupIngress) SetDeletionPolicy(policy Deleti // 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 AWSRedshiftClusterSecurityGroupIngress) MarshalJSON() ([]byte, error) { +func (r *AWSRedshiftClusterSecurityGroupIngress) MarshalJSON() ([]byte, error) { type Properties AWSRedshiftClusterSecurityGroupIngress return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSRedshiftClusterSecurityGroupIngress) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSRedshiftClusterSecurityGroupIngress) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSRedshiftClusterSecurityGroupIngress) UnmarshalJSON(b []byte) error { } // GetAllAWSRedshiftClusterSecurityGroupIngressResources retrieves all AWSRedshiftClusterSecurityGroupIngress items from an AWS CloudFormation template -func (t *Template) GetAllAWSRedshiftClusterSecurityGroupIngressResources() map[string]AWSRedshiftClusterSecurityGroupIngress { - results := map[string]AWSRedshiftClusterSecurityGroupIngress{} +func (t *Template) GetAllAWSRedshiftClusterSecurityGroupIngressResources() map[string]*AWSRedshiftClusterSecurityGroupIngress { + results := map[string]*AWSRedshiftClusterSecurityGroupIngress{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSRedshiftClusterSecurityGroupIngress: + case *AWSRedshiftClusterSecurityGroupIngress: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSRedshiftClusterSecurityGroupIngressResources() map[s if b, err := json.Marshal(resource); err == nil { var result AWSRedshiftClusterSecurityGroupIngress if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSRedshiftClusterSecurityGroupIngressResources() map[s // GetAWSRedshiftClusterSecurityGroupIngressWithName retrieves all AWSRedshiftClusterSecurityGroupIngress items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRedshiftClusterSecurityGroupIngressWithName(name string) (AWSRedshiftClusterSecurityGroupIngress, error) { +func (t *Template) GetAWSRedshiftClusterSecurityGroupIngressWithName(name string) (*AWSRedshiftClusterSecurityGroupIngress, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSRedshiftClusterSecurityGroupIngress: + case *AWSRedshiftClusterSecurityGroupIngress: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSRedshiftClusterSecurityGroupIngressWithName(name string if b, err := json.Marshal(resource); err == nil { var result AWSRedshiftClusterSecurityGroupIngress if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSRedshiftClusterSecurityGroupIngress{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-redshift-clustersubnetgroup.go b/cloudformation/aws-redshift-clustersubnetgroup.go index cc9700ad5d..655adeae25 100644 --- a/cloudformation/aws-redshift-clustersubnetgroup.go +++ b/cloudformation/aws-redshift-clustersubnetgroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSRedshiftClusterSubnetGroup) SetDeletionPolicy(policy DeletionPolicy) // 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 AWSRedshiftClusterSubnetGroup) MarshalJSON() ([]byte, error) { +func (r *AWSRedshiftClusterSubnetGroup) MarshalJSON() ([]byte, error) { type Properties AWSRedshiftClusterSubnetGroup return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSRedshiftClusterSubnetGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSRedshiftClusterSubnetGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSRedshiftClusterSubnetGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSRedshiftClusterSubnetGroupResources retrieves all AWSRedshiftClusterSubnetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRedshiftClusterSubnetGroupResources() map[string]AWSRedshiftClusterSubnetGroup { - results := map[string]AWSRedshiftClusterSubnetGroup{} +func (t *Template) GetAllAWSRedshiftClusterSubnetGroupResources() map[string]*AWSRedshiftClusterSubnetGroup { + results := map[string]*AWSRedshiftClusterSubnetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSRedshiftClusterSubnetGroup: + case *AWSRedshiftClusterSubnetGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSRedshiftClusterSubnetGroupResources() map[string]AWS if b, err := json.Marshal(resource); err == nil { var result AWSRedshiftClusterSubnetGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSRedshiftClusterSubnetGroupResources() map[string]AWS // GetAWSRedshiftClusterSubnetGroupWithName retrieves all AWSRedshiftClusterSubnetGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRedshiftClusterSubnetGroupWithName(name string) (AWSRedshiftClusterSubnetGroup, error) { +func (t *Template) GetAWSRedshiftClusterSubnetGroupWithName(name string) (*AWSRedshiftClusterSubnetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSRedshiftClusterSubnetGroup: + case *AWSRedshiftClusterSubnetGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSRedshiftClusterSubnetGroupWithName(name string) (AWSRed if b, err := json.Marshal(resource); err == nil { var result AWSRedshiftClusterSubnetGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSRedshiftClusterSubnetGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-robomaker-fleet.go b/cloudformation/aws-robomaker-fleet.go new file mode 100644 index 0000000000..9236b1359b --- /dev/null +++ b/cloudformation/aws-robomaker-fleet.go @@ -0,0 +1,175 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSRoboMakerFleet AWS CloudFormation Resource (AWS::RoboMaker::Fleet) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-fleet.html +type AWSRoboMakerFleet struct { + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-fleet.html#cfn-robomaker-fleet-name + Name string `json:"Name,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-fleet.html#cfn-robomaker-fleet-tags + Tags interface{} `json:"Tags,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSRoboMakerFleet) AWSCloudFormationType() string { + return "AWS::RoboMaker::Fleet" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerFleet) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerFleet) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerFleet) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerFleet) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSRoboMakerFleet) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSRoboMakerFleet) MarshalJSON() ([]byte, error) { + type Properties AWSRoboMakerFleet + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSRoboMakerFleet) UnmarshalJSON(b []byte) error { + type Properties AWSRoboMakerFleet + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSRoboMakerFleet(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSRoboMakerFleetResources retrieves all AWSRoboMakerFleet items from an AWS CloudFormation template +func (t *Template) GetAllAWSRoboMakerFleetResources() map[string]*AWSRoboMakerFleet { + results := map[string]*AWSRoboMakerFleet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRoboMakerFleet: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::RoboMaker::Fleet" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSRoboMakerFleet + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSRoboMakerFleetWithName retrieves all AWSRoboMakerFleet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRoboMakerFleetWithName(name string) (*AWSRoboMakerFleet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRoboMakerFleet: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::RoboMaker::Fleet" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSRoboMakerFleet + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-robomaker-robot.go b/cloudformation/aws-robomaker-robot.go new file mode 100644 index 0000000000..49e7648c58 --- /dev/null +++ b/cloudformation/aws-robomaker-robot.go @@ -0,0 +1,190 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSRoboMakerRobot AWS CloudFormation Resource (AWS::RoboMaker::Robot) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robot.html +type AWSRoboMakerRobot struct { + + // Architecture AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robot.html#cfn-robomaker-robot-architecture + Architecture string `json:"Architecture,omitempty"` + + // Fleet AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robot.html#cfn-robomaker-robot-fleet + Fleet string `json:"Fleet,omitempty"` + + // GreengrassGroupId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robot.html#cfn-robomaker-robot-greengrassgroupid + GreengrassGroupId string `json:"GreengrassGroupId,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robot.html#cfn-robomaker-robot-name + Name string `json:"Name,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robot.html#cfn-robomaker-robot-tags + Tags interface{} `json:"Tags,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSRoboMakerRobot) AWSCloudFormationType() string { + return "AWS::RoboMaker::Robot" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerRobot) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerRobot) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerRobot) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerRobot) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSRoboMakerRobot) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSRoboMakerRobot) MarshalJSON() ([]byte, error) { + type Properties AWSRoboMakerRobot + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSRoboMakerRobot) UnmarshalJSON(b []byte) error { + type Properties AWSRoboMakerRobot + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSRoboMakerRobot(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSRoboMakerRobotResources retrieves all AWSRoboMakerRobot items from an AWS CloudFormation template +func (t *Template) GetAllAWSRoboMakerRobotResources() map[string]*AWSRoboMakerRobot { + results := map[string]*AWSRoboMakerRobot{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRoboMakerRobot: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::RoboMaker::Robot" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSRoboMakerRobot + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSRoboMakerRobotWithName retrieves all AWSRoboMakerRobot items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRoboMakerRobotWithName(name string) (*AWSRoboMakerRobot, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRoboMakerRobot: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::RoboMaker::Robot" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSRoboMakerRobot + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-robomaker-robotapplication.go b/cloudformation/aws-robomaker-robotapplication.go new file mode 100644 index 0000000000..18b9dd73f6 --- /dev/null +++ b/cloudformation/aws-robomaker-robotapplication.go @@ -0,0 +1,190 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSRoboMakerRobotApplication AWS CloudFormation Resource (AWS::RoboMaker::RobotApplication) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplication.html +type AWSRoboMakerRobotApplication struct { + + // CurrentRevisionId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplication.html#cfn-robomaker-robotapplication-currentrevisionid + CurrentRevisionId string `json:"CurrentRevisionId,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplication.html#cfn-robomaker-robotapplication-name + Name string `json:"Name,omitempty"` + + // RobotSoftwareSuite AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplication.html#cfn-robomaker-robotapplication-robotsoftwaresuite + RobotSoftwareSuite *AWSRoboMakerRobotApplication_RobotSoftwareSuite `json:"RobotSoftwareSuite,omitempty"` + + // Sources AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplication.html#cfn-robomaker-robotapplication-sources + Sources []AWSRoboMakerRobotApplication_SourceConfig `json:"Sources,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplication.html#cfn-robomaker-robotapplication-tags + Tags interface{} `json:"Tags,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSRoboMakerRobotApplication) AWSCloudFormationType() string { + return "AWS::RoboMaker::RobotApplication" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerRobotApplication) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerRobotApplication) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerRobotApplication) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerRobotApplication) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSRoboMakerRobotApplication) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSRoboMakerRobotApplication) MarshalJSON() ([]byte, error) { + type Properties AWSRoboMakerRobotApplication + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSRoboMakerRobotApplication) UnmarshalJSON(b []byte) error { + type Properties AWSRoboMakerRobotApplication + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSRoboMakerRobotApplication(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSRoboMakerRobotApplicationResources retrieves all AWSRoboMakerRobotApplication items from an AWS CloudFormation template +func (t *Template) GetAllAWSRoboMakerRobotApplicationResources() map[string]*AWSRoboMakerRobotApplication { + results := map[string]*AWSRoboMakerRobotApplication{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRoboMakerRobotApplication: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::RoboMaker::RobotApplication" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSRoboMakerRobotApplication + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSRoboMakerRobotApplicationWithName retrieves all AWSRoboMakerRobotApplication items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRoboMakerRobotApplicationWithName(name string) (*AWSRoboMakerRobotApplication, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRoboMakerRobotApplication: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::RoboMaker::RobotApplication" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSRoboMakerRobotApplication + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-robomaker-robotapplication_robotsoftwaresuite.go b/cloudformation/aws-robomaker-robotapplication_robotsoftwaresuite.go new file mode 100644 index 0000000000..4d21b29d6b --- /dev/null +++ b/cloudformation/aws-robomaker-robotapplication_robotsoftwaresuite.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSRoboMakerRobotApplication_RobotSoftwareSuite AWS CloudFormation Resource (AWS::RoboMaker::RobotApplication.RobotSoftwareSuite) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-robotsoftwaresuite.html +type AWSRoboMakerRobotApplication_RobotSoftwareSuite struct { + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-robotsoftwaresuite.html#cfn-robomaker-robotapplication-robotsoftwaresuite-name + Name string `json:"Name,omitempty"` + + // Version AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-robotsoftwaresuite.html#cfn-robomaker-robotapplication-robotsoftwaresuite-version + Version string `json:"Version,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSRoboMakerRobotApplication_RobotSoftwareSuite) AWSCloudFormationType() string { + return "AWS::RoboMaker::RobotApplication.RobotSoftwareSuite" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerRobotApplication_RobotSoftwareSuite) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerRobotApplication_RobotSoftwareSuite) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerRobotApplication_RobotSoftwareSuite) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerRobotApplication_RobotSoftwareSuite) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSRoboMakerRobotApplication_RobotSoftwareSuite) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-robomaker-robotapplication_sourceconfig.go b/cloudformation/aws-robomaker-robotapplication_sourceconfig.go new file mode 100644 index 0000000000..84375d29f7 --- /dev/null +++ b/cloudformation/aws-robomaker-robotapplication_sourceconfig.go @@ -0,0 +1,65 @@ +package cloudformation + +// AWSRoboMakerRobotApplication_SourceConfig AWS CloudFormation Resource (AWS::RoboMaker::RobotApplication.SourceConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-sourceconfig.html +type AWSRoboMakerRobotApplication_SourceConfig struct { + + // Architecture AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-sourceconfig.html#cfn-robomaker-robotapplication-sourceconfig-architecture + Architecture string `json:"Architecture,omitempty"` + + // S3Bucket AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-sourceconfig.html#cfn-robomaker-robotapplication-sourceconfig-s3bucket + S3Bucket string `json:"S3Bucket,omitempty"` + + // S3Key AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-sourceconfig.html#cfn-robomaker-robotapplication-sourceconfig-s3key + S3Key string `json:"S3Key,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSRoboMakerRobotApplication_SourceConfig) AWSCloudFormationType() string { + return "AWS::RoboMaker::RobotApplication.SourceConfig" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerRobotApplication_SourceConfig) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerRobotApplication_SourceConfig) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerRobotApplication_SourceConfig) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerRobotApplication_SourceConfig) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSRoboMakerRobotApplication_SourceConfig) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-robomaker-robotapplicationversion.go b/cloudformation/aws-robomaker-robotapplicationversion.go new file mode 100644 index 0000000000..67049f46f7 --- /dev/null +++ b/cloudformation/aws-robomaker-robotapplicationversion.go @@ -0,0 +1,175 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSRoboMakerRobotApplicationVersion AWS CloudFormation Resource (AWS::RoboMaker::RobotApplicationVersion) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplicationversion.html +type AWSRoboMakerRobotApplicationVersion struct { + + // Application AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplicationversion.html#cfn-robomaker-robotapplicationversion-application + Application string `json:"Application,omitempty"` + + // CurrentRevisionId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-robotapplicationversion.html#cfn-robomaker-robotapplicationversion-currentrevisionid + CurrentRevisionId string `json:"CurrentRevisionId,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSRoboMakerRobotApplicationVersion) AWSCloudFormationType() string { + return "AWS::RoboMaker::RobotApplicationVersion" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerRobotApplicationVersion) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerRobotApplicationVersion) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerRobotApplicationVersion) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerRobotApplicationVersion) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSRoboMakerRobotApplicationVersion) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSRoboMakerRobotApplicationVersion) MarshalJSON() ([]byte, error) { + type Properties AWSRoboMakerRobotApplicationVersion + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSRoboMakerRobotApplicationVersion) UnmarshalJSON(b []byte) error { + type Properties AWSRoboMakerRobotApplicationVersion + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSRoboMakerRobotApplicationVersion(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSRoboMakerRobotApplicationVersionResources retrieves all AWSRoboMakerRobotApplicationVersion items from an AWS CloudFormation template +func (t *Template) GetAllAWSRoboMakerRobotApplicationVersionResources() map[string]*AWSRoboMakerRobotApplicationVersion { + results := map[string]*AWSRoboMakerRobotApplicationVersion{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRoboMakerRobotApplicationVersion: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::RoboMaker::RobotApplicationVersion" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSRoboMakerRobotApplicationVersion + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSRoboMakerRobotApplicationVersionWithName retrieves all AWSRoboMakerRobotApplicationVersion items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRoboMakerRobotApplicationVersionWithName(name string) (*AWSRoboMakerRobotApplicationVersion, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRoboMakerRobotApplicationVersion: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::RoboMaker::RobotApplicationVersion" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSRoboMakerRobotApplicationVersion + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-robomaker-simulationapplication.go b/cloudformation/aws-robomaker-simulationapplication.go new file mode 100644 index 0000000000..2847d5562c --- /dev/null +++ b/cloudformation/aws-robomaker-simulationapplication.go @@ -0,0 +1,200 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSRoboMakerSimulationApplication AWS CloudFormation Resource (AWS::RoboMaker::SimulationApplication) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html +type AWSRoboMakerSimulationApplication struct { + + // CurrentRevisionId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-currentrevisionid + CurrentRevisionId string `json:"CurrentRevisionId,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-name + Name string `json:"Name,omitempty"` + + // RenderingEngine AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-renderingengine + RenderingEngine *AWSRoboMakerSimulationApplication_RenderingEngine `json:"RenderingEngine,omitempty"` + + // RobotSoftwareSuite AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-robotsoftwaresuite + RobotSoftwareSuite *AWSRoboMakerSimulationApplication_RobotSoftwareSuite `json:"RobotSoftwareSuite,omitempty"` + + // SimulationSoftwareSuite AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-simulationsoftwaresuite + SimulationSoftwareSuite *AWSRoboMakerSimulationApplication_SimulationSoftwareSuite `json:"SimulationSoftwareSuite,omitempty"` + + // Sources AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-sources + Sources []AWSRoboMakerSimulationApplication_SourceConfig `json:"Sources,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-tags + Tags interface{} `json:"Tags,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSRoboMakerSimulationApplication) AWSCloudFormationType() string { + return "AWS::RoboMaker::SimulationApplication" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerSimulationApplication) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerSimulationApplication) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerSimulationApplication) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerSimulationApplication) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSRoboMakerSimulationApplication) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSRoboMakerSimulationApplication) MarshalJSON() ([]byte, error) { + type Properties AWSRoboMakerSimulationApplication + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSRoboMakerSimulationApplication) UnmarshalJSON(b []byte) error { + type Properties AWSRoboMakerSimulationApplication + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSRoboMakerSimulationApplication(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSRoboMakerSimulationApplicationResources retrieves all AWSRoboMakerSimulationApplication items from an AWS CloudFormation template +func (t *Template) GetAllAWSRoboMakerSimulationApplicationResources() map[string]*AWSRoboMakerSimulationApplication { + results := map[string]*AWSRoboMakerSimulationApplication{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRoboMakerSimulationApplication: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::RoboMaker::SimulationApplication" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSRoboMakerSimulationApplication + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSRoboMakerSimulationApplicationWithName retrieves all AWSRoboMakerSimulationApplication items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRoboMakerSimulationApplicationWithName(name string) (*AWSRoboMakerSimulationApplication, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRoboMakerSimulationApplication: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::RoboMaker::SimulationApplication" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSRoboMakerSimulationApplication + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-robomaker-simulationapplication_renderingengine.go b/cloudformation/aws-robomaker-simulationapplication_renderingengine.go new file mode 100644 index 0000000000..29f9aee0a4 --- /dev/null +++ b/cloudformation/aws-robomaker-simulationapplication_renderingengine.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSRoboMakerSimulationApplication_RenderingEngine AWS CloudFormation Resource (AWS::RoboMaker::SimulationApplication.RenderingEngine) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-renderingengine.html +type AWSRoboMakerSimulationApplication_RenderingEngine struct { + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-renderingengine.html#cfn-robomaker-simulationapplication-renderingengine-name + Name string `json:"Name,omitempty"` + + // Version AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-renderingengine.html#cfn-robomaker-simulationapplication-renderingengine-version + Version string `json:"Version,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSRoboMakerSimulationApplication_RenderingEngine) AWSCloudFormationType() string { + return "AWS::RoboMaker::SimulationApplication.RenderingEngine" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerSimulationApplication_RenderingEngine) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerSimulationApplication_RenderingEngine) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerSimulationApplication_RenderingEngine) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerSimulationApplication_RenderingEngine) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSRoboMakerSimulationApplication_RenderingEngine) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-robomaker-simulationapplication_robotsoftwaresuite.go b/cloudformation/aws-robomaker-simulationapplication_robotsoftwaresuite.go new file mode 100644 index 0000000000..7bc329e68e --- /dev/null +++ b/cloudformation/aws-robomaker-simulationapplication_robotsoftwaresuite.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSRoboMakerSimulationApplication_RobotSoftwareSuite AWS CloudFormation Resource (AWS::RoboMaker::SimulationApplication.RobotSoftwareSuite) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-robotsoftwaresuite.html +type AWSRoboMakerSimulationApplication_RobotSoftwareSuite struct { + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-robotsoftwaresuite.html#cfn-robomaker-simulationapplication-robotsoftwaresuite-name + Name string `json:"Name,omitempty"` + + // Version AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-robotsoftwaresuite.html#cfn-robomaker-simulationapplication-robotsoftwaresuite-version + Version string `json:"Version,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSRoboMakerSimulationApplication_RobotSoftwareSuite) AWSCloudFormationType() string { + return "AWS::RoboMaker::SimulationApplication.RobotSoftwareSuite" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerSimulationApplication_RobotSoftwareSuite) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerSimulationApplication_RobotSoftwareSuite) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerSimulationApplication_RobotSoftwareSuite) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerSimulationApplication_RobotSoftwareSuite) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSRoboMakerSimulationApplication_RobotSoftwareSuite) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-robomaker-simulationapplication_simulationsoftwaresuite.go b/cloudformation/aws-robomaker-simulationapplication_simulationsoftwaresuite.go new file mode 100644 index 0000000000..5788a50f85 --- /dev/null +++ b/cloudformation/aws-robomaker-simulationapplication_simulationsoftwaresuite.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSRoboMakerSimulationApplication_SimulationSoftwareSuite AWS CloudFormation Resource (AWS::RoboMaker::SimulationApplication.SimulationSoftwareSuite) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-simulationsoftwaresuite.html +type AWSRoboMakerSimulationApplication_SimulationSoftwareSuite struct { + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-simulationsoftwaresuite.html#cfn-robomaker-simulationapplication-simulationsoftwaresuite-name + Name string `json:"Name,omitempty"` + + // Version AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-simulationsoftwaresuite.html#cfn-robomaker-simulationapplication-simulationsoftwaresuite-version + Version string `json:"Version,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSRoboMakerSimulationApplication_SimulationSoftwareSuite) AWSCloudFormationType() string { + return "AWS::RoboMaker::SimulationApplication.SimulationSoftwareSuite" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerSimulationApplication_SimulationSoftwareSuite) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerSimulationApplication_SimulationSoftwareSuite) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerSimulationApplication_SimulationSoftwareSuite) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerSimulationApplication_SimulationSoftwareSuite) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSRoboMakerSimulationApplication_SimulationSoftwareSuite) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-robomaker-simulationapplication_sourceconfig.go b/cloudformation/aws-robomaker-simulationapplication_sourceconfig.go new file mode 100644 index 0000000000..a480571186 --- /dev/null +++ b/cloudformation/aws-robomaker-simulationapplication_sourceconfig.go @@ -0,0 +1,65 @@ +package cloudformation + +// AWSRoboMakerSimulationApplication_SourceConfig AWS CloudFormation Resource (AWS::RoboMaker::SimulationApplication.SourceConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-sourceconfig.html +type AWSRoboMakerSimulationApplication_SourceConfig struct { + + // Architecture AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-sourceconfig.html#cfn-robomaker-simulationapplication-sourceconfig-architecture + Architecture string `json:"Architecture,omitempty"` + + // S3Bucket AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-sourceconfig.html#cfn-robomaker-simulationapplication-sourceconfig-s3bucket + S3Bucket string `json:"S3Bucket,omitempty"` + + // S3Key AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-sourceconfig.html#cfn-robomaker-simulationapplication-sourceconfig-s3key + S3Key string `json:"S3Key,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSRoboMakerSimulationApplication_SourceConfig) AWSCloudFormationType() string { + return "AWS::RoboMaker::SimulationApplication.SourceConfig" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerSimulationApplication_SourceConfig) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerSimulationApplication_SourceConfig) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerSimulationApplication_SourceConfig) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerSimulationApplication_SourceConfig) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSRoboMakerSimulationApplication_SourceConfig) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-robomaker-simulationapplicationversion.go b/cloudformation/aws-robomaker-simulationapplicationversion.go new file mode 100644 index 0000000000..8d136b03bb --- /dev/null +++ b/cloudformation/aws-robomaker-simulationapplicationversion.go @@ -0,0 +1,175 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSRoboMakerSimulationApplicationVersion AWS CloudFormation Resource (AWS::RoboMaker::SimulationApplicationVersion) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplicationversion.html +type AWSRoboMakerSimulationApplicationVersion struct { + + // Application AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplicationversion.html#cfn-robomaker-simulationapplicationversion-application + Application string `json:"Application,omitempty"` + + // CurrentRevisionId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplicationversion.html#cfn-robomaker-simulationapplicationversion-currentrevisionid + CurrentRevisionId string `json:"CurrentRevisionId,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSRoboMakerSimulationApplicationVersion) AWSCloudFormationType() string { + return "AWS::RoboMaker::SimulationApplicationVersion" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerSimulationApplicationVersion) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoboMakerSimulationApplicationVersion) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerSimulationApplicationVersion) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoboMakerSimulationApplicationVersion) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSRoboMakerSimulationApplicationVersion) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSRoboMakerSimulationApplicationVersion) MarshalJSON() ([]byte, error) { + type Properties AWSRoboMakerSimulationApplicationVersion + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSRoboMakerSimulationApplicationVersion) UnmarshalJSON(b []byte) error { + type Properties AWSRoboMakerSimulationApplicationVersion + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSRoboMakerSimulationApplicationVersion(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSRoboMakerSimulationApplicationVersionResources retrieves all AWSRoboMakerSimulationApplicationVersion items from an AWS CloudFormation template +func (t *Template) GetAllAWSRoboMakerSimulationApplicationVersionResources() map[string]*AWSRoboMakerSimulationApplicationVersion { + results := map[string]*AWSRoboMakerSimulationApplicationVersion{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRoboMakerSimulationApplicationVersion: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::RoboMaker::SimulationApplicationVersion" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSRoboMakerSimulationApplicationVersion + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSRoboMakerSimulationApplicationVersionWithName retrieves all AWSRoboMakerSimulationApplicationVersion items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRoboMakerSimulationApplicationVersionWithName(name string) (*AWSRoboMakerSimulationApplicationVersion, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRoboMakerSimulationApplicationVersion: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::RoboMaker::SimulationApplicationVersion" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSRoboMakerSimulationApplicationVersion + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-route53-healthcheck.go b/cloudformation/aws-route53-healthcheck.go index 9ca137732c..c9b3ae828a 100644 --- a/cloudformation/aws-route53-healthcheck.go +++ b/cloudformation/aws-route53-healthcheck.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSRoute53HealthCheck) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSRoute53HealthCheck) MarshalJSON() ([]byte, error) { +func (r *AWSRoute53HealthCheck) MarshalJSON() ([]byte, error) { type Properties AWSRoute53HealthCheck return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSRoute53HealthCheck) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSRoute53HealthCheck) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSRoute53HealthCheck) UnmarshalJSON(b []byte) error { } // GetAllAWSRoute53HealthCheckResources retrieves all AWSRoute53HealthCheck items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoute53HealthCheckResources() map[string]AWSRoute53HealthCheck { - results := map[string]AWSRoute53HealthCheck{} +func (t *Template) GetAllAWSRoute53HealthCheckResources() map[string]*AWSRoute53HealthCheck { + results := map[string]*AWSRoute53HealthCheck{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSRoute53HealthCheck: + case *AWSRoute53HealthCheck: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSRoute53HealthCheckResources() map[string]AWSRoute53H if b, err := json.Marshal(resource); err == nil { var result AWSRoute53HealthCheck if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSRoute53HealthCheckResources() map[string]AWSRoute53H // GetAWSRoute53HealthCheckWithName retrieves all AWSRoute53HealthCheck items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoute53HealthCheckWithName(name string) (AWSRoute53HealthCheck, error) { +func (t *Template) GetAWSRoute53HealthCheckWithName(name string) (*AWSRoute53HealthCheck, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSRoute53HealthCheck: + case *AWSRoute53HealthCheck: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSRoute53HealthCheckWithName(name string) (AWSRoute53Heal if b, err := json.Marshal(resource); err == nil { var result AWSRoute53HealthCheck if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSRoute53HealthCheck{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-route53-hostedzone.go b/cloudformation/aws-route53-hostedzone.go index 22273cb43d..84e1c54e78 100644 --- a/cloudformation/aws-route53-hostedzone.go +++ b/cloudformation/aws-route53-hostedzone.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSRoute53HostedZone) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSRoute53HostedZone) MarshalJSON() ([]byte, error) { +func (r *AWSRoute53HostedZone) MarshalJSON() ([]byte, error) { type Properties AWSRoute53HostedZone return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSRoute53HostedZone) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSRoute53HostedZone) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSRoute53HostedZone) UnmarshalJSON(b []byte) error { } // GetAllAWSRoute53HostedZoneResources retrieves all AWSRoute53HostedZone items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoute53HostedZoneResources() map[string]AWSRoute53HostedZone { - results := map[string]AWSRoute53HostedZone{} +func (t *Template) GetAllAWSRoute53HostedZoneResources() map[string]*AWSRoute53HostedZone { + results := map[string]*AWSRoute53HostedZone{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSRoute53HostedZone: + case *AWSRoute53HostedZone: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSRoute53HostedZoneResources() map[string]AWSRoute53Ho if b, err := json.Marshal(resource); err == nil { var result AWSRoute53HostedZone if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSRoute53HostedZoneResources() map[string]AWSRoute53Ho // GetAWSRoute53HostedZoneWithName retrieves all AWSRoute53HostedZone items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoute53HostedZoneWithName(name string) (AWSRoute53HostedZone, error) { +func (t *Template) GetAWSRoute53HostedZoneWithName(name string) (*AWSRoute53HostedZone, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSRoute53HostedZone: + case *AWSRoute53HostedZone: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSRoute53HostedZoneWithName(name string) (AWSRoute53Hoste if b, err := json.Marshal(resource); err == nil { var result AWSRoute53HostedZone if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSRoute53HostedZone{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-route53-recordset.go b/cloudformation/aws-route53-recordset.go index b2c9492aa1..c2d4eae15c 100644 --- a/cloudformation/aws-route53-recordset.go +++ b/cloudformation/aws-route53-recordset.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -132,7 +133,7 @@ func (r *AWSRoute53RecordSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSRoute53RecordSet) MarshalJSON() ([]byte, error) { +func (r *AWSRoute53RecordSet) MarshalJSON() ([]byte, error) { type Properties AWSRoute53RecordSet return json.Marshal(&struct { Type string @@ -142,7 +143,7 @@ func (r AWSRoute53RecordSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -159,7 +160,11 @@ func (r *AWSRoute53RecordSet) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -179,11 +184,11 @@ func (r *AWSRoute53RecordSet) UnmarshalJSON(b []byte) error { } // GetAllAWSRoute53RecordSetResources retrieves all AWSRoute53RecordSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoute53RecordSetResources() map[string]AWSRoute53RecordSet { - results := map[string]AWSRoute53RecordSet{} +func (t *Template) GetAllAWSRoute53RecordSetResources() map[string]*AWSRoute53RecordSet { + results := map[string]*AWSRoute53RecordSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSRoute53RecordSet: + case *AWSRoute53RecordSet: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -195,7 +200,8 @@ func (t *Template) GetAllAWSRoute53RecordSetResources() map[string]AWSRoute53Rec if b, err := json.Marshal(resource); err == nil { var result AWSRoute53RecordSet if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -207,10 +213,10 @@ func (t *Template) GetAllAWSRoute53RecordSetResources() map[string]AWSRoute53Rec // GetAWSRoute53RecordSetWithName retrieves all AWSRoute53RecordSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoute53RecordSetWithName(name string) (AWSRoute53RecordSet, error) { +func (t *Template) GetAWSRoute53RecordSetWithName(name string) (*AWSRoute53RecordSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSRoute53RecordSet: + case *AWSRoute53RecordSet: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -222,12 +228,13 @@ func (t *Template) GetAWSRoute53RecordSetWithName(name string) (AWSRoute53Record if b, err := json.Marshal(resource); err == nil { var result AWSRoute53RecordSet if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSRoute53RecordSet{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-route53-recordsetgroup.go b/cloudformation/aws-route53-recordsetgroup.go index 5edc896bd1..18d98e137a 100644 --- a/cloudformation/aws-route53-recordsetgroup.go +++ b/cloudformation/aws-route53-recordsetgroup.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSRoute53RecordSetGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSRoute53RecordSetGroup) MarshalJSON() ([]byte, error) { +func (r *AWSRoute53RecordSetGroup) MarshalJSON() ([]byte, error) { type Properties AWSRoute53RecordSetGroup return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSRoute53RecordSetGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSRoute53RecordSetGroup) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSRoute53RecordSetGroup) UnmarshalJSON(b []byte) error { } // GetAllAWSRoute53RecordSetGroupResources retrieves all AWSRoute53RecordSetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoute53RecordSetGroupResources() map[string]AWSRoute53RecordSetGroup { - results := map[string]AWSRoute53RecordSetGroup{} +func (t *Template) GetAllAWSRoute53RecordSetGroupResources() map[string]*AWSRoute53RecordSetGroup { + results := map[string]*AWSRoute53RecordSetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSRoute53RecordSetGroup: + case *AWSRoute53RecordSetGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSRoute53RecordSetGroupResources() map[string]AWSRoute if b, err := json.Marshal(resource); err == nil { var result AWSRoute53RecordSetGroup if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSRoute53RecordSetGroupResources() map[string]AWSRoute // GetAWSRoute53RecordSetGroupWithName retrieves all AWSRoute53RecordSetGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoute53RecordSetGroupWithName(name string) (AWSRoute53RecordSetGroup, error) { +func (t *Template) GetAWSRoute53RecordSetGroupWithName(name string) (*AWSRoute53RecordSetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSRoute53RecordSetGroup: + case *AWSRoute53RecordSetGroup: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSRoute53RecordSetGroupWithName(name string) (AWSRoute53R if b, err := json.Marshal(resource); err == nil { var result AWSRoute53RecordSetGroup if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSRoute53RecordSetGroup{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-route53resolver-resolverendpoint.go b/cloudformation/aws-route53resolver-resolverendpoint.go index 57ffe890bc..340e8399f6 100644 --- a/cloudformation/aws-route53resolver-resolverendpoint.go +++ b/cloudformation/aws-route53resolver-resolverendpoint.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSRoute53ResolverResolverEndpoint) SetDeletionPolicy(policy DeletionPo // 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 AWSRoute53ResolverResolverEndpoint) MarshalJSON() ([]byte, error) { +func (r *AWSRoute53ResolverResolverEndpoint) MarshalJSON() ([]byte, error) { type Properties AWSRoute53ResolverResolverEndpoint return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSRoute53ResolverResolverEndpoint) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSRoute53ResolverResolverEndpoint) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSRoute53ResolverResolverEndpoint) UnmarshalJSON(b []byte) error { } // GetAllAWSRoute53ResolverResolverEndpointResources retrieves all AWSRoute53ResolverResolverEndpoint items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoute53ResolverResolverEndpointResources() map[string]AWSRoute53ResolverResolverEndpoint { - results := map[string]AWSRoute53ResolverResolverEndpoint{} +func (t *Template) GetAllAWSRoute53ResolverResolverEndpointResources() map[string]*AWSRoute53ResolverResolverEndpoint { + results := map[string]*AWSRoute53ResolverResolverEndpoint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSRoute53ResolverResolverEndpoint: + case *AWSRoute53ResolverResolverEndpoint: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSRoute53ResolverResolverEndpointResources() map[strin if b, err := json.Marshal(resource); err == nil { var result AWSRoute53ResolverResolverEndpoint if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSRoute53ResolverResolverEndpointResources() map[strin // GetAWSRoute53ResolverResolverEndpointWithName retrieves all AWSRoute53ResolverResolverEndpoint items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoute53ResolverResolverEndpointWithName(name string) (AWSRoute53ResolverResolverEndpoint, error) { +func (t *Template) GetAWSRoute53ResolverResolverEndpointWithName(name string) (*AWSRoute53ResolverResolverEndpoint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSRoute53ResolverResolverEndpoint: + case *AWSRoute53ResolverResolverEndpoint: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSRoute53ResolverResolverEndpointWithName(name string) (A if b, err := json.Marshal(resource); err == nil { var result AWSRoute53ResolverResolverEndpoint if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSRoute53ResolverResolverEndpoint{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-route53resolver-resolverrule.go b/cloudformation/aws-route53resolver-resolverrule.go index 0ffd82a291..c779c7e8a9 100644 --- a/cloudformation/aws-route53resolver-resolverrule.go +++ b/cloudformation/aws-route53resolver-resolverrule.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -87,7 +88,7 @@ func (r *AWSRoute53ResolverResolverRule) SetDeletionPolicy(policy DeletionPolicy // 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 AWSRoute53ResolverResolverRule) MarshalJSON() ([]byte, error) { +func (r *AWSRoute53ResolverResolverRule) MarshalJSON() ([]byte, error) { type Properties AWSRoute53ResolverResolverRule return json.Marshal(&struct { Type string @@ -97,7 +98,7 @@ func (r AWSRoute53ResolverResolverRule) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -114,7 +115,11 @@ func (r *AWSRoute53ResolverResolverRule) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -134,11 +139,11 @@ func (r *AWSRoute53ResolverResolverRule) UnmarshalJSON(b []byte) error { } // GetAllAWSRoute53ResolverResolverRuleResources retrieves all AWSRoute53ResolverResolverRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoute53ResolverResolverRuleResources() map[string]AWSRoute53ResolverResolverRule { - results := map[string]AWSRoute53ResolverResolverRule{} +func (t *Template) GetAllAWSRoute53ResolverResolverRuleResources() map[string]*AWSRoute53ResolverResolverRule { + results := map[string]*AWSRoute53ResolverResolverRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSRoute53ResolverResolverRule: + case *AWSRoute53ResolverResolverRule: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -150,7 +155,8 @@ func (t *Template) GetAllAWSRoute53ResolverResolverRuleResources() map[string]AW if b, err := json.Marshal(resource); err == nil { var result AWSRoute53ResolverResolverRule if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -162,10 +168,10 @@ func (t *Template) GetAllAWSRoute53ResolverResolverRuleResources() map[string]AW // GetAWSRoute53ResolverResolverRuleWithName retrieves all AWSRoute53ResolverResolverRule items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoute53ResolverResolverRuleWithName(name string) (AWSRoute53ResolverResolverRule, error) { +func (t *Template) GetAWSRoute53ResolverResolverRuleWithName(name string) (*AWSRoute53ResolverResolverRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSRoute53ResolverResolverRule: + case *AWSRoute53ResolverResolverRule: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -177,12 +183,13 @@ func (t *Template) GetAWSRoute53ResolverResolverRuleWithName(name string) (AWSRo if b, err := json.Marshal(resource); err == nil { var result AWSRoute53ResolverResolverRule if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSRoute53ResolverResolverRule{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-route53resolver-resolverruleassociation.go b/cloudformation/aws-route53resolver-resolverruleassociation.go new file mode 100644 index 0000000000..c550211916 --- /dev/null +++ b/cloudformation/aws-route53resolver-resolverruleassociation.go @@ -0,0 +1,180 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSRoute53ResolverResolverRuleAssociation AWS CloudFormation Resource (AWS::Route53Resolver::ResolverRuleAssociation) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverruleassociation.html +type AWSRoute53ResolverResolverRuleAssociation struct { + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverruleassociation.html#cfn-route53resolver-resolverruleassociation-name + Name string `json:"Name,omitempty"` + + // ResolverRuleId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverruleassociation.html#cfn-route53resolver-resolverruleassociation-resolverruleid + ResolverRuleId string `json:"ResolverRuleId,omitempty"` + + // VPCId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverruleassociation.html#cfn-route53resolver-resolverruleassociation-vpcid + VPCId string `json:"VPCId,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSRoute53ResolverResolverRuleAssociation) AWSCloudFormationType() string { + return "AWS::Route53Resolver::ResolverRuleAssociation" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoute53ResolverResolverRuleAssociation) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSRoute53ResolverResolverRuleAssociation) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoute53ResolverResolverRuleAssociation) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSRoute53ResolverResolverRuleAssociation) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSRoute53ResolverResolverRuleAssociation) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSRoute53ResolverResolverRuleAssociation) MarshalJSON() ([]byte, error) { + type Properties AWSRoute53ResolverResolverRuleAssociation + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSRoute53ResolverResolverRuleAssociation) UnmarshalJSON(b []byte) error { + type Properties AWSRoute53ResolverResolverRuleAssociation + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSRoute53ResolverResolverRuleAssociation(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSRoute53ResolverResolverRuleAssociationResources retrieves all AWSRoute53ResolverResolverRuleAssociation items from an AWS CloudFormation template +func (t *Template) GetAllAWSRoute53ResolverResolverRuleAssociationResources() map[string]*AWSRoute53ResolverResolverRuleAssociation { + results := map[string]*AWSRoute53ResolverResolverRuleAssociation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRoute53ResolverResolverRuleAssociation: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::Route53Resolver::ResolverRuleAssociation" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSRoute53ResolverResolverRuleAssociation + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSRoute53ResolverResolverRuleAssociationWithName retrieves all AWSRoute53ResolverResolverRuleAssociation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRoute53ResolverResolverRuleAssociationWithName(name string) (*AWSRoute53ResolverResolverRuleAssociation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRoute53ResolverResolverRuleAssociation: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::Route53Resolver::ResolverRuleAssociation" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSRoute53ResolverResolverRuleAssociation + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-s3-bucket.go b/cloudformation/aws-s3-bucket.go index 9f51b2f4bf..55f91d1f6f 100644 --- a/cloudformation/aws-s3-bucket.go +++ b/cloudformation/aws-s3-bucket.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -137,7 +138,7 @@ func (r *AWSS3Bucket) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSS3Bucket) MarshalJSON() ([]byte, error) { +func (r *AWSS3Bucket) MarshalJSON() ([]byte, error) { type Properties AWSS3Bucket return json.Marshal(&struct { Type string @@ -147,7 +148,7 @@ func (r AWSS3Bucket) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -164,7 +165,11 @@ func (r *AWSS3Bucket) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -184,11 +189,11 @@ func (r *AWSS3Bucket) UnmarshalJSON(b []byte) error { } // GetAllAWSS3BucketResources retrieves all AWSS3Bucket items from an AWS CloudFormation template -func (t *Template) GetAllAWSS3BucketResources() map[string]AWSS3Bucket { - results := map[string]AWSS3Bucket{} +func (t *Template) GetAllAWSS3BucketResources() map[string]*AWSS3Bucket { + results := map[string]*AWSS3Bucket{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSS3Bucket: + case *AWSS3Bucket: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -200,7 +205,8 @@ func (t *Template) GetAllAWSS3BucketResources() map[string]AWSS3Bucket { if b, err := json.Marshal(resource); err == nil { var result AWSS3Bucket if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -212,10 +218,10 @@ func (t *Template) GetAllAWSS3BucketResources() map[string]AWSS3Bucket { // GetAWSS3BucketWithName retrieves all AWSS3Bucket items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSS3BucketWithName(name string) (AWSS3Bucket, error) { +func (t *Template) GetAWSS3BucketWithName(name string) (*AWSS3Bucket, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSS3Bucket: + case *AWSS3Bucket: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -227,12 +233,13 @@ func (t *Template) GetAWSS3BucketWithName(name string) (AWSS3Bucket, error) { if b, err := json.Marshal(resource); err == nil { var result AWSS3Bucket if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSS3Bucket{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-s3-bucketpolicy.go b/cloudformation/aws-s3-bucketpolicy.go index f344e18554..b3334d2b6d 100644 --- a/cloudformation/aws-s3-bucketpolicy.go +++ b/cloudformation/aws-s3-bucketpolicy.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSS3BucketPolicy) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSS3BucketPolicy) MarshalJSON() ([]byte, error) { +func (r *AWSS3BucketPolicy) MarshalJSON() ([]byte, error) { type Properties AWSS3BucketPolicy return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSS3BucketPolicy) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSS3BucketPolicy) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSS3BucketPolicy) UnmarshalJSON(b []byte) error { } // GetAllAWSS3BucketPolicyResources retrieves all AWSS3BucketPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSS3BucketPolicyResources() map[string]AWSS3BucketPolicy { - results := map[string]AWSS3BucketPolicy{} +func (t *Template) GetAllAWSS3BucketPolicyResources() map[string]*AWSS3BucketPolicy { + results := map[string]*AWSS3BucketPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSS3BucketPolicy: + case *AWSS3BucketPolicy: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSS3BucketPolicyResources() map[string]AWSS3BucketPoli if b, err := json.Marshal(resource); err == nil { var result AWSS3BucketPolicy if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSS3BucketPolicyResources() map[string]AWSS3BucketPoli // GetAWSS3BucketPolicyWithName retrieves all AWSS3BucketPolicy items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSS3BucketPolicyWithName(name string) (AWSS3BucketPolicy, error) { +func (t *Template) GetAWSS3BucketPolicyWithName(name string) (*AWSS3BucketPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSS3BucketPolicy: + case *AWSS3BucketPolicy: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSS3BucketPolicyWithName(name string) (AWSS3BucketPolicy, if b, err := json.Marshal(resource); err == nil { var result AWSS3BucketPolicy if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSS3BucketPolicy{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-sagemaker-endpoint.go b/cloudformation/aws-sagemaker-endpoint.go index d99397a9b1..a05b8ee1e7 100644 --- a/cloudformation/aws-sagemaker-endpoint.go +++ b/cloudformation/aws-sagemaker-endpoint.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSSageMakerEndpoint) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSSageMakerEndpoint) MarshalJSON() ([]byte, error) { +func (r *AWSSageMakerEndpoint) MarshalJSON() ([]byte, error) { type Properties AWSSageMakerEndpoint return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSSageMakerEndpoint) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSSageMakerEndpoint) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSSageMakerEndpoint) UnmarshalJSON(b []byte) error { } // GetAllAWSSageMakerEndpointResources retrieves all AWSSageMakerEndpoint items from an AWS CloudFormation template -func (t *Template) GetAllAWSSageMakerEndpointResources() map[string]AWSSageMakerEndpoint { - results := map[string]AWSSageMakerEndpoint{} +func (t *Template) GetAllAWSSageMakerEndpointResources() map[string]*AWSSageMakerEndpoint { + results := map[string]*AWSSageMakerEndpoint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSageMakerEndpoint: + case *AWSSageMakerEndpoint: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSSageMakerEndpointResources() map[string]AWSSageMaker if b, err := json.Marshal(resource); err == nil { var result AWSSageMakerEndpoint if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSSageMakerEndpointResources() map[string]AWSSageMaker // GetAWSSageMakerEndpointWithName retrieves all AWSSageMakerEndpoint items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSageMakerEndpointWithName(name string) (AWSSageMakerEndpoint, error) { +func (t *Template) GetAWSSageMakerEndpointWithName(name string) (*AWSSageMakerEndpoint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSageMakerEndpoint: + case *AWSSageMakerEndpoint: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSSageMakerEndpointWithName(name string) (AWSSageMakerEnd if b, err := json.Marshal(resource); err == nil { var result AWSSageMakerEndpoint if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSageMakerEndpoint{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-sagemaker-endpointconfig.go b/cloudformation/aws-sagemaker-endpointconfig.go index dfb6c66cb8..3f898102d7 100644 --- a/cloudformation/aws-sagemaker-endpointconfig.go +++ b/cloudformation/aws-sagemaker-endpointconfig.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSSageMakerEndpointConfig) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSSageMakerEndpointConfig) MarshalJSON() ([]byte, error) { +func (r *AWSSageMakerEndpointConfig) MarshalJSON() ([]byte, error) { type Properties AWSSageMakerEndpointConfig return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSSageMakerEndpointConfig) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSSageMakerEndpointConfig) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSSageMakerEndpointConfig) UnmarshalJSON(b []byte) error { } // GetAllAWSSageMakerEndpointConfigResources retrieves all AWSSageMakerEndpointConfig items from an AWS CloudFormation template -func (t *Template) GetAllAWSSageMakerEndpointConfigResources() map[string]AWSSageMakerEndpointConfig { - results := map[string]AWSSageMakerEndpointConfig{} +func (t *Template) GetAllAWSSageMakerEndpointConfigResources() map[string]*AWSSageMakerEndpointConfig { + results := map[string]*AWSSageMakerEndpointConfig{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSageMakerEndpointConfig: + case *AWSSageMakerEndpointConfig: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSSageMakerEndpointConfigResources() map[string]AWSSag if b, err := json.Marshal(resource); err == nil { var result AWSSageMakerEndpointConfig if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSSageMakerEndpointConfigResources() map[string]AWSSag // GetAWSSageMakerEndpointConfigWithName retrieves all AWSSageMakerEndpointConfig items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSageMakerEndpointConfigWithName(name string) (AWSSageMakerEndpointConfig, error) { +func (t *Template) GetAWSSageMakerEndpointConfigWithName(name string) (*AWSSageMakerEndpointConfig, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSageMakerEndpointConfig: + case *AWSSageMakerEndpointConfig: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSSageMakerEndpointConfigWithName(name string) (AWSSageMa if b, err := json.Marshal(resource); err == nil { var result AWSSageMakerEndpointConfig if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSageMakerEndpointConfig{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-sagemaker-endpointconfig_productionvariant.go b/cloudformation/aws-sagemaker-endpointconfig_productionvariant.go index 85212d4f9d..386ed63627 100644 --- a/cloudformation/aws-sagemaker-endpointconfig_productionvariant.go +++ b/cloudformation/aws-sagemaker-endpointconfig_productionvariant.go @@ -4,6 +4,11 @@ package cloudformation // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-productionvariant.html type AWSSageMakerEndpointConfig_ProductionVariant struct { + // AcceleratorType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-productionvariant.html#cfn-sagemaker-endpointconfig-productionvariant-acceleratortype + AcceleratorType string `json:"AcceleratorType,omitempty"` + // InitialInstanceCount AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-productionvariant.html#cfn-sagemaker-endpointconfig-productionvariant-initialinstancecount diff --git a/cloudformation/aws-sagemaker-model.go b/cloudformation/aws-sagemaker-model.go index 9f8af8dbc5..8e87a01970 100644 --- a/cloudformation/aws-sagemaker-model.go +++ b/cloudformation/aws-sagemaker-model.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -10,6 +11,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-model.html type AWSSageMakerModel struct { + // Containers AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-model.html#cfn-sagemaker-model-containers + Containers []AWSSageMakerModel_ContainerDefinition `json:"Containers,omitempty"` + // ExecutionRoleArn AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-model.html#cfn-sagemaker-model-executionrolearn @@ -21,7 +27,7 @@ type AWSSageMakerModel struct { ModelName string `json:"ModelName,omitempty"` // PrimaryContainer AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-model.html#cfn-sagemaker-model-primarycontainer PrimaryContainer *AWSSageMakerModel_ContainerDefinition `json:"PrimaryContainer,omitempty"` @@ -82,7 +88,7 @@ func (r *AWSSageMakerModel) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSSageMakerModel) MarshalJSON() ([]byte, error) { +func (r *AWSSageMakerModel) MarshalJSON() ([]byte, error) { type Properties AWSSageMakerModel return json.Marshal(&struct { Type string @@ -92,7 +98,7 @@ func (r AWSSageMakerModel) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +115,11 @@ func (r *AWSSageMakerModel) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +139,11 @@ func (r *AWSSageMakerModel) UnmarshalJSON(b []byte) error { } // GetAllAWSSageMakerModelResources retrieves all AWSSageMakerModel items from an AWS CloudFormation template -func (t *Template) GetAllAWSSageMakerModelResources() map[string]AWSSageMakerModel { - results := map[string]AWSSageMakerModel{} +func (t *Template) GetAllAWSSageMakerModelResources() map[string]*AWSSageMakerModel { + results := map[string]*AWSSageMakerModel{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSageMakerModel: + case *AWSSageMakerModel: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +155,8 @@ func (t *Template) GetAllAWSSageMakerModelResources() map[string]AWSSageMakerMod if b, err := json.Marshal(resource); err == nil { var result AWSSageMakerModel if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +168,10 @@ func (t *Template) GetAllAWSSageMakerModelResources() map[string]AWSSageMakerMod // GetAWSSageMakerModelWithName retrieves all AWSSageMakerModel items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSageMakerModelWithName(name string) (AWSSageMakerModel, error) { +func (t *Template) GetAWSSageMakerModelWithName(name string) (*AWSSageMakerModel, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSageMakerModel: + case *AWSSageMakerModel: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +183,13 @@ func (t *Template) GetAWSSageMakerModelWithName(name string) (AWSSageMakerModel, if b, err := json.Marshal(resource); err == nil { var result AWSSageMakerModel if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSageMakerModel{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-sagemaker-notebookinstance.go b/cloudformation/aws-sagemaker-notebookinstance.go index fc9e0977e4..9e09d97c1b 100644 --- a/cloudformation/aws-sagemaker-notebookinstance.go +++ b/cloudformation/aws-sagemaker-notebookinstance.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -107,7 +108,7 @@ func (r *AWSSageMakerNotebookInstance) SetDeletionPolicy(policy DeletionPolicy) // 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 AWSSageMakerNotebookInstance) MarshalJSON() ([]byte, error) { +func (r *AWSSageMakerNotebookInstance) MarshalJSON() ([]byte, error) { type Properties AWSSageMakerNotebookInstance return json.Marshal(&struct { Type string @@ -117,7 +118,7 @@ func (r AWSSageMakerNotebookInstance) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -134,7 +135,11 @@ func (r *AWSSageMakerNotebookInstance) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -154,11 +159,11 @@ func (r *AWSSageMakerNotebookInstance) UnmarshalJSON(b []byte) error { } // GetAllAWSSageMakerNotebookInstanceResources retrieves all AWSSageMakerNotebookInstance items from an AWS CloudFormation template -func (t *Template) GetAllAWSSageMakerNotebookInstanceResources() map[string]AWSSageMakerNotebookInstance { - results := map[string]AWSSageMakerNotebookInstance{} +func (t *Template) GetAllAWSSageMakerNotebookInstanceResources() map[string]*AWSSageMakerNotebookInstance { + results := map[string]*AWSSageMakerNotebookInstance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSageMakerNotebookInstance: + case *AWSSageMakerNotebookInstance: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -170,7 +175,8 @@ func (t *Template) GetAllAWSSageMakerNotebookInstanceResources() map[string]AWSS if b, err := json.Marshal(resource); err == nil { var result AWSSageMakerNotebookInstance if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -182,10 +188,10 @@ func (t *Template) GetAllAWSSageMakerNotebookInstanceResources() map[string]AWSS // GetAWSSageMakerNotebookInstanceWithName retrieves all AWSSageMakerNotebookInstance items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSageMakerNotebookInstanceWithName(name string) (AWSSageMakerNotebookInstance, error) { +func (t *Template) GetAWSSageMakerNotebookInstanceWithName(name string) (*AWSSageMakerNotebookInstance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSageMakerNotebookInstance: + case *AWSSageMakerNotebookInstance: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -197,12 +203,13 @@ func (t *Template) GetAWSSageMakerNotebookInstanceWithName(name string) (AWSSage if b, err := json.Marshal(resource); err == nil { var result AWSSageMakerNotebookInstance if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSageMakerNotebookInstance{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-sagemaker-notebookinstancelifecycleconfig.go b/cloudformation/aws-sagemaker-notebookinstancelifecycleconfig.go index 909a3f483a..38ea57cb49 100644 --- a/cloudformation/aws-sagemaker-notebookinstancelifecycleconfig.go +++ b/cloudformation/aws-sagemaker-notebookinstancelifecycleconfig.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSSageMakerNotebookInstanceLifecycleConfig) SetDeletionPolicy(policy D // 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 AWSSageMakerNotebookInstanceLifecycleConfig) MarshalJSON() ([]byte, error) { +func (r *AWSSageMakerNotebookInstanceLifecycleConfig) MarshalJSON() ([]byte, error) { type Properties AWSSageMakerNotebookInstanceLifecycleConfig return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSSageMakerNotebookInstanceLifecycleConfig) MarshalJSON() ([]byte, erro DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSSageMakerNotebookInstanceLifecycleConfig) UnmarshalJSON(b []byte) er DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSSageMakerNotebookInstanceLifecycleConfig) UnmarshalJSON(b []byte) er } // GetAllAWSSageMakerNotebookInstanceLifecycleConfigResources retrieves all AWSSageMakerNotebookInstanceLifecycleConfig items from an AWS CloudFormation template -func (t *Template) GetAllAWSSageMakerNotebookInstanceLifecycleConfigResources() map[string]AWSSageMakerNotebookInstanceLifecycleConfig { - results := map[string]AWSSageMakerNotebookInstanceLifecycleConfig{} +func (t *Template) GetAllAWSSageMakerNotebookInstanceLifecycleConfigResources() map[string]*AWSSageMakerNotebookInstanceLifecycleConfig { + results := map[string]*AWSSageMakerNotebookInstanceLifecycleConfig{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSageMakerNotebookInstanceLifecycleConfig: + case *AWSSageMakerNotebookInstanceLifecycleConfig: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSSageMakerNotebookInstanceLifecycleConfigResources() if b, err := json.Marshal(resource); err == nil { var result AWSSageMakerNotebookInstanceLifecycleConfig if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSSageMakerNotebookInstanceLifecycleConfigResources() // GetAWSSageMakerNotebookInstanceLifecycleConfigWithName retrieves all AWSSageMakerNotebookInstanceLifecycleConfig items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSageMakerNotebookInstanceLifecycleConfigWithName(name string) (AWSSageMakerNotebookInstanceLifecycleConfig, error) { +func (t *Template) GetAWSSageMakerNotebookInstanceLifecycleConfigWithName(name string) (*AWSSageMakerNotebookInstanceLifecycleConfig, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSageMakerNotebookInstanceLifecycleConfig: + case *AWSSageMakerNotebookInstanceLifecycleConfig: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSSageMakerNotebookInstanceLifecycleConfigWithName(name s if b, err := json.Marshal(resource); err == nil { var result AWSSageMakerNotebookInstanceLifecycleConfig if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSageMakerNotebookInstanceLifecycleConfig{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-sdb-domain.go b/cloudformation/aws-sdb-domain.go index 59040db370..5fb325859f 100644 --- a/cloudformation/aws-sdb-domain.go +++ b/cloudformation/aws-sdb-domain.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -62,7 +63,7 @@ func (r *AWSSDBDomain) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSSDBDomain) MarshalJSON() ([]byte, error) { +func (r *AWSSDBDomain) MarshalJSON() ([]byte, error) { type Properties AWSSDBDomain return json.Marshal(&struct { Type string @@ -72,7 +73,7 @@ func (r AWSSDBDomain) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -89,7 +90,11 @@ func (r *AWSSDBDomain) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -109,11 +114,11 @@ func (r *AWSSDBDomain) UnmarshalJSON(b []byte) error { } // GetAllAWSSDBDomainResources retrieves all AWSSDBDomain items from an AWS CloudFormation template -func (t *Template) GetAllAWSSDBDomainResources() map[string]AWSSDBDomain { - results := map[string]AWSSDBDomain{} +func (t *Template) GetAllAWSSDBDomainResources() map[string]*AWSSDBDomain { + results := map[string]*AWSSDBDomain{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSDBDomain: + case *AWSSDBDomain: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -125,7 +130,8 @@ func (t *Template) GetAllAWSSDBDomainResources() map[string]AWSSDBDomain { if b, err := json.Marshal(resource); err == nil { var result AWSSDBDomain if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -137,10 +143,10 @@ func (t *Template) GetAllAWSSDBDomainResources() map[string]AWSSDBDomain { // GetAWSSDBDomainWithName retrieves all AWSSDBDomain items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSDBDomainWithName(name string) (AWSSDBDomain, error) { +func (t *Template) GetAWSSDBDomainWithName(name string) (*AWSSDBDomain, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSDBDomain: + case *AWSSDBDomain: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -152,12 +158,13 @@ func (t *Template) GetAWSSDBDomainWithName(name string) (AWSSDBDomain, error) { if b, err := json.Marshal(resource); err == nil { var result AWSSDBDomain if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSDBDomain{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-secretsmanager-resourcepolicy.go b/cloudformation/aws-secretsmanager-resourcepolicy.go index a42443fc91..961386e8f3 100644 --- a/cloudformation/aws-secretsmanager-resourcepolicy.go +++ b/cloudformation/aws-secretsmanager-resourcepolicy.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSSecretsManagerResourcePolicy) SetDeletionPolicy(policy DeletionPolic // 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 AWSSecretsManagerResourcePolicy) MarshalJSON() ([]byte, error) { +func (r *AWSSecretsManagerResourcePolicy) MarshalJSON() ([]byte, error) { type Properties AWSSecretsManagerResourcePolicy return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSSecretsManagerResourcePolicy) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSSecretsManagerResourcePolicy) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSSecretsManagerResourcePolicy) UnmarshalJSON(b []byte) error { } // GetAllAWSSecretsManagerResourcePolicyResources retrieves all AWSSecretsManagerResourcePolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSSecretsManagerResourcePolicyResources() map[string]AWSSecretsManagerResourcePolicy { - results := map[string]AWSSecretsManagerResourcePolicy{} +func (t *Template) GetAllAWSSecretsManagerResourcePolicyResources() map[string]*AWSSecretsManagerResourcePolicy { + results := map[string]*AWSSecretsManagerResourcePolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSecretsManagerResourcePolicy: + case *AWSSecretsManagerResourcePolicy: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSSecretsManagerResourcePolicyResources() map[string]A if b, err := json.Marshal(resource); err == nil { var result AWSSecretsManagerResourcePolicy if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSSecretsManagerResourcePolicyResources() map[string]A // GetAWSSecretsManagerResourcePolicyWithName retrieves all AWSSecretsManagerResourcePolicy items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSecretsManagerResourcePolicyWithName(name string) (AWSSecretsManagerResourcePolicy, error) { +func (t *Template) GetAWSSecretsManagerResourcePolicyWithName(name string) (*AWSSecretsManagerResourcePolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSecretsManagerResourcePolicy: + case *AWSSecretsManagerResourcePolicy: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSSecretsManagerResourcePolicyWithName(name string) (AWSS if b, err := json.Marshal(resource); err == nil { var result AWSSecretsManagerResourcePolicy if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSecretsManagerResourcePolicy{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-secretsmanager-rotationschedule.go b/cloudformation/aws-secretsmanager-rotationschedule.go index 7f5acb7621..aadaca58d7 100644 --- a/cloudformation/aws-secretsmanager-rotationschedule.go +++ b/cloudformation/aws-secretsmanager-rotationschedule.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSSecretsManagerRotationSchedule) SetDeletionPolicy(policy DeletionPol // 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 AWSSecretsManagerRotationSchedule) MarshalJSON() ([]byte, error) { +func (r *AWSSecretsManagerRotationSchedule) MarshalJSON() ([]byte, error) { type Properties AWSSecretsManagerRotationSchedule return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSSecretsManagerRotationSchedule) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSSecretsManagerRotationSchedule) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSSecretsManagerRotationSchedule) UnmarshalJSON(b []byte) error { } // GetAllAWSSecretsManagerRotationScheduleResources retrieves all AWSSecretsManagerRotationSchedule items from an AWS CloudFormation template -func (t *Template) GetAllAWSSecretsManagerRotationScheduleResources() map[string]AWSSecretsManagerRotationSchedule { - results := map[string]AWSSecretsManagerRotationSchedule{} +func (t *Template) GetAllAWSSecretsManagerRotationScheduleResources() map[string]*AWSSecretsManagerRotationSchedule { + results := map[string]*AWSSecretsManagerRotationSchedule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSecretsManagerRotationSchedule: + case *AWSSecretsManagerRotationSchedule: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSSecretsManagerRotationScheduleResources() map[string if b, err := json.Marshal(resource); err == nil { var result AWSSecretsManagerRotationSchedule if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSSecretsManagerRotationScheduleResources() map[string // GetAWSSecretsManagerRotationScheduleWithName retrieves all AWSSecretsManagerRotationSchedule items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSecretsManagerRotationScheduleWithName(name string) (AWSSecretsManagerRotationSchedule, error) { +func (t *Template) GetAWSSecretsManagerRotationScheduleWithName(name string) (*AWSSecretsManagerRotationSchedule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSecretsManagerRotationSchedule: + case *AWSSecretsManagerRotationSchedule: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSSecretsManagerRotationScheduleWithName(name string) (AW if b, err := json.Marshal(resource); err == nil { var result AWSSecretsManagerRotationSchedule if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSecretsManagerRotationSchedule{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-secretsmanager-secret.go b/cloudformation/aws-secretsmanager-secret.go index 1e349e277a..03808f4a3b 100644 --- a/cloudformation/aws-secretsmanager-secret.go +++ b/cloudformation/aws-secretsmanager-secret.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -87,7 +88,7 @@ func (r *AWSSecretsManagerSecret) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSSecretsManagerSecret) MarshalJSON() ([]byte, error) { +func (r *AWSSecretsManagerSecret) MarshalJSON() ([]byte, error) { type Properties AWSSecretsManagerSecret return json.Marshal(&struct { Type string @@ -97,7 +98,7 @@ func (r AWSSecretsManagerSecret) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -114,7 +115,11 @@ func (r *AWSSecretsManagerSecret) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -134,11 +139,11 @@ func (r *AWSSecretsManagerSecret) UnmarshalJSON(b []byte) error { } // GetAllAWSSecretsManagerSecretResources retrieves all AWSSecretsManagerSecret items from an AWS CloudFormation template -func (t *Template) GetAllAWSSecretsManagerSecretResources() map[string]AWSSecretsManagerSecret { - results := map[string]AWSSecretsManagerSecret{} +func (t *Template) GetAllAWSSecretsManagerSecretResources() map[string]*AWSSecretsManagerSecret { + results := map[string]*AWSSecretsManagerSecret{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSecretsManagerSecret: + case *AWSSecretsManagerSecret: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -150,7 +155,8 @@ func (t *Template) GetAllAWSSecretsManagerSecretResources() map[string]AWSSecret if b, err := json.Marshal(resource); err == nil { var result AWSSecretsManagerSecret if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -162,10 +168,10 @@ func (t *Template) GetAllAWSSecretsManagerSecretResources() map[string]AWSSecret // GetAWSSecretsManagerSecretWithName retrieves all AWSSecretsManagerSecret items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSecretsManagerSecretWithName(name string) (AWSSecretsManagerSecret, error) { +func (t *Template) GetAWSSecretsManagerSecretWithName(name string) (*AWSSecretsManagerSecret, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSecretsManagerSecret: + case *AWSSecretsManagerSecret: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -177,12 +183,13 @@ func (t *Template) GetAWSSecretsManagerSecretWithName(name string) (AWSSecretsMa if b, err := json.Marshal(resource); err == nil { var result AWSSecretsManagerSecret if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSecretsManagerSecret{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-secretsmanager-secrettargetattachment.go b/cloudformation/aws-secretsmanager-secrettargetattachment.go index f87b17791a..41fbe033ba 100644 --- a/cloudformation/aws-secretsmanager-secrettargetattachment.go +++ b/cloudformation/aws-secretsmanager-secrettargetattachment.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSSecretsManagerSecretTargetAttachment) SetDeletionPolicy(policy Delet // 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 AWSSecretsManagerSecretTargetAttachment) MarshalJSON() ([]byte, error) { +func (r *AWSSecretsManagerSecretTargetAttachment) MarshalJSON() ([]byte, error) { type Properties AWSSecretsManagerSecretTargetAttachment return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSSecretsManagerSecretTargetAttachment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSSecretsManagerSecretTargetAttachment) UnmarshalJSON(b []byte) error DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSSecretsManagerSecretTargetAttachment) UnmarshalJSON(b []byte) error } // GetAllAWSSecretsManagerSecretTargetAttachmentResources retrieves all AWSSecretsManagerSecretTargetAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSSecretsManagerSecretTargetAttachmentResources() map[string]AWSSecretsManagerSecretTargetAttachment { - results := map[string]AWSSecretsManagerSecretTargetAttachment{} +func (t *Template) GetAllAWSSecretsManagerSecretTargetAttachmentResources() map[string]*AWSSecretsManagerSecretTargetAttachment { + results := map[string]*AWSSecretsManagerSecretTargetAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSecretsManagerSecretTargetAttachment: + case *AWSSecretsManagerSecretTargetAttachment: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSSecretsManagerSecretTargetAttachmentResources() map[ if b, err := json.Marshal(resource); err == nil { var result AWSSecretsManagerSecretTargetAttachment if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSSecretsManagerSecretTargetAttachmentResources() map[ // GetAWSSecretsManagerSecretTargetAttachmentWithName retrieves all AWSSecretsManagerSecretTargetAttachment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSecretsManagerSecretTargetAttachmentWithName(name string) (AWSSecretsManagerSecretTargetAttachment, error) { +func (t *Template) GetAWSSecretsManagerSecretTargetAttachmentWithName(name string) (*AWSSecretsManagerSecretTargetAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSecretsManagerSecretTargetAttachment: + case *AWSSecretsManagerSecretTargetAttachment: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSSecretsManagerSecretTargetAttachmentWithName(name strin if b, err := json.Marshal(resource); err == nil { var result AWSSecretsManagerSecretTargetAttachment if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSecretsManagerSecretTargetAttachment{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-serverless-api.go b/cloudformation/aws-serverless-api.go index 7e024a7f33..3e7c8bbddd 100644 --- a/cloudformation/aws-serverless-api.go +++ b/cloudformation/aws-serverless-api.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -10,6 +11,16 @@ import ( // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi type AWSServerlessApi struct { + // Auth AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi + Auth *AWSServerlessApi_Auth `json:"Auth,omitempty"` + + // BinaryMediaTypes AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi + BinaryMediaTypes []string `json:"BinaryMediaTypes,omitempty"` + // CacheClusterEnabled AWS CloudFormation Property // Required: false // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi @@ -20,6 +31,11 @@ type AWSServerlessApi struct { // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi CacheClusterSize string `json:"CacheClusterSize,omitempty"` + // Cors AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi + Cors string `json:"Cors,omitempty"` + // DefinitionBody AWS CloudFormation Property // Required: false // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi @@ -30,6 +46,11 @@ type AWSServerlessApi struct { // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi DefinitionUri *AWSServerlessApi_DefinitionUri `json:"DefinitionUri,omitempty"` + // EndpointConfiguration AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi + EndpointConfiguration string `json:"EndpointConfiguration,omitempty"` + // MethodSettings AWS CloudFormation Property // Required: false // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi @@ -97,7 +118,7 @@ func (r *AWSServerlessApi) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSServerlessApi) MarshalJSON() ([]byte, error) { +func (r *AWSServerlessApi) MarshalJSON() ([]byte, error) { type Properties AWSServerlessApi return json.Marshal(&struct { Type string @@ -107,7 +128,7 @@ func (r AWSServerlessApi) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -124,7 +145,11 @@ func (r *AWSServerlessApi) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -144,11 +169,11 @@ func (r *AWSServerlessApi) UnmarshalJSON(b []byte) error { } // GetAllAWSServerlessApiResources retrieves all AWSServerlessApi items from an AWS CloudFormation template -func (t *Template) GetAllAWSServerlessApiResources() map[string]AWSServerlessApi { - results := map[string]AWSServerlessApi{} +func (t *Template) GetAllAWSServerlessApiResources() map[string]*AWSServerlessApi { + results := map[string]*AWSServerlessApi{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSServerlessApi: + case *AWSServerlessApi: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -160,7 +185,8 @@ func (t *Template) GetAllAWSServerlessApiResources() map[string]AWSServerlessApi if b, err := json.Marshal(resource); err == nil { var result AWSServerlessApi if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -172,10 +198,10 @@ func (t *Template) GetAllAWSServerlessApiResources() map[string]AWSServerlessApi // GetAWSServerlessApiWithName retrieves all AWSServerlessApi items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServerlessApiWithName(name string) (AWSServerlessApi, error) { +func (t *Template) GetAWSServerlessApiWithName(name string) (*AWSServerlessApi, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSServerlessApi: + case *AWSServerlessApi: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -187,12 +213,13 @@ func (t *Template) GetAWSServerlessApiWithName(name string) (AWSServerlessApi, e if b, err := json.Marshal(resource); err == nil { var result AWSServerlessApi if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSServerlessApi{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-serverless-api_auth.go b/cloudformation/aws-serverless-api_auth.go new file mode 100644 index 0000000000..0a3c10b2db --- /dev/null +++ b/cloudformation/aws-serverless-api_auth.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSServerlessApi_Auth AWS CloudFormation Resource (AWS::Serverless::Api.Auth) +// See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api-auth-object +type AWSServerlessApi_Auth struct { + + // Authorizers AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api-auth-object + Authorizers string `json:"Authorizers,omitempty"` + + // DefaultAuthorizer AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api-auth-object + DefaultAuthorizer string `json:"DefaultAuthorizer,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSServerlessApi_Auth) AWSCloudFormationType() string { + return "AWS::Serverless::Api.Auth" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSServerlessApi_Auth) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSServerlessApi_Auth) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSServerlessApi_Auth) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSServerlessApi_Auth) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSServerlessApi_Auth) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-serverless-application.go b/cloudformation/aws-serverless-application.go new file mode 100644 index 0000000000..5d802d3a53 --- /dev/null +++ b/cloudformation/aws-serverless-application.go @@ -0,0 +1,190 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSServerlessApplication AWS CloudFormation Resource (AWS::Serverless::Application) +// See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication +type AWSServerlessApplication struct { + + // Location AWS CloudFormation Property + // Required: true + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication + Location *AWSServerlessApplication_Location `json:"Location,omitempty"` + + // NotificationArns AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication + NotificationArns []string `json:"NotificationArns,omitempty"` + + // Parameters AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication + Parameters map[string]string `json:"Parameters,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication + Tags map[string]string `json:"Tags,omitempty"` + + // TimeoutInMinutes AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication + TimeoutInMinutes int `json:"TimeoutInMinutes,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSServerlessApplication) AWSCloudFormationType() string { + return "AWS::Serverless::Application" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSServerlessApplication) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSServerlessApplication) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSServerlessApplication) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSServerlessApplication) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSServerlessApplication) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSServerlessApplication) MarshalJSON() ([]byte, error) { + type Properties AWSServerlessApplication + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSServerlessApplication) UnmarshalJSON(b []byte) error { + type Properties AWSServerlessApplication + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSServerlessApplication(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSServerlessApplicationResources retrieves all AWSServerlessApplication items from an AWS CloudFormation template +func (t *Template) GetAllAWSServerlessApplicationResources() map[string]*AWSServerlessApplication { + results := map[string]*AWSServerlessApplication{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServerlessApplication: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::Serverless::Application" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSServerlessApplication + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSServerlessApplicationWithName retrieves all AWSServerlessApplication items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServerlessApplicationWithName(name string) (*AWSServerlessApplication, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServerlessApplication: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::Serverless::Application" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSServerlessApplication + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-serverless-application_applicationlocation.go b/cloudformation/aws-serverless-application_applicationlocation.go new file mode 100644 index 0000000000..8c34b278b3 --- /dev/null +++ b/cloudformation/aws-serverless-application_applicationlocation.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSServerlessApplication_ApplicationLocation AWS CloudFormation Resource (AWS::Serverless::Application.ApplicationLocation) +// See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication +type AWSServerlessApplication_ApplicationLocation struct { + + // ApplicationId AWS CloudFormation Property + // Required: true + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication + ApplicationId string `json:"ApplicationId,omitempty"` + + // SemanticVersion AWS CloudFormation Property + // Required: true + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication + SemanticVersion string `json:"SemanticVersion,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSServerlessApplication_ApplicationLocation) AWSCloudFormationType() string { + return "AWS::Serverless::Application.ApplicationLocation" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSServerlessApplication_ApplicationLocation) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSServerlessApplication_ApplicationLocation) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSServerlessApplication_ApplicationLocation) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSServerlessApplication_ApplicationLocation) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSServerlessApplication_ApplicationLocation) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-serverless-function.go b/cloudformation/aws-serverless-function.go index 761d58f197..5e8f709246 100644 --- a/cloudformation/aws-serverless-function.go +++ b/cloudformation/aws-serverless-function.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -10,6 +11,11 @@ import ( // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction type AWSServerlessFunction struct { + // AutoPublishAlias AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction + AutoPublishAlias string `json:"AutoPublishAlias,omitempty"` + // CodeUri AWS CloudFormation Property // Required: true // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction @@ -20,6 +26,11 @@ type AWSServerlessFunction struct { // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction DeadLetterQueue *AWSServerlessFunction_DeadLetterQueue `json:"DeadLetterQueue,omitempty"` + // DeploymentPreference AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction + DeploymentPreference *AWSServerlessFunction_DeploymentPreference `json:"DeploymentPreference,omitempty"` + // Description AWS CloudFormation Property // Required: false // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction @@ -50,6 +61,11 @@ type AWSServerlessFunction struct { // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction KmsKeyArn string `json:"KmsKeyArn,omitempty"` + // Layers AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction + Layers []string `json:"Layers,omitempty"` + // MemorySize AWS CloudFormation Property // Required: false // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction @@ -60,6 +76,11 @@ type AWSServerlessFunction struct { // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Policies *AWSServerlessFunction_Policies `json:"Policies,omitempty"` + // ReservedConcurrentExecutions AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction + ReservedConcurrentExecutions int `json:"ReservedConcurrentExecutions,omitempty"` + // Role AWS CloudFormation Property // Required: false // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction @@ -137,7 +158,7 @@ func (r *AWSServerlessFunction) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSServerlessFunction) MarshalJSON() ([]byte, error) { +func (r *AWSServerlessFunction) MarshalJSON() ([]byte, error) { type Properties AWSServerlessFunction return json.Marshal(&struct { Type string @@ -147,7 +168,7 @@ func (r AWSServerlessFunction) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -164,7 +185,11 @@ func (r *AWSServerlessFunction) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -184,11 +209,11 @@ func (r *AWSServerlessFunction) UnmarshalJSON(b []byte) error { } // GetAllAWSServerlessFunctionResources retrieves all AWSServerlessFunction items from an AWS CloudFormation template -func (t *Template) GetAllAWSServerlessFunctionResources() map[string]AWSServerlessFunction { - results := map[string]AWSServerlessFunction{} +func (t *Template) GetAllAWSServerlessFunctionResources() map[string]*AWSServerlessFunction { + results := map[string]*AWSServerlessFunction{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSServerlessFunction: + case *AWSServerlessFunction: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -200,7 +225,8 @@ func (t *Template) GetAllAWSServerlessFunctionResources() map[string]AWSServerle if b, err := json.Marshal(resource); err == nil { var result AWSServerlessFunction if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -212,10 +238,10 @@ func (t *Template) GetAllAWSServerlessFunctionResources() map[string]AWSServerle // GetAWSServerlessFunctionWithName retrieves all AWSServerlessFunction items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServerlessFunctionWithName(name string) (AWSServerlessFunction, error) { +func (t *Template) GetAWSServerlessFunctionWithName(name string) (*AWSServerlessFunction, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSServerlessFunction: + case *AWSServerlessFunction: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -227,12 +253,13 @@ func (t *Template) GetAWSServerlessFunctionWithName(name string) (AWSServerlessF if b, err := json.Marshal(resource); err == nil { var result AWSServerlessFunction if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSServerlessFunction{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-serverless-function_deploymentpreference.go b/cloudformation/aws-serverless-function_deploymentpreference.go new file mode 100644 index 0000000000..3ebd480421 --- /dev/null +++ b/cloudformation/aws-serverless-function_deploymentpreference.go @@ -0,0 +1,75 @@ +package cloudformation + +// AWSServerlessFunction_DeploymentPreference AWS CloudFormation Resource (AWS::Serverless::Function.DeploymentPreference) +// See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object +type AWSServerlessFunction_DeploymentPreference struct { + + // Alarms AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object + Alarms []string `json:"Alarms,omitempty"` + + // Enabled AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object + Enabled bool `json:"Enabled,omitempty"` + + // Hooks AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object + Hooks map[string]string `json:"Hooks,omitempty"` + + // Role AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object + Role string `json:"Role,omitempty"` + + // Type AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object + Type string `json:"Type,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSServerlessFunction_DeploymentPreference) AWSCloudFormationType() string { + return "AWS::Serverless::Function.DeploymentPreference" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSServerlessFunction_DeploymentPreference) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSServerlessFunction_DeploymentPreference) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSServerlessFunction_DeploymentPreference) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSServerlessFunction_DeploymentPreference) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSServerlessFunction_DeploymentPreference) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-serverless-layerversion.go b/cloudformation/aws-serverless-layerversion.go new file mode 100644 index 0000000000..5c226c9698 --- /dev/null +++ b/cloudformation/aws-serverless-layerversion.go @@ -0,0 +1,195 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" +) + +// AWSServerlessLayerVersion AWS CloudFormation Resource (AWS::Serverless::LayerVersion) +// See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion +type AWSServerlessLayerVersion struct { + + // CompatibleRuntimes AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion + CompatibleRuntimes []string `json:"CompatibleRuntimes,omitempty"` + + // ContentUri AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion + ContentUri string `json:"ContentUri,omitempty"` + + // Description AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion + Description string `json:"Description,omitempty"` + + // LayerName AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion + LayerName string `json:"LayerName,omitempty"` + + // LicenseInfo AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion + LicenseInfo string `json:"LicenseInfo,omitempty"` + + // RetentionPolicy AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesslayerversion + RetentionPolicy string `json:"RetentionPolicy,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSServerlessLayerVersion) AWSCloudFormationType() string { + return "AWS::Serverless::LayerVersion" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSServerlessLayerVersion) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSServerlessLayerVersion) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSServerlessLayerVersion) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSServerlessLayerVersion) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSServerlessLayerVersion) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} + +// 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 *AWSServerlessLayerVersion) MarshalJSON() ([]byte, error) { + type Properties AWSServerlessLayerVersion + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(*r), + DependsOn: r._dependsOn, + Metadata: r._metadata, + DeletionPolicy: r._deletionPolicy, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AWSServerlessLayerVersion) UnmarshalJSON(b []byte) error { + type Properties AWSServerlessLayerVersion + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + }{} + + 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 = AWSServerlessLayerVersion(*res.Properties) + } + if res.DependsOn != nil { + r._dependsOn = res.DependsOn + } + if res.Metadata != nil { + r._metadata = res.Metadata + } + + return nil +} + +// GetAllAWSServerlessLayerVersionResources retrieves all AWSServerlessLayerVersion items from an AWS CloudFormation template +func (t *Template) GetAllAWSServerlessLayerVersionResources() map[string]*AWSServerlessLayerVersion { + results := map[string]*AWSServerlessLayerVersion{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServerlessLayerVersion: + // We found a strongly typed resource of the correct type; use it + results[name] = resource + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::Serverless::LayerVersion" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSServerlessLayerVersion + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + results[name] = &result + } + } + } + } + } + } + return results +} + +// GetAWSServerlessLayerVersionWithName retrieves all AWSServerlessLayerVersion items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServerlessLayerVersionWithName(name string) (*AWSServerlessLayerVersion, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServerlessLayerVersion: + // We found a strongly typed resource of the correct type; use it + return resource, nil + case map[string]interface{}: + // We found an untyped resource (likely from JSON) which *might* be + // the correct type, but we need to check it's 'Type' field + if resType, ok := resource["Type"]; ok { + if resType == "AWS::Serverless::LayerVersion" { + // The resource is correct, unmarshal it into the results + if b, err := json.Marshal(resource); err == nil { + var result AWSServerlessLayerVersion + if err := json.Unmarshal(b, &result); err == nil { + t.Resources[name] = &result + return &result, nil + } + } + } + } + } + } + return nil, errors.New("resource not found") +} diff --git a/cloudformation/aws-serverless-simpletable.go b/cloudformation/aws-serverless-simpletable.go index e282c44acc..8308e48642 100644 --- a/cloudformation/aws-serverless-simpletable.go +++ b/cloudformation/aws-serverless-simpletable.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -20,6 +21,21 @@ type AWSServerlessSimpleTable struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html ProvisionedThroughput *AWSServerlessSimpleTable_ProvisionedThroughput `json:"ProvisionedThroughput,omitempty"` + // SSESpecification AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesssimpletable + SSESpecification *AWSServerlessSimpleTable_SSESpecification `json:"SSESpecification,omitempty"` + + // TableName AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesssimpletable + TableName string `json:"TableName,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlesssimpletable + Tags map[string]string `json:"Tags,omitempty"` + // _deletionPolicy represents a CloudFormation DeletionPolicy _deletionPolicy DeletionPolicy @@ -67,7 +83,7 @@ func (r *AWSServerlessSimpleTable) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSServerlessSimpleTable) MarshalJSON() ([]byte, error) { +func (r *AWSServerlessSimpleTable) MarshalJSON() ([]byte, error) { type Properties AWSServerlessSimpleTable return json.Marshal(&struct { Type string @@ -77,7 +93,7 @@ func (r AWSServerlessSimpleTable) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +110,11 @@ func (r *AWSServerlessSimpleTable) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +134,11 @@ func (r *AWSServerlessSimpleTable) UnmarshalJSON(b []byte) error { } // GetAllAWSServerlessSimpleTableResources retrieves all AWSServerlessSimpleTable items from an AWS CloudFormation template -func (t *Template) GetAllAWSServerlessSimpleTableResources() map[string]AWSServerlessSimpleTable { - results := map[string]AWSServerlessSimpleTable{} +func (t *Template) GetAllAWSServerlessSimpleTableResources() map[string]*AWSServerlessSimpleTable { + results := map[string]*AWSServerlessSimpleTable{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSServerlessSimpleTable: + case *AWSServerlessSimpleTable: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +150,8 @@ func (t *Template) GetAllAWSServerlessSimpleTableResources() map[string]AWSServe if b, err := json.Marshal(resource); err == nil { var result AWSServerlessSimpleTable if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +163,10 @@ func (t *Template) GetAllAWSServerlessSimpleTableResources() map[string]AWSServe // GetAWSServerlessSimpleTableWithName retrieves all AWSServerlessSimpleTable items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServerlessSimpleTableWithName(name string) (AWSServerlessSimpleTable, error) { +func (t *Template) GetAWSServerlessSimpleTableWithName(name string) (*AWSServerlessSimpleTable, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSServerlessSimpleTable: + case *AWSServerlessSimpleTable: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +178,13 @@ func (t *Template) GetAWSServerlessSimpleTableWithName(name string) (AWSServerle if b, err := json.Marshal(resource); err == nil { var result AWSServerlessSimpleTable if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSServerlessSimpleTable{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-serverless-simpletable_ssespecification.go b/cloudformation/aws-serverless-simpletable_ssespecification.go new file mode 100644 index 0000000000..f2055d34e9 --- /dev/null +++ b/cloudformation/aws-serverless-simpletable_ssespecification.go @@ -0,0 +1,55 @@ +package cloudformation + +// AWSServerlessSimpleTable_SSESpecification AWS CloudFormation Resource (AWS::Serverless::SimpleTable.SSESpecification) +// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html +type AWSServerlessSimpleTable_SSESpecification struct { + + // SSEEnabled AWS CloudFormation Property + // Required: false + // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html + SSEEnabled bool `json:"SSEEnabled,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSServerlessSimpleTable_SSESpecification) AWSCloudFormationType() string { + return "AWS::Serverless::SimpleTable.SSESpecification" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSServerlessSimpleTable_SSESpecification) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSServerlessSimpleTable_SSESpecification) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSServerlessSimpleTable_SSESpecification) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSServerlessSimpleTable_SSESpecification) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSServerlessSimpleTable_SSESpecification) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-servicecatalog-acceptedportfolioshare.go b/cloudformation/aws-servicecatalog-acceptedportfolioshare.go index b9b4119fa6..eb9af833d0 100644 --- a/cloudformation/aws-servicecatalog-acceptedportfolioshare.go +++ b/cloudformation/aws-servicecatalog-acceptedportfolioshare.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSServiceCatalogAcceptedPortfolioShare) SetDeletionPolicy(policy Delet // 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 AWSServiceCatalogAcceptedPortfolioShare) MarshalJSON() ([]byte, error) { +func (r *AWSServiceCatalogAcceptedPortfolioShare) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogAcceptedPortfolioShare return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSServiceCatalogAcceptedPortfolioShare) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSServiceCatalogAcceptedPortfolioShare) UnmarshalJSON(b []byte) error DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSServiceCatalogAcceptedPortfolioShare) UnmarshalJSON(b []byte) error } // GetAllAWSServiceCatalogAcceptedPortfolioShareResources retrieves all AWSServiceCatalogAcceptedPortfolioShare items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogAcceptedPortfolioShareResources() map[string]AWSServiceCatalogAcceptedPortfolioShare { - results := map[string]AWSServiceCatalogAcceptedPortfolioShare{} +func (t *Template) GetAllAWSServiceCatalogAcceptedPortfolioShareResources() map[string]*AWSServiceCatalogAcceptedPortfolioShare { + results := map[string]*AWSServiceCatalogAcceptedPortfolioShare{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSServiceCatalogAcceptedPortfolioShare: + case *AWSServiceCatalogAcceptedPortfolioShare: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSServiceCatalogAcceptedPortfolioShareResources() map[ if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogAcceptedPortfolioShare if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSServiceCatalogAcceptedPortfolioShareResources() map[ // GetAWSServiceCatalogAcceptedPortfolioShareWithName retrieves all AWSServiceCatalogAcceptedPortfolioShare items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogAcceptedPortfolioShareWithName(name string) (AWSServiceCatalogAcceptedPortfolioShare, error) { +func (t *Template) GetAWSServiceCatalogAcceptedPortfolioShareWithName(name string) (*AWSServiceCatalogAcceptedPortfolioShare, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSServiceCatalogAcceptedPortfolioShare: + case *AWSServiceCatalogAcceptedPortfolioShare: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSServiceCatalogAcceptedPortfolioShareWithName(name strin if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogAcceptedPortfolioShare if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSServiceCatalogAcceptedPortfolioShare{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-servicecatalog-cloudformationproduct.go b/cloudformation/aws-servicecatalog-cloudformationproduct.go index 3b1dc3b447..e1c42e31d0 100644 --- a/cloudformation/aws-servicecatalog-cloudformationproduct.go +++ b/cloudformation/aws-servicecatalog-cloudformationproduct.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -107,7 +108,7 @@ func (r *AWSServiceCatalogCloudFormationProduct) SetDeletionPolicy(policy Deleti // 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 AWSServiceCatalogCloudFormationProduct) MarshalJSON() ([]byte, error) { +func (r *AWSServiceCatalogCloudFormationProduct) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogCloudFormationProduct return json.Marshal(&struct { Type string @@ -117,7 +118,7 @@ func (r AWSServiceCatalogCloudFormationProduct) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -134,7 +135,11 @@ func (r *AWSServiceCatalogCloudFormationProduct) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -154,11 +159,11 @@ func (r *AWSServiceCatalogCloudFormationProduct) UnmarshalJSON(b []byte) error { } // GetAllAWSServiceCatalogCloudFormationProductResources retrieves all AWSServiceCatalogCloudFormationProduct items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogCloudFormationProductResources() map[string]AWSServiceCatalogCloudFormationProduct { - results := map[string]AWSServiceCatalogCloudFormationProduct{} +func (t *Template) GetAllAWSServiceCatalogCloudFormationProductResources() map[string]*AWSServiceCatalogCloudFormationProduct { + results := map[string]*AWSServiceCatalogCloudFormationProduct{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSServiceCatalogCloudFormationProduct: + case *AWSServiceCatalogCloudFormationProduct: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -170,7 +175,8 @@ func (t *Template) GetAllAWSServiceCatalogCloudFormationProductResources() map[s if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogCloudFormationProduct if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -182,10 +188,10 @@ func (t *Template) GetAllAWSServiceCatalogCloudFormationProductResources() map[s // GetAWSServiceCatalogCloudFormationProductWithName retrieves all AWSServiceCatalogCloudFormationProduct items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogCloudFormationProductWithName(name string) (AWSServiceCatalogCloudFormationProduct, error) { +func (t *Template) GetAWSServiceCatalogCloudFormationProductWithName(name string) (*AWSServiceCatalogCloudFormationProduct, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSServiceCatalogCloudFormationProduct: + case *AWSServiceCatalogCloudFormationProduct: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -197,12 +203,13 @@ func (t *Template) GetAWSServiceCatalogCloudFormationProductWithName(name string if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogCloudFormationProduct if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSServiceCatalogCloudFormationProduct{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-servicecatalog-cloudformationprovisionedproduct.go b/cloudformation/aws-servicecatalog-cloudformationprovisionedproduct.go index c28548b591..4047ef4228 100644 --- a/cloudformation/aws-servicecatalog-cloudformationprovisionedproduct.go +++ b/cloudformation/aws-servicecatalog-cloudformationprovisionedproduct.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -107,7 +108,7 @@ func (r *AWSServiceCatalogCloudFormationProvisionedProduct) SetDeletionPolicy(po // 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 AWSServiceCatalogCloudFormationProvisionedProduct) MarshalJSON() ([]byte, error) { +func (r *AWSServiceCatalogCloudFormationProvisionedProduct) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogCloudFormationProvisionedProduct return json.Marshal(&struct { Type string @@ -117,7 +118,7 @@ func (r AWSServiceCatalogCloudFormationProvisionedProduct) MarshalJSON() ([]byte DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -134,7 +135,11 @@ func (r *AWSServiceCatalogCloudFormationProvisionedProduct) UnmarshalJSON(b []by DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -154,11 +159,11 @@ func (r *AWSServiceCatalogCloudFormationProvisionedProduct) UnmarshalJSON(b []by } // GetAllAWSServiceCatalogCloudFormationProvisionedProductResources retrieves all AWSServiceCatalogCloudFormationProvisionedProduct items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogCloudFormationProvisionedProductResources() map[string]AWSServiceCatalogCloudFormationProvisionedProduct { - results := map[string]AWSServiceCatalogCloudFormationProvisionedProduct{} +func (t *Template) GetAllAWSServiceCatalogCloudFormationProvisionedProductResources() map[string]*AWSServiceCatalogCloudFormationProvisionedProduct { + results := map[string]*AWSServiceCatalogCloudFormationProvisionedProduct{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSServiceCatalogCloudFormationProvisionedProduct: + case *AWSServiceCatalogCloudFormationProvisionedProduct: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -170,7 +175,8 @@ func (t *Template) GetAllAWSServiceCatalogCloudFormationProvisionedProductResour if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogCloudFormationProvisionedProduct if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -182,10 +188,10 @@ func (t *Template) GetAllAWSServiceCatalogCloudFormationProvisionedProductResour // GetAWSServiceCatalogCloudFormationProvisionedProductWithName retrieves all AWSServiceCatalogCloudFormationProvisionedProduct items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogCloudFormationProvisionedProductWithName(name string) (AWSServiceCatalogCloudFormationProvisionedProduct, error) { +func (t *Template) GetAWSServiceCatalogCloudFormationProvisionedProductWithName(name string) (*AWSServiceCatalogCloudFormationProvisionedProduct, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSServiceCatalogCloudFormationProvisionedProduct: + case *AWSServiceCatalogCloudFormationProvisionedProduct: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -197,12 +203,13 @@ func (t *Template) GetAWSServiceCatalogCloudFormationProvisionedProductWithName( if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogCloudFormationProvisionedProduct if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSServiceCatalogCloudFormationProvisionedProduct{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-servicecatalog-launchnotificationconstraint.go b/cloudformation/aws-servicecatalog-launchnotificationconstraint.go index 753737174b..1bde574de8 100644 --- a/cloudformation/aws-servicecatalog-launchnotificationconstraint.go +++ b/cloudformation/aws-servicecatalog-launchnotificationconstraint.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSServiceCatalogLaunchNotificationConstraint) SetDeletionPolicy(policy // 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 AWSServiceCatalogLaunchNotificationConstraint) MarshalJSON() ([]byte, error) { +func (r *AWSServiceCatalogLaunchNotificationConstraint) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogLaunchNotificationConstraint return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSServiceCatalogLaunchNotificationConstraint) MarshalJSON() ([]byte, er DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSServiceCatalogLaunchNotificationConstraint) UnmarshalJSON(b []byte) DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSServiceCatalogLaunchNotificationConstraint) UnmarshalJSON(b []byte) } // GetAllAWSServiceCatalogLaunchNotificationConstraintResources retrieves all AWSServiceCatalogLaunchNotificationConstraint items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogLaunchNotificationConstraintResources() map[string]AWSServiceCatalogLaunchNotificationConstraint { - results := map[string]AWSServiceCatalogLaunchNotificationConstraint{} +func (t *Template) GetAllAWSServiceCatalogLaunchNotificationConstraintResources() map[string]*AWSServiceCatalogLaunchNotificationConstraint { + results := map[string]*AWSServiceCatalogLaunchNotificationConstraint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSServiceCatalogLaunchNotificationConstraint: + case *AWSServiceCatalogLaunchNotificationConstraint: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSServiceCatalogLaunchNotificationConstraintResources( if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogLaunchNotificationConstraint if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSServiceCatalogLaunchNotificationConstraintResources( // GetAWSServiceCatalogLaunchNotificationConstraintWithName retrieves all AWSServiceCatalogLaunchNotificationConstraint items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogLaunchNotificationConstraintWithName(name string) (AWSServiceCatalogLaunchNotificationConstraint, error) { +func (t *Template) GetAWSServiceCatalogLaunchNotificationConstraintWithName(name string) (*AWSServiceCatalogLaunchNotificationConstraint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSServiceCatalogLaunchNotificationConstraint: + case *AWSServiceCatalogLaunchNotificationConstraint: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSServiceCatalogLaunchNotificationConstraintWithName(name if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogLaunchNotificationConstraint if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSServiceCatalogLaunchNotificationConstraint{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-servicecatalog-launchroleconstraint.go b/cloudformation/aws-servicecatalog-launchroleconstraint.go index 21fc8f8205..9df39724db 100644 --- a/cloudformation/aws-servicecatalog-launchroleconstraint.go +++ b/cloudformation/aws-servicecatalog-launchroleconstraint.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSServiceCatalogLaunchRoleConstraint) SetDeletionPolicy(policy Deletio // 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 AWSServiceCatalogLaunchRoleConstraint) MarshalJSON() ([]byte, error) { +func (r *AWSServiceCatalogLaunchRoleConstraint) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogLaunchRoleConstraint return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSServiceCatalogLaunchRoleConstraint) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSServiceCatalogLaunchRoleConstraint) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSServiceCatalogLaunchRoleConstraint) UnmarshalJSON(b []byte) error { } // GetAllAWSServiceCatalogLaunchRoleConstraintResources retrieves all AWSServiceCatalogLaunchRoleConstraint items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogLaunchRoleConstraintResources() map[string]AWSServiceCatalogLaunchRoleConstraint { - results := map[string]AWSServiceCatalogLaunchRoleConstraint{} +func (t *Template) GetAllAWSServiceCatalogLaunchRoleConstraintResources() map[string]*AWSServiceCatalogLaunchRoleConstraint { + results := map[string]*AWSServiceCatalogLaunchRoleConstraint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSServiceCatalogLaunchRoleConstraint: + case *AWSServiceCatalogLaunchRoleConstraint: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSServiceCatalogLaunchRoleConstraintResources() map[st if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogLaunchRoleConstraint if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSServiceCatalogLaunchRoleConstraintResources() map[st // GetAWSServiceCatalogLaunchRoleConstraintWithName retrieves all AWSServiceCatalogLaunchRoleConstraint items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogLaunchRoleConstraintWithName(name string) (AWSServiceCatalogLaunchRoleConstraint, error) { +func (t *Template) GetAWSServiceCatalogLaunchRoleConstraintWithName(name string) (*AWSServiceCatalogLaunchRoleConstraint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSServiceCatalogLaunchRoleConstraint: + case *AWSServiceCatalogLaunchRoleConstraint: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSServiceCatalogLaunchRoleConstraintWithName(name string) if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogLaunchRoleConstraint if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSServiceCatalogLaunchRoleConstraint{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-servicecatalog-launchtemplateconstraint.go b/cloudformation/aws-servicecatalog-launchtemplateconstraint.go index 46d702acda..3ff6f34ea9 100644 --- a/cloudformation/aws-servicecatalog-launchtemplateconstraint.go +++ b/cloudformation/aws-servicecatalog-launchtemplateconstraint.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSServiceCatalogLaunchTemplateConstraint) SetDeletionPolicy(policy Del // 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 AWSServiceCatalogLaunchTemplateConstraint) MarshalJSON() ([]byte, error) { +func (r *AWSServiceCatalogLaunchTemplateConstraint) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogLaunchTemplateConstraint return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSServiceCatalogLaunchTemplateConstraint) MarshalJSON() ([]byte, error) DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSServiceCatalogLaunchTemplateConstraint) UnmarshalJSON(b []byte) erro DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSServiceCatalogLaunchTemplateConstraint) UnmarshalJSON(b []byte) erro } // GetAllAWSServiceCatalogLaunchTemplateConstraintResources retrieves all AWSServiceCatalogLaunchTemplateConstraint items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogLaunchTemplateConstraintResources() map[string]AWSServiceCatalogLaunchTemplateConstraint { - results := map[string]AWSServiceCatalogLaunchTemplateConstraint{} +func (t *Template) GetAllAWSServiceCatalogLaunchTemplateConstraintResources() map[string]*AWSServiceCatalogLaunchTemplateConstraint { + results := map[string]*AWSServiceCatalogLaunchTemplateConstraint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSServiceCatalogLaunchTemplateConstraint: + case *AWSServiceCatalogLaunchTemplateConstraint: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSServiceCatalogLaunchTemplateConstraintResources() ma if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogLaunchTemplateConstraint if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSServiceCatalogLaunchTemplateConstraintResources() ma // GetAWSServiceCatalogLaunchTemplateConstraintWithName retrieves all AWSServiceCatalogLaunchTemplateConstraint items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogLaunchTemplateConstraintWithName(name string) (AWSServiceCatalogLaunchTemplateConstraint, error) { +func (t *Template) GetAWSServiceCatalogLaunchTemplateConstraintWithName(name string) (*AWSServiceCatalogLaunchTemplateConstraint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSServiceCatalogLaunchTemplateConstraint: + case *AWSServiceCatalogLaunchTemplateConstraint: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSServiceCatalogLaunchTemplateConstraintWithName(name str if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogLaunchTemplateConstraint if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSServiceCatalogLaunchTemplateConstraint{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-servicecatalog-portfolio.go b/cloudformation/aws-servicecatalog-portfolio.go index 602721b8f0..9b5dfca5da 100644 --- a/cloudformation/aws-servicecatalog-portfolio.go +++ b/cloudformation/aws-servicecatalog-portfolio.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSServiceCatalogPortfolio) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSServiceCatalogPortfolio) MarshalJSON() ([]byte, error) { +func (r *AWSServiceCatalogPortfolio) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogPortfolio return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSServiceCatalogPortfolio) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSServiceCatalogPortfolio) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSServiceCatalogPortfolio) UnmarshalJSON(b []byte) error { } // GetAllAWSServiceCatalogPortfolioResources retrieves all AWSServiceCatalogPortfolio items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogPortfolioResources() map[string]AWSServiceCatalogPortfolio { - results := map[string]AWSServiceCatalogPortfolio{} +func (t *Template) GetAllAWSServiceCatalogPortfolioResources() map[string]*AWSServiceCatalogPortfolio { + results := map[string]*AWSServiceCatalogPortfolio{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSServiceCatalogPortfolio: + case *AWSServiceCatalogPortfolio: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSServiceCatalogPortfolioResources() map[string]AWSSer if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogPortfolio if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSServiceCatalogPortfolioResources() map[string]AWSSer // GetAWSServiceCatalogPortfolioWithName retrieves all AWSServiceCatalogPortfolio items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogPortfolioWithName(name string) (AWSServiceCatalogPortfolio, error) { +func (t *Template) GetAWSServiceCatalogPortfolioWithName(name string) (*AWSServiceCatalogPortfolio, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSServiceCatalogPortfolio: + case *AWSServiceCatalogPortfolio: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSServiceCatalogPortfolioWithName(name string) (AWSServic if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogPortfolio if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSServiceCatalogPortfolio{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-servicecatalog-portfolioprincipalassociation.go b/cloudformation/aws-servicecatalog-portfolioprincipalassociation.go index 646ef24747..a7909b95e8 100644 --- a/cloudformation/aws-servicecatalog-portfolioprincipalassociation.go +++ b/cloudformation/aws-servicecatalog-portfolioprincipalassociation.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSServiceCatalogPortfolioPrincipalAssociation) SetDeletionPolicy(polic // 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 AWSServiceCatalogPortfolioPrincipalAssociation) MarshalJSON() ([]byte, error) { +func (r *AWSServiceCatalogPortfolioPrincipalAssociation) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogPortfolioPrincipalAssociation return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSServiceCatalogPortfolioPrincipalAssociation) MarshalJSON() ([]byte, e DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSServiceCatalogPortfolioPrincipalAssociation) UnmarshalJSON(b []byte) DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSServiceCatalogPortfolioPrincipalAssociation) UnmarshalJSON(b []byte) } // GetAllAWSServiceCatalogPortfolioPrincipalAssociationResources retrieves all AWSServiceCatalogPortfolioPrincipalAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogPortfolioPrincipalAssociationResources() map[string]AWSServiceCatalogPortfolioPrincipalAssociation { - results := map[string]AWSServiceCatalogPortfolioPrincipalAssociation{} +func (t *Template) GetAllAWSServiceCatalogPortfolioPrincipalAssociationResources() map[string]*AWSServiceCatalogPortfolioPrincipalAssociation { + results := map[string]*AWSServiceCatalogPortfolioPrincipalAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSServiceCatalogPortfolioPrincipalAssociation: + case *AWSServiceCatalogPortfolioPrincipalAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSServiceCatalogPortfolioPrincipalAssociationResources if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogPortfolioPrincipalAssociation if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSServiceCatalogPortfolioPrincipalAssociationResources // GetAWSServiceCatalogPortfolioPrincipalAssociationWithName retrieves all AWSServiceCatalogPortfolioPrincipalAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogPortfolioPrincipalAssociationWithName(name string) (AWSServiceCatalogPortfolioPrincipalAssociation, error) { +func (t *Template) GetAWSServiceCatalogPortfolioPrincipalAssociationWithName(name string) (*AWSServiceCatalogPortfolioPrincipalAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSServiceCatalogPortfolioPrincipalAssociation: + case *AWSServiceCatalogPortfolioPrincipalAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSServiceCatalogPortfolioPrincipalAssociationWithName(nam if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogPortfolioPrincipalAssociation if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSServiceCatalogPortfolioPrincipalAssociation{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-servicecatalog-portfolioproductassociation.go b/cloudformation/aws-servicecatalog-portfolioproductassociation.go index 1034570590..6fccf530f6 100644 --- a/cloudformation/aws-servicecatalog-portfolioproductassociation.go +++ b/cloudformation/aws-servicecatalog-portfolioproductassociation.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSServiceCatalogPortfolioProductAssociation) SetDeletionPolicy(policy // 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 AWSServiceCatalogPortfolioProductAssociation) MarshalJSON() ([]byte, error) { +func (r *AWSServiceCatalogPortfolioProductAssociation) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogPortfolioProductAssociation return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSServiceCatalogPortfolioProductAssociation) MarshalJSON() ([]byte, err DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSServiceCatalogPortfolioProductAssociation) UnmarshalJSON(b []byte) e DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSServiceCatalogPortfolioProductAssociation) UnmarshalJSON(b []byte) e } // GetAllAWSServiceCatalogPortfolioProductAssociationResources retrieves all AWSServiceCatalogPortfolioProductAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogPortfolioProductAssociationResources() map[string]AWSServiceCatalogPortfolioProductAssociation { - results := map[string]AWSServiceCatalogPortfolioProductAssociation{} +func (t *Template) GetAllAWSServiceCatalogPortfolioProductAssociationResources() map[string]*AWSServiceCatalogPortfolioProductAssociation { + results := map[string]*AWSServiceCatalogPortfolioProductAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSServiceCatalogPortfolioProductAssociation: + case *AWSServiceCatalogPortfolioProductAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSServiceCatalogPortfolioProductAssociationResources() if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogPortfolioProductAssociation if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSServiceCatalogPortfolioProductAssociationResources() // GetAWSServiceCatalogPortfolioProductAssociationWithName retrieves all AWSServiceCatalogPortfolioProductAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogPortfolioProductAssociationWithName(name string) (AWSServiceCatalogPortfolioProductAssociation, error) { +func (t *Template) GetAWSServiceCatalogPortfolioProductAssociationWithName(name string) (*AWSServiceCatalogPortfolioProductAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSServiceCatalogPortfolioProductAssociation: + case *AWSServiceCatalogPortfolioProductAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSServiceCatalogPortfolioProductAssociationWithName(name if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogPortfolioProductAssociation if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSServiceCatalogPortfolioProductAssociation{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-servicecatalog-portfolioshare.go b/cloudformation/aws-servicecatalog-portfolioshare.go index f822aef7a2..e0ff538c33 100644 --- a/cloudformation/aws-servicecatalog-portfolioshare.go +++ b/cloudformation/aws-servicecatalog-portfolioshare.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSServiceCatalogPortfolioShare) SetDeletionPolicy(policy DeletionPolic // 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 AWSServiceCatalogPortfolioShare) MarshalJSON() ([]byte, error) { +func (r *AWSServiceCatalogPortfolioShare) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogPortfolioShare return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSServiceCatalogPortfolioShare) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSServiceCatalogPortfolioShare) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSServiceCatalogPortfolioShare) UnmarshalJSON(b []byte) error { } // GetAllAWSServiceCatalogPortfolioShareResources retrieves all AWSServiceCatalogPortfolioShare items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogPortfolioShareResources() map[string]AWSServiceCatalogPortfolioShare { - results := map[string]AWSServiceCatalogPortfolioShare{} +func (t *Template) GetAllAWSServiceCatalogPortfolioShareResources() map[string]*AWSServiceCatalogPortfolioShare { + results := map[string]*AWSServiceCatalogPortfolioShare{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSServiceCatalogPortfolioShare: + case *AWSServiceCatalogPortfolioShare: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSServiceCatalogPortfolioShareResources() map[string]A if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogPortfolioShare if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSServiceCatalogPortfolioShareResources() map[string]A // GetAWSServiceCatalogPortfolioShareWithName retrieves all AWSServiceCatalogPortfolioShare items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogPortfolioShareWithName(name string) (AWSServiceCatalogPortfolioShare, error) { +func (t *Template) GetAWSServiceCatalogPortfolioShareWithName(name string) (*AWSServiceCatalogPortfolioShare, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSServiceCatalogPortfolioShare: + case *AWSServiceCatalogPortfolioShare: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSServiceCatalogPortfolioShareWithName(name string) (AWSS if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogPortfolioShare if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSServiceCatalogPortfolioShare{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-servicecatalog-tagoption.go b/cloudformation/aws-servicecatalog-tagoption.go index b9138c5831..8692199d30 100644 --- a/cloudformation/aws-servicecatalog-tagoption.go +++ b/cloudformation/aws-servicecatalog-tagoption.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSServiceCatalogTagOption) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSServiceCatalogTagOption) MarshalJSON() ([]byte, error) { +func (r *AWSServiceCatalogTagOption) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogTagOption return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSServiceCatalogTagOption) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSServiceCatalogTagOption) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSServiceCatalogTagOption) UnmarshalJSON(b []byte) error { } // GetAllAWSServiceCatalogTagOptionResources retrieves all AWSServiceCatalogTagOption items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogTagOptionResources() map[string]AWSServiceCatalogTagOption { - results := map[string]AWSServiceCatalogTagOption{} +func (t *Template) GetAllAWSServiceCatalogTagOptionResources() map[string]*AWSServiceCatalogTagOption { + results := map[string]*AWSServiceCatalogTagOption{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSServiceCatalogTagOption: + case *AWSServiceCatalogTagOption: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSServiceCatalogTagOptionResources() map[string]AWSSer if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogTagOption if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSServiceCatalogTagOptionResources() map[string]AWSSer // GetAWSServiceCatalogTagOptionWithName retrieves all AWSServiceCatalogTagOption items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogTagOptionWithName(name string) (AWSServiceCatalogTagOption, error) { +func (t *Template) GetAWSServiceCatalogTagOptionWithName(name string) (*AWSServiceCatalogTagOption, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSServiceCatalogTagOption: + case *AWSServiceCatalogTagOption: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSServiceCatalogTagOptionWithName(name string) (AWSServic if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogTagOption if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSServiceCatalogTagOption{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-servicecatalog-tagoptionassociation.go b/cloudformation/aws-servicecatalog-tagoptionassociation.go index c41a5cb81a..cf518070ae 100644 --- a/cloudformation/aws-servicecatalog-tagoptionassociation.go +++ b/cloudformation/aws-servicecatalog-tagoptionassociation.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSServiceCatalogTagOptionAssociation) SetDeletionPolicy(policy Deletio // 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 AWSServiceCatalogTagOptionAssociation) MarshalJSON() ([]byte, error) { +func (r *AWSServiceCatalogTagOptionAssociation) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogTagOptionAssociation return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSServiceCatalogTagOptionAssociation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSServiceCatalogTagOptionAssociation) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSServiceCatalogTagOptionAssociation) UnmarshalJSON(b []byte) error { } // GetAllAWSServiceCatalogTagOptionAssociationResources retrieves all AWSServiceCatalogTagOptionAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogTagOptionAssociationResources() map[string]AWSServiceCatalogTagOptionAssociation { - results := map[string]AWSServiceCatalogTagOptionAssociation{} +func (t *Template) GetAllAWSServiceCatalogTagOptionAssociationResources() map[string]*AWSServiceCatalogTagOptionAssociation { + results := map[string]*AWSServiceCatalogTagOptionAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSServiceCatalogTagOptionAssociation: + case *AWSServiceCatalogTagOptionAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSServiceCatalogTagOptionAssociationResources() map[st if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogTagOptionAssociation if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSServiceCatalogTagOptionAssociationResources() map[st // GetAWSServiceCatalogTagOptionAssociationWithName retrieves all AWSServiceCatalogTagOptionAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogTagOptionAssociationWithName(name string) (AWSServiceCatalogTagOptionAssociation, error) { +func (t *Template) GetAWSServiceCatalogTagOptionAssociationWithName(name string) (*AWSServiceCatalogTagOptionAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSServiceCatalogTagOptionAssociation: + case *AWSServiceCatalogTagOptionAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSServiceCatalogTagOptionAssociationWithName(name string) if b, err := json.Marshal(resource); err == nil { var result AWSServiceCatalogTagOptionAssociation if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSServiceCatalogTagOptionAssociation{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-servicediscovery-httpnamespace.go b/cloudformation/aws-servicediscovery-httpnamespace.go index fe84477f9f..d3c1abfb4e 100644 --- a/cloudformation/aws-servicediscovery-httpnamespace.go +++ b/cloudformation/aws-servicediscovery-httpnamespace.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSServiceDiscoveryHttpNamespace) SetDeletionPolicy(policy DeletionPoli // 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 AWSServiceDiscoveryHttpNamespace) MarshalJSON() ([]byte, error) { +func (r *AWSServiceDiscoveryHttpNamespace) MarshalJSON() ([]byte, error) { type Properties AWSServiceDiscoveryHttpNamespace return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSServiceDiscoveryHttpNamespace) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSServiceDiscoveryHttpNamespace) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSServiceDiscoveryHttpNamespace) UnmarshalJSON(b []byte) error { } // GetAllAWSServiceDiscoveryHttpNamespaceResources retrieves all AWSServiceDiscoveryHttpNamespace items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceDiscoveryHttpNamespaceResources() map[string]AWSServiceDiscoveryHttpNamespace { - results := map[string]AWSServiceDiscoveryHttpNamespace{} +func (t *Template) GetAllAWSServiceDiscoveryHttpNamespaceResources() map[string]*AWSServiceDiscoveryHttpNamespace { + results := map[string]*AWSServiceDiscoveryHttpNamespace{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSServiceDiscoveryHttpNamespace: + case *AWSServiceDiscoveryHttpNamespace: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSServiceDiscoveryHttpNamespaceResources() map[string] if b, err := json.Marshal(resource); err == nil { var result AWSServiceDiscoveryHttpNamespace if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSServiceDiscoveryHttpNamespaceResources() map[string] // GetAWSServiceDiscoveryHttpNamespaceWithName retrieves all AWSServiceDiscoveryHttpNamespace items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceDiscoveryHttpNamespaceWithName(name string) (AWSServiceDiscoveryHttpNamespace, error) { +func (t *Template) GetAWSServiceDiscoveryHttpNamespaceWithName(name string) (*AWSServiceDiscoveryHttpNamespace, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSServiceDiscoveryHttpNamespace: + case *AWSServiceDiscoveryHttpNamespace: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSServiceDiscoveryHttpNamespaceWithName(name string) (AWS if b, err := json.Marshal(resource); err == nil { var result AWSServiceDiscoveryHttpNamespace if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSServiceDiscoveryHttpNamespace{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-servicediscovery-instance.go b/cloudformation/aws-servicediscovery-instance.go index c919a16b35..0687c48437 100644 --- a/cloudformation/aws-servicediscovery-instance.go +++ b/cloudformation/aws-servicediscovery-instance.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSServiceDiscoveryInstance) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSServiceDiscoveryInstance) MarshalJSON() ([]byte, error) { +func (r *AWSServiceDiscoveryInstance) MarshalJSON() ([]byte, error) { type Properties AWSServiceDiscoveryInstance return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSServiceDiscoveryInstance) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSServiceDiscoveryInstance) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSServiceDiscoveryInstance) UnmarshalJSON(b []byte) error { } // GetAllAWSServiceDiscoveryInstanceResources retrieves all AWSServiceDiscoveryInstance items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceDiscoveryInstanceResources() map[string]AWSServiceDiscoveryInstance { - results := map[string]AWSServiceDiscoveryInstance{} +func (t *Template) GetAllAWSServiceDiscoveryInstanceResources() map[string]*AWSServiceDiscoveryInstance { + results := map[string]*AWSServiceDiscoveryInstance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSServiceDiscoveryInstance: + case *AWSServiceDiscoveryInstance: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSServiceDiscoveryInstanceResources() map[string]AWSSe if b, err := json.Marshal(resource); err == nil { var result AWSServiceDiscoveryInstance if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSServiceDiscoveryInstanceResources() map[string]AWSSe // GetAWSServiceDiscoveryInstanceWithName retrieves all AWSServiceDiscoveryInstance items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceDiscoveryInstanceWithName(name string) (AWSServiceDiscoveryInstance, error) { +func (t *Template) GetAWSServiceDiscoveryInstanceWithName(name string) (*AWSServiceDiscoveryInstance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSServiceDiscoveryInstance: + case *AWSServiceDiscoveryInstance: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSServiceDiscoveryInstanceWithName(name string) (AWSServi if b, err := json.Marshal(resource); err == nil { var result AWSServiceDiscoveryInstance if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSServiceDiscoveryInstance{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-servicediscovery-privatednsnamespace.go b/cloudformation/aws-servicediscovery-privatednsnamespace.go index 4ed12e73bd..e2d6a1a09c 100644 --- a/cloudformation/aws-servicediscovery-privatednsnamespace.go +++ b/cloudformation/aws-servicediscovery-privatednsnamespace.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSServiceDiscoveryPrivateDnsNamespace) SetDeletionPolicy(policy Deleti // 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 AWSServiceDiscoveryPrivateDnsNamespace) MarshalJSON() ([]byte, error) { +func (r *AWSServiceDiscoveryPrivateDnsNamespace) MarshalJSON() ([]byte, error) { type Properties AWSServiceDiscoveryPrivateDnsNamespace return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSServiceDiscoveryPrivateDnsNamespace) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSServiceDiscoveryPrivateDnsNamespace) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSServiceDiscoveryPrivateDnsNamespace) UnmarshalJSON(b []byte) error { } // GetAllAWSServiceDiscoveryPrivateDnsNamespaceResources retrieves all AWSServiceDiscoveryPrivateDnsNamespace items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceDiscoveryPrivateDnsNamespaceResources() map[string]AWSServiceDiscoveryPrivateDnsNamespace { - results := map[string]AWSServiceDiscoveryPrivateDnsNamespace{} +func (t *Template) GetAllAWSServiceDiscoveryPrivateDnsNamespaceResources() map[string]*AWSServiceDiscoveryPrivateDnsNamespace { + results := map[string]*AWSServiceDiscoveryPrivateDnsNamespace{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSServiceDiscoveryPrivateDnsNamespace: + case *AWSServiceDiscoveryPrivateDnsNamespace: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSServiceDiscoveryPrivateDnsNamespaceResources() map[s if b, err := json.Marshal(resource); err == nil { var result AWSServiceDiscoveryPrivateDnsNamespace if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSServiceDiscoveryPrivateDnsNamespaceResources() map[s // GetAWSServiceDiscoveryPrivateDnsNamespaceWithName retrieves all AWSServiceDiscoveryPrivateDnsNamespace items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceDiscoveryPrivateDnsNamespaceWithName(name string) (AWSServiceDiscoveryPrivateDnsNamespace, error) { +func (t *Template) GetAWSServiceDiscoveryPrivateDnsNamespaceWithName(name string) (*AWSServiceDiscoveryPrivateDnsNamespace, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSServiceDiscoveryPrivateDnsNamespace: + case *AWSServiceDiscoveryPrivateDnsNamespace: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSServiceDiscoveryPrivateDnsNamespaceWithName(name string if b, err := json.Marshal(resource); err == nil { var result AWSServiceDiscoveryPrivateDnsNamespace if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSServiceDiscoveryPrivateDnsNamespace{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-servicediscovery-publicdnsnamespace.go b/cloudformation/aws-servicediscovery-publicdnsnamespace.go index 937b104991..6542594afa 100644 --- a/cloudformation/aws-servicediscovery-publicdnsnamespace.go +++ b/cloudformation/aws-servicediscovery-publicdnsnamespace.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSServiceDiscoveryPublicDnsNamespace) SetDeletionPolicy(policy Deletio // 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 AWSServiceDiscoveryPublicDnsNamespace) MarshalJSON() ([]byte, error) { +func (r *AWSServiceDiscoveryPublicDnsNamespace) MarshalJSON() ([]byte, error) { type Properties AWSServiceDiscoveryPublicDnsNamespace return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSServiceDiscoveryPublicDnsNamespace) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSServiceDiscoveryPublicDnsNamespace) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSServiceDiscoveryPublicDnsNamespace) UnmarshalJSON(b []byte) error { } // GetAllAWSServiceDiscoveryPublicDnsNamespaceResources retrieves all AWSServiceDiscoveryPublicDnsNamespace items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceDiscoveryPublicDnsNamespaceResources() map[string]AWSServiceDiscoveryPublicDnsNamespace { - results := map[string]AWSServiceDiscoveryPublicDnsNamespace{} +func (t *Template) GetAllAWSServiceDiscoveryPublicDnsNamespaceResources() map[string]*AWSServiceDiscoveryPublicDnsNamespace { + results := map[string]*AWSServiceDiscoveryPublicDnsNamespace{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSServiceDiscoveryPublicDnsNamespace: + case *AWSServiceDiscoveryPublicDnsNamespace: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSServiceDiscoveryPublicDnsNamespaceResources() map[st if b, err := json.Marshal(resource); err == nil { var result AWSServiceDiscoveryPublicDnsNamespace if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSServiceDiscoveryPublicDnsNamespaceResources() map[st // GetAWSServiceDiscoveryPublicDnsNamespaceWithName retrieves all AWSServiceDiscoveryPublicDnsNamespace items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceDiscoveryPublicDnsNamespaceWithName(name string) (AWSServiceDiscoveryPublicDnsNamespace, error) { +func (t *Template) GetAWSServiceDiscoveryPublicDnsNamespaceWithName(name string) (*AWSServiceDiscoveryPublicDnsNamespace, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSServiceDiscoveryPublicDnsNamespace: + case *AWSServiceDiscoveryPublicDnsNamespace: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSServiceDiscoveryPublicDnsNamespaceWithName(name string) if b, err := json.Marshal(resource); err == nil { var result AWSServiceDiscoveryPublicDnsNamespace if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSServiceDiscoveryPublicDnsNamespace{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-servicediscovery-service.go b/cloudformation/aws-servicediscovery-service.go index 8b7002b083..1195d7ddb7 100644 --- a/cloudformation/aws-servicediscovery-service.go +++ b/cloudformation/aws-servicediscovery-service.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -87,7 +88,7 @@ func (r *AWSServiceDiscoveryService) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSServiceDiscoveryService) MarshalJSON() ([]byte, error) { +func (r *AWSServiceDiscoveryService) MarshalJSON() ([]byte, error) { type Properties AWSServiceDiscoveryService return json.Marshal(&struct { Type string @@ -97,7 +98,7 @@ func (r AWSServiceDiscoveryService) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -114,7 +115,11 @@ func (r *AWSServiceDiscoveryService) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -134,11 +139,11 @@ func (r *AWSServiceDiscoveryService) UnmarshalJSON(b []byte) error { } // GetAllAWSServiceDiscoveryServiceResources retrieves all AWSServiceDiscoveryService items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceDiscoveryServiceResources() map[string]AWSServiceDiscoveryService { - results := map[string]AWSServiceDiscoveryService{} +func (t *Template) GetAllAWSServiceDiscoveryServiceResources() map[string]*AWSServiceDiscoveryService { + results := map[string]*AWSServiceDiscoveryService{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSServiceDiscoveryService: + case *AWSServiceDiscoveryService: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -150,7 +155,8 @@ func (t *Template) GetAllAWSServiceDiscoveryServiceResources() map[string]AWSSer if b, err := json.Marshal(resource); err == nil { var result AWSServiceDiscoveryService if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -162,10 +168,10 @@ func (t *Template) GetAllAWSServiceDiscoveryServiceResources() map[string]AWSSer // GetAWSServiceDiscoveryServiceWithName retrieves all AWSServiceDiscoveryService items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceDiscoveryServiceWithName(name string) (AWSServiceDiscoveryService, error) { +func (t *Template) GetAWSServiceDiscoveryServiceWithName(name string) (*AWSServiceDiscoveryService, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSServiceDiscoveryService: + case *AWSServiceDiscoveryService: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -177,12 +183,13 @@ func (t *Template) GetAWSServiceDiscoveryServiceWithName(name string) (AWSServic if b, err := json.Marshal(resource); err == nil { var result AWSServiceDiscoveryService if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSServiceDiscoveryService{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ses-configurationset.go b/cloudformation/aws-ses-configurationset.go index 257cd30978..4a72607946 100644 --- a/cloudformation/aws-ses-configurationset.go +++ b/cloudformation/aws-ses-configurationset.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -62,7 +63,7 @@ func (r *AWSSESConfigurationSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSSESConfigurationSet) MarshalJSON() ([]byte, error) { +func (r *AWSSESConfigurationSet) MarshalJSON() ([]byte, error) { type Properties AWSSESConfigurationSet return json.Marshal(&struct { Type string @@ -72,7 +73,7 @@ func (r AWSSESConfigurationSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -89,7 +90,11 @@ func (r *AWSSESConfigurationSet) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -109,11 +114,11 @@ func (r *AWSSESConfigurationSet) UnmarshalJSON(b []byte) error { } // GetAllAWSSESConfigurationSetResources retrieves all AWSSESConfigurationSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSSESConfigurationSetResources() map[string]AWSSESConfigurationSet { - results := map[string]AWSSESConfigurationSet{} +func (t *Template) GetAllAWSSESConfigurationSetResources() map[string]*AWSSESConfigurationSet { + results := map[string]*AWSSESConfigurationSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSESConfigurationSet: + case *AWSSESConfigurationSet: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -125,7 +130,8 @@ func (t *Template) GetAllAWSSESConfigurationSetResources() map[string]AWSSESConf if b, err := json.Marshal(resource); err == nil { var result AWSSESConfigurationSet if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -137,10 +143,10 @@ func (t *Template) GetAllAWSSESConfigurationSetResources() map[string]AWSSESConf // GetAWSSESConfigurationSetWithName retrieves all AWSSESConfigurationSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSESConfigurationSetWithName(name string) (AWSSESConfigurationSet, error) { +func (t *Template) GetAWSSESConfigurationSetWithName(name string) (*AWSSESConfigurationSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSESConfigurationSet: + case *AWSSESConfigurationSet: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -152,12 +158,13 @@ func (t *Template) GetAWSSESConfigurationSetWithName(name string) (AWSSESConfigu if b, err := json.Marshal(resource); err == nil { var result AWSSESConfigurationSet if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSESConfigurationSet{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ses-configurationseteventdestination.go b/cloudformation/aws-ses-configurationseteventdestination.go index d74cc963c8..e7521f4dbe 100644 --- a/cloudformation/aws-ses-configurationseteventdestination.go +++ b/cloudformation/aws-ses-configurationseteventdestination.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSSESConfigurationSetEventDestination) SetDeletionPolicy(policy Deleti // 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 AWSSESConfigurationSetEventDestination) MarshalJSON() ([]byte, error) { +func (r *AWSSESConfigurationSetEventDestination) MarshalJSON() ([]byte, error) { type Properties AWSSESConfigurationSetEventDestination return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSSESConfigurationSetEventDestination) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSSESConfigurationSetEventDestination) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSSESConfigurationSetEventDestination) UnmarshalJSON(b []byte) error { } // GetAllAWSSESConfigurationSetEventDestinationResources retrieves all AWSSESConfigurationSetEventDestination items from an AWS CloudFormation template -func (t *Template) GetAllAWSSESConfigurationSetEventDestinationResources() map[string]AWSSESConfigurationSetEventDestination { - results := map[string]AWSSESConfigurationSetEventDestination{} +func (t *Template) GetAllAWSSESConfigurationSetEventDestinationResources() map[string]*AWSSESConfigurationSetEventDestination { + results := map[string]*AWSSESConfigurationSetEventDestination{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSESConfigurationSetEventDestination: + case *AWSSESConfigurationSetEventDestination: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSSESConfigurationSetEventDestinationResources() map[s if b, err := json.Marshal(resource); err == nil { var result AWSSESConfigurationSetEventDestination if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSSESConfigurationSetEventDestinationResources() map[s // GetAWSSESConfigurationSetEventDestinationWithName retrieves all AWSSESConfigurationSetEventDestination items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSESConfigurationSetEventDestinationWithName(name string) (AWSSESConfigurationSetEventDestination, error) { +func (t *Template) GetAWSSESConfigurationSetEventDestinationWithName(name string) (*AWSSESConfigurationSetEventDestination, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSESConfigurationSetEventDestination: + case *AWSSESConfigurationSetEventDestination: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSSESConfigurationSetEventDestinationWithName(name string if b, err := json.Marshal(resource); err == nil { var result AWSSESConfigurationSetEventDestination if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSESConfigurationSetEventDestination{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ses-receiptfilter.go b/cloudformation/aws-ses-receiptfilter.go index 09370825b6..fcc3bd58ec 100644 --- a/cloudformation/aws-ses-receiptfilter.go +++ b/cloudformation/aws-ses-receiptfilter.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -62,7 +63,7 @@ func (r *AWSSESReceiptFilter) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSSESReceiptFilter) MarshalJSON() ([]byte, error) { +func (r *AWSSESReceiptFilter) MarshalJSON() ([]byte, error) { type Properties AWSSESReceiptFilter return json.Marshal(&struct { Type string @@ -72,7 +73,7 @@ func (r AWSSESReceiptFilter) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -89,7 +90,11 @@ func (r *AWSSESReceiptFilter) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -109,11 +114,11 @@ func (r *AWSSESReceiptFilter) UnmarshalJSON(b []byte) error { } // GetAllAWSSESReceiptFilterResources retrieves all AWSSESReceiptFilter items from an AWS CloudFormation template -func (t *Template) GetAllAWSSESReceiptFilterResources() map[string]AWSSESReceiptFilter { - results := map[string]AWSSESReceiptFilter{} +func (t *Template) GetAllAWSSESReceiptFilterResources() map[string]*AWSSESReceiptFilter { + results := map[string]*AWSSESReceiptFilter{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSESReceiptFilter: + case *AWSSESReceiptFilter: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -125,7 +130,8 @@ func (t *Template) GetAllAWSSESReceiptFilterResources() map[string]AWSSESReceipt if b, err := json.Marshal(resource); err == nil { var result AWSSESReceiptFilter if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -137,10 +143,10 @@ func (t *Template) GetAllAWSSESReceiptFilterResources() map[string]AWSSESReceipt // GetAWSSESReceiptFilterWithName retrieves all AWSSESReceiptFilter items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSESReceiptFilterWithName(name string) (AWSSESReceiptFilter, error) { +func (t *Template) GetAWSSESReceiptFilterWithName(name string) (*AWSSESReceiptFilter, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSESReceiptFilter: + case *AWSSESReceiptFilter: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -152,12 +158,13 @@ func (t *Template) GetAWSSESReceiptFilterWithName(name string) (AWSSESReceiptFil if b, err := json.Marshal(resource); err == nil { var result AWSSESReceiptFilter if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSESReceiptFilter{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ses-receiptrule.go b/cloudformation/aws-ses-receiptrule.go index ed6a6c46ae..75f5204cd5 100644 --- a/cloudformation/aws-ses-receiptrule.go +++ b/cloudformation/aws-ses-receiptrule.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSSESReceiptRule) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSSESReceiptRule) MarshalJSON() ([]byte, error) { +func (r *AWSSESReceiptRule) MarshalJSON() ([]byte, error) { type Properties AWSSESReceiptRule return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSSESReceiptRule) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSSESReceiptRule) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSSESReceiptRule) UnmarshalJSON(b []byte) error { } // GetAllAWSSESReceiptRuleResources retrieves all AWSSESReceiptRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSSESReceiptRuleResources() map[string]AWSSESReceiptRule { - results := map[string]AWSSESReceiptRule{} +func (t *Template) GetAllAWSSESReceiptRuleResources() map[string]*AWSSESReceiptRule { + results := map[string]*AWSSESReceiptRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSESReceiptRule: + case *AWSSESReceiptRule: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSSESReceiptRuleResources() map[string]AWSSESReceiptRu if b, err := json.Marshal(resource); err == nil { var result AWSSESReceiptRule if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSSESReceiptRuleResources() map[string]AWSSESReceiptRu // GetAWSSESReceiptRuleWithName retrieves all AWSSESReceiptRule items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSESReceiptRuleWithName(name string) (AWSSESReceiptRule, error) { +func (t *Template) GetAWSSESReceiptRuleWithName(name string) (*AWSSESReceiptRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSESReceiptRule: + case *AWSSESReceiptRule: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSSESReceiptRuleWithName(name string) (AWSSESReceiptRule, if b, err := json.Marshal(resource); err == nil { var result AWSSESReceiptRule if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSESReceiptRule{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ses-receiptruleset.go b/cloudformation/aws-ses-receiptruleset.go index aadc75c5de..dcba2af3c2 100644 --- a/cloudformation/aws-ses-receiptruleset.go +++ b/cloudformation/aws-ses-receiptruleset.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -62,7 +63,7 @@ func (r *AWSSESReceiptRuleSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSSESReceiptRuleSet) MarshalJSON() ([]byte, error) { +func (r *AWSSESReceiptRuleSet) MarshalJSON() ([]byte, error) { type Properties AWSSESReceiptRuleSet return json.Marshal(&struct { Type string @@ -72,7 +73,7 @@ func (r AWSSESReceiptRuleSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -89,7 +90,11 @@ func (r *AWSSESReceiptRuleSet) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -109,11 +114,11 @@ func (r *AWSSESReceiptRuleSet) UnmarshalJSON(b []byte) error { } // GetAllAWSSESReceiptRuleSetResources retrieves all AWSSESReceiptRuleSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSSESReceiptRuleSetResources() map[string]AWSSESReceiptRuleSet { - results := map[string]AWSSESReceiptRuleSet{} +func (t *Template) GetAllAWSSESReceiptRuleSetResources() map[string]*AWSSESReceiptRuleSet { + results := map[string]*AWSSESReceiptRuleSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSESReceiptRuleSet: + case *AWSSESReceiptRuleSet: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -125,7 +130,8 @@ func (t *Template) GetAllAWSSESReceiptRuleSetResources() map[string]AWSSESReceip if b, err := json.Marshal(resource); err == nil { var result AWSSESReceiptRuleSet if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -137,10 +143,10 @@ func (t *Template) GetAllAWSSESReceiptRuleSetResources() map[string]AWSSESReceip // GetAWSSESReceiptRuleSetWithName retrieves all AWSSESReceiptRuleSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSESReceiptRuleSetWithName(name string) (AWSSESReceiptRuleSet, error) { +func (t *Template) GetAWSSESReceiptRuleSetWithName(name string) (*AWSSESReceiptRuleSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSESReceiptRuleSet: + case *AWSSESReceiptRuleSet: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -152,12 +158,13 @@ func (t *Template) GetAWSSESReceiptRuleSetWithName(name string) (AWSSESReceiptRu if b, err := json.Marshal(resource); err == nil { var result AWSSESReceiptRuleSet if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSESReceiptRuleSet{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ses-template.go b/cloudformation/aws-ses-template.go index e08688665d..7b29b2ae37 100644 --- a/cloudformation/aws-ses-template.go +++ b/cloudformation/aws-ses-template.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -62,7 +63,7 @@ func (r *AWSSESTemplate) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSSESTemplate) MarshalJSON() ([]byte, error) { +func (r *AWSSESTemplate) MarshalJSON() ([]byte, error) { type Properties AWSSESTemplate return json.Marshal(&struct { Type string @@ -72,7 +73,7 @@ func (r AWSSESTemplate) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -89,7 +90,11 @@ func (r *AWSSESTemplate) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -109,11 +114,11 @@ func (r *AWSSESTemplate) UnmarshalJSON(b []byte) error { } // GetAllAWSSESTemplateResources retrieves all AWSSESTemplate items from an AWS CloudFormation template -func (t *Template) GetAllAWSSESTemplateResources() map[string]AWSSESTemplate { - results := map[string]AWSSESTemplate{} +func (t *Template) GetAllAWSSESTemplateResources() map[string]*AWSSESTemplate { + results := map[string]*AWSSESTemplate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSESTemplate: + case *AWSSESTemplate: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -125,7 +130,8 @@ func (t *Template) GetAllAWSSESTemplateResources() map[string]AWSSESTemplate { if b, err := json.Marshal(resource); err == nil { var result AWSSESTemplate if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -137,10 +143,10 @@ func (t *Template) GetAllAWSSESTemplateResources() map[string]AWSSESTemplate { // GetAWSSESTemplateWithName retrieves all AWSSESTemplate items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSESTemplateWithName(name string) (AWSSESTemplate, error) { +func (t *Template) GetAWSSESTemplateWithName(name string) (*AWSSESTemplate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSESTemplate: + case *AWSSESTemplate: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -152,12 +158,13 @@ func (t *Template) GetAWSSESTemplateWithName(name string) (AWSSESTemplate, error if b, err := json.Marshal(resource); err == nil { var result AWSSESTemplate if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSESTemplate{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-sns-subscription.go b/cloudformation/aws-sns-subscription.go index 8618361b23..b8cbe9149b 100644 --- a/cloudformation/aws-sns-subscription.go +++ b/cloudformation/aws-sns-subscription.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -26,7 +27,7 @@ type AWSSNSSubscription struct { FilterPolicy interface{} `json:"FilterPolicy,omitempty"` // Protocol AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-protocol Protocol string `json:"Protocol,omitempty"` @@ -41,7 +42,7 @@ type AWSSNSSubscription struct { Region string `json:"Region,omitempty"` // TopicArn AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#topicarn TopicArn string `json:"TopicArn,omitempty"` @@ -92,7 +93,7 @@ func (r *AWSSNSSubscription) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSSNSSubscription) MarshalJSON() ([]byte, error) { +func (r *AWSSNSSubscription) MarshalJSON() ([]byte, error) { type Properties AWSSNSSubscription return json.Marshal(&struct { Type string @@ -102,7 +103,7 @@ func (r AWSSNSSubscription) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -119,7 +120,11 @@ func (r *AWSSNSSubscription) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -139,11 +144,11 @@ func (r *AWSSNSSubscription) UnmarshalJSON(b []byte) error { } // GetAllAWSSNSSubscriptionResources retrieves all AWSSNSSubscription items from an AWS CloudFormation template -func (t *Template) GetAllAWSSNSSubscriptionResources() map[string]AWSSNSSubscription { - results := map[string]AWSSNSSubscription{} +func (t *Template) GetAllAWSSNSSubscriptionResources() map[string]*AWSSNSSubscription { + results := map[string]*AWSSNSSubscription{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSNSSubscription: + case *AWSSNSSubscription: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -155,7 +160,8 @@ func (t *Template) GetAllAWSSNSSubscriptionResources() map[string]AWSSNSSubscrip if b, err := json.Marshal(resource); err == nil { var result AWSSNSSubscription if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -167,10 +173,10 @@ func (t *Template) GetAllAWSSNSSubscriptionResources() map[string]AWSSNSSubscrip // GetAWSSNSSubscriptionWithName retrieves all AWSSNSSubscription items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSNSSubscriptionWithName(name string) (AWSSNSSubscription, error) { +func (t *Template) GetAWSSNSSubscriptionWithName(name string) (*AWSSNSSubscription, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSNSSubscription: + case *AWSSNSSubscription: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -182,12 +188,13 @@ func (t *Template) GetAWSSNSSubscriptionWithName(name string) (AWSSNSSubscriptio if b, err := json.Marshal(resource); err == nil { var result AWSSNSSubscription if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSNSSubscription{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-sns-topic.go b/cloudformation/aws-sns-topic.go index 33fa1fadaf..795bce67ee 100644 --- a/cloudformation/aws-sns-topic.go +++ b/cloudformation/aws-sns-topic.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSSNSTopic) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSSNSTopic) MarshalJSON() ([]byte, error) { +func (r *AWSSNSTopic) MarshalJSON() ([]byte, error) { type Properties AWSSNSTopic return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSSNSTopic) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSSNSTopic) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSSNSTopic) UnmarshalJSON(b []byte) error { } // GetAllAWSSNSTopicResources retrieves all AWSSNSTopic items from an AWS CloudFormation template -func (t *Template) GetAllAWSSNSTopicResources() map[string]AWSSNSTopic { - results := map[string]AWSSNSTopic{} +func (t *Template) GetAllAWSSNSTopicResources() map[string]*AWSSNSTopic { + results := map[string]*AWSSNSTopic{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSNSTopic: + case *AWSSNSTopic: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSSNSTopicResources() map[string]AWSSNSTopic { if b, err := json.Marshal(resource); err == nil { var result AWSSNSTopic if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSSNSTopicResources() map[string]AWSSNSTopic { // GetAWSSNSTopicWithName retrieves all AWSSNSTopic items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSNSTopicWithName(name string) (AWSSNSTopic, error) { +func (t *Template) GetAWSSNSTopicWithName(name string) (*AWSSNSTopic, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSNSTopic: + case *AWSSNSTopic: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSSNSTopicWithName(name string) (AWSSNSTopic, error) { if b, err := json.Marshal(resource); err == nil { var result AWSSNSTopic if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSNSTopic{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-sns-topicpolicy.go b/cloudformation/aws-sns-topicpolicy.go index 0bb867c893..db37745421 100644 --- a/cloudformation/aws-sns-topicpolicy.go +++ b/cloudformation/aws-sns-topicpolicy.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSSNSTopicPolicy) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSSNSTopicPolicy) MarshalJSON() ([]byte, error) { +func (r *AWSSNSTopicPolicy) MarshalJSON() ([]byte, error) { type Properties AWSSNSTopicPolicy return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSSNSTopicPolicy) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSSNSTopicPolicy) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSSNSTopicPolicy) UnmarshalJSON(b []byte) error { } // GetAllAWSSNSTopicPolicyResources retrieves all AWSSNSTopicPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSSNSTopicPolicyResources() map[string]AWSSNSTopicPolicy { - results := map[string]AWSSNSTopicPolicy{} +func (t *Template) GetAllAWSSNSTopicPolicyResources() map[string]*AWSSNSTopicPolicy { + results := map[string]*AWSSNSTopicPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSNSTopicPolicy: + case *AWSSNSTopicPolicy: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSSNSTopicPolicyResources() map[string]AWSSNSTopicPoli if b, err := json.Marshal(resource); err == nil { var result AWSSNSTopicPolicy if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSSNSTopicPolicyResources() map[string]AWSSNSTopicPoli // GetAWSSNSTopicPolicyWithName retrieves all AWSSNSTopicPolicy items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSNSTopicPolicyWithName(name string) (AWSSNSTopicPolicy, error) { +func (t *Template) GetAWSSNSTopicPolicyWithName(name string) (*AWSSNSTopicPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSNSTopicPolicy: + case *AWSSNSTopicPolicy: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSSNSTopicPolicyWithName(name string) (AWSSNSTopicPolicy, if b, err := json.Marshal(resource); err == nil { var result AWSSNSTopicPolicy if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSNSTopicPolicy{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-sqs-queue.go b/cloudformation/aws-sqs-queue.go index a6653a9b7e..feec570f9c 100644 --- a/cloudformation/aws-sqs-queue.go +++ b/cloudformation/aws-sqs-queue.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -117,7 +118,7 @@ func (r *AWSSQSQueue) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSSQSQueue) MarshalJSON() ([]byte, error) { +func (r *AWSSQSQueue) MarshalJSON() ([]byte, error) { type Properties AWSSQSQueue return json.Marshal(&struct { Type string @@ -127,7 +128,7 @@ func (r AWSSQSQueue) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -144,7 +145,11 @@ func (r *AWSSQSQueue) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -164,11 +169,11 @@ func (r *AWSSQSQueue) UnmarshalJSON(b []byte) error { } // GetAllAWSSQSQueueResources retrieves all AWSSQSQueue items from an AWS CloudFormation template -func (t *Template) GetAllAWSSQSQueueResources() map[string]AWSSQSQueue { - results := map[string]AWSSQSQueue{} +func (t *Template) GetAllAWSSQSQueueResources() map[string]*AWSSQSQueue { + results := map[string]*AWSSQSQueue{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSQSQueue: + case *AWSSQSQueue: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -180,7 +185,8 @@ func (t *Template) GetAllAWSSQSQueueResources() map[string]AWSSQSQueue { if b, err := json.Marshal(resource); err == nil { var result AWSSQSQueue if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -192,10 +198,10 @@ func (t *Template) GetAllAWSSQSQueueResources() map[string]AWSSQSQueue { // GetAWSSQSQueueWithName retrieves all AWSSQSQueue items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSQSQueueWithName(name string) (AWSSQSQueue, error) { +func (t *Template) GetAWSSQSQueueWithName(name string) (*AWSSQSQueue, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSQSQueue: + case *AWSSQSQueue: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -207,12 +213,13 @@ func (t *Template) GetAWSSQSQueueWithName(name string) (AWSSQSQueue, error) { if b, err := json.Marshal(resource); err == nil { var result AWSSQSQueue if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSQSQueue{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-sqs-queuepolicy.go b/cloudformation/aws-sqs-queuepolicy.go index 1c206e0959..325639dd65 100644 --- a/cloudformation/aws-sqs-queuepolicy.go +++ b/cloudformation/aws-sqs-queuepolicy.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSSQSQueuePolicy) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSSQSQueuePolicy) MarshalJSON() ([]byte, error) { +func (r *AWSSQSQueuePolicy) MarshalJSON() ([]byte, error) { type Properties AWSSQSQueuePolicy return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSSQSQueuePolicy) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSSQSQueuePolicy) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSSQSQueuePolicy) UnmarshalJSON(b []byte) error { } // GetAllAWSSQSQueuePolicyResources retrieves all AWSSQSQueuePolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSSQSQueuePolicyResources() map[string]AWSSQSQueuePolicy { - results := map[string]AWSSQSQueuePolicy{} +func (t *Template) GetAllAWSSQSQueuePolicyResources() map[string]*AWSSQSQueuePolicy { + results := map[string]*AWSSQSQueuePolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSQSQueuePolicy: + case *AWSSQSQueuePolicy: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSSQSQueuePolicyResources() map[string]AWSSQSQueuePoli if b, err := json.Marshal(resource); err == nil { var result AWSSQSQueuePolicy if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSSQSQueuePolicyResources() map[string]AWSSQSQueuePoli // GetAWSSQSQueuePolicyWithName retrieves all AWSSQSQueuePolicy items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSQSQueuePolicyWithName(name string) (AWSSQSQueuePolicy, error) { +func (t *Template) GetAWSSQSQueuePolicyWithName(name string) (*AWSSQSQueuePolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSQSQueuePolicy: + case *AWSSQSQueuePolicy: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSSQSQueuePolicyWithName(name string) (AWSSQSQueuePolicy, if b, err := json.Marshal(resource); err == nil { var result AWSSQSQueuePolicy if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSQSQueuePolicy{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ssm-association.go b/cloudformation/aws-ssm-association.go index fed78f06e6..beaf8499d7 100644 --- a/cloudformation/aws-ssm-association.go +++ b/cloudformation/aws-ssm-association.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -97,7 +98,7 @@ func (r *AWSSSMAssociation) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSSSMAssociation) MarshalJSON() ([]byte, error) { +func (r *AWSSSMAssociation) MarshalJSON() ([]byte, error) { type Properties AWSSSMAssociation return json.Marshal(&struct { Type string @@ -107,7 +108,7 @@ func (r AWSSSMAssociation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -124,7 +125,11 @@ func (r *AWSSSMAssociation) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -144,11 +149,11 @@ func (r *AWSSSMAssociation) UnmarshalJSON(b []byte) error { } // GetAllAWSSSMAssociationResources retrieves all AWSSSMAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSSSMAssociationResources() map[string]AWSSSMAssociation { - results := map[string]AWSSSMAssociation{} +func (t *Template) GetAllAWSSSMAssociationResources() map[string]*AWSSSMAssociation { + results := map[string]*AWSSSMAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSSMAssociation: + case *AWSSSMAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -160,7 +165,8 @@ func (t *Template) GetAllAWSSSMAssociationResources() map[string]AWSSSMAssociati if b, err := json.Marshal(resource); err == nil { var result AWSSSMAssociation if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -172,10 +178,10 @@ func (t *Template) GetAllAWSSSMAssociationResources() map[string]AWSSSMAssociati // GetAWSSSMAssociationWithName retrieves all AWSSSMAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSSMAssociationWithName(name string) (AWSSSMAssociation, error) { +func (t *Template) GetAWSSSMAssociationWithName(name string) (*AWSSSMAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSSMAssociation: + case *AWSSSMAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -187,12 +193,13 @@ func (t *Template) GetAWSSSMAssociationWithName(name string) (AWSSSMAssociation, if b, err := json.Marshal(resource); err == nil { var result AWSSSMAssociation if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSSMAssociation{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ssm-document.go b/cloudformation/aws-ssm-document.go index 94623b90ae..2b18e084f3 100644 --- a/cloudformation/aws-ssm-document.go +++ b/cloudformation/aws-ssm-document.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSSSMDocument) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSSSMDocument) MarshalJSON() ([]byte, error) { +func (r *AWSSSMDocument) MarshalJSON() ([]byte, error) { type Properties AWSSSMDocument return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSSSMDocument) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSSSMDocument) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSSSMDocument) UnmarshalJSON(b []byte) error { } // GetAllAWSSSMDocumentResources retrieves all AWSSSMDocument items from an AWS CloudFormation template -func (t *Template) GetAllAWSSSMDocumentResources() map[string]AWSSSMDocument { - results := map[string]AWSSSMDocument{} +func (t *Template) GetAllAWSSSMDocumentResources() map[string]*AWSSSMDocument { + results := map[string]*AWSSSMDocument{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSSMDocument: + case *AWSSSMDocument: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSSSMDocumentResources() map[string]AWSSSMDocument { if b, err := json.Marshal(resource); err == nil { var result AWSSSMDocument if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSSSMDocumentResources() map[string]AWSSSMDocument { // GetAWSSSMDocumentWithName retrieves all AWSSSMDocument items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSSMDocumentWithName(name string) (AWSSSMDocument, error) { +func (t *Template) GetAWSSSMDocumentWithName(name string) (*AWSSSMDocument, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSSMDocument: + case *AWSSSMDocument: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSSSMDocumentWithName(name string) (AWSSSMDocument, error if b, err := json.Marshal(resource); err == nil { var result AWSSSMDocument if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSSMDocument{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ssm-maintenancewindow.go b/cloudformation/aws-ssm-maintenancewindow.go index c076fb7eac..39e16e3e81 100644 --- a/cloudformation/aws-ssm-maintenancewindow.go +++ b/cloudformation/aws-ssm-maintenancewindow.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -55,6 +56,11 @@ type AWSSSMMaintenanceWindow struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-startdate StartDate string `json:"StartDate,omitempty"` + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-tags + Tags []Tag `json:"Tags,omitempty"` + // _deletionPolicy represents a CloudFormation DeletionPolicy _deletionPolicy DeletionPolicy @@ -102,7 +108,7 @@ func (r *AWSSSMMaintenanceWindow) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSSSMMaintenanceWindow) MarshalJSON() ([]byte, error) { +func (r *AWSSSMMaintenanceWindow) MarshalJSON() ([]byte, error) { type Properties AWSSSMMaintenanceWindow return json.Marshal(&struct { Type string @@ -112,7 +118,7 @@ func (r AWSSSMMaintenanceWindow) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -129,7 +135,11 @@ func (r *AWSSSMMaintenanceWindow) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -149,11 +159,11 @@ func (r *AWSSSMMaintenanceWindow) UnmarshalJSON(b []byte) error { } // GetAllAWSSSMMaintenanceWindowResources retrieves all AWSSSMMaintenanceWindow items from an AWS CloudFormation template -func (t *Template) GetAllAWSSSMMaintenanceWindowResources() map[string]AWSSSMMaintenanceWindow { - results := map[string]AWSSSMMaintenanceWindow{} +func (t *Template) GetAllAWSSSMMaintenanceWindowResources() map[string]*AWSSSMMaintenanceWindow { + results := map[string]*AWSSSMMaintenanceWindow{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSSMMaintenanceWindow: + case *AWSSSMMaintenanceWindow: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -165,7 +175,8 @@ func (t *Template) GetAllAWSSSMMaintenanceWindowResources() map[string]AWSSSMMai if b, err := json.Marshal(resource); err == nil { var result AWSSSMMaintenanceWindow if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -177,10 +188,10 @@ func (t *Template) GetAllAWSSSMMaintenanceWindowResources() map[string]AWSSSMMai // GetAWSSSMMaintenanceWindowWithName retrieves all AWSSSMMaintenanceWindow items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSSMMaintenanceWindowWithName(name string) (AWSSSMMaintenanceWindow, error) { +func (t *Template) GetAWSSSMMaintenanceWindowWithName(name string) (*AWSSSMMaintenanceWindow, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSSMMaintenanceWindow: + case *AWSSSMMaintenanceWindow: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -192,12 +203,13 @@ func (t *Template) GetAWSSSMMaintenanceWindowWithName(name string) (AWSSSMMainte if b, err := json.Marshal(resource); err == nil { var result AWSSSMMaintenanceWindow if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSSMMaintenanceWindow{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ssm-maintenancewindowtask.go b/cloudformation/aws-ssm-maintenancewindowtask.go index e43c55723b..26667a684f 100644 --- a/cloudformation/aws-ssm-maintenancewindowtask.go +++ b/cloudformation/aws-ssm-maintenancewindowtask.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -122,7 +123,7 @@ func (r *AWSSSMMaintenanceWindowTask) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSSSMMaintenanceWindowTask) MarshalJSON() ([]byte, error) { +func (r *AWSSSMMaintenanceWindowTask) MarshalJSON() ([]byte, error) { type Properties AWSSSMMaintenanceWindowTask return json.Marshal(&struct { Type string @@ -132,7 +133,7 @@ func (r AWSSSMMaintenanceWindowTask) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -149,7 +150,11 @@ func (r *AWSSSMMaintenanceWindowTask) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -169,11 +174,11 @@ func (r *AWSSSMMaintenanceWindowTask) UnmarshalJSON(b []byte) error { } // GetAllAWSSSMMaintenanceWindowTaskResources retrieves all AWSSSMMaintenanceWindowTask items from an AWS CloudFormation template -func (t *Template) GetAllAWSSSMMaintenanceWindowTaskResources() map[string]AWSSSMMaintenanceWindowTask { - results := map[string]AWSSSMMaintenanceWindowTask{} +func (t *Template) GetAllAWSSSMMaintenanceWindowTaskResources() map[string]*AWSSSMMaintenanceWindowTask { + results := map[string]*AWSSSMMaintenanceWindowTask{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSSMMaintenanceWindowTask: + case *AWSSSMMaintenanceWindowTask: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -185,7 +190,8 @@ func (t *Template) GetAllAWSSSMMaintenanceWindowTaskResources() map[string]AWSSS if b, err := json.Marshal(resource); err == nil { var result AWSSSMMaintenanceWindowTask if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -197,10 +203,10 @@ func (t *Template) GetAllAWSSSMMaintenanceWindowTaskResources() map[string]AWSSS // GetAWSSSMMaintenanceWindowTaskWithName retrieves all AWSSSMMaintenanceWindowTask items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSSMMaintenanceWindowTaskWithName(name string) (AWSSSMMaintenanceWindowTask, error) { +func (t *Template) GetAWSSSMMaintenanceWindowTaskWithName(name string) (*AWSSSMMaintenanceWindowTask, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSSMMaintenanceWindowTask: + case *AWSSSMMaintenanceWindowTask: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -212,12 +218,13 @@ func (t *Template) GetAWSSSMMaintenanceWindowTaskWithName(name string) (AWSSSMMa if b, err := json.Marshal(resource); err == nil { var result AWSSSMMaintenanceWindowTask if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSSMMaintenanceWindowTask{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ssm-parameter.go b/cloudformation/aws-ssm-parameter.go index 17c07326b2..a55cf51851 100644 --- a/cloudformation/aws-ssm-parameter.go +++ b/cloudformation/aws-ssm-parameter.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -82,7 +83,7 @@ func (r *AWSSSMParameter) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSSSMParameter) MarshalJSON() ([]byte, error) { +func (r *AWSSSMParameter) MarshalJSON() ([]byte, error) { type Properties AWSSSMParameter return json.Marshal(&struct { Type string @@ -92,7 +93,7 @@ func (r AWSSSMParameter) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -109,7 +110,11 @@ func (r *AWSSSMParameter) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -129,11 +134,11 @@ func (r *AWSSSMParameter) UnmarshalJSON(b []byte) error { } // GetAllAWSSSMParameterResources retrieves all AWSSSMParameter items from an AWS CloudFormation template -func (t *Template) GetAllAWSSSMParameterResources() map[string]AWSSSMParameter { - results := map[string]AWSSSMParameter{} +func (t *Template) GetAllAWSSSMParameterResources() map[string]*AWSSSMParameter { + results := map[string]*AWSSSMParameter{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSSMParameter: + case *AWSSSMParameter: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -145,7 +150,8 @@ func (t *Template) GetAllAWSSSMParameterResources() map[string]AWSSSMParameter { if b, err := json.Marshal(resource); err == nil { var result AWSSSMParameter if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -157,10 +163,10 @@ func (t *Template) GetAllAWSSSMParameterResources() map[string]AWSSSMParameter { // GetAWSSSMParameterWithName retrieves all AWSSSMParameter items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSSMParameterWithName(name string) (AWSSSMParameter, error) { +func (t *Template) GetAWSSSMParameterWithName(name string) (*AWSSSMParameter, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSSMParameter: + case *AWSSSMParameter: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -172,12 +178,13 @@ func (t *Template) GetAWSSSMParameterWithName(name string) (AWSSSMParameter, err if b, err := json.Marshal(resource); err == nil { var result AWSSSMParameter if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSSMParameter{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ssm-patchbaseline.go b/cloudformation/aws-ssm-patchbaseline.go index 628433e79b..b6abc95fae 100644 --- a/cloudformation/aws-ssm-patchbaseline.go +++ b/cloudformation/aws-ssm-patchbaseline.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -117,7 +118,7 @@ func (r *AWSSSMPatchBaseline) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSSSMPatchBaseline) MarshalJSON() ([]byte, error) { +func (r *AWSSSMPatchBaseline) MarshalJSON() ([]byte, error) { type Properties AWSSSMPatchBaseline return json.Marshal(&struct { Type string @@ -127,7 +128,7 @@ func (r AWSSSMPatchBaseline) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -144,7 +145,11 @@ func (r *AWSSSMPatchBaseline) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -164,11 +169,11 @@ func (r *AWSSSMPatchBaseline) UnmarshalJSON(b []byte) error { } // GetAllAWSSSMPatchBaselineResources retrieves all AWSSSMPatchBaseline items from an AWS CloudFormation template -func (t *Template) GetAllAWSSSMPatchBaselineResources() map[string]AWSSSMPatchBaseline { - results := map[string]AWSSSMPatchBaseline{} +func (t *Template) GetAllAWSSSMPatchBaselineResources() map[string]*AWSSSMPatchBaseline { + results := map[string]*AWSSSMPatchBaseline{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSSMPatchBaseline: + case *AWSSSMPatchBaseline: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -180,7 +185,8 @@ func (t *Template) GetAllAWSSSMPatchBaselineResources() map[string]AWSSSMPatchBa if b, err := json.Marshal(resource); err == nil { var result AWSSSMPatchBaseline if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -192,10 +198,10 @@ func (t *Template) GetAllAWSSSMPatchBaselineResources() map[string]AWSSSMPatchBa // GetAWSSSMPatchBaselineWithName retrieves all AWSSSMPatchBaseline items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSSMPatchBaselineWithName(name string) (AWSSSMPatchBaseline, error) { +func (t *Template) GetAWSSSMPatchBaselineWithName(name string) (*AWSSSMPatchBaseline, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSSMPatchBaseline: + case *AWSSSMPatchBaseline: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -207,12 +213,13 @@ func (t *Template) GetAWSSSMPatchBaselineWithName(name string) (AWSSSMPatchBasel if b, err := json.Marshal(resource); err == nil { var result AWSSSMPatchBaseline if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSSMPatchBaseline{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-ssm-resourcedatasync.go b/cloudformation/aws-ssm-resourcedatasync.go index c78459c083..59cf95b3e9 100644 --- a/cloudformation/aws-ssm-resourcedatasync.go +++ b/cloudformation/aws-ssm-resourcedatasync.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -87,7 +88,7 @@ func (r *AWSSSMResourceDataSync) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSSSMResourceDataSync) MarshalJSON() ([]byte, error) { +func (r *AWSSSMResourceDataSync) MarshalJSON() ([]byte, error) { type Properties AWSSSMResourceDataSync return json.Marshal(&struct { Type string @@ -97,7 +98,7 @@ func (r AWSSSMResourceDataSync) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -114,7 +115,11 @@ func (r *AWSSSMResourceDataSync) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -134,11 +139,11 @@ func (r *AWSSSMResourceDataSync) UnmarshalJSON(b []byte) error { } // GetAllAWSSSMResourceDataSyncResources retrieves all AWSSSMResourceDataSync items from an AWS CloudFormation template -func (t *Template) GetAllAWSSSMResourceDataSyncResources() map[string]AWSSSMResourceDataSync { - results := map[string]AWSSSMResourceDataSync{} +func (t *Template) GetAllAWSSSMResourceDataSyncResources() map[string]*AWSSSMResourceDataSync { + results := map[string]*AWSSSMResourceDataSync{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSSSMResourceDataSync: + case *AWSSSMResourceDataSync: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -150,7 +155,8 @@ func (t *Template) GetAllAWSSSMResourceDataSyncResources() map[string]AWSSSMReso if b, err := json.Marshal(resource); err == nil { var result AWSSSMResourceDataSync if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -162,10 +168,10 @@ func (t *Template) GetAllAWSSSMResourceDataSyncResources() map[string]AWSSSMReso // GetAWSSSMResourceDataSyncWithName retrieves all AWSSSMResourceDataSync items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSSMResourceDataSyncWithName(name string) (AWSSSMResourceDataSync, error) { +func (t *Template) GetAWSSSMResourceDataSyncWithName(name string) (*AWSSSMResourceDataSync, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSSSMResourceDataSync: + case *AWSSSMResourceDataSync: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -177,12 +183,13 @@ func (t *Template) GetAWSSSMResourceDataSyncWithName(name string) (AWSSSMResourc if b, err := json.Marshal(resource); err == nil { var result AWSSSMResourceDataSync if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSSSMResourceDataSync{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-stepfunctions-activity.go b/cloudformation/aws-stepfunctions-activity.go index 7b4d67f026..94d2934d16 100644 --- a/cloudformation/aws-stepfunctions-activity.go +++ b/cloudformation/aws-stepfunctions-activity.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -62,7 +63,7 @@ func (r *AWSStepFunctionsActivity) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSStepFunctionsActivity) MarshalJSON() ([]byte, error) { +func (r *AWSStepFunctionsActivity) MarshalJSON() ([]byte, error) { type Properties AWSStepFunctionsActivity return json.Marshal(&struct { Type string @@ -72,7 +73,7 @@ func (r AWSStepFunctionsActivity) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -89,7 +90,11 @@ func (r *AWSStepFunctionsActivity) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -109,11 +114,11 @@ func (r *AWSStepFunctionsActivity) UnmarshalJSON(b []byte) error { } // GetAllAWSStepFunctionsActivityResources retrieves all AWSStepFunctionsActivity items from an AWS CloudFormation template -func (t *Template) GetAllAWSStepFunctionsActivityResources() map[string]AWSStepFunctionsActivity { - results := map[string]AWSStepFunctionsActivity{} +func (t *Template) GetAllAWSStepFunctionsActivityResources() map[string]*AWSStepFunctionsActivity { + results := map[string]*AWSStepFunctionsActivity{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSStepFunctionsActivity: + case *AWSStepFunctionsActivity: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -125,7 +130,8 @@ func (t *Template) GetAllAWSStepFunctionsActivityResources() map[string]AWSStepF if b, err := json.Marshal(resource); err == nil { var result AWSStepFunctionsActivity if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -137,10 +143,10 @@ func (t *Template) GetAllAWSStepFunctionsActivityResources() map[string]AWSStepF // GetAWSStepFunctionsActivityWithName retrieves all AWSStepFunctionsActivity items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSStepFunctionsActivityWithName(name string) (AWSStepFunctionsActivity, error) { +func (t *Template) GetAWSStepFunctionsActivityWithName(name string) (*AWSStepFunctionsActivity, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSStepFunctionsActivity: + case *AWSStepFunctionsActivity: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -152,12 +158,13 @@ func (t *Template) GetAWSStepFunctionsActivityWithName(name string) (AWSStepFunc if b, err := json.Marshal(resource); err == nil { var result AWSStepFunctionsActivity if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSStepFunctionsActivity{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-stepfunctions-statemachine.go b/cloudformation/aws-stepfunctions-statemachine.go index bc0f59fd78..43f3bd54c7 100644 --- a/cloudformation/aws-stepfunctions-statemachine.go +++ b/cloudformation/aws-stepfunctions-statemachine.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSStepFunctionsStateMachine) SetDeletionPolicy(policy DeletionPolicy) // 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 AWSStepFunctionsStateMachine) MarshalJSON() ([]byte, error) { +func (r *AWSStepFunctionsStateMachine) MarshalJSON() ([]byte, error) { type Properties AWSStepFunctionsStateMachine return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSStepFunctionsStateMachine) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSStepFunctionsStateMachine) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSStepFunctionsStateMachine) UnmarshalJSON(b []byte) error { } // GetAllAWSStepFunctionsStateMachineResources retrieves all AWSStepFunctionsStateMachine items from an AWS CloudFormation template -func (t *Template) GetAllAWSStepFunctionsStateMachineResources() map[string]AWSStepFunctionsStateMachine { - results := map[string]AWSStepFunctionsStateMachine{} +func (t *Template) GetAllAWSStepFunctionsStateMachineResources() map[string]*AWSStepFunctionsStateMachine { + results := map[string]*AWSStepFunctionsStateMachine{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSStepFunctionsStateMachine: + case *AWSStepFunctionsStateMachine: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSStepFunctionsStateMachineResources() map[string]AWSS if b, err := json.Marshal(resource); err == nil { var result AWSStepFunctionsStateMachine if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSStepFunctionsStateMachineResources() map[string]AWSS // GetAWSStepFunctionsStateMachineWithName retrieves all AWSStepFunctionsStateMachine items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSStepFunctionsStateMachineWithName(name string) (AWSStepFunctionsStateMachine, error) { +func (t *Template) GetAWSStepFunctionsStateMachineWithName(name string) (*AWSStepFunctionsStateMachine, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSStepFunctionsStateMachine: + case *AWSStepFunctionsStateMachine: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSStepFunctionsStateMachineWithName(name string) (AWSStep if b, err := json.Marshal(resource); err == nil { var result AWSStepFunctionsStateMachine if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSStepFunctionsStateMachine{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-waf-bytematchset.go b/cloudformation/aws-waf-bytematchset.go index b8384099fa..26c330b7d6 100644 --- a/cloudformation/aws-waf-bytematchset.go +++ b/cloudformation/aws-waf-bytematchset.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSWAFByteMatchSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSWAFByteMatchSet) MarshalJSON() ([]byte, error) { +func (r *AWSWAFByteMatchSet) MarshalJSON() ([]byte, error) { type Properties AWSWAFByteMatchSet return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSWAFByteMatchSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSWAFByteMatchSet) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSWAFByteMatchSet) UnmarshalJSON(b []byte) error { } // GetAllAWSWAFByteMatchSetResources retrieves all AWSWAFByteMatchSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFByteMatchSetResources() map[string]AWSWAFByteMatchSet { - results := map[string]AWSWAFByteMatchSet{} +func (t *Template) GetAllAWSWAFByteMatchSetResources() map[string]*AWSWAFByteMatchSet { + results := map[string]*AWSWAFByteMatchSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSWAFByteMatchSet: + case *AWSWAFByteMatchSet: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSWAFByteMatchSetResources() map[string]AWSWAFByteMatc if b, err := json.Marshal(resource); err == nil { var result AWSWAFByteMatchSet if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSWAFByteMatchSetResources() map[string]AWSWAFByteMatc // GetAWSWAFByteMatchSetWithName retrieves all AWSWAFByteMatchSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFByteMatchSetWithName(name string) (AWSWAFByteMatchSet, error) { +func (t *Template) GetAWSWAFByteMatchSetWithName(name string) (*AWSWAFByteMatchSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSWAFByteMatchSet: + case *AWSWAFByteMatchSet: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSWAFByteMatchSetWithName(name string) (AWSWAFByteMatchSe if b, err := json.Marshal(resource); err == nil { var result AWSWAFByteMatchSet if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSWAFByteMatchSet{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-waf-ipset.go b/cloudformation/aws-waf-ipset.go index 2f1c13bff2..2e2e09dc83 100644 --- a/cloudformation/aws-waf-ipset.go +++ b/cloudformation/aws-waf-ipset.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSWAFIPSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSWAFIPSet) MarshalJSON() ([]byte, error) { +func (r *AWSWAFIPSet) MarshalJSON() ([]byte, error) { type Properties AWSWAFIPSet return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSWAFIPSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSWAFIPSet) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSWAFIPSet) UnmarshalJSON(b []byte) error { } // GetAllAWSWAFIPSetResources retrieves all AWSWAFIPSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFIPSetResources() map[string]AWSWAFIPSet { - results := map[string]AWSWAFIPSet{} +func (t *Template) GetAllAWSWAFIPSetResources() map[string]*AWSWAFIPSet { + results := map[string]*AWSWAFIPSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSWAFIPSet: + case *AWSWAFIPSet: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSWAFIPSetResources() map[string]AWSWAFIPSet { if b, err := json.Marshal(resource); err == nil { var result AWSWAFIPSet if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSWAFIPSetResources() map[string]AWSWAFIPSet { // GetAWSWAFIPSetWithName retrieves all AWSWAFIPSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFIPSetWithName(name string) (AWSWAFIPSet, error) { +func (t *Template) GetAWSWAFIPSetWithName(name string) (*AWSWAFIPSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSWAFIPSet: + case *AWSWAFIPSet: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSWAFIPSetWithName(name string) (AWSWAFIPSet, error) { if b, err := json.Marshal(resource); err == nil { var result AWSWAFIPSet if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSWAFIPSet{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-waf-rule.go b/cloudformation/aws-waf-rule.go index f97857d4b3..1dd9ef9071 100644 --- a/cloudformation/aws-waf-rule.go +++ b/cloudformation/aws-waf-rule.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSWAFRule) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSWAFRule) MarshalJSON() ([]byte, error) { +func (r *AWSWAFRule) MarshalJSON() ([]byte, error) { type Properties AWSWAFRule return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSWAFRule) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSWAFRule) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSWAFRule) UnmarshalJSON(b []byte) error { } // GetAllAWSWAFRuleResources retrieves all AWSWAFRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRuleResources() map[string]AWSWAFRule { - results := map[string]AWSWAFRule{} +func (t *Template) GetAllAWSWAFRuleResources() map[string]*AWSWAFRule { + results := map[string]*AWSWAFRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSWAFRule: + case *AWSWAFRule: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSWAFRuleResources() map[string]AWSWAFRule { if b, err := json.Marshal(resource); err == nil { var result AWSWAFRule if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSWAFRuleResources() map[string]AWSWAFRule { // GetAWSWAFRuleWithName retrieves all AWSWAFRule items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRuleWithName(name string) (AWSWAFRule, error) { +func (t *Template) GetAWSWAFRuleWithName(name string) (*AWSWAFRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSWAFRule: + case *AWSWAFRule: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSWAFRuleWithName(name string) (AWSWAFRule, error) { if b, err := json.Marshal(resource); err == nil { var result AWSWAFRule if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSWAFRule{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-waf-sizeconstraintset.go b/cloudformation/aws-waf-sizeconstraintset.go index 2c0410ff30..bcf69b4508 100644 --- a/cloudformation/aws-waf-sizeconstraintset.go +++ b/cloudformation/aws-waf-sizeconstraintset.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSWAFSizeConstraintSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSWAFSizeConstraintSet) MarshalJSON() ([]byte, error) { +func (r *AWSWAFSizeConstraintSet) MarshalJSON() ([]byte, error) { type Properties AWSWAFSizeConstraintSet return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSWAFSizeConstraintSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSWAFSizeConstraintSet) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSWAFSizeConstraintSet) UnmarshalJSON(b []byte) error { } // GetAllAWSWAFSizeConstraintSetResources retrieves all AWSWAFSizeConstraintSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFSizeConstraintSetResources() map[string]AWSWAFSizeConstraintSet { - results := map[string]AWSWAFSizeConstraintSet{} +func (t *Template) GetAllAWSWAFSizeConstraintSetResources() map[string]*AWSWAFSizeConstraintSet { + results := map[string]*AWSWAFSizeConstraintSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSWAFSizeConstraintSet: + case *AWSWAFSizeConstraintSet: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSWAFSizeConstraintSetResources() map[string]AWSWAFSiz if b, err := json.Marshal(resource); err == nil { var result AWSWAFSizeConstraintSet if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSWAFSizeConstraintSetResources() map[string]AWSWAFSiz // GetAWSWAFSizeConstraintSetWithName retrieves all AWSWAFSizeConstraintSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFSizeConstraintSetWithName(name string) (AWSWAFSizeConstraintSet, error) { +func (t *Template) GetAWSWAFSizeConstraintSetWithName(name string) (*AWSWAFSizeConstraintSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSWAFSizeConstraintSet: + case *AWSWAFSizeConstraintSet: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSWAFSizeConstraintSetWithName(name string) (AWSWAFSizeCo if b, err := json.Marshal(resource); err == nil { var result AWSWAFSizeConstraintSet if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSWAFSizeConstraintSet{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-waf-sqlinjectionmatchset.go b/cloudformation/aws-waf-sqlinjectionmatchset.go index 55cfdbbb54..37e44b6ec2 100644 --- a/cloudformation/aws-waf-sqlinjectionmatchset.go +++ b/cloudformation/aws-waf-sqlinjectionmatchset.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSWAFSqlInjectionMatchSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSWAFSqlInjectionMatchSet) MarshalJSON() ([]byte, error) { +func (r *AWSWAFSqlInjectionMatchSet) MarshalJSON() ([]byte, error) { type Properties AWSWAFSqlInjectionMatchSet return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSWAFSqlInjectionMatchSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSWAFSqlInjectionMatchSet) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSWAFSqlInjectionMatchSet) UnmarshalJSON(b []byte) error { } // GetAllAWSWAFSqlInjectionMatchSetResources retrieves all AWSWAFSqlInjectionMatchSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFSqlInjectionMatchSetResources() map[string]AWSWAFSqlInjectionMatchSet { - results := map[string]AWSWAFSqlInjectionMatchSet{} +func (t *Template) GetAllAWSWAFSqlInjectionMatchSetResources() map[string]*AWSWAFSqlInjectionMatchSet { + results := map[string]*AWSWAFSqlInjectionMatchSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSWAFSqlInjectionMatchSet: + case *AWSWAFSqlInjectionMatchSet: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSWAFSqlInjectionMatchSetResources() map[string]AWSWAF if b, err := json.Marshal(resource); err == nil { var result AWSWAFSqlInjectionMatchSet if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSWAFSqlInjectionMatchSetResources() map[string]AWSWAF // GetAWSWAFSqlInjectionMatchSetWithName retrieves all AWSWAFSqlInjectionMatchSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFSqlInjectionMatchSetWithName(name string) (AWSWAFSqlInjectionMatchSet, error) { +func (t *Template) GetAWSWAFSqlInjectionMatchSetWithName(name string) (*AWSWAFSqlInjectionMatchSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSWAFSqlInjectionMatchSet: + case *AWSWAFSqlInjectionMatchSet: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSWAFSqlInjectionMatchSetWithName(name string) (AWSWAFSql if b, err := json.Marshal(resource); err == nil { var result AWSWAFSqlInjectionMatchSet if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSWAFSqlInjectionMatchSet{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-waf-webacl.go b/cloudformation/aws-waf-webacl.go index 768d937509..132d6097cf 100644 --- a/cloudformation/aws-waf-webacl.go +++ b/cloudformation/aws-waf-webacl.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSWAFWebACL) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSWAFWebACL) MarshalJSON() ([]byte, error) { +func (r *AWSWAFWebACL) MarshalJSON() ([]byte, error) { type Properties AWSWAFWebACL return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSWAFWebACL) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSWAFWebACL) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSWAFWebACL) UnmarshalJSON(b []byte) error { } // GetAllAWSWAFWebACLResources retrieves all AWSWAFWebACL items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFWebACLResources() map[string]AWSWAFWebACL { - results := map[string]AWSWAFWebACL{} +func (t *Template) GetAllAWSWAFWebACLResources() map[string]*AWSWAFWebACL { + results := map[string]*AWSWAFWebACL{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSWAFWebACL: + case *AWSWAFWebACL: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSWAFWebACLResources() map[string]AWSWAFWebACL { if b, err := json.Marshal(resource); err == nil { var result AWSWAFWebACL if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSWAFWebACLResources() map[string]AWSWAFWebACL { // GetAWSWAFWebACLWithName retrieves all AWSWAFWebACL items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFWebACLWithName(name string) (AWSWAFWebACL, error) { +func (t *Template) GetAWSWAFWebACLWithName(name string) (*AWSWAFWebACL, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSWAFWebACL: + case *AWSWAFWebACL: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSWAFWebACLWithName(name string) (AWSWAFWebACL, error) { if b, err := json.Marshal(resource); err == nil { var result AWSWAFWebACL if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSWAFWebACL{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-waf-xssmatchset.go b/cloudformation/aws-waf-xssmatchset.go index ca401818b7..7c3677d286 100644 --- a/cloudformation/aws-waf-xssmatchset.go +++ b/cloudformation/aws-waf-xssmatchset.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSWAFXssMatchSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSWAFXssMatchSet) MarshalJSON() ([]byte, error) { +func (r *AWSWAFXssMatchSet) MarshalJSON() ([]byte, error) { type Properties AWSWAFXssMatchSet return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSWAFXssMatchSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSWAFXssMatchSet) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSWAFXssMatchSet) UnmarshalJSON(b []byte) error { } // GetAllAWSWAFXssMatchSetResources retrieves all AWSWAFXssMatchSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFXssMatchSetResources() map[string]AWSWAFXssMatchSet { - results := map[string]AWSWAFXssMatchSet{} +func (t *Template) GetAllAWSWAFXssMatchSetResources() map[string]*AWSWAFXssMatchSet { + results := map[string]*AWSWAFXssMatchSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSWAFXssMatchSet: + case *AWSWAFXssMatchSet: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSWAFXssMatchSetResources() map[string]AWSWAFXssMatchS if b, err := json.Marshal(resource); err == nil { var result AWSWAFXssMatchSet if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSWAFXssMatchSetResources() map[string]AWSWAFXssMatchS // GetAWSWAFXssMatchSetWithName retrieves all AWSWAFXssMatchSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFXssMatchSetWithName(name string) (AWSWAFXssMatchSet, error) { +func (t *Template) GetAWSWAFXssMatchSetWithName(name string) (*AWSWAFXssMatchSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSWAFXssMatchSet: + case *AWSWAFXssMatchSet: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSWAFXssMatchSetWithName(name string) (AWSWAFXssMatchSet, if b, err := json.Marshal(resource); err == nil { var result AWSWAFXssMatchSet if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSWAFXssMatchSet{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-wafregional-bytematchset.go b/cloudformation/aws-wafregional-bytematchset.go index 18475d19e2..75181dc8e4 100644 --- a/cloudformation/aws-wafregional-bytematchset.go +++ b/cloudformation/aws-wafregional-bytematchset.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSWAFRegionalByteMatchSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSWAFRegionalByteMatchSet) MarshalJSON() ([]byte, error) { +func (r *AWSWAFRegionalByteMatchSet) MarshalJSON() ([]byte, error) { type Properties AWSWAFRegionalByteMatchSet return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSWAFRegionalByteMatchSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSWAFRegionalByteMatchSet) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSWAFRegionalByteMatchSet) UnmarshalJSON(b []byte) error { } // GetAllAWSWAFRegionalByteMatchSetResources retrieves all AWSWAFRegionalByteMatchSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalByteMatchSetResources() map[string]AWSWAFRegionalByteMatchSet { - results := map[string]AWSWAFRegionalByteMatchSet{} +func (t *Template) GetAllAWSWAFRegionalByteMatchSetResources() map[string]*AWSWAFRegionalByteMatchSet { + results := map[string]*AWSWAFRegionalByteMatchSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSWAFRegionalByteMatchSet: + case *AWSWAFRegionalByteMatchSet: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSWAFRegionalByteMatchSetResources() map[string]AWSWAF if b, err := json.Marshal(resource); err == nil { var result AWSWAFRegionalByteMatchSet if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSWAFRegionalByteMatchSetResources() map[string]AWSWAF // GetAWSWAFRegionalByteMatchSetWithName retrieves all AWSWAFRegionalByteMatchSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalByteMatchSetWithName(name string) (AWSWAFRegionalByteMatchSet, error) { +func (t *Template) GetAWSWAFRegionalByteMatchSetWithName(name string) (*AWSWAFRegionalByteMatchSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSWAFRegionalByteMatchSet: + case *AWSWAFRegionalByteMatchSet: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSWAFRegionalByteMatchSetWithName(name string) (AWSWAFReg if b, err := json.Marshal(resource); err == nil { var result AWSWAFRegionalByteMatchSet if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSWAFRegionalByteMatchSet{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-wafregional-ipset.go b/cloudformation/aws-wafregional-ipset.go index 6cc873239b..992a028a4e 100644 --- a/cloudformation/aws-wafregional-ipset.go +++ b/cloudformation/aws-wafregional-ipset.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSWAFRegionalIPSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSWAFRegionalIPSet) MarshalJSON() ([]byte, error) { +func (r *AWSWAFRegionalIPSet) MarshalJSON() ([]byte, error) { type Properties AWSWAFRegionalIPSet return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSWAFRegionalIPSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSWAFRegionalIPSet) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSWAFRegionalIPSet) UnmarshalJSON(b []byte) error { } // GetAllAWSWAFRegionalIPSetResources retrieves all AWSWAFRegionalIPSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalIPSetResources() map[string]AWSWAFRegionalIPSet { - results := map[string]AWSWAFRegionalIPSet{} +func (t *Template) GetAllAWSWAFRegionalIPSetResources() map[string]*AWSWAFRegionalIPSet { + results := map[string]*AWSWAFRegionalIPSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSWAFRegionalIPSet: + case *AWSWAFRegionalIPSet: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSWAFRegionalIPSetResources() map[string]AWSWAFRegiona if b, err := json.Marshal(resource); err == nil { var result AWSWAFRegionalIPSet if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSWAFRegionalIPSetResources() map[string]AWSWAFRegiona // GetAWSWAFRegionalIPSetWithName retrieves all AWSWAFRegionalIPSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalIPSetWithName(name string) (AWSWAFRegionalIPSet, error) { +func (t *Template) GetAWSWAFRegionalIPSetWithName(name string) (*AWSWAFRegionalIPSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSWAFRegionalIPSet: + case *AWSWAFRegionalIPSet: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSWAFRegionalIPSetWithName(name string) (AWSWAFRegionalIP if b, err := json.Marshal(resource); err == nil { var result AWSWAFRegionalIPSet if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSWAFRegionalIPSet{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-wafregional-rule.go b/cloudformation/aws-wafregional-rule.go index 43db1b8e7d..fc28a829dd 100644 --- a/cloudformation/aws-wafregional-rule.go +++ b/cloudformation/aws-wafregional-rule.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -72,7 +73,7 @@ func (r *AWSWAFRegionalRule) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSWAFRegionalRule) MarshalJSON() ([]byte, error) { +func (r *AWSWAFRegionalRule) MarshalJSON() ([]byte, error) { type Properties AWSWAFRegionalRule return json.Marshal(&struct { Type string @@ -82,7 +83,7 @@ func (r AWSWAFRegionalRule) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -99,7 +100,11 @@ func (r *AWSWAFRegionalRule) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -119,11 +124,11 @@ func (r *AWSWAFRegionalRule) UnmarshalJSON(b []byte) error { } // GetAllAWSWAFRegionalRuleResources retrieves all AWSWAFRegionalRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalRuleResources() map[string]AWSWAFRegionalRule { - results := map[string]AWSWAFRegionalRule{} +func (t *Template) GetAllAWSWAFRegionalRuleResources() map[string]*AWSWAFRegionalRule { + results := map[string]*AWSWAFRegionalRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSWAFRegionalRule: + case *AWSWAFRegionalRule: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -135,7 +140,8 @@ func (t *Template) GetAllAWSWAFRegionalRuleResources() map[string]AWSWAFRegional if b, err := json.Marshal(resource); err == nil { var result AWSWAFRegionalRule if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -147,10 +153,10 @@ func (t *Template) GetAllAWSWAFRegionalRuleResources() map[string]AWSWAFRegional // GetAWSWAFRegionalRuleWithName retrieves all AWSWAFRegionalRule items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalRuleWithName(name string) (AWSWAFRegionalRule, error) { +func (t *Template) GetAWSWAFRegionalRuleWithName(name string) (*AWSWAFRegionalRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSWAFRegionalRule: + case *AWSWAFRegionalRule: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -162,12 +168,13 @@ func (t *Template) GetAWSWAFRegionalRuleWithName(name string) (AWSWAFRegionalRul if b, err := json.Marshal(resource); err == nil { var result AWSWAFRegionalRule if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSWAFRegionalRule{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-wafregional-sizeconstraintset.go b/cloudformation/aws-wafregional-sizeconstraintset.go index 898f6f30fd..c677475daf 100644 --- a/cloudformation/aws-wafregional-sizeconstraintset.go +++ b/cloudformation/aws-wafregional-sizeconstraintset.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSWAFRegionalSizeConstraintSet) SetDeletionPolicy(policy DeletionPolic // 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 AWSWAFRegionalSizeConstraintSet) MarshalJSON() ([]byte, error) { +func (r *AWSWAFRegionalSizeConstraintSet) MarshalJSON() ([]byte, error) { type Properties AWSWAFRegionalSizeConstraintSet return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSWAFRegionalSizeConstraintSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSWAFRegionalSizeConstraintSet) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSWAFRegionalSizeConstraintSet) UnmarshalJSON(b []byte) error { } // GetAllAWSWAFRegionalSizeConstraintSetResources retrieves all AWSWAFRegionalSizeConstraintSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalSizeConstraintSetResources() map[string]AWSWAFRegionalSizeConstraintSet { - results := map[string]AWSWAFRegionalSizeConstraintSet{} +func (t *Template) GetAllAWSWAFRegionalSizeConstraintSetResources() map[string]*AWSWAFRegionalSizeConstraintSet { + results := map[string]*AWSWAFRegionalSizeConstraintSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSWAFRegionalSizeConstraintSet: + case *AWSWAFRegionalSizeConstraintSet: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSWAFRegionalSizeConstraintSetResources() map[string]A if b, err := json.Marshal(resource); err == nil { var result AWSWAFRegionalSizeConstraintSet if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSWAFRegionalSizeConstraintSetResources() map[string]A // GetAWSWAFRegionalSizeConstraintSetWithName retrieves all AWSWAFRegionalSizeConstraintSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalSizeConstraintSetWithName(name string) (AWSWAFRegionalSizeConstraintSet, error) { +func (t *Template) GetAWSWAFRegionalSizeConstraintSetWithName(name string) (*AWSWAFRegionalSizeConstraintSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSWAFRegionalSizeConstraintSet: + case *AWSWAFRegionalSizeConstraintSet: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSWAFRegionalSizeConstraintSetWithName(name string) (AWSW if b, err := json.Marshal(resource); err == nil { var result AWSWAFRegionalSizeConstraintSet if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSWAFRegionalSizeConstraintSet{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-wafregional-sqlinjectionmatchset.go b/cloudformation/aws-wafregional-sqlinjectionmatchset.go index 995a3ff14b..78d838481f 100644 --- a/cloudformation/aws-wafregional-sqlinjectionmatchset.go +++ b/cloudformation/aws-wafregional-sqlinjectionmatchset.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSWAFRegionalSqlInjectionMatchSet) SetDeletionPolicy(policy DeletionPo // 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 AWSWAFRegionalSqlInjectionMatchSet) MarshalJSON() ([]byte, error) { +func (r *AWSWAFRegionalSqlInjectionMatchSet) MarshalJSON() ([]byte, error) { type Properties AWSWAFRegionalSqlInjectionMatchSet return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSWAFRegionalSqlInjectionMatchSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSWAFRegionalSqlInjectionMatchSet) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSWAFRegionalSqlInjectionMatchSet) UnmarshalJSON(b []byte) error { } // GetAllAWSWAFRegionalSqlInjectionMatchSetResources retrieves all AWSWAFRegionalSqlInjectionMatchSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalSqlInjectionMatchSetResources() map[string]AWSWAFRegionalSqlInjectionMatchSet { - results := map[string]AWSWAFRegionalSqlInjectionMatchSet{} +func (t *Template) GetAllAWSWAFRegionalSqlInjectionMatchSetResources() map[string]*AWSWAFRegionalSqlInjectionMatchSet { + results := map[string]*AWSWAFRegionalSqlInjectionMatchSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSWAFRegionalSqlInjectionMatchSet: + case *AWSWAFRegionalSqlInjectionMatchSet: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSWAFRegionalSqlInjectionMatchSetResources() map[strin if b, err := json.Marshal(resource); err == nil { var result AWSWAFRegionalSqlInjectionMatchSet if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSWAFRegionalSqlInjectionMatchSetResources() map[strin // GetAWSWAFRegionalSqlInjectionMatchSetWithName retrieves all AWSWAFRegionalSqlInjectionMatchSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalSqlInjectionMatchSetWithName(name string) (AWSWAFRegionalSqlInjectionMatchSet, error) { +func (t *Template) GetAWSWAFRegionalSqlInjectionMatchSetWithName(name string) (*AWSWAFRegionalSqlInjectionMatchSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSWAFRegionalSqlInjectionMatchSet: + case *AWSWAFRegionalSqlInjectionMatchSet: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSWAFRegionalSqlInjectionMatchSetWithName(name string) (A if b, err := json.Marshal(resource); err == nil { var result AWSWAFRegionalSqlInjectionMatchSet if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSWAFRegionalSqlInjectionMatchSet{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-wafregional-webacl.go b/cloudformation/aws-wafregional-webacl.go index 0020a2f4ef..547f9f3624 100644 --- a/cloudformation/aws-wafregional-webacl.go +++ b/cloudformation/aws-wafregional-webacl.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -77,7 +78,7 @@ func (r *AWSWAFRegionalWebACL) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSWAFRegionalWebACL) MarshalJSON() ([]byte, error) { +func (r *AWSWAFRegionalWebACL) MarshalJSON() ([]byte, error) { type Properties AWSWAFRegionalWebACL return json.Marshal(&struct { Type string @@ -87,7 +88,7 @@ func (r AWSWAFRegionalWebACL) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -104,7 +105,11 @@ func (r *AWSWAFRegionalWebACL) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -124,11 +129,11 @@ func (r *AWSWAFRegionalWebACL) UnmarshalJSON(b []byte) error { } // GetAllAWSWAFRegionalWebACLResources retrieves all AWSWAFRegionalWebACL items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalWebACLResources() map[string]AWSWAFRegionalWebACL { - results := map[string]AWSWAFRegionalWebACL{} +func (t *Template) GetAllAWSWAFRegionalWebACLResources() map[string]*AWSWAFRegionalWebACL { + results := map[string]*AWSWAFRegionalWebACL{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSWAFRegionalWebACL: + case *AWSWAFRegionalWebACL: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -140,7 +145,8 @@ func (t *Template) GetAllAWSWAFRegionalWebACLResources() map[string]AWSWAFRegion if b, err := json.Marshal(resource); err == nil { var result AWSWAFRegionalWebACL if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -152,10 +158,10 @@ func (t *Template) GetAllAWSWAFRegionalWebACLResources() map[string]AWSWAFRegion // GetAWSWAFRegionalWebACLWithName retrieves all AWSWAFRegionalWebACL items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalWebACLWithName(name string) (AWSWAFRegionalWebACL, error) { +func (t *Template) GetAWSWAFRegionalWebACLWithName(name string) (*AWSWAFRegionalWebACL, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSWAFRegionalWebACL: + case *AWSWAFRegionalWebACL: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -167,12 +173,13 @@ func (t *Template) GetAWSWAFRegionalWebACLWithName(name string) (AWSWAFRegionalW if b, err := json.Marshal(resource); err == nil { var result AWSWAFRegionalWebACL if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSWAFRegionalWebACL{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-wafregional-webaclassociation.go b/cloudformation/aws-wafregional-webaclassociation.go index a7e8f77658..a631af1090 100644 --- a/cloudformation/aws-wafregional-webaclassociation.go +++ b/cloudformation/aws-wafregional-webaclassociation.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSWAFRegionalWebACLAssociation) SetDeletionPolicy(policy DeletionPolic // 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 AWSWAFRegionalWebACLAssociation) MarshalJSON() ([]byte, error) { +func (r *AWSWAFRegionalWebACLAssociation) MarshalJSON() ([]byte, error) { type Properties AWSWAFRegionalWebACLAssociation return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSWAFRegionalWebACLAssociation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSWAFRegionalWebACLAssociation) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSWAFRegionalWebACLAssociation) UnmarshalJSON(b []byte) error { } // GetAllAWSWAFRegionalWebACLAssociationResources retrieves all AWSWAFRegionalWebACLAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalWebACLAssociationResources() map[string]AWSWAFRegionalWebACLAssociation { - results := map[string]AWSWAFRegionalWebACLAssociation{} +func (t *Template) GetAllAWSWAFRegionalWebACLAssociationResources() map[string]*AWSWAFRegionalWebACLAssociation { + results := map[string]*AWSWAFRegionalWebACLAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSWAFRegionalWebACLAssociation: + case *AWSWAFRegionalWebACLAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSWAFRegionalWebACLAssociationResources() map[string]A if b, err := json.Marshal(resource); err == nil { var result AWSWAFRegionalWebACLAssociation if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSWAFRegionalWebACLAssociationResources() map[string]A // GetAWSWAFRegionalWebACLAssociationWithName retrieves all AWSWAFRegionalWebACLAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalWebACLAssociationWithName(name string) (AWSWAFRegionalWebACLAssociation, error) { +func (t *Template) GetAWSWAFRegionalWebACLAssociationWithName(name string) (*AWSWAFRegionalWebACLAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSWAFRegionalWebACLAssociation: + case *AWSWAFRegionalWebACLAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSWAFRegionalWebACLAssociationWithName(name string) (AWSW if b, err := json.Marshal(resource); err == nil { var result AWSWAFRegionalWebACLAssociation if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSWAFRegionalWebACLAssociation{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-wafregional-xssmatchset.go b/cloudformation/aws-wafregional-xssmatchset.go index 6ca7fa8b88..caf298c6fe 100644 --- a/cloudformation/aws-wafregional-xssmatchset.go +++ b/cloudformation/aws-wafregional-xssmatchset.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -67,7 +68,7 @@ func (r *AWSWAFRegionalXssMatchSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSWAFRegionalXssMatchSet) MarshalJSON() ([]byte, error) { +func (r *AWSWAFRegionalXssMatchSet) MarshalJSON() ([]byte, error) { type Properties AWSWAFRegionalXssMatchSet return json.Marshal(&struct { Type string @@ -77,7 +78,7 @@ func (r AWSWAFRegionalXssMatchSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -94,7 +95,11 @@ func (r *AWSWAFRegionalXssMatchSet) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -114,11 +119,11 @@ func (r *AWSWAFRegionalXssMatchSet) UnmarshalJSON(b []byte) error { } // GetAllAWSWAFRegionalXssMatchSetResources retrieves all AWSWAFRegionalXssMatchSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalXssMatchSetResources() map[string]AWSWAFRegionalXssMatchSet { - results := map[string]AWSWAFRegionalXssMatchSet{} +func (t *Template) GetAllAWSWAFRegionalXssMatchSetResources() map[string]*AWSWAFRegionalXssMatchSet { + results := map[string]*AWSWAFRegionalXssMatchSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSWAFRegionalXssMatchSet: + case *AWSWAFRegionalXssMatchSet: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -130,7 +135,8 @@ func (t *Template) GetAllAWSWAFRegionalXssMatchSetResources() map[string]AWSWAFR if b, err := json.Marshal(resource); err == nil { var result AWSWAFRegionalXssMatchSet if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -142,10 +148,10 @@ func (t *Template) GetAllAWSWAFRegionalXssMatchSetResources() map[string]AWSWAFR // GetAWSWAFRegionalXssMatchSetWithName retrieves all AWSWAFRegionalXssMatchSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalXssMatchSetWithName(name string) (AWSWAFRegionalXssMatchSet, error) { +func (t *Template) GetAWSWAFRegionalXssMatchSetWithName(name string) (*AWSWAFRegionalXssMatchSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSWAFRegionalXssMatchSet: + case *AWSWAFRegionalXssMatchSet: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -157,12 +163,13 @@ func (t *Template) GetAWSWAFRegionalXssMatchSetWithName(name string) (AWSWAFRegi if b, err := json.Marshal(resource); err == nil { var result AWSWAFRegionalXssMatchSet if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSWAFRegionalXssMatchSet{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/aws-workspaces-workspace.go b/cloudformation/aws-workspaces-workspace.go index fa3c1bb78e..f4a6e06076 100644 --- a/cloudformation/aws-workspaces-workspace.go +++ b/cloudformation/aws-workspaces-workspace.go @@ -1,6 +1,7 @@ package cloudformation import ( + "bytes" "encoding/json" "errors" "fmt" @@ -97,7 +98,7 @@ func (r *AWSWorkSpacesWorkspace) SetDeletionPolicy(policy DeletionPolicy) { // 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 AWSWorkSpacesWorkspace) MarshalJSON() ([]byte, error) { +func (r *AWSWorkSpacesWorkspace) MarshalJSON() ([]byte, error) { type Properties AWSWorkSpacesWorkspace return json.Marshal(&struct { Type string @@ -107,7 +108,7 @@ func (r AWSWorkSpacesWorkspace) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), + Properties: (Properties)(*r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -124,7 +125,11 @@ func (r *AWSWorkSpacesWorkspace) UnmarshalJSON(b []byte) error { DependsOn []string Metadata map[string]interface{} }{} - if err := json.Unmarshal(b, &res); err != nil { + + 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 } @@ -144,11 +149,11 @@ func (r *AWSWorkSpacesWorkspace) UnmarshalJSON(b []byte) error { } // GetAllAWSWorkSpacesWorkspaceResources retrieves all AWSWorkSpacesWorkspace items from an AWS CloudFormation template -func (t *Template) GetAllAWSWorkSpacesWorkspaceResources() map[string]AWSWorkSpacesWorkspace { - results := map[string]AWSWorkSpacesWorkspace{} +func (t *Template) GetAllAWSWorkSpacesWorkspaceResources() map[string]*AWSWorkSpacesWorkspace { + results := map[string]*AWSWorkSpacesWorkspace{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case AWSWorkSpacesWorkspace: + case *AWSWorkSpacesWorkspace: // We found a strongly typed resource of the correct type; use it results[name] = resource case map[string]interface{}: @@ -160,7 +165,8 @@ func (t *Template) GetAllAWSWorkSpacesWorkspaceResources() map[string]AWSWorkSpa if b, err := json.Marshal(resource); err == nil { var result AWSWorkSpacesWorkspace if err := json.Unmarshal(b, &result); err == nil { - results[name] = result + t.Resources[name] = &result + results[name] = &result } } } @@ -172,10 +178,10 @@ func (t *Template) GetAllAWSWorkSpacesWorkspaceResources() map[string]AWSWorkSpa // GetAWSWorkSpacesWorkspaceWithName retrieves all AWSWorkSpacesWorkspace items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWorkSpacesWorkspaceWithName(name string) (AWSWorkSpacesWorkspace, error) { +func (t *Template) GetAWSWorkSpacesWorkspaceWithName(name string) (*AWSWorkSpacesWorkspace, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case AWSWorkSpacesWorkspace: + case *AWSWorkSpacesWorkspace: // We found a strongly typed resource of the correct type; use it return resource, nil case map[string]interface{}: @@ -187,12 +193,13 @@ func (t *Template) GetAWSWorkSpacesWorkspaceWithName(name string) (AWSWorkSpaces if b, err := json.Marshal(resource); err == nil { var result AWSWorkSpacesWorkspace if err := json.Unmarshal(b, &result); err == nil { - return result, nil + t.Resources[name] = &result + return &result, nil } } } } } } - return AWSWorkSpacesWorkspace{}, errors.New("resource not found") + return nil, errors.New("resource not found") } diff --git a/cloudformation/awsserverlessapplication_location.go b/cloudformation/awsserverlessapplication_location.go new file mode 100644 index 0000000000..b77aec81c2 --- /dev/null +++ b/cloudformation/awsserverlessapplication_location.go @@ -0,0 +1,54 @@ +package cloudformation + +import ( + "encoding/json" + + "reflect" + + "github.com/mitchellh/mapstructure" +) + +// AWSServerlessApplication_Location is a helper struct that can hold either a ApplicationLocation value +type AWSServerlessApplication_Location struct { + ApplicationLocation *AWSServerlessApplication_ApplicationLocation +} + +func (r AWSServerlessApplication_Location) value() interface{} { + + if r.ApplicationLocation != nil && !reflect.DeepEqual(r.ApplicationLocation, &AWSServerlessApplication_ApplicationLocation{}) { + return r.ApplicationLocation + } + + if r.ApplicationLocation != nil { + return r.ApplicationLocation + } + + return nil + +} + +func (r AWSServerlessApplication_Location) MarshalJSON() ([]byte, error) { + return json.Marshal(r.value()) +} + +// Hook into the marshaller +func (r *AWSServerlessApplication_Location) UnmarshalJSON(b []byte) error { + + // Unmarshal into interface{} to check it's type + var typecheck interface{} + if err := json.Unmarshal(b, &typecheck); err != nil { + return err + } + + switch val := typecheck.(type) { + + case map[string]interface{}: + + mapstructure.Decode(val, &r.ApplicationLocation) + + case []interface{}: + + } + + return nil +} diff --git a/schema/cloudformation.go b/schema/cloudformation.go index fc9f7c1e92..3d70921c3f 100644 --- a/schema/cloudformation.go +++ b/schema/cloudformation.go @@ -79,6 +79,12 @@ var CloudformationSchema = `{ }, "type": "array" }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AmazonMQ::Broker.TagsEntry" + }, + "type": "array" + }, "Users": { "items": { "$ref": "#/definitions/AWS::AmazonMQ::Broker.User" @@ -159,6 +165,22 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::AmazonMQ::Broker.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::AmazonMQ::Broker.User": { "additionalProperties": false, "properties": { @@ -230,6 +252,12 @@ var CloudformationSchema = `{ }, "Name": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AmazonMQ::Configuration.TagsEntry" + }, + "type": "array" } }, "required": [ @@ -253,6 +281,96 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::AmazonMQ::Configuration.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::AmazonMQ::ConfigurationAssociation": { + "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": { + "Broker": { + "type": "string" + }, + "Configuration": { + "$ref": "#/definitions/AWS::AmazonMQ::ConfigurationAssociation.ConfigurationId" + } + }, + "required": [ + "Broker", + "Configuration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AmazonMQ::ConfigurationAssociation" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AmazonMQ::ConfigurationAssociation.ConfigurationId": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Revision": { + "type": "number" + } + }, + "required": [ + "Id", + "Revision" + ], + "type": "object" + }, "AWS::ApiGateway::Account": { "additionalProperties": false, "properties": { @@ -355,6 +473,9 @@ var CloudformationSchema = `{ "$ref": "#/definitions/AWS::ApiGateway::ApiKey.StageKey" }, "type": "array" + }, + "Value": { + "type": "string" } }, "type": "object" @@ -450,7 +571,8 @@ var CloudformationSchema = `{ } }, "required": [ - "RestApiId" + "RestApiId", + "Type" ], "type": "object" }, @@ -2080,7 +2202,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AppStream::DirectoryConfig": { + "AWS::ApiGatewayV2::Api": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2112,29 +2234,120 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DirectoryName": { + "ApiKeySelectionExpression": { "type": "string" }, - "OrganizationalUnitDistinguishedNames": { + "Description": { + "type": "string" + }, + "DisableSchemaValidation": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "ProtocolType": { + "type": "string" + }, + "RouteSelectionExpression": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "ProtocolType", + "RouteSelectionExpression" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGatewayV2::Api" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::Authorizer": { + "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": { + "ApiId": { + "type": "string" }, - "ServiceAccountCredentials": { - "$ref": "#/definitions/AWS::AppStream::DirectoryConfig.ServiceAccountCredentials" + "AuthorizerCredentialsArn": { + "type": "string" + }, + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerType": { + "type": "string" + }, + "AuthorizerUri": { + "type": "string" + }, + "IdentitySource": { + "items": { + "type": "string" + }, + "type": "array" + }, + "IdentityValidationExpression": { + "type": "string" + }, + "Name": { + "type": "string" } }, "required": [ - "DirectoryName", - "OrganizationalUnitDistinguishedNames", - "ServiceAccountCredentials" + "ApiId", + "AuthorizerType", + "AuthorizerUri", + "IdentitySource", + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::DirectoryConfig" + "AWS::ApiGatewayV2::Authorizer" ], "type": "string" } @@ -2145,23 +2358,67 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AppStream::DirectoryConfig.ServiceAccountCredentials": { + "AWS::ApiGatewayV2::Deployment": { "additionalProperties": false, "properties": { - "AccountName": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "AccountPassword": { + "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": { + "ApiId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "StageName": { + "type": "string" + } + }, + "required": [ + "ApiId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGatewayV2::Deployment" + ], "type": "string" } }, "required": [ - "AccountName", - "AccountPassword" + "Type", + "Properties" ], "type": "object" }, - "AWS::AppStream::Fleet": { + "AWS::ApiGatewayV2::Integration": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2193,55 +2450,55 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ComputeCapacity": { - "$ref": "#/definitions/AWS::AppStream::Fleet.ComputeCapacity" - }, - "Description": { + "ApiId": { "type": "string" }, - "DisconnectTimeoutInSeconds": { - "type": "number" + "ConnectionType": { + "type": "string" }, - "DisplayName": { + "ContentHandlingStrategy": { "type": "string" }, - "DomainJoinInfo": { - "$ref": "#/definitions/AWS::AppStream::Fleet.DomainJoinInfo" + "CredentialsArn": { + "type": "string" }, - "EnableDefaultInternetAccess": { - "type": "boolean" + "Description": { + "type": "string" }, - "FleetType": { + "IntegrationMethod": { "type": "string" }, - "ImageArn": { + "IntegrationType": { "type": "string" }, - "ImageName": { + "IntegrationUri": { "type": "string" }, - "InstanceType": { + "PassthroughBehavior": { "type": "string" }, - "MaxUserDurationInSeconds": { - "type": "number" + "RequestParameters": { + "type": "object" }, - "Name": { + "RequestTemplates": { + "type": "object" + }, + "TemplateSelectionExpression": { "type": "string" }, - "VpcConfig": { - "$ref": "#/definitions/AWS::AppStream::Fleet.VpcConfig" + "TimeoutInMillis": { + "type": "number" } }, "required": [ - "ComputeCapacity", - "InstanceType" + "ApiId", + "IntegrationType" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::Fleet" + "AWS::ApiGatewayV2::Integration" ], "type": "string" } @@ -2252,49 +2509,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AppStream::Fleet.ComputeCapacity": { - "additionalProperties": false, - "properties": { - "DesiredInstances": { - "type": "number" - } - }, - "required": [ - "DesiredInstances" - ], - "type": "object" - }, - "AWS::AppStream::Fleet.DomainJoinInfo": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "type": "string" - }, - "OrganizationalUnitDistinguishedName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AppStream::Fleet.VpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::AppStream::ImageBuilder": { + "AWS::ApiGatewayV2::IntegrationResponse": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2326,45 +2541,38 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AppstreamAgentVersion": { + "ApiId": { "type": "string" }, - "Description": { + "ContentHandlingStrategy": { "type": "string" }, - "DisplayName": { + "IntegrationId": { "type": "string" }, - "DomainJoinInfo": { - "$ref": "#/definitions/AWS::AppStream::ImageBuilder.DomainJoinInfo" - }, - "EnableDefaultInternetAccess": { - "type": "boolean" - }, - "ImageArn": { + "IntegrationResponseKey": { "type": "string" }, - "ImageName": { - "type": "string" + "ResponseParameters": { + "type": "object" }, - "InstanceType": { - "type": "string" + "ResponseTemplates": { + "type": "object" }, - "Name": { + "TemplateSelectionExpression": { "type": "string" - }, - "VpcConfig": { - "$ref": "#/definitions/AWS::AppStream::ImageBuilder.VpcConfig" } }, "required": [ - "InstanceType" + "ApiId", + "IntegrationId", + "IntegrationResponseKey" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::ImageBuilder" + "AWS::ApiGatewayV2::IntegrationResponse" ], "type": "string" } @@ -2375,37 +2583,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AppStream::ImageBuilder.DomainJoinInfo": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "type": "string" - }, - "OrganizationalUnitDistinguishedName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AppStream::ImageBuilder.VpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::AppStream::Stack": { + "AWS::ApiGatewayV2::Model": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2437,113 +2615,43 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApplicationSettings": { - "$ref": "#/definitions/AWS::AppStream::Stack.ApplicationSettings" - }, - "AttributesToDelete": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DeleteStorageConnectors": { - "type": "boolean" - }, - "Description": { + "ApiId": { "type": "string" }, - "DisplayName": { + "ContentType": { "type": "string" }, - "FeedbackURL": { + "Description": { "type": "string" }, "Name": { "type": "string" }, - "RedirectURL": { - "type": "string" - }, - "StorageConnectors": { - "items": { - "$ref": "#/definitions/AWS::AppStream::Stack.StorageConnector" - }, - "type": "array" - }, - "UserSettings": { - "items": { - "$ref": "#/definitions/AWS::AppStream::Stack.UserSetting" - }, - "type": "array" + "Schema": { + "type": "object" } }, + "required": [ + "ApiId", + "Name", + "Schema" + ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::Stack" + "AWS::ApiGatewayV2::Model" ], "type": "string" } }, "required": [ - "Type" - ], - "type": "object" - }, - "AWS::AppStream::Stack.ApplicationSettings": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "SettingsGroup": { - "type": "string" - } - }, - "required": [ - "Enabled" - ], - "type": "object" - }, - "AWS::AppStream::Stack.StorageConnector": { - "additionalProperties": false, - "properties": { - "ConnectorType": { - "type": "string" - }, - "Domains": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ResourceIdentifier": { - "type": "string" - } - }, - "required": [ - "ConnectorType" - ], - "type": "object" - }, - "AWS::AppStream::Stack.UserSetting": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "Permission": { - "type": "string" - } - }, - "required": [ - "Action", - "Permission" + "Type", + "Properties" ], "type": "object" }, - "AWS::AppStream::StackFleetAssociation": { + "AWS::ApiGatewayV2::Route": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2575,22 +2683,55 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "FleetName": { + "ApiId": { "type": "string" }, - "StackName": { + "ApiKeyRequired": { + "type": "boolean" + }, + "AuthorizationScopes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AuthorizationType": { + "type": "string" + }, + "AuthorizerId": { + "type": "string" + }, + "ModelSelectionExpression": { + "type": "string" + }, + "OperationName": { + "type": "string" + }, + "RequestModels": { + "type": "object" + }, + "RequestParameters": { + "type": "object" + }, + "RouteKey": { + "type": "string" + }, + "RouteResponseSelectionExpression": { + "type": "string" + }, + "Target": { "type": "string" } }, "required": [ - "FleetName", - "StackName" + "ApiId", + "RouteKey" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::StackFleetAssociation" + "AWS::ApiGatewayV2::Route" ], "type": "string" } @@ -2601,7 +2742,19 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AppStream::StackUserAssociation": { + "AWS::ApiGatewayV2::Route.ParameterConstraints": { + "additionalProperties": false, + "properties": { + "Required": { + "type": "boolean" + } + }, + "required": [ + "Required" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::RouteResponse": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2633,29 +2786,35 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AuthenticationType": { + "ApiId": { "type": "string" }, - "SendEmailNotification": { - "type": "boolean" + "ModelSelectionExpression": { + "type": "string" }, - "StackName": { + "ResponseModels": { + "type": "object" + }, + "ResponseParameters": { + "type": "object" + }, + "RouteId": { "type": "string" }, - "UserName": { + "RouteResponseKey": { "type": "string" } }, "required": [ - "AuthenticationType", - "StackName", - "UserName" + "ApiId", + "RouteId", + "RouteResponseKey" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::StackUserAssociation" + "AWS::ApiGatewayV2::RouteResponse" ], "type": "string" } @@ -2666,7 +2825,19 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AppStream::User": { + "AWS::ApiGatewayV2::RouteResponse.ParameterConstraints": { + "additionalProperties": false, + "properties": { + "Required": { + "type": "boolean" + } + }, + "required": [ + "Required" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::Stage": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2698,31 +2869,44 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AuthenticationType": { + "AccessLogSettings": { + "$ref": "#/definitions/AWS::ApiGatewayV2::Stage.AccessLogSettings" + }, + "ApiId": { "type": "string" }, - "FirstName": { + "ClientCertificateId": { "type": "string" }, - "LastName": { + "DefaultRouteSettings": { + "$ref": "#/definitions/AWS::ApiGatewayV2::Stage.RouteSettings" + }, + "DeploymentId": { "type": "string" }, - "MessageAction": { + "Description": { "type": "string" }, - "UserName": { + "RouteSettings": { + "type": "object" + }, + "StageName": { "type": "string" + }, + "StageVariables": { + "type": "object" } }, "required": [ - "AuthenticationType", - "UserName" + "ApiId", + "DeploymentId", + "StageName" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::User" + "AWS::ApiGatewayV2::Stage" ], "type": "string" } @@ -2733,7 +2917,40 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AppSync::ApiKey": { + "AWS::ApiGatewayV2::Stage.AccessLogSettings": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "type": "string" + }, + "Format": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGatewayV2::Stage.RouteSettings": { + "additionalProperties": false, + "properties": { + "DataTraceEnabled": { + "type": "boolean" + }, + "DetailedMetricsEnabled": { + "type": "boolean" + }, + "LoggingLevel": { + "type": "string" + }, + "ThrottlingBurstLimit": { + "type": "number" + }, + "ThrottlingRateLimit": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AppStream::DirectoryConfig": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2765,24 +2982,29 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApiId": { + "DirectoryName": { "type": "string" }, - "Description": { - "type": "string" + "OrganizationalUnitDistinguishedNames": { + "items": { + "type": "string" + }, + "type": "array" }, - "Expires": { - "type": "number" + "ServiceAccountCredentials": { + "$ref": "#/definitions/AWS::AppStream::DirectoryConfig.ServiceAccountCredentials" } }, "required": [ - "ApiId" + "DirectoryName", + "OrganizationalUnitDistinguishedNames", + "ServiceAccountCredentials" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::ApiKey" + "AWS::AppStream::DirectoryConfig" ], "type": "string" } @@ -2793,7 +3015,23 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AppSync::DataSource": { + "AWS::AppStream::DirectoryConfig.ServiceAccountCredentials": { + "additionalProperties": false, + "properties": { + "AccountName": { + "type": "string" + }, + "AccountPassword": { + "type": "string" + } + }, + "required": [ + "AccountName", + "AccountPassword" + ], + "type": "object" + }, + "AWS::AppStream::Fleet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2825,47 +3063,55 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApiId": { - "type": "string" + "ComputeCapacity": { + "$ref": "#/definitions/AWS::AppStream::Fleet.ComputeCapacity" }, "Description": { "type": "string" }, - "DynamoDBConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.DynamoDBConfig" + "DisconnectTimeoutInSeconds": { + "type": "number" }, - "ElasticsearchConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.ElasticsearchConfig" + "DisplayName": { + "type": "string" }, - "HttpConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.HttpConfig" + "DomainJoinInfo": { + "$ref": "#/definitions/AWS::AppStream::Fleet.DomainJoinInfo" }, - "LambdaConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.LambdaConfig" + "EnableDefaultInternetAccess": { + "type": "boolean" }, - "Name": { + "FleetType": { "type": "string" }, - "RelationalDatabaseConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.RelationalDatabaseConfig" + "ImageArn": { + "type": "string" }, - "ServiceRoleArn": { + "ImageName": { "type": "string" }, - "Type": { + "InstanceType": { "type": "string" + }, + "MaxUserDurationInSeconds": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::AppStream::Fleet.VpcConfig" } }, "required": [ - "ApiId", - "Name", - "Type" + "ComputeCapacity", + "InstanceType" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::DataSource" + "AWS::AppStream::Fleet" ], "type": "string" } @@ -2876,145 +3122,57 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AppSync::DataSource.AuthorizationConfig": { + "AWS::AppStream::Fleet.ComputeCapacity": { "additionalProperties": false, "properties": { - "AuthorizationType": { - "type": "string" - }, - "AwsIamConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.AwsIamConfig" + "DesiredInstances": { + "type": "number" } }, "required": [ - "AuthorizationType" + "DesiredInstances" ], "type": "object" }, - "AWS::AppSync::DataSource.AwsIamConfig": { + "AWS::AppStream::Fleet.DomainJoinInfo": { "additionalProperties": false, "properties": { - "SigningRegion": { + "DirectoryName": { "type": "string" }, - "SigningServiceName": { + "OrganizationalUnitDistinguishedName": { "type": "string" } }, "type": "object" }, - "AWS::AppSync::DataSource.DynamoDBConfig": { + "AWS::AppStream::Fleet.VpcConfig": { "additionalProperties": false, "properties": { - "AwsRegion": { - "type": "string" - }, - "TableName": { - "type": "string" + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "UseCallerCredentials": { - "type": "boolean" + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "AwsRegion", - "TableName" - ], "type": "object" }, - "AWS::AppSync::DataSource.ElasticsearchConfig": { + "AWS::AppStream::ImageBuilder": { "additionalProperties": false, "properties": { - "AwsRegion": { - "type": "string" - }, - "Endpoint": { - "type": "string" - } - }, - "required": [ - "AwsRegion", - "Endpoint" - ], - "type": "object" - }, - "AWS::AppSync::DataSource.HttpConfig": { - "additionalProperties": false, - "properties": { - "AuthorizationConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.AuthorizationConfig" - }, - "Endpoint": { - "type": "string" - } - }, - "required": [ - "Endpoint" - ], - "type": "object" - }, - "AWS::AppSync::DataSource.LambdaConfig": { - "additionalProperties": false, - "properties": { - "LambdaFunctionArn": { - "type": "string" - } - }, - "required": [ - "LambdaFunctionArn" - ], - "type": "object" - }, - "AWS::AppSync::DataSource.RdsHttpEndpointConfig": { - "additionalProperties": false, - "properties": { - "AwsRegion": { - "type": "string" - }, - "AwsSecretStoreArn": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "DbClusterIdentifier": { - "type": "string" - }, - "Schema": { - "type": "string" - } - }, - "required": [ - "AwsRegion", - "AwsSecretStoreArn", - "DbClusterIdentifier" - ], - "type": "object" - }, - "AWS::AppSync::DataSource.RelationalDatabaseConfig": { - "additionalProperties": false, - "properties": { - "RdsHttpEndpointConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.RdsHttpEndpointConfig" - }, - "RelationalDatabaseSourceType": { - "type": "string" - } - }, - "required": [ - "RelationalDatabaseSourceType" - ], - "type": "object" - }, - "AWS::AppSync::FunctionConfiguration": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, "DependsOn": { @@ -3038,42 +3196,45 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApiId": { - "type": "string" - }, - "DataSourceName": { + "AppstreamAgentVersion": { "type": "string" }, "Description": { "type": "string" }, - "FunctionVersion": { + "DisplayName": { "type": "string" }, - "Name": { - "type": "string" + "DomainJoinInfo": { + "$ref": "#/definitions/AWS::AppStream::ImageBuilder.DomainJoinInfo" }, - "RequestMappingTemplate": { + "EnableDefaultInternetAccess": { + "type": "boolean" + }, + "ImageArn": { "type": "string" }, - "RequestMappingTemplateS3Location": { + "ImageName": { "type": "string" }, - "ResponseMappingTemplate": { + "InstanceType": { "type": "string" }, - "ResponseMappingTemplateS3Location": { + "Name": { "type": "string" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::AppStream::ImageBuilder.VpcConfig" } }, "required": [ - "ApiId" + "InstanceType" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::FunctionConfiguration" + "AWS::AppStream::ImageBuilder" ], "type": "string" } @@ -3084,7 +3245,37 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AppSync::GraphQLApi": { + "AWS::AppStream::ImageBuilder.DomainJoinInfo": { + "additionalProperties": false, + "properties": { + "DirectoryName": { + "type": "string" + }, + "OrganizationalUnitDistinguishedName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppStream::ImageBuilder.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::AppStream::Stack": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3116,90 +3307,113 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AuthenticationType": { + "ApplicationSettings": { + "$ref": "#/definitions/AWS::AppStream::Stack.ApplicationSettings" + }, + "AttributesToDelete": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DeleteStorageConnectors": { + "type": "boolean" + }, + "Description": { "type": "string" }, - "LogConfig": { - "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LogConfig" + "DisplayName": { + "type": "string" + }, + "FeedbackURL": { + "type": "string" }, "Name": { "type": "string" }, - "OpenIDConnectConfig": { - "$ref": "#/definitions/AWS::AppSync::GraphQLApi.OpenIDConnectConfig" + "RedirectURL": { + "type": "string" }, - "UserPoolConfig": { - "$ref": "#/definitions/AWS::AppSync::GraphQLApi.UserPoolConfig" + "StorageConnectors": { + "items": { + "$ref": "#/definitions/AWS::AppStream::Stack.StorageConnector" + }, + "type": "array" + }, + "UserSettings": { + "items": { + "$ref": "#/definitions/AWS::AppStream::Stack.UserSetting" + }, + "type": "array" } }, - "required": [ - "AuthenticationType", - "Name" - ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::GraphQLApi" + "AWS::AppStream::Stack" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::AppSync::GraphQLApi.LogConfig": { + "AWS::AppStream::Stack.ApplicationSettings": { "additionalProperties": false, "properties": { - "CloudWatchLogsRoleArn": { - "type": "string" + "Enabled": { + "type": "boolean" }, - "FieldLogLevel": { + "SettingsGroup": { "type": "string" } }, + "required": [ + "Enabled" + ], "type": "object" }, - "AWS::AppSync::GraphQLApi.OpenIDConnectConfig": { + "AWS::AppStream::Stack.StorageConnector": { "additionalProperties": false, "properties": { - "AuthTTL": { - "type": "number" - }, - "ClientId": { + "ConnectorType": { "type": "string" }, - "IatTTL": { - "type": "number" + "Domains": { + "items": { + "type": "string" + }, + "type": "array" }, - "Issuer": { + "ResourceIdentifier": { "type": "string" } }, + "required": [ + "ConnectorType" + ], "type": "object" }, - "AWS::AppSync::GraphQLApi.UserPoolConfig": { + "AWS::AppStream::Stack.UserSetting": { "additionalProperties": false, "properties": { - "AppIdClientRegex": { - "type": "string" - }, - "AwsRegion": { - "type": "string" - }, - "DefaultAction": { + "Action": { "type": "string" }, - "UserPoolId": { + "Permission": { "type": "string" } }, + "required": [ + "Action", + "Permission" + ], "type": "object" }, - "AWS::AppSync::GraphQLSchema": { + "AWS::AppStream::StackFleetAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3231,24 +3445,22 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApiId": { - "type": "string" - }, - "Definition": { + "FleetName": { "type": "string" }, - "DefinitionS3Location": { + "StackName": { "type": "string" } }, "required": [ - "ApiId" + "FleetName", + "StackName" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::GraphQLSchema" + "AWS::AppStream::StackFleetAssociation" ], "type": "string" } @@ -3259,7 +3471,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AppSync::Resolver": { + "AWS::AppStream::StackUserAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3291,47 +3503,29 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApiId": { - "type": "string" - }, - "DataSourceName": { - "type": "string" - }, - "FieldName": { - "type": "string" - }, - "Kind": { - "type": "string" - }, - "PipelineConfig": { - "$ref": "#/definitions/AWS::AppSync::Resolver.PipelineConfig" - }, - "RequestMappingTemplate": { - "type": "string" - }, - "RequestMappingTemplateS3Location": { + "AuthenticationType": { "type": "string" }, - "ResponseMappingTemplate": { - "type": "string" + "SendEmailNotification": { + "type": "boolean" }, - "ResponseMappingTemplateS3Location": { + "StackName": { "type": "string" }, - "TypeName": { + "UserName": { "type": "string" } }, "required": [ - "ApiId", - "FieldName", - "TypeName" + "AuthenticationType", + "StackName", + "UserName" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::Resolver" + "AWS::AppStream::StackUserAssociation" ], "type": "string" } @@ -3342,19 +3536,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AppSync::Resolver.PipelineConfig": { - "additionalProperties": false, - "properties": { - "Functions": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::ApplicationAutoScaling::ScalableTarget": { + "AWS::AppStream::User": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3386,44 +3568,31 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "MaxCapacity": { - "type": "number" - }, - "MinCapacity": { - "type": "number" - }, - "ResourceId": { + "AuthenticationType": { "type": "string" }, - "RoleARN": { + "FirstName": { "type": "string" }, - "ScalableDimension": { + "LastName": { "type": "string" }, - "ScheduledActions": { - "items": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction" - }, - "type": "array" + "MessageAction": { + "type": "string" }, - "ServiceNamespace": { + "UserName": { "type": "string" } }, "required": [ - "MaxCapacity", - "MinCapacity", - "ResourceId", - "RoleARN", - "ScalableDimension", - "ServiceNamespace" + "AuthenticationType", + "UserName" ], "type": "object" }, "Type": { "enum": [ - "AWS::ApplicationAutoScaling::ScalableTarget" + "AWS::AppStream::User" ], "type": "string" } @@ -3434,44 +3603,67 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "number" - }, - "MinCapacity": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction": { + "AWS::AppSync::ApiKey": { "additionalProperties": false, "properties": { - "EndTime": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "ScalableTargetAction": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Schedule": { - "type": "string" + "Metadata": { + "type": "object" }, - "ScheduledActionName": { - "type": "string" + "Properties": { + "additionalProperties": false, + "properties": { + "ApiId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Expires": { + "type": "number" + } + }, + "required": [ + "ApiId" + ], + "type": "object" }, - "StartTime": { + "Type": { + "enum": [ + "AWS::AppSync::ApiKey" + ], "type": "string" } }, "required": [ - "Schedule", - "ScheduledActionName" + "Type", + "Properties" ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy": { + "AWS::AppSync::DataSource": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3503,40 +3695,47 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "PolicyName": { + "ApiId": { "type": "string" }, - "PolicyType": { + "Description": { "type": "string" }, - "ResourceId": { - "type": "string" + "DynamoDBConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.DynamoDBConfig" }, - "ScalableDimension": { - "type": "string" + "ElasticsearchConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.ElasticsearchConfig" }, - "ScalingTargetId": { - "type": "string" + "HttpConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.HttpConfig" }, - "ServiceNamespace": { + "LambdaConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.LambdaConfig" + }, + "Name": { "type": "string" }, - "StepScalingPolicyConfiguration": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration" + "RelationalDatabaseConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.RelationalDatabaseConfig" }, - "TargetTrackingScalingPolicyConfiguration": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration" + "ServiceRoleArn": { + "type": "string" + }, + "Type": { + "type": "string" } }, "required": [ - "PolicyName", - "PolicyType" + "ApiId", + "Name", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::ApplicationAutoScaling::ScalingPolicy" + "AWS::AppSync::DataSource" ], "type": "string" } @@ -3547,136 +3746,137 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification": { + "AWS::AppSync::DataSource.AuthorizationConfig": { "additionalProperties": false, "properties": { - "Dimensions": { - "items": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension" - }, - "type": "array" - }, - "MetricName": { + "AuthorizationType": { "type": "string" }, - "Namespace": { + "AwsIamConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.AwsIamConfig" + } + }, + "required": [ + "AuthorizationType" + ], + "type": "object" + }, + "AWS::AppSync::DataSource.AwsIamConfig": { + "additionalProperties": false, + "properties": { + "SigningRegion": { "type": "string" }, - "Statistic": { + "SigningServiceName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::DataSource.DynamoDBConfig": { + "additionalProperties": false, + "properties": { + "AwsRegion": { "type": "string" }, - "Unit": { + "TableName": { "type": "string" + }, + "UseCallerCredentials": { + "type": "boolean" } }, "required": [ - "MetricName", - "Namespace", - "Statistic" + "AwsRegion", + "TableName" ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension": { + "AWS::AppSync::DataSource.ElasticsearchConfig": { "additionalProperties": false, "properties": { - "Name": { + "AwsRegion": { "type": "string" }, - "Value": { + "Endpoint": { "type": "string" } }, "required": [ - "Name", - "Value" + "AwsRegion", + "Endpoint" ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification": { + "AWS::AppSync::DataSource.HttpConfig": { "additionalProperties": false, "properties": { - "PredefinedMetricType": { - "type": "string" + "AuthorizationConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.AuthorizationConfig" }, - "ResourceLabel": { + "Endpoint": { "type": "string" } }, "required": [ - "PredefinedMetricType" + "Endpoint" ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment": { + "AWS::AppSync::DataSource.LambdaConfig": { "additionalProperties": false, "properties": { - "MetricIntervalLowerBound": { - "type": "number" - }, - "MetricIntervalUpperBound": { - "type": "number" - }, - "ScalingAdjustment": { - "type": "number" + "LambdaFunctionArn": { + "type": "string" } }, "required": [ - "ScalingAdjustment" + "LambdaFunctionArn" ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration": { + "AWS::AppSync::DataSource.RdsHttpEndpointConfig": { "additionalProperties": false, "properties": { - "AdjustmentType": { + "AwsRegion": { "type": "string" }, - "Cooldown": { - "type": "number" + "AwsSecretStoreArn": { + "type": "string" }, - "MetricAggregationType": { + "DatabaseName": { "type": "string" }, - "MinAdjustmentMagnitude": { - "type": "number" + "DbClusterIdentifier": { + "type": "string" }, - "StepAdjustments": { - "items": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment" - }, - "type": "array" + "Schema": { + "type": "string" } }, + "required": [ + "AwsRegion", + "AwsSecretStoreArn", + "DbClusterIdentifier" + ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration": { + "AWS::AppSync::DataSource.RelationalDatabaseConfig": { "additionalProperties": false, "properties": { - "CustomizedMetricSpecification": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification" - }, - "DisableScaleIn": { - "type": "boolean" - }, - "PredefinedMetricSpecification": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification" - }, - "ScaleInCooldown": { - "type": "number" - }, - "ScaleOutCooldown": { - "type": "number" + "RdsHttpEndpointConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.RdsHttpEndpointConfig" }, - "TargetValue": { - "type": "number" + "RelationalDatabaseSourceType": { + "type": "string" } }, "required": [ - "TargetValue" + "RelationalDatabaseSourceType" ], "type": "object" }, - "AWS::Athena::NamedQuery": { + "AWS::AppSync::FunctionConfiguration": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3708,28 +3908,42 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Database": { + "ApiId": { + "type": "string" + }, + "DataSourceName": { "type": "string" }, "Description": { "type": "string" }, + "FunctionVersion": { + "type": "string" + }, "Name": { "type": "string" }, - "QueryString": { + "RequestMappingTemplate": { + "type": "string" + }, + "RequestMappingTemplateS3Location": { + "type": "string" + }, + "ResponseMappingTemplate": { + "type": "string" + }, + "ResponseMappingTemplateS3Location": { "type": "string" } }, "required": [ - "Database", - "QueryString" + "ApiId" ], "type": "object" }, "Type": { "enum": [ - "AWS::Athena::NamedQuery" + "AWS::AppSync::FunctionConfiguration" ], "type": "string" } @@ -3740,12 +3954,9 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AutoScaling::AutoScalingGroup": { + "AWS::AppSync::GraphQLApi": { "additionalProperties": false, "properties": { - "CreationPolicy": { - "type": "object" - }, "DeletionPolicy": { "enum": [ "Delete", @@ -3775,114 +3986,33 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AutoScalingGroupName": { - "type": "string" - }, - "AvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Cooldown": { - "type": "string" - }, - "DesiredCapacity": { - "type": "string" - }, - "HealthCheckGracePeriod": { - "type": "number" - }, - "HealthCheckType": { - "type": "string" - }, - "InstanceId": { - "type": "string" - }, - "LaunchConfigurationName": { - "type": "string" - }, - "LaunchTemplate": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" - }, - "LifecycleHookSpecificationList": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification" - }, - "type": "array" - }, - "LoadBalancerNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MaxSize": { - "type": "string" - }, - "MetricsCollection": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MetricsCollection" - }, - "type": "array" - }, - "MinSize": { + "AuthenticationType": { "type": "string" }, - "MixedInstancesPolicy": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy" - }, - "NotificationConfigurations": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration" - }, - "type": "array" - }, - "PlacementGroup": { - "type": "string" + "LogConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LogConfig" }, - "ServiceLinkedRoleARN": { + "Name": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.TagProperty" - }, - "type": "array" - }, - "TargetGroupARNs": { - "items": { - "type": "string" - }, - "type": "array" - }, - "TerminationPolicies": { - "items": { - "type": "string" - }, - "type": "array" + "OpenIDConnectConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.OpenIDConnectConfig" }, - "VPCZoneIdentifier": { - "items": { - "type": "string" - }, - "type": "array" + "UserPoolConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.UserPoolConfig" } }, "required": [ - "MaxSize", - "MinSize" + "AuthenticationType", + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScaling::AutoScalingGroup" + "AWS::AppSync::GraphQLApi" ], "type": "string" - }, - "UpdatePolicy": { - "type": "object" } }, "required": [ @@ -3891,178 +4021,55 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AutoScaling::AutoScalingGroup.InstancesDistribution": { - "additionalProperties": false, - "properties": { - "OnDemandAllocationStrategy": { - "type": "string" - }, - "OnDemandBaseCapacity": { - "type": "number" - }, - "OnDemandPercentageAboveBaseCapacity": { - "type": "number" - }, - "SpotAllocationStrategy": { - "type": "string" - }, - "SpotInstancePools": { - "type": "number" - }, - "SpotMaxPrice": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.LaunchTemplate": { - "additionalProperties": false, - "properties": { - "LaunchTemplateSpecification": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" - }, - "Overrides": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides" - }, - "type": "array" - } - }, - "required": [ - "LaunchTemplateSpecification" - ], - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification": { + "AWS::AppSync::GraphQLApi.LogConfig": { "additionalProperties": false, "properties": { - "LaunchTemplateId": { - "type": "string" - }, - "LaunchTemplateName": { + "CloudWatchLogsRoleArn": { "type": "string" }, - "Version": { + "FieldLogLevel": { "type": "string" } }, - "required": [ - "Version" - ], "type": "object" }, - "AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification": { + "AWS::AppSync::GraphQLApi.OpenIDConnectConfig": { "additionalProperties": false, "properties": { - "DefaultResult": { - "type": "string" - }, - "HeartbeatTimeout": { + "AuthTTL": { "type": "number" }, - "LifecycleHookName": { - "type": "string" - }, - "LifecycleTransition": { - "type": "string" - }, - "NotificationMetadata": { + "ClientId": { "type": "string" }, - "NotificationTargetARN": { - "type": "string" + "IatTTL": { + "type": "number" }, - "RoleARN": { + "Issuer": { "type": "string" } }, - "required": [ - "LifecycleHookName", - "LifecycleTransition" - ], "type": "object" }, - "AWS::AutoScaling::AutoScalingGroup.MetricsCollection": { + "AWS::AppSync::GraphQLApi.UserPoolConfig": { "additionalProperties": false, "properties": { - "Granularity": { + "AppIdClientRegex": { "type": "string" }, - "Metrics": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Granularity" - ], - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy": { - "additionalProperties": false, - "properties": { - "InstancesDistribution": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.InstancesDistribution" - }, - "LaunchTemplate": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplate" - } - }, - "required": [ - "LaunchTemplate" - ], - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration": { - "additionalProperties": false, - "properties": { - "NotificationTypes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "TopicARN": { - "type": "string" - } - }, - "required": [ - "TopicARN" - ], - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.TagProperty": { - "additionalProperties": false, - "properties": { - "Key": { + "AwsRegion": { "type": "string" }, - "PropagateAtLaunch": { - "type": "boolean" + "DefaultAction": { + "type": "string" }, - "Value": { + "UserPoolId": { "type": "string" } }, - "required": [ - "Key", - "PropagateAtLaunch", - "Value" - ], "type": "object" }, - "AWS::AutoScaling::LaunchConfiguration": { + "AWS::AppSync::GraphQLSchema": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -4094,79 +4101,24 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AssociatePublicIpAddress": { - "type": "boolean" - }, - "BlockDeviceMappings": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping" - }, - "type": "array" - }, - "ClassicLinkVPCId": { - "type": "string" - }, - "ClassicLinkVPCSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EbsOptimized": { - "type": "boolean" - }, - "IamInstanceProfile": { - "type": "string" - }, - "ImageId": { - "type": "string" - }, - "InstanceId": { - "type": "string" - }, - "InstanceMonitoring": { - "type": "boolean" - }, - "InstanceType": { - "type": "string" - }, - "KernelId": { - "type": "string" - }, - "KeyName": { - "type": "string" - }, - "LaunchConfigurationName": { - "type": "string" - }, - "PlacementTenancy": { - "type": "string" - }, - "RamDiskId": { + "ApiId": { "type": "string" }, - "SecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SpotPrice": { + "Definition": { "type": "string" }, - "UserData": { + "DefinitionS3Location": { "type": "string" } }, "required": [ - "ImageId", - "InstanceType" + "ApiId" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScaling::LaunchConfiguration" + "AWS::AppSync::GraphQLSchema" ], "type": "string" } @@ -4177,52 +4129,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AutoScaling::LaunchConfiguration.BlockDevice": { - "additionalProperties": false, - "properties": { - "DeleteOnTermination": { - "type": "boolean" - }, - "Encrypted": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "SnapshotId": { - "type": "string" - }, - "VolumeSize": { - "type": "number" - }, - "VolumeType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping": { - "additionalProperties": false, - "properties": { - "DeviceName": { - "type": "string" - }, - "Ebs": { - "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDevice" - }, - "NoDevice": { - "type": "boolean" - }, - "VirtualName": { - "type": "string" - } - }, - "required": [ - "DeviceName" - ], - "type": "object" - }, - "AWS::AutoScaling::LifecycleHook": { + "AWS::AppSync::Resolver": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -4254,40 +4161,47 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AutoScalingGroupName": { + "ApiId": { "type": "string" }, - "DefaultResult": { + "DataSourceName": { "type": "string" }, - "HeartbeatTimeout": { - "type": "number" + "FieldName": { + "type": "string" }, - "LifecycleHookName": { + "Kind": { "type": "string" }, - "LifecycleTransition": { + "PipelineConfig": { + "$ref": "#/definitions/AWS::AppSync::Resolver.PipelineConfig" + }, + "RequestMappingTemplate": { "type": "string" }, - "NotificationMetadata": { + "RequestMappingTemplateS3Location": { "type": "string" }, - "NotificationTargetARN": { + "ResponseMappingTemplate": { "type": "string" }, - "RoleARN": { + "ResponseMappingTemplateS3Location": { + "type": "string" + }, + "TypeName": { "type": "string" } }, "required": [ - "AutoScalingGroupName", - "LifecycleTransition" + "ApiId", + "FieldName", + "TypeName" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScaling::LifecycleHook" + "AWS::AppSync::Resolver" ], "type": "string" } @@ -4298,7 +4212,19 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy": { + "AWS::AppSync::Resolver.PipelineConfig": { + "additionalProperties": false, + "properties": { + "Functions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalableTarget": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -4330,48 +4256,157 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AdjustmentType": { - "type": "string" - }, - "AutoScalingGroupName": { - "type": "string" - }, - "Cooldown": { - "type": "string" + "MaxCapacity": { + "type": "number" }, - "EstimatedInstanceWarmup": { + "MinCapacity": { "type": "number" }, - "MetricAggregationType": { + "ResourceId": { "type": "string" }, - "MinAdjustmentMagnitude": { - "type": "number" + "RoleARN": { + "type": "string" }, - "PolicyType": { + "ScalableDimension": { "type": "string" }, - "ScalingAdjustment": { - "type": "number" + "ScheduledActions": { + "items": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction" + }, + "type": "array" }, - "StepAdjustments": { + "ServiceNamespace": { + "type": "string" + } + }, + "required": [ + "MaxCapacity", + "MinCapacity", + "ResourceId", + "RoleARN", + "ScalableDimension", + "ServiceNamespace" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApplicationAutoScaling::ScalableTarget" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction": { + "additionalProperties": false, + "properties": { + "EndTime": { + "type": "string" + }, + "ScalableTargetAction": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction" + }, + "Schedule": { + "type": "string" + }, + "ScheduledActionName": { + "type": "string" + }, + "StartTime": { + "type": "string" + } + }, + "required": [ + "Schedule", + "ScheduledActionName" + ], + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { "items": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.StepAdjustment" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyName": { + "type": "string" }, - "TargetTrackingConfiguration": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration" + "PolicyType": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "ScalableDimension": { + "type": "string" + }, + "ScalingTargetId": { + "type": "string" + }, + "ServiceNamespace": { + "type": "string" + }, + "StepScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration" } }, "required": [ - "AutoScalingGroupName" + "PolicyName", + "PolicyType" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScaling::ScalingPolicy" + "AWS::ApplicationAutoScaling::ScalingPolicy" ], "type": "string" } @@ -4382,12 +4417,12 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification": { + "AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification": { "additionalProperties": false, "properties": { "Dimensions": { "items": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDimension" + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension" }, "type": "array" }, @@ -4411,7 +4446,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy.MetricDimension": { + "AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension": { "additionalProperties": false, "properties": { "Name": { @@ -4427,7 +4462,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification": { + "AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification": { "additionalProperties": false, "properties": { "PredefinedMetricType": { @@ -4442,7 +4477,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy.StepAdjustment": { + "AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment": { "additionalProperties": false, "properties": { "MetricIntervalLowerBound": { @@ -4460,17 +4495,47 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration": { + "AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "Cooldown": { + "type": "number" + }, + "MetricAggregationType": { + "type": "string" + }, + "MinAdjustmentMagnitude": { + "type": "number" + }, + "StepAdjustments": { + "items": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration": { "additionalProperties": false, "properties": { "CustomizedMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification" + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification" }, "DisableScaleIn": { "type": "boolean" }, "PredefinedMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification" + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification" + }, + "ScaleInCooldown": { + "type": "number" + }, + "ScaleOutCooldown": { + "type": "number" }, "TargetValue": { "type": "number" @@ -4481,7 +4546,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AutoScaling::ScheduledAction": { + "AWS::Athena::NamedQuery": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -4513,36 +4578,28 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AutoScalingGroupName": { + "Database": { "type": "string" }, - "DesiredCapacity": { - "type": "number" - }, - "EndTime": { + "Description": { "type": "string" }, - "MaxSize": { - "type": "number" - }, - "MinSize": { - "type": "number" - }, - "Recurrence": { + "Name": { "type": "string" }, - "StartTime": { + "QueryString": { "type": "string" } }, "required": [ - "AutoScalingGroupName" + "Database", + "QueryString" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScaling::ScheduledAction" + "AWS::Athena::NamedQuery" ], "type": "string" } @@ -4553,9 +4610,12 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan": { + "AWS::AutoScaling::AutoScalingGroup": { "additionalProperties": false, "properties": { + "CreationPolicy": { + "type": "object" + }, "DeletionPolicy": { "enum": [ "Delete", @@ -4585,27 +4645,114 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApplicationSource": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ApplicationSource" + "AutoScalingGroupName": { + "type": "string" }, - "ScalingInstructions": { + "AvailabilityZones": { "items": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction" + "type": "string" + }, + "type": "array" + }, + "Cooldown": { + "type": "string" + }, + "DesiredCapacity": { + "type": "string" + }, + "HealthCheckGracePeriod": { + "type": "number" + }, + "HealthCheckType": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "LaunchConfigurationName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" + }, + "LifecycleHookSpecificationList": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification" + }, + "type": "array" + }, + "LoadBalancerNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxSize": { + "type": "string" + }, + "MetricsCollection": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MetricsCollection" + }, + "type": "array" + }, + "MinSize": { + "type": "string" + }, + "MixedInstancesPolicy": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy" + }, + "NotificationConfigurations": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration" + }, + "type": "array" + }, + "PlacementGroup": { + "type": "string" + }, + "ServiceLinkedRoleARN": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.TagProperty" + }, + "type": "array" + }, + "TargetGroupARNs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TerminationPolicies": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VPCZoneIdentifier": { + "items": { + "type": "string" }, "type": "array" } }, "required": [ - "ApplicationSource", - "ScalingInstructions" + "MaxSize", + "MinSize" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScalingPlans::ScalingPlan" + "AWS::AutoScaling::AutoScalingGroup" ], "type": "string" + }, + "UpdatePolicy": { + "type": "object" } }, "required": [ @@ -4614,191 +4761,113 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.ApplicationSource": { + "AWS::AutoScaling::AutoScalingGroup.InstancesDistribution": { "additionalProperties": false, "properties": { - "CloudFormationStackARN": { + "OnDemandAllocationStrategy": { "type": "string" }, - "TagFilters": { - "items": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TagFilter" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification": { - "additionalProperties": false, - "properties": { - "Dimensions": { - "items": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension" - }, - "type": "array" + "OnDemandBaseCapacity": { + "type": "number" }, - "MetricName": { - "type": "string" + "OnDemandPercentageAboveBaseCapacity": { + "type": "number" }, - "Namespace": { + "SpotAllocationStrategy": { "type": "string" }, - "Statistic": { - "type": "string" + "SpotInstancePools": { + "type": "number" }, - "Unit": { + "SpotMaxPrice": { "type": "string" } }, - "required": [ - "MetricName", - "Namespace", - "Statistic" - ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification": { + "AWS::AutoScaling::AutoScalingGroup.LaunchTemplate": { "additionalProperties": false, "properties": { - "Dimensions": { + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" + }, + "Overrides": { "items": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension" + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides" }, "type": "array" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Statistic": { - "type": "string" - }, - "Unit": { - "type": "string" } }, "required": [ - "MetricName", - "Namespace", - "Statistic" + "LaunchTemplateSpecification" ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.MetricDimension": { + "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides": { "additionalProperties": false, "properties": { - "Name": { - "type": "string" - }, - "Value": { + "InstanceType": { "type": "string" } }, - "required": [ - "Name", - "Value" - ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification": { + "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification": { "additionalProperties": false, "properties": { - "PredefinedLoadMetricType": { + "LaunchTemplateId": { "type": "string" }, - "ResourceLabel": { - "type": "string" - } - }, - "required": [ - "PredefinedLoadMetricType" - ], - "type": "object" - }, - "AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification": { - "additionalProperties": false, - "properties": { - "PredefinedScalingMetricType": { + "LaunchTemplateName": { "type": "string" }, - "ResourceLabel": { + "Version": { "type": "string" } }, "required": [ - "PredefinedScalingMetricType" + "Version" ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction": { + "AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification": { "additionalProperties": false, "properties": { - "CustomizedLoadMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification" - }, - "DisableDynamicScaling": { - "type": "boolean" - }, - "MaxCapacity": { - "type": "number" - }, - "MinCapacity": { - "type": "number" - }, - "PredefinedLoadMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification" - }, - "PredictiveScalingMaxCapacityBehavior": { + "DefaultResult": { "type": "string" }, - "PredictiveScalingMaxCapacityBuffer": { + "HeartbeatTimeout": { "type": "number" }, - "PredictiveScalingMode": { + "LifecycleHookName": { "type": "string" }, - "ResourceId": { + "LifecycleTransition": { "type": "string" }, - "ScalableDimension": { + "NotificationMetadata": { "type": "string" }, - "ScalingPolicyUpdateBehavior": { + "NotificationTargetARN": { "type": "string" }, - "ScheduledActionBufferTime": { - "type": "number" - }, - "ServiceNamespace": { + "RoleARN": { "type": "string" - }, - "TargetTrackingConfigurations": { - "items": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration" - }, - "type": "array" } }, "required": [ - "MaxCapacity", - "MinCapacity", - "ResourceId", - "ScalableDimension", - "ServiceNamespace", - "TargetTrackingConfigurations" + "LifecycleHookName", + "LifecycleTransition" ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.TagFilter": { + "AWS::AutoScaling::AutoScalingGroup.MetricsCollection": { "additionalProperties": false, "properties": { - "Key": { + "Granularity": { "type": "string" }, - "Values": { + "Metrics": { "items": { "type": "string" }, @@ -4806,52 +4875,75 @@ var CloudformationSchema = `{ } }, "required": [ - "Key" + "Granularity" ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration": { + "AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy": { "additionalProperties": false, "properties": { - "CustomizedScalingMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification" - }, - "DisableScaleIn": { - "type": "boolean" - }, - "EstimatedInstanceWarmup": { - "type": "number" - }, - "PredefinedScalingMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification" - }, - "ScaleInCooldown": { - "type": "number" + "InstancesDistribution": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.InstancesDistribution" }, - "ScaleOutCooldown": { - "type": "number" + "LaunchTemplate": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplate" + } + }, + "required": [ + "LaunchTemplate" + ], + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration": { + "additionalProperties": false, + "properties": { + "NotificationTypes": { + "items": { + "type": "string" + }, + "type": "array" }, - "TargetValue": { - "type": "number" + "TopicARN": { + "type": "string" } }, "required": [ - "TargetValue" + "TopicARN" ], "type": "object" }, - "AWS::Batch::ComputeEnvironment": { + "AWS::AutoScaling::AutoScalingGroup.TagProperty": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Key": { "type": "string" }, - "DependsOn": { + "PropagateAtLaunch": { + "type": "boolean" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "PropagateAtLaunch", + "Value" + ], + "type": "object" + }, + "AWS::AutoScaling::LaunchConfiguration": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { "anyOf": [ { "pattern": "^[a-zA-Z0-9]+$", @@ -4872,31 +4964,79 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ComputeEnvironmentName": { + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping" + }, + "type": "array" + }, + "ClassicLinkVPCId": { "type": "string" }, - "ComputeResources": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.ComputeResources" + "ClassicLinkVPCSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" }, - "ServiceRole": { + "EbsOptimized": { + "type": "boolean" + }, + "IamInstanceProfile": { "type": "string" }, - "State": { + "ImageId": { "type": "string" }, - "Type": { + "InstanceId": { + "type": "string" + }, + "InstanceMonitoring": { + "type": "boolean" + }, + "InstanceType": { + "type": "string" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchConfigurationName": { + "type": "string" + }, + "PlacementTenancy": { + "type": "string" + }, + "RamDiskId": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SpotPrice": { + "type": "string" + }, + "UserData": { "type": "string" } }, "required": [ - "ServiceRole", - "Type" + "ImageId", + "InstanceType" ], "type": "object" }, "Type": { "enum": [ - "AWS::Batch::ComputeEnvironment" + "AWS::AutoScaling::LaunchConfiguration" ], "type": "string" } @@ -4907,91 +5047,128 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Batch::ComputeEnvironment.ComputeResources": { + "AWS::AutoScaling::LaunchConfiguration.BlockDevice": { "additionalProperties": false, "properties": { - "BidPercentage": { - "type": "number" - }, - "DesiredvCpus": { - "type": "number" + "DeleteOnTermination": { + "type": "boolean" }, - "Ec2KeyPair": { - "type": "string" + "Encrypted": { + "type": "boolean" }, - "ImageId": { - "type": "string" + "Iops": { + "type": "number" }, - "InstanceRole": { + "SnapshotId": { "type": "string" }, - "InstanceTypes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LaunchTemplate": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification" - }, - "MaxvCpus": { - "type": "number" - }, - "MinvCpus": { + "VolumeSize": { "type": "number" }, - "PlacementGroup": { + "VolumeType": { "type": "string" - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SpotIamFleetRole": { + } + }, + "type": "object" + }, + "AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { "type": "string" }, - "Subnets": { - "items": { - "type": "string" - }, - "type": "array" + "Ebs": { + "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDevice" }, - "Tags": { - "type": "object" + "NoDevice": { + "type": "boolean" }, - "Type": { + "VirtualName": { "type": "string" } }, "required": [ - "InstanceRole", - "InstanceTypes", - "MaxvCpus", - "MinvCpus", - "SecurityGroupIds", - "Subnets", - "Type" + "DeviceName" ], "type": "object" }, - "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": { + "AWS::AutoScaling::LifecycleHook": { "additionalProperties": false, "properties": { - "LaunchTemplateId": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "LaunchTemplateName": { - "type": "string" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Version": { + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AutoScalingGroupName": { + "type": "string" + }, + "DefaultResult": { + "type": "string" + }, + "HeartbeatTimeout": { + "type": "number" + }, + "LifecycleHookName": { + "type": "string" + }, + "LifecycleTransition": { + "type": "string" + }, + "NotificationMetadata": { + "type": "string" + }, + "NotificationTargetARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "AutoScalingGroupName", + "LifecycleTransition" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AutoScaling::LifecycleHook" + ], "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::Batch::JobDefinition": { + "AWS::AutoScaling::ScalingPolicy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -5023,36 +5200,48 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ContainerProperties": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties" + "AdjustmentType": { + "type": "string" }, - "JobDefinitionName": { + "AutoScalingGroupName": { "type": "string" }, - "NodeProperties": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeProperties" + "Cooldown": { + "type": "string" }, - "Parameters": { - "type": "object" + "EstimatedInstanceWarmup": { + "type": "number" }, - "RetryStrategy": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.RetryStrategy" + "MetricAggregationType": { + "type": "string" }, - "Timeout": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.Timeout" + "MinAdjustmentMagnitude": { + "type": "number" }, - "Type": { + "PolicyType": { "type": "string" + }, + "ScalingAdjustment": { + "type": "number" + }, + "StepAdjustments": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.StepAdjustment" + }, + "type": "array" + }, + "TargetTrackingConfiguration": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration" } }, "required": [ - "Type" + "AutoScalingGroupName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Batch::JobDefinition" + "AWS::AutoScaling::ScalingPolicy" ], "type": "string" } @@ -5063,72 +5252,36 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Batch::JobDefinition.ContainerProperties": { + "AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification": { "additionalProperties": false, "properties": { - "Command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Environment": { + "Dimensions": { "items": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.Environment" + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDimension" }, "type": "array" }, - "Image": { + "MetricName": { "type": "string" }, - "InstanceType": { + "Namespace": { "type": "string" }, - "JobRoleArn": { + "Statistic": { "type": "string" }, - "Memory": { - "type": "number" - }, - "MountPoints": { - "items": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.MountPoints" - }, - "type": "array" - }, - "Privileged": { - "type": "boolean" - }, - "ReadonlyRootFilesystem": { - "type": "boolean" - }, - "Ulimits": { - "items": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.Ulimit" - }, - "type": "array" - }, - "User": { + "Unit": { "type": "string" - }, - "Vcpus": { - "type": "number" - }, - "Volumes": { - "items": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.Volumes" - }, - "type": "array" } }, "required": [ - "Image", - "Memory", - "Vcpus" + "MetricName", + "Namespace", + "Statistic" ], "type": "object" }, - "AWS::Batch::JobDefinition.Environment": { + "AWS::AutoScaling::ScalingPolicy.MetricDimension": { "additionalProperties": false, "properties": { "Name": { @@ -5138,121 +5291,67 @@ var CloudformationSchema = `{ "type": "string" } }, + "required": [ + "Name", + "Value" + ], "type": "object" }, - "AWS::Batch::JobDefinition.MountPoints": { + "AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification": { "additionalProperties": false, "properties": { - "ContainerPath": { + "PredefinedMetricType": { "type": "string" }, - "ReadOnly": { - "type": "boolean" - }, - "SourceVolume": { + "ResourceLabel": { "type": "string" } }, + "required": [ + "PredefinedMetricType" + ], "type": "object" }, - "AWS::Batch::JobDefinition.NodeProperties": { + "AWS::AutoScaling::ScalingPolicy.StepAdjustment": { "additionalProperties": false, "properties": { - "MainNode": { + "MetricIntervalLowerBound": { "type": "number" }, - "NodeRangeProperties": { - "items": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeRangeProperty" - }, - "type": "array" + "MetricIntervalUpperBound": { + "type": "number" }, - "NumNodes": { + "ScalingAdjustment": { "type": "number" } }, "required": [ - "MainNode", - "NodeRangeProperties", - "NumNodes" + "ScalingAdjustment" ], "type": "object" }, - "AWS::Batch::JobDefinition.NodeRangeProperty": { + "AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration": { "additionalProperties": false, "properties": { - "Container": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties" + "CustomizedMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification" }, - "TargetNodes": { - "type": "string" - } - }, - "required": [ - "TargetNodes" - ], - "type": "object" - }, - "AWS::Batch::JobDefinition.RetryStrategy": { - "additionalProperties": false, - "properties": { - "Attempts": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::Batch::JobDefinition.Timeout": { - "additionalProperties": false, - "properties": { - "AttemptDurationSeconds": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::Batch::JobDefinition.Ulimit": { - "additionalProperties": false, - "properties": { - "HardLimit": { - "type": "number" + "DisableScaleIn": { + "type": "boolean" }, - "Name": { - "type": "string" + "PredefinedMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification" }, - "SoftLimit": { + "TargetValue": { "type": "number" } }, "required": [ - "HardLimit", - "Name", - "SoftLimit" + "TargetValue" ], "type": "object" }, - "AWS::Batch::JobDefinition.Volumes": { - "additionalProperties": false, - "properties": { - "Host": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.VolumesHost" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Batch::JobDefinition.VolumesHost": { - "additionalProperties": false, - "properties": { - "SourcePath": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Batch::JobQueue": { + "AWS::AutoScaling::ScheduledAction": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -5284,31 +5383,36 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ComputeEnvironmentOrder": { - "items": { - "$ref": "#/definitions/AWS::Batch::JobQueue.ComputeEnvironmentOrder" - }, - "type": "array" + "AutoScalingGroupName": { + "type": "string" }, - "JobQueueName": { + "DesiredCapacity": { + "type": "number" + }, + "EndTime": { "type": "string" }, - "Priority": { + "MaxSize": { "type": "number" }, - "State": { + "MinSize": { + "type": "number" + }, + "Recurrence": { + "type": "string" + }, + "StartTime": { "type": "string" } }, "required": [ - "ComputeEnvironmentOrder", - "Priority" + "AutoScalingGroupName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Batch::JobQueue" + "AWS::AutoScaling::ScheduledAction" ], "type": "string" } @@ -5319,23 +5423,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Batch::JobQueue.ComputeEnvironmentOrder": { - "additionalProperties": false, - "properties": { - "ComputeEnvironment": { - "type": "string" - }, - "Order": { - "type": "number" - } - }, - "required": [ - "ComputeEnvironment", - "Order" - ], - "type": "object" - }, - "AWS::Budgets::Budget": { + "AWS::AutoScalingPlans::ScalingPlan": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -5367,24 +5455,25 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Budget": { - "$ref": "#/definitions/AWS::Budgets::Budget.BudgetData" + "ApplicationSource": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ApplicationSource" }, - "NotificationsWithSubscribers": { + "ScalingInstructions": { "items": { - "$ref": "#/definitions/AWS::Budgets::Budget.NotificationWithSubscribers" + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction" }, "type": "array" } }, "required": [ - "Budget" + "ApplicationSource", + "ScalingInstructions" ], "type": "object" }, "Type": { "enum": [ - "AWS::Budgets::Budget" + "AWS::AutoScalingPlans::ScalingPlan" ], "type": "string" } @@ -5395,254 +5484,233 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Budgets::Budget.BudgetData": { + "AWS::AutoScalingPlans::ScalingPlan.ApplicationSource": { "additionalProperties": false, "properties": { - "BudgetLimit": { - "$ref": "#/definitions/AWS::Budgets::Budget.Spend" - }, - "BudgetName": { - "type": "string" - }, - "BudgetType": { + "CloudFormationStackARN": { "type": "string" }, - "CostFilters": { - "type": "object" - }, - "CostTypes": { - "$ref": "#/definitions/AWS::Budgets::Budget.CostTypes" - }, - "TimePeriod": { - "$ref": "#/definitions/AWS::Budgets::Budget.TimePeriod" - }, - "TimeUnit": { - "type": "string" + "TagFilters": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TagFilter" + }, + "type": "array" } }, - "required": [ - "BudgetType", - "TimeUnit" - ], "type": "object" }, - "AWS::Budgets::Budget.CostTypes": { + "AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification": { "additionalProperties": false, "properties": { - "IncludeCredit": { - "type": "boolean" - }, - "IncludeDiscount": { - "type": "boolean" - }, - "IncludeOtherSubscription": { - "type": "boolean" - }, - "IncludeRecurring": { - "type": "boolean" - }, - "IncludeRefund": { - "type": "boolean" - }, - "IncludeSubscription": { - "type": "boolean" - }, - "IncludeSupport": { - "type": "boolean" + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension" + }, + "type": "array" }, - "IncludeTax": { - "type": "boolean" + "MetricName": { + "type": "string" }, - "IncludeUpfront": { - "type": "boolean" + "Namespace": { + "type": "string" }, - "UseAmortized": { - "type": "boolean" + "Statistic": { + "type": "string" }, - "UseBlended": { - "type": "boolean" + "Unit": { + "type": "string" } }, + "required": [ + "MetricName", + "Namespace", + "Statistic" + ], "type": "object" }, - "AWS::Budgets::Budget.Notification": { + "AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification": { "additionalProperties": false, "properties": { - "ComparisonOperator": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension" + }, + "type": "array" + }, + "MetricName": { "type": "string" }, - "NotificationType": { + "Namespace": { "type": "string" }, - "Threshold": { - "type": "number" + "Statistic": { + "type": "string" }, - "ThresholdType": { + "Unit": { "type": "string" } }, "required": [ - "ComparisonOperator", - "NotificationType", - "Threshold" + "MetricName", + "Namespace", + "Statistic" ], "type": "object" }, - "AWS::Budgets::Budget.NotificationWithSubscribers": { + "AWS::AutoScalingPlans::ScalingPlan.MetricDimension": { "additionalProperties": false, "properties": { - "Notification": { - "$ref": "#/definitions/AWS::Budgets::Budget.Notification" + "Name": { + "type": "string" }, - "Subscribers": { - "items": { - "$ref": "#/definitions/AWS::Budgets::Budget.Subscriber" - }, - "type": "array" + "Value": { + "type": "string" } }, "required": [ - "Notification", - "Subscribers" + "Name", + "Value" ], "type": "object" }, - "AWS::Budgets::Budget.Spend": { + "AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification": { "additionalProperties": false, "properties": { - "Amount": { - "type": "number" + "PredefinedLoadMetricType": { + "type": "string" }, - "Unit": { + "ResourceLabel": { "type": "string" } }, "required": [ - "Amount", - "Unit" + "PredefinedLoadMetricType" ], "type": "object" }, - "AWS::Budgets::Budget.Subscriber": { + "AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification": { "additionalProperties": false, "properties": { - "Address": { + "PredefinedScalingMetricType": { "type": "string" }, - "SubscriptionType": { + "ResourceLabel": { "type": "string" } }, "required": [ - "Address", - "SubscriptionType" + "PredefinedScalingMetricType" ], "type": "object" }, - "AWS::Budgets::Budget.TimePeriod": { + "AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction": { "additionalProperties": false, "properties": { - "End": { + "CustomizedLoadMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification" + }, + "DisableDynamicScaling": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + }, + "PredefinedLoadMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification" + }, + "PredictiveScalingMaxCapacityBehavior": { "type": "string" }, - "Start": { + "PredictiveScalingMaxCapacityBuffer": { + "type": "number" + }, + "PredictiveScalingMode": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "ScalableDimension": { + "type": "string" + }, + "ScalingPolicyUpdateBehavior": { + "type": "string" + }, + "ScheduledActionBufferTime": { + "type": "number" + }, + "ServiceNamespace": { "type": "string" + }, + "TargetTrackingConfigurations": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration" + }, + "type": "array" } }, + "required": [ + "MaxCapacity", + "MinCapacity", + "ResourceId", + "ScalableDimension", + "ServiceNamespace", + "TargetTrackingConfigurations" + ], "type": "object" }, - "AWS::CertificateManager::Certificate": { + "AWS::AutoScalingPlans::ScalingPlan.TagFilter": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Key": { "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": { - "DomainName": { - "type": "string" - }, - "DomainValidationOptions": { - "items": { - "$ref": "#/definitions/AWS::CertificateManager::Certificate.DomainValidationOption" - }, - "type": "array" - }, - "SubjectAlternativeNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "ValidationMethod": { - "type": "string" - } + "Values": { + "items": { + "type": "string" }, - "required": [ - "DomainName" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::CertificateManager::Certificate" - ], - "type": "string" + "type": "array" } }, "required": [ - "Type", - "Properties" + "Key" ], "type": "object" }, - "AWS::CertificateManager::Certificate.DomainValidationOption": { + "AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration": { "additionalProperties": false, "properties": { - "DomainName": { - "type": "string" + "CustomizedScalingMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification" }, - "ValidationDomain": { - "type": "string" + "DisableScaleIn": { + "type": "boolean" + }, + "EstimatedInstanceWarmup": { + "type": "number" + }, + "PredefinedScalingMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification" + }, + "ScaleInCooldown": { + "type": "number" + }, + "ScaleOutCooldown": { + "type": "number" + }, + "TargetValue": { + "type": "number" } }, "required": [ - "DomainName", - "ValidationDomain" + "TargetValue" ], "type": "object" }, - "AWS::Cloud9::EnvironmentEC2": { + "AWS::Batch::ComputeEnvironment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -5674,39 +5742,31 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AutomaticStopTimeMinutes": { - "type": "number" - }, - "Description": { + "ComputeEnvironmentName": { "type": "string" }, - "InstanceType": { - "type": "string" + "ComputeResources": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.ComputeResources" }, - "Name": { + "ServiceRole": { "type": "string" }, - "OwnerArn": { + "State": { "type": "string" }, - "Repositories": { - "items": { - "$ref": "#/definitions/AWS::Cloud9::EnvironmentEC2.Repository" - }, - "type": "array" - }, - "SubnetId": { + "Type": { "type": "string" } }, "required": [ - "InstanceType" + "ServiceRole", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::Cloud9::EnvironmentEC2" + "AWS::Batch::ComputeEnvironment" ], "type": "string" } @@ -5717,144 +5777,91 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Cloud9::EnvironmentEC2.Repository": { + "AWS::Batch::ComputeEnvironment.ComputeResources": { "additionalProperties": false, "properties": { - "PathComponent": { + "BidPercentage": { + "type": "number" + }, + "DesiredvCpus": { + "type": "number" + }, + "Ec2KeyPair": { "type": "string" }, - "RepositoryUrl": { + "ImageId": { "type": "string" - } - }, - "required": [ - "PathComponent", - "RepositoryUrl" - ], - "type": "object" - }, - "AWS::CloudFormation::CustomResource": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + }, + "InstanceRole": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "InstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" }, - "Metadata": { - "type": "object" + "LaunchTemplate": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification" }, - "Properties": { - "additionalProperties": false, - "properties": { - "ServiceToken": { - "type": "string" - } + "MaxvCpus": { + "type": "number" + }, + "MinvCpus": { + "type": "number" + }, + "PlacementGroup": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" }, - "required": [ - "ServiceToken" - ], + "type": "array" + }, + "SpotIamFleetRole": { + "type": "string" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { "type": "object" }, "Type": { - "enum": [ - "AWS::CloudFormation::CustomResource" - ], "type": "string" } }, "required": [ - "Type", - "Properties" + "InstanceRole", + "InstanceTypes", + "MaxvCpus", + "MinvCpus", + "SecurityGroupIds", + "Subnets", + "Type" ], "type": "object" }, - "AWS::CloudFormation::Macro": { + "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "LaunchTemplateId": { "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" - }, - "FunctionName": { - "type": "string" - }, - "LogGroupName": { - "type": "string" - }, - "LogRoleARN": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "FunctionName", - "Name" - ], - "type": "object" + "LaunchTemplateName": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::CloudFormation::Macro" - ], + "Version": { "type": "string" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::CloudFormation::Stack": { + "AWS::Batch::JobDefinition": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -5886,42 +5893,36 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "NotificationARNs": { - "items": { - "type": "string" - }, - "type": "array" + "ContainerProperties": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties" + }, + "JobDefinitionName": { + "type": "string" + }, + "NodeProperties": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeProperties" }, "Parameters": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, "type": "object" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "RetryStrategy": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.RetryStrategy" }, - "TemplateURL": { - "type": "string" + "Timeout": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Timeout" }, - "TimeoutInMinutes": { - "type": "number" + "Type": { + "type": "string" } }, "required": [ - "TemplateURL" + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudFormation::Stack" + "AWS::Batch::JobDefinition" ], "type": "string" } @@ -5932,112 +5933,196 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::CloudFormation::WaitCondition": { + "AWS::Batch::JobDefinition.ContainerProperties": { "additionalProperties": false, "properties": { - "CreationPolicy": { - "type": "object" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Command": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Environment": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Environment" + }, + "type": "array" + }, + "Image": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "InstanceType": { + "type": "string" }, - "Metadata": { - "type": "object" + "JobRoleArn": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Count": { - "type": "number" - }, - "Handle": { - "type": "string" - }, - "Timeout": { - "type": "string" - } + "Memory": { + "type": "number" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.MountPoints" }, - "type": "object" + "type": "array" }, - "Type": { - "enum": [ - "AWS::CloudFormation::WaitCondition" - ], + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Ulimit" + }, + "type": "array" + }, + "User": { "type": "string" + }, + "Vcpus": { + "type": "number" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Volumes" + }, + "type": "array" } }, "required": [ - "Type" + "Image", + "Memory", + "Vcpus" ], "type": "object" }, - "AWS::CloudFormation::WaitConditionHandle": { + "AWS::Batch::JobDefinition.Environment": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Name": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.MountPoints": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" }, - "Metadata": { - "type": "object" + "ReadOnly": { + "type": "boolean" }, - "Properties": { - "additionalProperties": false, - "properties": {}, - "type": "object" + "SourceVolume": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.NodeProperties": { + "additionalProperties": false, + "properties": { + "MainNode": { + "type": "number" }, - "Type": { - "enum": [ - "AWS::CloudFormation::WaitConditionHandle" - ], + "NodeRangeProperties": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeRangeProperty" + }, + "type": "array" + }, + "NumNodes": { + "type": "number" + } + }, + "required": [ + "MainNode", + "NodeRangeProperties", + "NumNodes" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.NodeRangeProperty": { + "additionalProperties": false, + "properties": { + "Container": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties" + }, + "TargetNodes": { "type": "string" } }, "required": [ - "Type" + "TargetNodes" ], "type": "object" }, - "AWS::CloudFront::CloudFrontOriginAccessIdentity": { + "AWS::Batch::JobDefinition.RetryStrategy": { + "additionalProperties": false, + "properties": { + "Attempts": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.Timeout": { + "additionalProperties": false, + "properties": { + "AttemptDurationSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "SoftLimit": { + "type": "number" + } + }, + "required": [ + "HardLimit", + "Name", + "SoftLimit" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.Volumes": { + "additionalProperties": false, + "properties": { + "Host": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.VolumesHost" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.VolumesHost": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobQueue": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -6069,18 +6154,31 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CloudFrontOriginAccessIdentityConfig": { - "$ref": "#/definitions/AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig" + "ComputeEnvironmentOrder": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobQueue.ComputeEnvironmentOrder" + }, + "type": "array" + }, + "JobQueueName": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "State": { + "type": "string" } }, "required": [ - "CloudFrontOriginAccessIdentityConfig" + "ComputeEnvironmentOrder", + "Priority" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudFront::CloudFrontOriginAccessIdentity" + "AWS::Batch::JobQueue" ], "type": "string" } @@ -6091,19 +6189,23 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig": { + "AWS::Batch::JobQueue.ComputeEnvironmentOrder": { "additionalProperties": false, "properties": { - "Comment": { + "ComputeEnvironment": { "type": "string" + }, + "Order": { + "type": "number" } }, "required": [ - "Comment" + "ComputeEnvironment", + "Order" ], "type": "object" }, - "AWS::CloudFront::Distribution": { + "AWS::Budgets::Budget": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -6135,24 +6237,24 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DistributionConfig": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.DistributionConfig" + "Budget": { + "$ref": "#/definitions/AWS::Budgets::Budget.BudgetData" }, - "Tags": { + "NotificationsWithSubscribers": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::Budgets::Budget.NotificationWithSubscribers" }, "type": "array" } }, "required": [ - "DistributionConfig" + "Budget" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudFront::Distribution" + "AWS::Budgets::Budget" ], "type": "string" } @@ -6163,443 +6265,172 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::CloudFront::Distribution.CacheBehavior": { + "AWS::Budgets::Budget.BudgetData": { "additionalProperties": false, "properties": { - "AllowedMethods": { - "items": { - "type": "string" - }, - "type": "array" + "BudgetLimit": { + "$ref": "#/definitions/AWS::Budgets::Budget.Spend" }, - "CachedMethods": { - "items": { - "type": "string" - }, - "type": "array" + "BudgetName": { + "type": "string" }, - "Compress": { - "type": "boolean" + "BudgetType": { + "type": "string" }, - "DefaultTTL": { - "type": "number" + "CostFilters": { + "type": "object" }, - "FieldLevelEncryptionId": { + "CostTypes": { + "$ref": "#/definitions/AWS::Budgets::Budget.CostTypes" + }, + "TimePeriod": { + "$ref": "#/definitions/AWS::Budgets::Budget.TimePeriod" + }, + "TimeUnit": { "type": "string" + } + }, + "required": [ + "BudgetType", + "TimeUnit" + ], + "type": "object" + }, + "AWS::Budgets::Budget.CostTypes": { + "additionalProperties": false, + "properties": { + "IncludeCredit": { + "type": "boolean" }, - "ForwardedValues": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues" + "IncludeDiscount": { + "type": "boolean" }, - "LambdaFunctionAssociations": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation" - }, - "type": "array" + "IncludeOtherSubscription": { + "type": "boolean" }, - "MaxTTL": { - "type": "number" + "IncludeRecurring": { + "type": "boolean" }, - "MinTTL": { - "type": "number" + "IncludeRefund": { + "type": "boolean" }, - "PathPattern": { - "type": "string" + "IncludeSubscription": { + "type": "boolean" }, - "SmoothStreaming": { + "IncludeSupport": { "type": "boolean" }, - "TargetOriginId": { + "IncludeTax": { + "type": "boolean" + }, + "IncludeUpfront": { + "type": "boolean" + }, + "UseAmortized": { + "type": "boolean" + }, + "UseBlended": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Budgets::Budget.Notification": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { "type": "string" }, - "TrustedSigners": { - "items": { - "type": "string" - }, - "type": "array" + "NotificationType": { + "type": "string" }, - "ViewerProtocolPolicy": { + "Threshold": { + "type": "number" + }, + "ThresholdType": { "type": "string" } }, "required": [ - "ForwardedValues", - "PathPattern", - "TargetOriginId", - "ViewerProtocolPolicy" + "ComparisonOperator", + "NotificationType", + "Threshold" ], "type": "object" }, - "AWS::CloudFront::Distribution.Cookies": { + "AWS::Budgets::Budget.NotificationWithSubscribers": { "additionalProperties": false, "properties": { - "Forward": { - "type": "string" + "Notification": { + "$ref": "#/definitions/AWS::Budgets::Budget.Notification" }, - "WhitelistedNames": { + "Subscribers": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::Budgets::Budget.Subscriber" }, "type": "array" } }, "required": [ - "Forward" + "Notification", + "Subscribers" ], "type": "object" }, - "AWS::CloudFront::Distribution.CustomErrorResponse": { + "AWS::Budgets::Budget.Spend": { "additionalProperties": false, "properties": { - "ErrorCachingMinTTL": { - "type": "number" - }, - "ErrorCode": { - "type": "number" - }, - "ResponseCode": { + "Amount": { "type": "number" }, - "ResponsePagePath": { + "Unit": { "type": "string" } }, "required": [ - "ErrorCode" + "Amount", + "Unit" ], "type": "object" }, - "AWS::CloudFront::Distribution.CustomOriginConfig": { + "AWS::Budgets::Budget.Subscriber": { "additionalProperties": false, "properties": { - "HTTPPort": { - "type": "number" - }, - "HTTPSPort": { - "type": "number" - }, - "OriginKeepaliveTimeout": { - "type": "number" - }, - "OriginProtocolPolicy": { + "Address": { "type": "string" }, - "OriginReadTimeout": { - "type": "number" - }, - "OriginSSLProtocols": { - "items": { - "type": "string" - }, - "type": "array" + "SubscriptionType": { + "type": "string" } }, "required": [ - "OriginProtocolPolicy" + "Address", + "SubscriptionType" ], "type": "object" }, - "AWS::CloudFront::Distribution.DefaultCacheBehavior": { + "AWS::Budgets::Budget.TimePeriod": { "additionalProperties": false, "properties": { - "AllowedMethods": { - "items": { - "type": "string" - }, - "type": "array" - }, - "CachedMethods": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Compress": { - "type": "boolean" - }, - "DefaultTTL": { - "type": "number" - }, - "FieldLevelEncryptionId": { - "type": "string" - }, - "ForwardedValues": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues" - }, - "LambdaFunctionAssociations": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation" - }, - "type": "array" - }, - "MaxTTL": { - "type": "number" - }, - "MinTTL": { - "type": "number" - }, - "SmoothStreaming": { - "type": "boolean" - }, - "TargetOriginId": { + "End": { "type": "string" }, - "TrustedSigners": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ViewerProtocolPolicy": { + "Start": { "type": "string" } }, - "required": [ - "ForwardedValues", - "TargetOriginId", - "ViewerProtocolPolicy" - ], "type": "object" }, - "AWS::CloudFront::Distribution.DistributionConfig": { + "AWS::CertificateManager::Certificate": { "additionalProperties": false, "properties": { - "Aliases": { - "items": { - "type": "string" - }, - "type": "array" - }, - "CacheBehaviors": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.CacheBehavior" - }, - "type": "array" - }, - "Comment": { - "type": "string" - }, - "CustomErrorResponses": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomErrorResponse" - }, - "type": "array" - }, - "DefaultCacheBehavior": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.DefaultCacheBehavior" - }, - "DefaultRootObject": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "HttpVersion": { - "type": "string" - }, - "IPV6Enabled": { - "type": "boolean" - }, - "Logging": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.Logging" - }, - "Origins": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.Origin" - }, - "type": "array" - }, - "PriceClass": { - "type": "string" - }, - "Restrictions": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.Restrictions" - }, - "ViewerCertificate": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.ViewerCertificate" - }, - "WebACLId": { - "type": "string" - } - }, - "required": [ - "Enabled" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.ForwardedValues": { - "additionalProperties": false, - "properties": { - "Cookies": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.Cookies" - }, - "Headers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "QueryString": { - "type": "boolean" - }, - "QueryStringCacheKeys": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "QueryString" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.GeoRestriction": { - "additionalProperties": false, - "properties": { - "Locations": { - "items": { - "type": "string" - }, - "type": "array" - }, - "RestrictionType": { - "type": "string" - } - }, - "required": [ - "RestrictionType" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.LambdaFunctionAssociation": { - "additionalProperties": false, - "properties": { - "EventType": { - "type": "string" - }, - "LambdaFunctionARN": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CloudFront::Distribution.Logging": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "IncludeCookies": { - "type": "boolean" - }, - "Prefix": { - "type": "string" - } - }, - "required": [ - "Bucket" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.Origin": { - "additionalProperties": false, - "properties": { - "CustomOriginConfig": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomOriginConfig" - }, - "DomainName": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "OriginCustomHeaders": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginCustomHeader" - }, - "type": "array" - }, - "OriginPath": { - "type": "string" - }, - "S3OriginConfig": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.S3OriginConfig" - } - }, - "required": [ - "DomainName", - "Id" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.OriginCustomHeader": { - "additionalProperties": false, - "properties": { - "HeaderName": { - "type": "string" - }, - "HeaderValue": { - "type": "string" - } - }, - "required": [ - "HeaderName", - "HeaderValue" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.Restrictions": { - "additionalProperties": false, - "properties": { - "GeoRestriction": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.GeoRestriction" - } - }, - "required": [ - "GeoRestriction" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.S3OriginConfig": { - "additionalProperties": false, - "properties": { - "OriginAccessIdentity": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CloudFront::Distribution.ViewerCertificate": { - "additionalProperties": false, - "properties": { - "AcmCertificateArn": { - "type": "string" - }, - "CloudFrontDefaultCertificate": { - "type": "boolean" - }, - "IamCertificateId": { - "type": "string" - }, - "MinimumProtocolVersion": { - "type": "string" - }, - "SslSupportMethod": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CloudFront::StreamingDistribution": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" }, "DependsOn": { "anyOf": [ @@ -6622,25 +6453,39 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "StreamingDistributionConfig": { - "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig" + "DomainName": { + "type": "string" + }, + "DomainValidationOptions": { + "items": { + "$ref": "#/definitions/AWS::CertificateManager::Certificate.DomainValidationOption" + }, + "type": "array" + }, + "SubjectAlternativeNames": { + "items": { + "type": "string" + }, + "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "ValidationMethod": { + "type": "string" } }, "required": [ - "StreamingDistributionConfig", - "Tags" + "DomainName" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudFront::StreamingDistribution" + "AWS::CertificateManager::Certificate" ], "type": "string" } @@ -6651,97 +6496,23 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::CloudFront::StreamingDistribution.Logging": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "Prefix": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Enabled", - "Prefix" - ], - "type": "object" - }, - "AWS::CloudFront::StreamingDistribution.S3Origin": { + "AWS::CertificateManager::Certificate.DomainValidationOption": { "additionalProperties": false, "properties": { "DomainName": { "type": "string" }, - "OriginAccessIdentity": { + "ValidationDomain": { "type": "string" } }, "required": [ "DomainName", - "OriginAccessIdentity" - ], - "type": "object" - }, - "AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig": { - "additionalProperties": false, - "properties": { - "Aliases": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Comment": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "Logging": { - "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.Logging" - }, - "PriceClass": { - "type": "string" - }, - "S3Origin": { - "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.S3Origin" - }, - "TrustedSigners": { - "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.TrustedSigners" - } - }, - "required": [ - "Comment", - "Enabled", - "S3Origin", - "TrustedSigners" - ], - "type": "object" - }, - "AWS::CloudFront::StreamingDistribution.TrustedSigners": { - "additionalProperties": false, - "properties": { - "AwsAccountNumbers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Enabled": { - "type": "boolean" - } - }, - "required": [ - "Enabled" + "ValidationDomain" ], "type": "object" }, - "AWS::CloudTrail::Trail": { + "AWS::Cloud9::EnvironmentEC2": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -6773,61 +6544,39 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CloudWatchLogsLogGroupArn": { - "type": "string" - }, - "CloudWatchLogsRoleArn": { - "type": "string" - }, - "EnableLogFileValidation": { - "type": "boolean" - }, - "EventSelectors": { - "items": { - "$ref": "#/definitions/AWS::CloudTrail::Trail.EventSelector" - }, - "type": "array" - }, - "IncludeGlobalServiceEvents": { - "type": "boolean" - }, - "IsLogging": { - "type": "boolean" - }, - "IsMultiRegionTrail": { - "type": "boolean" + "AutomaticStopTimeMinutes": { + "type": "number" }, - "KMSKeyId": { + "Description": { "type": "string" }, - "S3BucketName": { + "InstanceType": { "type": "string" }, - "S3KeyPrefix": { + "Name": { "type": "string" }, - "SnsTopicName": { + "OwnerArn": { "type": "string" }, - "Tags": { + "Repositories": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::Cloud9::EnvironmentEC2.Repository" }, "type": "array" }, - "TrailName": { + "SubnetId": { "type": "string" } }, "required": [ - "IsLogging", - "S3BucketName" + "InstanceType" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudTrail::Trail" + "AWS::Cloud9::EnvironmentEC2" ], "type": "string" } @@ -6838,43 +6587,23 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::CloudTrail::Trail.DataResource": { + "AWS::Cloud9::EnvironmentEC2.Repository": { "additionalProperties": false, "properties": { - "Type": { + "PathComponent": { "type": "string" }, - "Values": { - "items": { - "type": "string" - }, - "type": "array" + "RepositoryUrl": { + "type": "string" } }, "required": [ - "Type" + "PathComponent", + "RepositoryUrl" ], "type": "object" }, - "AWS::CloudTrail::Trail.EventSelector": { - "additionalProperties": false, - "properties": { - "DataResources": { - "items": { - "$ref": "#/definitions/AWS::CloudTrail::Trail.DataResource" - }, - "type": "array" - }, - "IncludeManagementEvents": { - "type": "boolean" - }, - "ReadWriteType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CloudWatch::Alarm": { + "AWS::CloudFormation::CustomResource": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -6906,86 +6635,18 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ActionsEnabled": { - "type": "boolean" - }, - "AlarmActions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AlarmDescription": { - "type": "string" - }, - "AlarmName": { - "type": "string" - }, - "ComparisonOperator": { - "type": "string" - }, - "DatapointsToAlarm": { - "type": "number" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/AWS::CloudWatch::Alarm.Dimension" - }, - "type": "array" - }, - "EvaluateLowSampleCountPercentile": { - "type": "string" - }, - "EvaluationPeriods": { - "type": "number" - }, - "ExtendedStatistic": { - "type": "string" - }, - "InsufficientDataActions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "OKActions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Period": { - "type": "number" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "TreatMissingData": { - "type": "string" - }, - "Unit": { + "ServiceToken": { "type": "string" } }, "required": [ - "ComparisonOperator", - "EvaluationPeriods", - "Threshold" + "ServiceToken" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudWatch::Alarm" + "AWS::CloudFormation::CustomResource" ], "type": "string" } @@ -6996,23 +6657,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::CloudWatch::Alarm.Dimension": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Name", - "Value" - ], - "type": "object" - }, - "AWS::CloudWatch::Dashboard": { + "AWS::CloudFormation::Macro": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -7044,21 +6689,31 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DashboardBody": { + "Description": { "type": "string" }, - "DashboardName": { + "FunctionName": { "type": "string" - } + }, + "LogGroupName": { + "type": "string" + }, + "LogRoleARN": { + "type": "string" + }, + "Name": { + "type": "string" + } }, "required": [ - "DashboardBody" + "FunctionName", + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudWatch::Dashboard" + "AWS::CloudFormation::Macro" ], "type": "string" } @@ -7069,7 +6724,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::CodeBuild::Project": { + "AWS::CloudFormation::Stack": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -7101,50 +6756,20 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Artifacts": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts" - }, - "BadgeEnabled": { - "type": "boolean" - }, - "Cache": { - "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectCache" - }, - "Description": { - "type": "string" - }, - "EncryptionKey": { - "type": "string" - }, - "Environment": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Environment" - }, - "LogsConfig": { - "$ref": "#/definitions/AWS::CodeBuild::Project.LogsConfig" - }, - "Name": { - "type": "string" - }, - "QueuedTimeoutInMinutes": { - "type": "number" - }, - "SecondaryArtifacts": { + "NotificationARNs": { "items": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts" + "type": "string" }, "type": "array" }, - "SecondarySources": { - "items": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Source" + "Parameters": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } }, - "type": "array" - }, - "ServiceRole": { - "type": "string" - }, - "Source": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Source" + "type": "object" }, "Tags": { "items": { @@ -7152,27 +6777,21 @@ var CloudformationSchema = `{ }, "type": "array" }, + "TemplateURL": { + "type": "string" + }, "TimeoutInMinutes": { "type": "number" - }, - "Triggers": { - "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectTriggers" - }, - "VpcConfig": { - "$ref": "#/definitions/AWS::CodeBuild::Project.VpcConfig" } }, "required": [ - "Artifacts", - "Environment", - "ServiceRole", - "Source" + "TemplateURL" ], "type": "object" }, "Type": { "enum": [ - "AWS::CodeBuild::Project" + "AWS::CloudFormation::Stack" ], "type": "string" } @@ -7183,234 +6802,12 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::CodeBuild::Project.Artifacts": { - "additionalProperties": false, - "properties": { - "ArtifactIdentifier": { - "type": "string" - }, - "EncryptionDisabled": { - "type": "boolean" - }, - "Location": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "NamespaceType": { - "type": "string" - }, - "OverrideArtifactName": { - "type": "boolean" - }, - "Packaging": { - "type": "string" - }, - "Path": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.CloudWatchLogsConfig": { - "additionalProperties": false, - "properties": { - "GroupName": { - "type": "string" - }, - "Status": { - "type": "string" - }, - "StreamName": { - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.Environment": { - "additionalProperties": false, - "properties": { - "Certificate": { - "type": "string" - }, - "ComputeType": { - "type": "string" - }, - "EnvironmentVariables": { - "items": { - "$ref": "#/definitions/AWS::CodeBuild::Project.EnvironmentVariable" - }, - "type": "array" - }, - "Image": { - "type": "string" - }, - "PrivilegedMode": { - "type": "boolean" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "ComputeType", - "Image", - "Type" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.EnvironmentVariable": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Name", - "Value" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.LogsConfig": { - "additionalProperties": false, - "properties": { - "CloudWatchLogs": { - "$ref": "#/definitions/AWS::CodeBuild::Project.CloudWatchLogsConfig" - }, - "S3Logs": { - "$ref": "#/definitions/AWS::CodeBuild::Project.S3LogsConfig" - } - }, - "type": "object" - }, - "AWS::CodeBuild::Project.ProjectCache": { - "additionalProperties": false, - "properties": { - "Location": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.ProjectTriggers": { - "additionalProperties": false, - "properties": { - "Webhook": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::CodeBuild::Project.S3LogsConfig": { - "additionalProperties": false, - "properties": { - "Location": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.Source": { - "additionalProperties": false, - "properties": { - "Auth": { - "$ref": "#/definitions/AWS::CodeBuild::Project.SourceAuth" - }, - "BuildSpec": { - "type": "string" - }, - "GitCloneDepth": { - "type": "number" - }, - "InsecureSsl": { - "type": "boolean" - }, - "Location": { - "type": "string" - }, - "ReportBuildStatus": { - "type": "boolean" - }, - "SourceIdentifier": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.SourceAuth": { - "additionalProperties": false, - "properties": { - "Resource": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.VpcConfig": { + "AWS::CloudFormation::WaitCondition": { "additionalProperties": false, "properties": { - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Subnets": { - "items": { - "type": "string" - }, - "type": "array" + "CreationPolicy": { + "type": "object" }, - "VpcId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CodeCommit::Repository": { - "additionalProperties": false, - "properties": { "DeletionPolicy": { "enum": [ "Delete", @@ -7440,65 +6837,31 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "RepositoryDescription": { - "type": "string" + "Count": { + "type": "number" }, - "RepositoryName": { + "Handle": { "type": "string" }, - "Triggers": { - "items": { - "$ref": "#/definitions/AWS::CodeCommit::Repository.RepositoryTrigger" - }, - "type": "array" + "Timeout": { + "type": "string" } }, - "required": [ - "RepositoryName" - ], "type": "object" }, "Type": { "enum": [ - "AWS::CodeCommit::Repository" + "AWS::CloudFormation::WaitCondition" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::CodeCommit::Repository.RepositoryTrigger": { - "additionalProperties": false, - "properties": { - "Branches": { - "items": { - "type": "string" - }, - "type": "array" - }, - "CustomData": { - "type": "string" - }, - "DestinationArn": { - "type": "string" - }, - "Events": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CodeDeploy::Application": { + "AWS::CloudFormation::WaitConditionHandle": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -7529,19 +6892,12 @@ var CloudformationSchema = `{ }, "Properties": { "additionalProperties": false, - "properties": { - "ApplicationName": { - "type": "string" - }, - "ComputePlatform": { - "type": "string" - } - }, + "properties": {}, "type": "object" }, "Type": { "enum": [ - "AWS::CodeDeploy::Application" + "AWS::CloudFormation::WaitConditionHandle" ], "type": "string" } @@ -7551,7 +6907,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::CodeDeploy::DeploymentConfig": { + "AWS::CloudFront::CloudFrontOriginAccessIdentity": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -7583,44 +6939,41 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DeploymentConfigName": { - "type": "string" - }, - "MinimumHealthyHosts": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts" + "CloudFrontOriginAccessIdentityConfig": { + "$ref": "#/definitions/AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig" } }, + "required": [ + "CloudFrontOriginAccessIdentityConfig" + ], "type": "object" }, "Type": { "enum": [ - "AWS::CodeDeploy::DeploymentConfig" + "AWS::CloudFront::CloudFrontOriginAccessIdentity" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts": { + "AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig": { "additionalProperties": false, "properties": { - "Type": { + "Comment": { "type": "string" - }, - "Value": { - "type": "number" } }, "required": [ - "Type", - "Value" + "Comment" ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup": { + "AWS::CloudFront::Distribution": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -7652,73 +7005,24 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Deployment": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.DeploymentStyle" - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter" - }, - "type": "array" - }, - "Ec2TagSet": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSet" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter" - }, - "type": "array" - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet" - }, - "ServiceRoleArn": { - "type": "string" + "DistributionConfig": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.DistributionConfig" }, - "TriggerConfigurations": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TriggerConfig" + "$ref": "#/definitions/Tag" }, "type": "array" } }, "required": [ - "ApplicationName", - "ServiceRoleArn" + "DistributionConfig" ], "type": "object" }, "Type": { "enum": [ - "AWS::CodeDeploy::DeploymentGroup" + "AWS::CloudFront::Distribution" ], "type": "string" } @@ -7729,267 +7033,434 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration": { + "AWS::CloudFront::Distribution.CacheBehavior": { "additionalProperties": false, "properties": { - "Alarms": { + "AllowedMethods": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Alarm" + "type": "string" }, "type": "array" }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { + "CachedMethods": { "items": { "type": "string" }, "type": "array" - } - }, - "type": "object" - }, - "AWS::CodeDeploy::DeploymentGroup.Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" }, - "IgnoreApplicationStopFailures": { + "Compress": { "type": "boolean" }, - "Revision": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "AWS::CodeDeploy::DeploymentGroup.DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "type": "string" + "DefaultTTL": { + "type": "number" }, - "DeploymentType": { + "FieldLevelEncryptionId": { "type": "string" - } - }, - "type": "object" - }, - "AWS::CodeDeploy::DeploymentGroup.EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { + }, + "ForwardedValues": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues" + }, + "LambdaFunctionAssociations": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation" + }, + "type": "array" + }, + "MaxTTL": { + "type": "number" + }, + "MinTTL": { + "type": "number" + }, + "PathPattern": { "type": "string" }, - "Type": { + "SmoothStreaming": { + "type": "boolean" + }, + "TargetOriginId": { "type": "string" }, - "Value": { + "TrustedSigners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ViewerProtocolPolicy": { "type": "string" } }, + "required": [ + "ForwardedValues", + "PathPattern", + "TargetOriginId", + "ViewerProtocolPolicy" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.EC2TagSet": { + "AWS::CloudFront::Distribution.Cookies": { "additionalProperties": false, "properties": { - "Ec2TagSetList": { + "Forward": { + "type": "string" + }, + "WhitelistedNames": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject" + "type": "string" }, "type": "array" } }, + "required": [ + "Forward" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject": { + "AWS::CloudFront::Distribution.CustomErrorResponse": { "additionalProperties": false, "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter" - }, - "type": "array" + "ErrorCachingMinTTL": { + "type": "number" + }, + "ErrorCode": { + "type": "number" + }, + "ResponseCode": { + "type": "number" + }, + "ResponsePagePath": { + "type": "string" } }, + "required": [ + "ErrorCode" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.ELBInfo": { + "AWS::CloudFront::Distribution.CustomOriginConfig": { "additionalProperties": false, "properties": { - "Name": { + "HTTPPort": { + "type": "number" + }, + "HTTPSPort": { + "type": "number" + }, + "OriginKeepaliveTimeout": { + "type": "number" + }, + "OriginProtocolPolicy": { "type": "string" + }, + "OriginReadTimeout": { + "type": "number" + }, + "OriginSSLProtocols": { + "items": { + "type": "string" + }, + "type": "array" } }, + "required": [ + "OriginProtocolPolicy" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.GitHubLocation": { + "AWS::CloudFront::Distribution.DefaultCacheBehavior": { "additionalProperties": false, "properties": { - "CommitId": { + "AllowedMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CachedMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Compress": { + "type": "boolean" + }, + "DefaultTTL": { + "type": "number" + }, + "FieldLevelEncryptionId": { "type": "string" }, - "Repository": { + "ForwardedValues": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues" + }, + "LambdaFunctionAssociations": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation" + }, + "type": "array" + }, + "MaxTTL": { + "type": "number" + }, + "MinTTL": { + "type": "number" + }, + "SmoothStreaming": { + "type": "boolean" + }, + "TargetOriginId": { + "type": "string" + }, + "TrustedSigners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ViewerProtocolPolicy": { "type": "string" } }, "required": [ - "CommitId", - "Repository" + "ForwardedValues", + "TargetOriginId", + "ViewerProtocolPolicy" ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo": { + "AWS::CloudFront::Distribution.DistributionConfig": { "additionalProperties": false, "properties": { - "ElbInfoList": { + "Aliases": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.ELBInfo" + "type": "string" }, "type": "array" }, - "TargetGroupInfoList": { + "CacheBehaviors": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo" + "$ref": "#/definitions/AWS::CloudFront::Distribution.CacheBehavior" + }, + "type": "array" + }, + "Comment": { + "type": "string" + }, + "CustomErrorResponses": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomErrorResponse" + }, + "type": "array" + }, + "DefaultCacheBehavior": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.DefaultCacheBehavior" + }, + "DefaultRootObject": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "HttpVersion": { + "type": "string" + }, + "IPV6Enabled": { + "type": "boolean" + }, + "Logging": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Logging" + }, + "Origins": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Origin" }, "type": "array" + }, + "PriceClass": { + "type": "string" + }, + "Restrictions": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Restrictions" + }, + "ViewerCertificate": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.ViewerCertificate" + }, + "WebACLId": { + "type": "string" } }, + "required": [ + "Enabled" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet": { + "AWS::CloudFront::Distribution.ForwardedValues": { "additionalProperties": false, "properties": { - "OnPremisesTagSetList": { + "Cookies": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Cookies" + }, + "Headers": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject" + "type": "string" + }, + "type": "array" + }, + "QueryString": { + "type": "boolean" + }, + "QueryStringCacheKeys": { + "items": { + "type": "string" }, "type": "array" } }, + "required": [ + "QueryString" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject": { + "AWS::CloudFront::Distribution.GeoRestriction": { "additionalProperties": false, "properties": { - "OnPremisesTagGroup": { + "Locations": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter" + "type": "string" }, "type": "array" + }, + "RestrictionType": { + "type": "string" } }, + "required": [ + "RestrictionType" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.RevisionLocation": { + "AWS::CloudFront::Distribution.LambdaFunctionAssociation": { "additionalProperties": false, "properties": { - "GitHubLocation": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.GitHubLocation" - }, - "RevisionType": { + "EventType": { "type": "string" }, - "S3Location": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.S3Location" + "LambdaFunctionARN": { + "type": "string" } }, "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.S3Location": { + "AWS::CloudFront::Distribution.Logging": { "additionalProperties": false, "properties": { "Bucket": { "type": "string" }, - "BundleType": { + "IncludeCookies": { + "type": "boolean" + }, + "Prefix": { "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.Origin": { + "additionalProperties": false, + "properties": { + "CustomOriginConfig": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomOriginConfig" }, - "ETag": { + "DomainName": { "type": "string" }, - "Key": { + "Id": { "type": "string" }, - "Version": { + "OriginCustomHeaders": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginCustomHeader" + }, + "type": "array" + }, + "OriginPath": { "type": "string" + }, + "S3OriginConfig": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.S3OriginConfig" } }, "required": [ - "Bucket", - "Key" + "DomainName", + "Id" ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.TagFilter": { + "AWS::CloudFront::Distribution.OriginCustomHeader": { "additionalProperties": false, "properties": { - "Key": { - "type": "string" - }, - "Type": { + "HeaderName": { "type": "string" }, - "Value": { + "HeaderValue": { "type": "string" } }, + "required": [ + "HeaderName", + "HeaderValue" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.Restrictions": { + "additionalProperties": false, + "properties": { + "GeoRestriction": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.GeoRestriction" + } + }, + "required": [ + "GeoRestriction" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo": { + "AWS::CloudFront::Distribution.S3OriginConfig": { "additionalProperties": false, "properties": { - "Name": { + "OriginAccessIdentity": { "type": "string" } }, "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.TriggerConfig": { + "AWS::CloudFront::Distribution.ViewerCertificate": { "additionalProperties": false, "properties": { - "TriggerEvents": { - "items": { - "type": "string" - }, - "type": "array" + "AcmCertificateArn": { + "type": "string" }, - "TriggerName": { + "CloudFrontDefaultCertificate": { + "type": "boolean" + }, + "IamCertificateId": { "type": "string" }, - "TriggerTargetArn": { + "MinimumProtocolVersion": { + "type": "string" + }, + "SslSupportMethod": { "type": "string" } }, "type": "object" }, - "AWS::CodePipeline::CustomActionType": { + "AWS::CloudFront::StreamingDistribution": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -8021,42 +7492,25 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Category": { - "type": "string" + "StreamingDistributionConfig": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig" }, - "ConfigurationProperties": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ConfigurationProperties" + "$ref": "#/definitions/Tag" }, "type": "array" - }, - "InputArtifactDetails": { - "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails" - }, - "OutputArtifactDetails": { - "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails" - }, - "Provider": { - "type": "string" - }, - "Settings": { - "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.Settings" - }, - "Version": { - "type": "string" } }, "required": [ - "Category", - "InputArtifactDetails", - "OutputArtifactDetails", - "Provider" + "StreamingDistributionConfig", + "Tags" ], "type": "object" }, "Type": { "enum": [ - "AWS::CodePipeline::CustomActionType" + "AWS::CloudFront::StreamingDistribution" ], "type": "string" } @@ -8067,74 +7521,97 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::CodePipeline::CustomActionType.ArtifactDetails": { + "AWS::CloudFront::StreamingDistribution.Logging": { "additionalProperties": false, "properties": { - "MaximumCount": { - "type": "number" + "Bucket": { + "type": "string" }, - "MinimumCount": { - "type": "number" + "Enabled": { + "type": "boolean" + }, + "Prefix": { + "type": "string" } }, "required": [ - "MaximumCount", - "MinimumCount" + "Bucket", + "Enabled", + "Prefix" ], "type": "object" }, - "AWS::CodePipeline::CustomActionType.ConfigurationProperties": { + "AWS::CloudFront::StreamingDistribution.S3Origin": { "additionalProperties": false, "properties": { - "Description": { + "DomainName": { "type": "string" }, - "Key": { - "type": "boolean" - }, - "Name": { + "OriginAccessIdentity": { "type": "string" + } + }, + "required": [ + "DomainName", + "OriginAccessIdentity" + ], + "type": "object" + }, + "AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig": { + "additionalProperties": false, + "properties": { + "Aliases": { + "items": { + "type": "string" + }, + "type": "array" }, - "Queryable": { - "type": "boolean" + "Comment": { + "type": "string" }, - "Required": { + "Enabled": { "type": "boolean" }, - "Secret": { - "type": "boolean" + "Logging": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.Logging" }, - "Type": { + "PriceClass": { "type": "string" + }, + "S3Origin": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.S3Origin" + }, + "TrustedSigners": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.TrustedSigners" } }, "required": [ - "Key", - "Name", - "Required", - "Secret" + "Comment", + "Enabled", + "S3Origin", + "TrustedSigners" ], "type": "object" }, - "AWS::CodePipeline::CustomActionType.Settings": { + "AWS::CloudFront::StreamingDistribution.TrustedSigners": { "additionalProperties": false, "properties": { - "EntityUrlTemplate": { - "type": "string" - }, - "ExecutionUrlTemplate": { - "type": "string" - }, - "RevisionUrlTemplate": { - "type": "string" + "AwsAccountNumbers": { + "items": { + "type": "string" + }, + "type": "array" }, - "ThirdPartyConfigurationUrl": { - "type": "string" + "Enabled": { + "type": "boolean" } }, + "required": [ + "Enabled" + ], "type": "object" }, - "AWS::CodePipeline::Pipeline": { + "AWS::CloudTrail::Trail": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -8166,46 +7643,61 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ArtifactStore": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore" + "CloudWatchLogsLogGroupArn": { + "type": "string" }, - "ArtifactStores": { - "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStoreMap" - }, - "type": "array" + "CloudWatchLogsRoleArn": { + "type": "string" }, - "DisableInboundStageTransitions": { + "EnableLogFileValidation": { + "type": "boolean" + }, + "EventSelectors": { "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageTransition" + "$ref": "#/definitions/AWS::CloudTrail::Trail.EventSelector" }, "type": "array" }, - "Name": { - "type": "string" + "IncludeGlobalServiceEvents": { + "type": "boolean" }, - "RestartExecutionOnUpdate": { + "IsLogging": { "type": "boolean" }, - "RoleArn": { + "IsMultiRegionTrail": { + "type": "boolean" + }, + "KMSKeyId": { "type": "string" }, - "Stages": { - "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageDeclaration" + "S3BucketName": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + }, + "SnsTopicName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" }, "type": "array" + }, + "TrailName": { + "type": "string" } }, "required": [ - "RoleArn", - "Stages" + "IsLogging", + "S3BucketName" ], "type": "object" }, "Type": { "enum": [ - "AWS::CodePipeline::Pipeline" + "AWS::CloudTrail::Trail" ], "type": "string" } @@ -8216,203 +7708,252 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::CodePipeline::Pipeline.ActionDeclaration": { + "AWS::CloudTrail::Trail.DataResource": { "additionalProperties": false, "properties": { - "ActionTypeId": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionTypeId" - }, - "Configuration": { - "type": "object" - }, - "InputArtifacts": { - "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.InputArtifact" - }, - "type": "array" - }, - "Name": { + "Type": { "type": "string" }, - "OutputArtifacts": { + "Values": { "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.OutputArtifact" + "type": "string" }, "type": "array" - }, - "Region": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "RunOrder": { - "type": "number" } }, "required": [ - "ActionTypeId", - "Name" + "Type" ], "type": "object" }, - "AWS::CodePipeline::Pipeline.ActionTypeId": { + "AWS::CloudTrail::Trail.EventSelector": { "additionalProperties": false, "properties": { - "Category": { - "type": "string" - }, - "Owner": { - "type": "string" + "DataResources": { + "items": { + "$ref": "#/definitions/AWS::CloudTrail::Trail.DataResource" + }, + "type": "array" }, - "Provider": { - "type": "string" + "IncludeManagementEvents": { + "type": "boolean" }, - "Version": { + "ReadWriteType": { "type": "string" } }, - "required": [ - "Category", - "Owner", - "Provider", - "Version" - ], "type": "object" }, - "AWS::CodePipeline::Pipeline.ArtifactStore": { + "AWS::CloudWatch::Alarm": { "additionalProperties": false, "properties": { - "EncryptionKey": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.EncryptionKey" - }, - "Location": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "Type": { - "type": "string" - } - }, - "required": [ - "Location", - "Type" - ], - "type": "object" - }, - "AWS::CodePipeline::Pipeline.ArtifactStoreMap": { - "additionalProperties": false, - "properties": { - "ArtifactStore": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Region": { + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ActionsEnabled": { + "type": "boolean" + }, + "AlarmActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AlarmDescription": { + "type": "string" + }, + "AlarmName": { + "type": "string" + }, + "ComparisonOperator": { + "type": "string" + }, + "DatapointsToAlarm": { + "type": "number" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.Dimension" + }, + "type": "array" + }, + "EvaluateLowSampleCountPercentile": { + "type": "string" + }, + "EvaluationPeriods": { + "type": "number" + }, + "ExtendedStatistic": { + "type": "string" + }, + "InsufficientDataActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MetricName": { + "type": "string" + }, + "Metrics": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.MetricDataQuery" + }, + "type": "array" + }, + "Namespace": { + "type": "string" + }, + "OKActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Period": { + "type": "number" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "TreatMissingData": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "EvaluationPeriods", + "Threshold" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudWatch::Alarm" + ], "type": "string" } }, "required": [ - "ArtifactStore", - "Region" + "Type", + "Properties" ], "type": "object" }, - "AWS::CodePipeline::Pipeline.BlockerDeclaration": { + "AWS::CloudWatch::Alarm.Dimension": { "additionalProperties": false, "properties": { "Name": { "type": "string" }, - "Type": { + "Value": { "type": "string" } }, "required": [ "Name", - "Type" + "Value" ], "type": "object" }, - "AWS::CodePipeline::Pipeline.EncryptionKey": { + "AWS::CloudWatch::Alarm.Metric": { "additionalProperties": false, "properties": { - "Id": { - "type": "string" + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.Dimension" + }, + "type": "array" }, - "Type": { + "MetricName": { "type": "string" - } - }, - "required": [ - "Id", - "Type" - ], - "type": "object" - }, - "AWS::CodePipeline::Pipeline.InputArtifact": { - "additionalProperties": false, - "properties": { - "Name": { + }, + "Namespace": { "type": "string" } }, - "required": [ - "Name" - ], "type": "object" }, - "AWS::CodePipeline::Pipeline.OutputArtifact": { + "AWS::CloudWatch::Alarm.MetricDataQuery": { "additionalProperties": false, "properties": { - "Name": { + "Expression": { "type": "string" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "AWS::CodePipeline::Pipeline.StageDeclaration": { - "additionalProperties": false, - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionDeclaration" - }, - "type": "array" }, - "Blockers": { - "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.BlockerDeclaration" - }, - "type": "array" + "Id": { + "type": "string" }, - "Name": { + "Label": { "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.MetricStat" + }, + "ReturnData": { + "type": "boolean" } }, "required": [ - "Actions", - "Name" + "Id" ], "type": "object" }, - "AWS::CodePipeline::Pipeline.StageTransition": { + "AWS::CloudWatch::Alarm.MetricStat": { "additionalProperties": false, "properties": { - "Reason": { + "Metric": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.Metric" + }, + "Period": { + "type": "number" + }, + "Stat": { "type": "string" }, - "StageName": { + "Unit": { "type": "string" } }, "required": [ - "Reason", - "StageName" + "Metric", + "Period", + "Stat" ], "type": "object" }, - "AWS::CodePipeline::Webhook": { + "AWS::CloudWatch::Dashboard": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -8444,47 +7985,21 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Authentication": { - "type": "string" - }, - "AuthenticationConfiguration": { - "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookAuthConfiguration" - }, - "Filters": { - "items": { - "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookFilterRule" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "RegisterWithThirdParty": { - "type": "boolean" - }, - "TargetAction": { + "DashboardBody": { "type": "string" }, - "TargetPipeline": { + "DashboardName": { "type": "string" - }, - "TargetPipelineVersion": { - "type": "number" } }, "required": [ - "Authentication", - "AuthenticationConfiguration", - "Filters", - "TargetAction", - "TargetPipeline", - "TargetPipelineVersion" + "DashboardBody" ], "type": "object" }, "Type": { "enum": [ - "AWS::CodePipeline::Webhook" + "AWS::CloudWatch::Dashboard" ], "type": "string" } @@ -8495,34 +8010,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::CodePipeline::Webhook.WebhookAuthConfiguration": { - "additionalProperties": false, - "properties": { - "AllowedIPRange": { - "type": "string" - }, - "SecretToken": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CodePipeline::Webhook.WebhookFilterRule": { - "additionalProperties": false, - "properties": { - "JsonPath": { - "type": "string" - }, - "MatchEquals": { - "type": "string" - } - }, - "required": [ - "JsonPath" - ], - "type": "object" - }, - "AWS::Cognito::IdentityPool": { + "AWS::CodeBuild::Project": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -8554,54 +8042,78 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AllowUnauthenticatedIdentities": { - "type": "boolean" + "Artifacts": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts" }, - "CognitoEvents": { - "type": "object" + "BadgeEnabled": { + "type": "boolean" }, - "CognitoIdentityProviders": { - "items": { - "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoIdentityProvider" - }, - "type": "array" + "Cache": { + "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectCache" }, - "CognitoStreams": { - "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoStreams" + "Description": { + "type": "string" }, - "DeveloperProviderName": { + "EncryptionKey": { "type": "string" }, - "IdentityPoolName": { + "Environment": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Environment" + }, + "LogsConfig": { + "$ref": "#/definitions/AWS::CodeBuild::Project.LogsConfig" + }, + "Name": { "type": "string" }, - "OpenIdConnectProviderARNs": { + "QueuedTimeoutInMinutes": { + "type": "number" + }, + "SecondaryArtifacts": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts" }, "type": "array" }, - "PushSync": { - "$ref": "#/definitions/AWS::Cognito::IdentityPool.PushSync" + "SecondarySources": { + "items": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Source" + }, + "type": "array" }, - "SamlProviderARNs": { + "ServiceRole": { + "type": "string" + }, + "Source": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Source" + }, + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "SupportedLoginProviders": { - "type": "object" + "TimeoutInMinutes": { + "type": "number" + }, + "Triggers": { + "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectTriggers" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::CodeBuild::Project.VpcConfig" } }, "required": [ - "AllowUnauthenticatedIdentities" + "Artifacts", + "Environment", + "ServiceRole", + "Source" ], "type": "object" }, "Type": { "enum": [ - "AWS::Cognito::IdentityPool" + "AWS::CodeBuild::Project" ], "type": "string" } @@ -8612,121 +8124,105 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Cognito::IdentityPool.CognitoIdentityProvider": { + "AWS::CodeBuild::Project.Artifacts": { "additionalProperties": false, "properties": { - "ClientId": { + "ArtifactIdentifier": { "type": "string" }, - "ProviderName": { + "EncryptionDisabled": { + "type": "boolean" + }, + "Location": { "type": "string" }, - "ServerSideTokenCheck": { + "Name": { + "type": "string" + }, + "NamespaceType": { + "type": "string" + }, + "OverrideArtifactName": { "type": "boolean" + }, + "Packaging": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "Type": { + "type": "string" } }, + "required": [ + "Type" + ], "type": "object" }, - "AWS::Cognito::IdentityPool.CognitoStreams": { + "AWS::CodeBuild::Project.CloudWatchLogsConfig": { "additionalProperties": false, "properties": { - "RoleArn": { + "GroupName": { "type": "string" }, - "StreamName": { + "Status": { "type": "string" }, - "StreamingStatus": { + "StreamName": { "type": "string" } }, + "required": [ + "Status" + ], "type": "object" }, - "AWS::Cognito::IdentityPool.PushSync": { + "AWS::CodeBuild::Project.Environment": { "additionalProperties": false, "properties": { - "ApplicationArns": { + "Certificate": { + "type": "string" + }, + "ComputeType": { + "type": "string" + }, + "EnvironmentVariables": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::CodeBuild::Project.EnvironmentVariable" }, "type": "array" }, - "RoleArn": { + "Image": { + "type": "string" + }, + "ImagePullCredentialsType": { + "type": "string" + }, + "PrivilegedMode": { + "type": "boolean" + }, + "RegistryCredential": { + "$ref": "#/definitions/AWS::CodeBuild::Project.RegistryCredential" + }, + "Type": { "type": "string" } }, + "required": [ + "ComputeType", + "Image", + "Type" + ], "type": "object" }, - "AWS::Cognito::IdentityPoolRoleAttachment": { + "AWS::CodeBuild::Project.EnvironmentVariable": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Name": { "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": { - "IdentityPoolId": { - "type": "string" - }, - "RoleMappings": { - "type": "object" - }, - "Roles": { - "type": "object" - } - }, - "required": [ - "IdentityPoolId" - ], - "type": "object" - }, "Type": { - "enum": [ - "AWS::Cognito::IdentityPoolRoleAttachment" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::Cognito::IdentityPoolRoleAttachment.MappingRule": { - "additionalProperties": false, - "properties": { - "Claim": { - "type": "string" - }, - "MatchType": { - "type": "string" - }, - "RoleARN": { "type": "string" }, "Value": { @@ -8734,148 +8230,41 @@ var CloudformationSchema = `{ } }, "required": [ - "Claim", - "MatchType", - "RoleARN", + "Name", "Value" ], "type": "object" }, - "AWS::Cognito::IdentityPoolRoleAttachment.RoleMapping": { + "AWS::CodeBuild::Project.FilterGroup": { "additionalProperties": false, - "properties": { - "AmbiguousRoleResolution": { - "type": "string" - }, - "RulesConfiguration": { - "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], + "properties": {}, "type": "object" }, - "AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType": { + "AWS::CodeBuild::Project.LogsConfig": { "additionalProperties": false, "properties": { - "Rules": { - "items": { - "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.MappingRule" - }, - "type": "array" + "CloudWatchLogs": { + "$ref": "#/definitions/AWS::CodeBuild::Project.CloudWatchLogsConfig" + }, + "S3Logs": { + "$ref": "#/definitions/AWS::CodeBuild::Project.S3LogsConfig" } }, - "required": [ - "Rules" - ], "type": "object" }, - "AWS::Cognito::UserPool": { + "AWS::CodeBuild::Project.ProjectCache": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Location": { "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": { - "AdminCreateUserConfig": { - "$ref": "#/definitions/AWS::Cognito::UserPool.AdminCreateUserConfig" - }, - "AliasAttributes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AutoVerifiedAttributes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DeviceConfiguration": { - "$ref": "#/definitions/AWS::Cognito::UserPool.DeviceConfiguration" - }, - "EmailConfiguration": { - "$ref": "#/definitions/AWS::Cognito::UserPool.EmailConfiguration" - }, - "EmailVerificationMessage": { - "type": "string" - }, - "EmailVerificationSubject": { - "type": "string" - }, - "LambdaConfig": { - "$ref": "#/definitions/AWS::Cognito::UserPool.LambdaConfig" - }, - "MfaConfiguration": { - "type": "string" - }, - "Policies": { - "$ref": "#/definitions/AWS::Cognito::UserPool.Policies" - }, - "Schema": { - "items": { - "$ref": "#/definitions/AWS::Cognito::UserPool.SchemaAttribute" - }, - "type": "array" - }, - "SmsAuthenticationMessage": { - "type": "string" - }, - "SmsConfiguration": { - "$ref": "#/definitions/AWS::Cognito::UserPool.SmsConfiguration" - }, - "SmsVerificationMessage": { - "type": "string" - }, - "UserPoolName": { - "type": "string" - }, - "UserPoolTags": { - "type": "object" - }, - "UsernameAttributes": { - "items": { - "type": "string" - }, - "type": "array" - } + "Modes": { + "items": { + "type": "string" }, - "type": "object" + "type": "array" }, "Type": { - "enum": [ - "AWS::Cognito::UserPool" - ], "type": "string" } }, @@ -8884,184 +8273,141 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Cognito::UserPool.AdminCreateUserConfig": { - "additionalProperties": false, - "properties": { - "AllowAdminCreateUserOnly": { - "type": "boolean" - }, - "InviteMessageTemplate": { - "$ref": "#/definitions/AWS::Cognito::UserPool.InviteMessageTemplate" - }, - "UnusedAccountValidityDays": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::Cognito::UserPool.DeviceConfiguration": { + "AWS::CodeBuild::Project.ProjectTriggers": { "additionalProperties": false, "properties": { - "ChallengeRequiredOnNewDevice": { - "type": "boolean" + "FilterGroups": { + "items": { + "$ref": "#/definitions/AWS::CodeBuild::Project.FilterGroup" + }, + "type": "array" }, - "DeviceOnlyRememberedOnUserPrompt": { + "Webhook": { "type": "boolean" } }, "type": "object" }, - "AWS::Cognito::UserPool.EmailConfiguration": { + "AWS::CodeBuild::Project.RegistryCredential": { "additionalProperties": false, "properties": { - "ReplyToEmailAddress": { + "Credential": { "type": "string" }, - "SourceArn": { + "CredentialProvider": { "type": "string" } }, + "required": [ + "Credential", + "CredentialProvider" + ], "type": "object" }, - "AWS::Cognito::UserPool.InviteMessageTemplate": { + "AWS::CodeBuild::Project.S3LogsConfig": { "additionalProperties": false, "properties": { - "EmailMessage": { - "type": "string" - }, - "EmailSubject": { + "Location": { "type": "string" }, - "SMSMessage": { + "Status": { "type": "string" } }, + "required": [ + "Status" + ], "type": "object" }, - "AWS::Cognito::UserPool.LambdaConfig": { + "AWS::CodeBuild::Project.Source": { "additionalProperties": false, "properties": { - "CreateAuthChallenge": { - "type": "string" + "Auth": { + "$ref": "#/definitions/AWS::CodeBuild::Project.SourceAuth" }, - "CustomMessage": { + "BuildSpec": { "type": "string" }, - "DefineAuthChallenge": { - "type": "string" + "GitCloneDepth": { + "type": "number" }, - "PostAuthentication": { - "type": "string" + "InsecureSsl": { + "type": "boolean" }, - "PostConfirmation": { + "Location": { "type": "string" }, - "PreAuthentication": { - "type": "string" + "ReportBuildStatus": { + "type": "boolean" }, - "PreSignUp": { + "SourceIdentifier": { "type": "string" }, - "VerifyAuthChallengeResponse": { + "Type": { "type": "string" } }, + "required": [ + "Type" + ], "type": "object" }, - "AWS::Cognito::UserPool.NumberAttributeConstraints": { + "AWS::CodeBuild::Project.SourceAuth": { "additionalProperties": false, "properties": { - "MaxValue": { + "Resource": { "type": "string" }, - "MinValue": { + "Type": { "type": "string" } }, + "required": [ + "Type" + ], "type": "object" }, - "AWS::Cognito::UserPool.PasswordPolicy": { - "additionalProperties": false, - "properties": { - "MinimumLength": { - "type": "number" - }, - "RequireLowercase": { - "type": "boolean" - }, - "RequireNumbers": { - "type": "boolean" - }, - "RequireSymbols": { - "type": "boolean" - }, - "RequireUppercase": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::Cognito::UserPool.Policies": { - "additionalProperties": false, - "properties": { - "PasswordPolicy": { - "$ref": "#/definitions/AWS::Cognito::UserPool.PasswordPolicy" - } - }, - "type": "object" - }, - "AWS::Cognito::UserPool.SchemaAttribute": { + "AWS::CodeBuild::Project.VpcConfig": { "additionalProperties": false, "properties": { - "AttributeDataType": { - "type": "string" - }, - "DeveloperOnlyAttribute": { - "type": "boolean" + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "Mutable": { - "type": "boolean" + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" }, - "Name": { + "VpcId": { "type": "string" - }, - "NumberAttributeConstraints": { - "$ref": "#/definitions/AWS::Cognito::UserPool.NumberAttributeConstraints" - }, - "Required": { - "type": "boolean" - }, - "StringAttributeConstraints": { - "$ref": "#/definitions/AWS::Cognito::UserPool.StringAttributeConstraints" } }, "type": "object" }, - "AWS::Cognito::UserPool.SmsConfiguration": { + "AWS::CodeBuild::Project.WebhookFilter": { "additionalProperties": false, "properties": { - "ExternalId": { - "type": "string" + "ExcludeMatchedPattern": { + "type": "boolean" }, - "SnsCallerArn": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Cognito::UserPool.StringAttributeConstraints": { - "additionalProperties": false, - "properties": { - "MaxLength": { + "Pattern": { "type": "string" }, - "MinLength": { + "Type": { "type": "string" } }, + "required": [ + "Pattern", + "Type" + ], "type": "object" }, - "AWS::Cognito::UserPoolClient": { + "AWS::CodeCommit::Repository": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9093,45 +8439,27 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ClientName": { + "RepositoryDescription": { "type": "string" }, - "ExplicitAuthFlows": { - "items": { - "type": "string" - }, - "type": "array" - }, - "GenerateSecret": { - "type": "boolean" - }, - "ReadAttributes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "RefreshTokenValidity": { - "type": "number" - }, - "UserPoolId": { + "RepositoryName": { "type": "string" }, - "WriteAttributes": { + "Triggers": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::CodeCommit::Repository.RepositoryTrigger" }, "type": "array" } }, "required": [ - "UserPoolId" + "RepositoryName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Cognito::UserPoolClient" + "AWS::CodeCommit::Repository" ], "type": "string" } @@ -9142,7 +8470,34 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Cognito::UserPoolGroup": { + "AWS::CodeCommit::Repository.RepositoryTrigger": { + "additionalProperties": false, + "properties": { + "Branches": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CustomData": { + "type": "string" + }, + "DestinationArn": { + "type": "string" + }, + "Events": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::Application": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9174,41 +8529,28 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" - }, - "GroupName": { - "type": "string" - }, - "Precedence": { - "type": "number" - }, - "RoleArn": { + "ApplicationName": { "type": "string" }, - "UserPoolId": { + "ComputePlatform": { "type": "string" } }, - "required": [ - "UserPoolId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::Cognito::UserPoolGroup" + "AWS::CodeDeploy::Application" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::Cognito::UserPoolUser": { + "AWS::CodeDeploy::DeploymentConfig": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9240,68 +8582,44 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DesiredDeliveryMediums": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ForceAliasCreation": { - "type": "boolean" - }, - "MessageAction": { - "type": "string" - }, - "UserAttributes": { - "items": { - "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType" - }, - "type": "array" - }, - "UserPoolId": { - "type": "string" - }, - "Username": { + "DeploymentConfigName": { "type": "string" }, - "ValidationData": { - "items": { - "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType" - }, - "type": "array" + "MinimumHealthyHosts": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts" } }, - "required": [ - "UserPoolId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::Cognito::UserPoolUser" + "AWS::CodeDeploy::DeploymentConfig" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::Cognito::UserPoolUser.AttributeType": { + "AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts": { "additionalProperties": false, "properties": { - "Name": { + "Type": { "type": "string" }, "Value": { - "type": "string" + "type": "number" } }, + "required": [ + "Type", + "Value" + ], "type": "object" }, - "AWS::Cognito::UserPoolUserToGroupAttachment": { + "AWS::CodeDeploy::DeploymentGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9333,84 +8651,73 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "GroupName": { + "AlarmConfiguration": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration" + }, + "ApplicationName": { "type": "string" }, - "UserPoolId": { + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration" + }, + "AutoScalingGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Deployment": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Deployment" + }, + "DeploymentConfigName": { "type": "string" }, - "Username": { - "type": "string" - } - }, - "required": [ - "GroupName", - "UserPoolId", - "Username" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Cognito::UserPoolUserToGroupAttachment" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::Config::AggregationAuthorization": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", + "DeploymentGroupName": { "type": "string" }, - { + "DeploymentStyle": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.DeploymentStyle" + }, + "Ec2TagFilters": { "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter" }, "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "AuthorizedAccountId": { - "type": "string" }, - "AuthorizedAwsRegion": { + "Ec2TagSet": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSet" + }, + "LoadBalancerInfo": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo" + }, + "OnPremisesInstanceTagFilters": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter" + }, + "type": "array" + }, + "OnPremisesTagSet": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet" + }, + "ServiceRoleArn": { "type": "string" + }, + "TriggerConfigurations": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TriggerConfig" + }, + "type": "array" } }, "required": [ - "AuthorizedAccountId", - "AuthorizedAwsRegion" + "ApplicationName", + "ServiceRoleArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::Config::AggregationAuthorization" + "AWS::CodeDeploy::DeploymentGroup" ], "type": "string" } @@ -9421,138 +8728,267 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Config::ConfigRule": { + "AWS::CodeDeploy::DeploymentGroup.Alarm": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Name": { "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Alarm" + }, + "type": "array" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Enabled": { + "type": "boolean" }, - "Metadata": { - "type": "object" + "IgnorePollAlarmFailure": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" }, - "Properties": { - "additionalProperties": false, - "properties": { - "ConfigRuleName": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "InputParameters": { - "type": "object" - }, - "MaximumExecutionFrequency": { - "type": "string" - }, - "Scope": { - "$ref": "#/definitions/AWS::Config::ConfigRule.Scope" - }, - "Source": { - "$ref": "#/definitions/AWS::Config::ConfigRule.Source" - } + "Events": { + "items": { + "type": "string" }, - "required": [ - "Source" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Config::ConfigRule" - ], + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.Deployment": { + "additionalProperties": false, + "properties": { + "Description": { "type": "string" + }, + "IgnoreApplicationStopFailures": { + "type": "boolean" + }, + "Revision": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.RevisionLocation" } }, "required": [ - "Type", - "Properties" + "Revision" ], "type": "object" }, - "AWS::Config::ConfigRule.Scope": { + "AWS::CodeDeploy::DeploymentGroup.DeploymentStyle": { "additionalProperties": false, "properties": { - "ComplianceResourceId": { + "DeploymentOption": { "type": "string" }, - "ComplianceResourceTypes": { + "DeploymentType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.EC2TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.EC2TagSet": { + "additionalProperties": false, + "properties": { + "Ec2TagSetList": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject" }, "type": "array" - }, - "TagKey": { + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject": { + "additionalProperties": false, + "properties": { + "Ec2TagGroup": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.ELBInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.GitHubLocation": { + "additionalProperties": false, + "properties": { + "CommitId": { "type": "string" }, - "TagValue": { + "Repository": { "type": "string" } }, + "required": [ + "CommitId", + "Repository" + ], "type": "object" }, - "AWS::Config::ConfigRule.Source": { + "AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo": { "additionalProperties": false, "properties": { - "Owner": { - "type": "string" + "ElbInfoList": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.ELBInfo" + }, + "type": "array" }, - "SourceDetails": { + "TargetGroupInfoList": { "items": { - "$ref": "#/definitions/AWS::Config::ConfigRule.SourceDetail" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet": { + "additionalProperties": false, + "properties": { + "OnPremisesTagSetList": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject": { + "additionalProperties": false, + "properties": { + "OnPremisesTagGroup": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter" }, "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.RevisionLocation": { + "additionalProperties": false, + "properties": { + "GitHubLocation": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.GitHubLocation" }, - "SourceIdentifier": { + "RevisionType": { "type": "string" + }, + "S3Location": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.S3Location" } }, - "required": [ - "Owner", - "SourceIdentifier" - ], "type": "object" }, - "AWS::Config::ConfigRule.SourceDetail": { + "AWS::CodeDeploy::DeploymentGroup.S3Location": { "additionalProperties": false, "properties": { - "EventSource": { + "Bucket": { "type": "string" }, - "MaximumExecutionFrequency": { + "BundleType": { "type": "string" }, - "MessageType": { + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { "type": "string" } }, "required": [ - "EventSource", - "MessageType" + "Bucket", + "Key" ], "type": "object" }, - "AWS::Config::ConfigurationAggregator": { + "AWS::CodeDeploy::DeploymentGroup.TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerEvents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TriggerName": { + "type": "string" + }, + "TriggerTargetArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodePipeline::CustomActionType": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9584,27 +9020,42 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AccountAggregationSources": { + "Category": { + "type": "string" + }, + "ConfigurationProperties": { "items": { - "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.AccountAggregationSource" + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ConfigurationProperties" }, "type": "array" }, - "ConfigurationAggregatorName": { + "InputArtifactDetails": { + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails" + }, + "OutputArtifactDetails": { + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails" + }, + "Provider": { "type": "string" }, - "OrganizationAggregationSource": { - "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.OrganizationAggregationSource" + "Settings": { + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.Settings" + }, + "Version": { + "type": "string" } }, "required": [ - "ConfigurationAggregatorName" + "Category", + "InputArtifactDetails", + "OutputArtifactDetails", + "Provider" ], "type": "object" }, "Type": { "enum": [ - "AWS::Config::ConfigurationAggregator" + "AWS::CodePipeline::CustomActionType" ], "type": "string" } @@ -9615,52 +9066,74 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Config::ConfigurationAggregator.AccountAggregationSource": { + "AWS::CodePipeline::CustomActionType.ArtifactDetails": { "additionalProperties": false, "properties": { - "AccountIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AllAwsRegions": { - "type": "boolean" + "MaximumCount": { + "type": "number" }, - "AwsRegions": { - "items": { - "type": "string" - }, - "type": "array" + "MinimumCount": { + "type": "number" } }, "required": [ - "AccountIds" + "MaximumCount", + "MinimumCount" ], "type": "object" }, - "AWS::Config::ConfigurationAggregator.OrganizationAggregationSource": { + "AWS::CodePipeline::CustomActionType.ConfigurationProperties": { "additionalProperties": false, "properties": { - "AllAwsRegions": { + "Description": { + "type": "string" + }, + "Key": { "type": "boolean" }, - "AwsRegions": { - "items": { - "type": "string" - }, - "type": "array" + "Name": { + "type": "string" }, - "RoleArn": { + "Queryable": { + "type": "boolean" + }, + "Required": { + "type": "boolean" + }, + "Secret": { + "type": "boolean" + }, + "Type": { "type": "string" } }, "required": [ - "RoleArn" + "Key", + "Name", + "Required", + "Secret" ], "type": "object" }, - "AWS::Config::ConfigurationRecorder": { + "AWS::CodePipeline::CustomActionType.Settings": { + "additionalProperties": false, + "properties": { + "EntityUrlTemplate": { + "type": "string" + }, + "ExecutionUrlTemplate": { + "type": "string" + }, + "RevisionUrlTemplate": { + "type": "string" + }, + "ThirdPartyConfigurationUrl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodePipeline::Pipeline": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9692,24 +9165,46 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "ArtifactStore": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore" + }, + "ArtifactStores": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStoreMap" + }, + "type": "array" + }, + "DisableInboundStageTransitions": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageTransition" + }, + "type": "array" + }, "Name": { "type": "string" }, - "RecordingGroup": { - "$ref": "#/definitions/AWS::Config::ConfigurationRecorder.RecordingGroup" + "RestartExecutionOnUpdate": { + "type": "boolean" }, - "RoleARN": { + "RoleArn": { "type": "string" + }, + "Stages": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageDeclaration" + }, + "type": "array" } }, "required": [ - "RoleARN" + "RoleArn", + "Stages" ], "type": "object" }, "Type": { "enum": [ - "AWS::Config::ConfigurationRecorder" + "AWS::CodePipeline::Pipeline" ], "type": "string" } @@ -9720,28 +9215,206 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Config::ConfigurationRecorder.RecordingGroup": { + "AWS::CodePipeline::Pipeline.ActionDeclaration": { "additionalProperties": false, "properties": { - "AllSupported": { - "type": "boolean" + "ActionTypeId": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionTypeId" }, - "IncludeGlobalResourceTypes": { - "type": "boolean" + "Configuration": { + "type": "object" }, - "ResourceTypes": { + "InputArtifacts": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.InputArtifact" }, "type": "array" - } - }, - "type": "object" - }, - "AWS::Config::DeliveryChannel": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { + }, + "Name": { + "type": "string" + }, + "OutputArtifacts": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.OutputArtifact" + }, + "type": "array" + }, + "Region": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "RunOrder": { + "type": "number" + } + }, + "required": [ + "ActionTypeId", + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.ActionTypeId": { + "additionalProperties": false, + "properties": { + "Category": { + "type": "string" + }, + "Owner": { + "type": "string" + }, + "Provider": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Category", + "Owner", + "Provider", + "Version" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.ArtifactStore": { + "additionalProperties": false, + "properties": { + "EncryptionKey": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.EncryptionKey" + }, + "Location": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Location", + "Type" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.ArtifactStoreMap": { + "additionalProperties": false, + "properties": { + "ArtifactStore": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "ArtifactStore", + "Region" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.BlockerDeclaration": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.EncryptionKey": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Id", + "Type" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.InputArtifact": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.OutputArtifact": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.StageDeclaration": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionDeclaration" + }, + "type": "array" + }, + "Blockers": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.BlockerDeclaration" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Actions", + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.StageTransition": { + "additionalProperties": false, + "properties": { + "Reason": { + "type": "string" + }, + "StageName": { + "type": "string" + } + }, + "required": [ + "Reason", + "StageName" + ], + "type": "object" + }, + "AWS::CodePipeline::Webhook": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { "enum": [ "Delete", "Retain", @@ -9770,30 +9443,47 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ConfigSnapshotDeliveryProperties": { - "$ref": "#/definitions/AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties" + "Authentication": { + "type": "string" + }, + "AuthenticationConfiguration": { + "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookAuthConfiguration" + }, + "Filters": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookFilterRule" + }, + "type": "array" }, "Name": { "type": "string" }, - "S3BucketName": { - "type": "string" + "RegisterWithThirdParty": { + "type": "boolean" }, - "S3KeyPrefix": { + "TargetAction": { "type": "string" }, - "SnsTopicARN": { + "TargetPipeline": { "type": "string" + }, + "TargetPipelineVersion": { + "type": "number" } }, "required": [ - "S3BucketName" + "Authentication", + "AuthenticationConfiguration", + "Filters", + "TargetAction", + "TargetPipeline", + "TargetPipelineVersion" ], "type": "object" }, "Type": { "enum": [ - "AWS::Config::DeliveryChannel" + "AWS::CodePipeline::Webhook" ], "type": "string" } @@ -9804,16 +9494,34 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties": { + "AWS::CodePipeline::Webhook.WebhookAuthConfiguration": { "additionalProperties": false, "properties": { - "DeliveryFrequency": { + "AllowedIPRange": { + "type": "string" + }, + "SecretToken": { "type": "string" } }, "type": "object" }, - "AWS::DAX::Cluster": { + "AWS::CodePipeline::Webhook.WebhookFilterRule": { + "additionalProperties": false, + "properties": { + "JsonPath": { + "type": "string" + }, + "MatchEquals": { + "type": "string" + } + }, + "required": [ + "JsonPath" + ], + "type": "object" + }, + "AWS::Cognito::IdentityPool": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9845,62 +9553,54 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AvailabilityZones": { + "AllowUnauthenticatedIdentities": { + "type": "boolean" + }, + "CognitoEvents": { + "type": "object" + }, + "CognitoIdentityProviders": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoIdentityProvider" }, "type": "array" }, - "ClusterName": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IAMRoleARN": { - "type": "string" - }, - "NodeType": { - "type": "string" - }, - "NotificationTopicARN": { - "type": "string" + "CognitoStreams": { + "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoStreams" }, - "ParameterGroupName": { + "DeveloperProviderName": { "type": "string" }, - "PreferredMaintenanceWindow": { + "IdentityPoolName": { "type": "string" }, - "ReplicationFactor": { - "type": "number" + "OpenIdConnectProviderARNs": { + "items": { + "type": "string" + }, + "type": "array" }, - "SSESpecification": { - "$ref": "#/definitions/AWS::DAX::Cluster.SSESpecification" + "PushSync": { + "$ref": "#/definitions/AWS::Cognito::IdentityPool.PushSync" }, - "SecurityGroupIds": { + "SamlProviderARNs": { "items": { "type": "string" }, "type": "array" }, - "SubnetGroupName": { - "type": "string" - }, - "Tags": { + "SupportedLoginProviders": { "type": "object" } }, "required": [ - "IAMRoleARN", - "NodeType", - "ReplicationFactor" + "AllowUnauthenticatedIdentities" ], "type": "object" }, "Type": { "enum": [ - "AWS::DAX::Cluster" + "AWS::Cognito::IdentityPool" ], "type": "string" } @@ -9911,72 +9611,52 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::DAX::Cluster.SSESpecification": { + "AWS::Cognito::IdentityPool.CognitoIdentityProvider": { "additionalProperties": false, "properties": { - "SSEEnabled": { + "ClientId": { + "type": "string" + }, + "ProviderName": { + "type": "string" + }, + "ServerSideTokenCheck": { "type": "boolean" } }, "type": "object" }, - "AWS::DAX::ParameterGroup": { + "AWS::Cognito::IdentityPool.CognitoStreams": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "RoleArn": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" + "StreamName": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "ParameterGroupName": { - "type": "string" - }, - "ParameterNameValues": { - "type": "object" - } + "StreamingStatus": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::IdentityPool.PushSync": { + "additionalProperties": false, + "properties": { + "ApplicationArns": { + "items": { + "type": "string" }, - "type": "object" + "type": "array" }, - "Type": { - "enum": [ - "AWS::DAX::ParameterGroup" - ], + "RoleArn": { "type": "string" } }, - "required": [ - "Type" - ], "type": "object" }, - "AWS::DAX::SubnetGroup": { + "AWS::Cognito::IdentityPoolRoleAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10008,27 +9688,24 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "IdentityPoolId": { "type": "string" }, - "SubnetGroupName": { - "type": "string" + "RoleMappings": { + "type": "object" }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" + "Roles": { + "type": "object" } }, "required": [ - "SubnetIds" + "IdentityPoolId" ], "type": "object" }, "Type": { "enum": [ - "AWS::DAX::SubnetGroup" + "AWS::Cognito::IdentityPoolRoleAttachment" ], "type": "string" } @@ -10039,7 +9716,64 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::DLM::LifecyclePolicy": { + "AWS::Cognito::IdentityPoolRoleAttachment.MappingRule": { + "additionalProperties": false, + "properties": { + "Claim": { + "type": "string" + }, + "MatchType": { + "type": "string" + }, + "RoleARN": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Claim", + "MatchType", + "RoleARN", + "Value" + ], + "type": "object" + }, + "AWS::Cognito::IdentityPoolRoleAttachment.RoleMapping": { + "additionalProperties": false, + "properties": { + "AmbiguousRoleResolution": { + "type": "string" + }, + "RulesConfiguration": { + "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.MappingRule" + }, + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::Cognito::UserPool": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10071,24 +9805,75 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "AdminCreateUserConfig": { + "$ref": "#/definitions/AWS::Cognito::UserPool.AdminCreateUserConfig" + }, + "AliasAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AutoVerifiedAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DeviceConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPool.DeviceConfiguration" + }, + "EmailConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPool.EmailConfiguration" + }, + "EmailVerificationMessage": { "type": "string" }, - "ExecutionRoleArn": { + "EmailVerificationSubject": { "type": "string" }, - "PolicyDetails": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.PolicyDetails" + "LambdaConfig": { + "$ref": "#/definitions/AWS::Cognito::UserPool.LambdaConfig" }, - "State": { + "MfaConfiguration": { + "type": "string" + }, + "Policies": { + "$ref": "#/definitions/AWS::Cognito::UserPool.Policies" + }, + "Schema": { + "items": { + "$ref": "#/definitions/AWS::Cognito::UserPool.SchemaAttribute" + }, + "type": "array" + }, + "SmsAuthenticationMessage": { + "type": "string" + }, + "SmsConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPool.SmsConfiguration" + }, + "SmsVerificationMessage": { "type": "string" + }, + "UserPoolName": { + "type": "string" + }, + "UserPoolTags": { + "type": "object" + }, + "UsernameAttributes": { + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, "Type": { "enum": [ - "AWS::DLM::LifecyclePolicy" + "AWS::Cognito::UserPool" ], "type": "string" } @@ -10098,89 +9883,184 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::DLM::LifecyclePolicy.CreateRule": { + "AWS::Cognito::UserPool.AdminCreateUserConfig": { "additionalProperties": false, "properties": { - "Interval": { + "AllowAdminCreateUserOnly": { + "type": "boolean" + }, + "InviteMessageTemplate": { + "$ref": "#/definitions/AWS::Cognito::UserPool.InviteMessageTemplate" + }, + "UnusedAccountValidityDays": { "type": "number" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.DeviceConfiguration": { + "additionalProperties": false, + "properties": { + "ChallengeRequiredOnNewDevice": { + "type": "boolean" }, - "IntervalUnit": { + "DeviceOnlyRememberedOnUserPrompt": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.EmailConfiguration": { + "additionalProperties": false, + "properties": { + "ReplyToEmailAddress": { "type": "string" }, - "Times": { - "items": { - "type": "string" - }, - "type": "array" + "SourceArn": { + "type": "string" } }, - "required": [ - "Interval", - "IntervalUnit" - ], "type": "object" }, - "AWS::DLM::LifecyclePolicy.PolicyDetails": { + "AWS::Cognito::UserPool.InviteMessageTemplate": { "additionalProperties": false, "properties": { - "ResourceTypes": { - "items": { - "type": "string" - }, - "type": "array" + "EmailMessage": { + "type": "string" }, - "Schedules": { - "items": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Schedule" - }, - "type": "array" + "EmailSubject": { + "type": "string" }, - "TargetTags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "SMSMessage": { + "type": "string" } }, "type": "object" }, - "AWS::DLM::LifecyclePolicy.RetainRule": { + "AWS::Cognito::UserPool.LambdaConfig": { "additionalProperties": false, "properties": { - "Count": { + "CreateAuthChallenge": { + "type": "string" + }, + "CustomMessage": { + "type": "string" + }, + "DefineAuthChallenge": { + "type": "string" + }, + "PostAuthentication": { + "type": "string" + }, + "PostConfirmation": { + "type": "string" + }, + "PreAuthentication": { + "type": "string" + }, + "PreSignUp": { + "type": "string" + }, + "VerifyAuthChallengeResponse": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.NumberAttributeConstraints": { + "additionalProperties": false, + "properties": { + "MaxValue": { + "type": "string" + }, + "MinValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.PasswordPolicy": { + "additionalProperties": false, + "properties": { + "MinimumLength": { "type": "number" + }, + "RequireLowercase": { + "type": "boolean" + }, + "RequireNumbers": { + "type": "boolean" + }, + "RequireSymbols": { + "type": "boolean" + }, + "RequireUppercase": { + "type": "boolean" } }, - "required": [ - "Count" - ], "type": "object" }, - "AWS::DLM::LifecyclePolicy.Schedule": { + "AWS::Cognito::UserPool.Policies": { "additionalProperties": false, "properties": { - "CopyTags": { + "PasswordPolicy": { + "$ref": "#/definitions/AWS::Cognito::UserPool.PasswordPolicy" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.SchemaAttribute": { + "additionalProperties": false, + "properties": { + "AttributeDataType": { + "type": "string" + }, + "DeveloperOnlyAttribute": { "type": "boolean" }, - "CreateRule": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CreateRule" + "Mutable": { + "type": "boolean" }, "Name": { "type": "string" }, - "RetainRule": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.RetainRule" + "NumberAttributeConstraints": { + "$ref": "#/definitions/AWS::Cognito::UserPool.NumberAttributeConstraints" }, - "TagsToAdd": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "Required": { + "type": "boolean" + }, + "StringAttributeConstraints": { + "$ref": "#/definitions/AWS::Cognito::UserPool.StringAttributeConstraints" } }, "type": "object" }, - "AWS::DMS::Certificate": { + "AWS::Cognito::UserPool.SmsConfiguration": { + "additionalProperties": false, + "properties": { + "ExternalId": { + "type": "string" + }, + "SnsCallerArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.StringAttributeConstraints": { + "additionalProperties": false, + "properties": { + "MaxLength": { + "type": "string" + }, + "MinLength": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPoolClient": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10212,31 +10092,56 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CertificateIdentifier": { + "ClientName": { "type": "string" }, - "CertificatePem": { - "type": "string" + "ExplicitAuthFlows": { + "items": { + "type": "string" + }, + "type": "array" }, - "CertificateWallet": { + "GenerateSecret": { + "type": "boolean" + }, + "ReadAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RefreshTokenValidity": { + "type": "number" + }, + "UserPoolId": { "type": "string" + }, + "WriteAttributes": { + "items": { + "type": "string" + }, + "type": "array" } }, + "required": [ + "UserPoolId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::Certificate" + "AWS::Cognito::UserPoolClient" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::DMS::Endpoint": { + "AWS::Cognito::UserPoolGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10268,67 +10173,30 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CertificateArn": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "DynamoDbSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.DynamoDbSettings" - }, - "EndpointIdentifier": { - "type": "string" - }, - "EndpointType": { - "type": "string" - }, - "EngineName": { - "type": "string" - }, - "ExtraConnectionAttributes": { - "type": "string" - }, - "KmsKeyId": { + "Description": { "type": "string" }, - "MongoDbSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.MongoDbSettings" - }, - "Password": { + "GroupName": { "type": "string" }, - "Port": { + "Precedence": { "type": "number" }, - "S3Settings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.S3Settings" - }, - "ServerName": { - "type": "string" - }, - "SslMode": { + "RoleArn": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Username": { + "UserPoolId": { "type": "string" } }, "required": [ - "EndpointType", - "EngineName" + "UserPoolId" ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::Endpoint" + "AWS::Cognito::UserPoolGroup" ], "type": "string" } @@ -10339,82 +10207,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::DMS::Endpoint.DynamoDbSettings": { - "additionalProperties": false, - "properties": { - "ServiceAccessRoleArn": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::DMS::Endpoint.MongoDbSettings": { - "additionalProperties": false, - "properties": { - "AuthMechanism": { - "type": "string" - }, - "AuthSource": { - "type": "string" - }, - "AuthType": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "DocsToInvestigate": { - "type": "string" - }, - "ExtractDocId": { - "type": "string" - }, - "NestingLevel": { - "type": "string" - }, - "Password": { - "type": "string" - }, - "Port": { - "type": "number" - }, - "ServerName": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::DMS::Endpoint.S3Settings": { - "additionalProperties": false, - "properties": { - "BucketFolder": { - "type": "string" - }, - "BucketName": { - "type": "string" - }, - "CompressionType": { - "type": "string" - }, - "CsvDelimiter": { - "type": "string" - }, - "CsvRowDelimiter": { - "type": "string" - }, - "ExternalTableDefinition": { - "type": "string" - }, - "ServiceAccessRoleArn": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::DMS::EventSubscription": { + "AWS::Cognito::UserPoolUser": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10446,45 +10239,45 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Enabled": { - "type": "boolean" - }, - "EventCategories": { + "DesiredDeliveryMediums": { "items": { "type": "string" }, "type": "array" }, - "SnsTopicArn": { + "ForceAliasCreation": { + "type": "boolean" + }, + "MessageAction": { "type": "string" }, - "SourceIds": { + "UserAttributes": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType" }, "type": "array" }, - "SourceType": { + "UserPoolId": { "type": "string" }, - "SubscriptionName": { + "Username": { "type": "string" }, - "Tags": { + "ValidationData": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType" }, "type": "array" } }, "required": [ - "SnsTopicArn" + "UserPoolId" ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::EventSubscription" + "AWS::Cognito::UserPoolUser" ], "type": "string" } @@ -10495,7 +10288,19 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::DMS::ReplicationInstance": { + "AWS::Cognito::UserPoolUser.AttributeType": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPoolUserToGroupAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10527,63 +10332,26 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AllocatedStorage": { - "type": "number" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AvailabilityZone": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "KmsKeyId": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicationInstanceClass": { + "GroupName": { "type": "string" }, - "ReplicationInstanceIdentifier": { + "UserPoolId": { "type": "string" }, - "ReplicationSubnetGroupIdentifier": { + "Username": { "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VpcSecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" } }, "required": [ - "ReplicationInstanceClass" + "GroupName", + "UserPoolId", + "Username" ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::ReplicationInstance" + "AWS::Cognito::UserPoolUserToGroupAttachment" ], "type": "string" } @@ -10594,7 +10362,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::DMS::ReplicationSubnetGroup": { + "AWS::Config::AggregationAuthorization": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10626,34 +10394,22 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ReplicationSubnetGroupDescription": { + "AuthorizedAccountId": { "type": "string" }, - "ReplicationSubnetGroupIdentifier": { + "AuthorizedAwsRegion": { "type": "string" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" } }, "required": [ - "ReplicationSubnetGroupDescription", - "SubnetIds" + "AuthorizedAccountId", + "AuthorizedAwsRegion" ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::ReplicationSubnetGroup" + "AWS::Config::AggregationAuthorization" ], "type": "string" } @@ -10664,7 +10420,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::DMS::ReplicationTask": { + "AWS::Config::ConfigRule": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10696,49 +10452,33 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CdcStartTime": { - "type": "number" - }, - "MigrationType": { - "type": "string" - }, - "ReplicationInstanceArn": { - "type": "string" - }, - "ReplicationTaskIdentifier": { + "ConfigRuleName": { "type": "string" }, - "ReplicationTaskSettings": { + "Description": { "type": "string" }, - "SourceEndpointArn": { - "type": "string" + "InputParameters": { + "type": "object" }, - "TableMappings": { + "MaximumExecutionFrequency": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "Scope": { + "$ref": "#/definitions/AWS::Config::ConfigRule.Scope" }, - "TargetEndpointArn": { - "type": "string" + "Source": { + "$ref": "#/definitions/AWS::Config::ConfigRule.Source" } }, "required": [ - "MigrationType", - "ReplicationInstanceArn", - "SourceEndpointArn", - "TableMappings", - "TargetEndpointArn" + "Source" ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::ReplicationTask" + "AWS::Config::ConfigRule" ], "type": "string" } @@ -10749,14 +10489,76 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::DataPipeline::Pipeline": { + "AWS::Config::ConfigRule.Scope": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" + "ComplianceResourceId": { + "type": "string" + }, + "ComplianceResourceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TagKey": { + "type": "string" + }, + "TagValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Config::ConfigRule.Source": { + "additionalProperties": false, + "properties": { + "Owner": { + "type": "string" + }, + "SourceDetails": { + "items": { + "$ref": "#/definitions/AWS::Config::ConfigRule.SourceDetail" + }, + "type": "array" + }, + "SourceIdentifier": { + "type": "string" + } + }, + "required": [ + "Owner", + "SourceIdentifier" + ], + "type": "object" + }, + "AWS::Config::ConfigRule.SourceDetail": { + "additionalProperties": false, + "properties": { + "EventSource": { + "type": "string" + }, + "MaximumExecutionFrequency": { + "type": "string" + }, + "MessageType": { + "type": "string" + } + }, + "required": [ + "EventSource", + "MessageType" + ], + "type": "object" + }, + "AWS::Config::ConfigurationAggregator": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], "type": "string" }, @@ -10781,49 +10583,27 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Activate": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "ParameterObjects": { - "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterObject" - }, - "type": "array" - }, - "ParameterValues": { + "AccountAggregationSources": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterValue" + "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.AccountAggregationSource" }, "type": "array" }, - "PipelineObjects": { - "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineObject" - }, - "type": "array" + "ConfigurationAggregatorName": { + "type": "string" }, - "PipelineTags": { - "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineTag" - }, - "type": "array" + "OrganizationAggregationSource": { + "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.OrganizationAggregationSource" } }, "required": [ - "Name", - "ParameterObjects" + "ConfigurationAggregatorName" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataPipeline::Pipeline" + "AWS::Config::ConfigurationAggregator" ], "type": "string" } @@ -10834,115 +10614,52 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::DataPipeline::Pipeline.Field": { + "AWS::Config::ConfigurationAggregator.AccountAggregationSource": { "additionalProperties": false, "properties": { - "Key": { - "type": "string" - }, - "RefValue": { - "type": "string" + "AccountIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.ParameterAttribute": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" + "AllAwsRegions": { + "type": "boolean" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Key", - "StringValue" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.ParameterObject": { - "additionalProperties": false, - "properties": { - "Attributes": { + "AwsRegions": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterAttribute" + "type": "string" }, "type": "array" - }, - "Id": { - "type": "string" } }, "required": [ - "Attributes", - "Id" + "AccountIds" ], "type": "object" }, - "AWS::DataPipeline::Pipeline.ParameterValue": { + "AWS::Config::ConfigurationAggregator.OrganizationAggregationSource": { "additionalProperties": false, "properties": { - "Id": { - "type": "string" + "AllAwsRegions": { + "type": "boolean" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Id", - "StringValue" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.PipelineObject": { - "additionalProperties": false, - "properties": { - "Fields": { + "AwsRegions": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.Field" + "type": "string" }, "type": "array" }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "Fields", - "Id", - "Name" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.PipelineTag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { + "RoleArn": { "type": "string" } }, "required": [ - "Key", - "Value" + "RoleArn" ], "type": "object" }, - "AWS::DirectoryService::MicrosoftAD": { + "AWS::Config::ConfigurationRecorder": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10974,38 +10691,24 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CreateAlias": { - "type": "boolean" - }, - "Edition": { - "type": "string" - }, - "EnableSso": { - "type": "boolean" - }, "Name": { "type": "string" }, - "Password": { - "type": "string" + "RecordingGroup": { + "$ref": "#/definitions/AWS::Config::ConfigurationRecorder.RecordingGroup" }, - "ShortName": { + "RoleARN": { "type": "string" - }, - "VpcSettings": { - "$ref": "#/definitions/AWS::DirectoryService::MicrosoftAD.VpcSettings" } }, "required": [ - "Name", - "Password", - "VpcSettings" + "RoleARN" ], "type": "object" }, "Type": { "enum": [ - "AWS::DirectoryService::MicrosoftAD" + "AWS::Config::ConfigurationRecorder" ], "type": "string" } @@ -11016,26 +10719,25 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::DirectoryService::MicrosoftAD.VpcSettings": { + "AWS::Config::ConfigurationRecorder.RecordingGroup": { "additionalProperties": false, "properties": { - "SubnetIds": { + "AllSupported": { + "type": "boolean" + }, + "IncludeGlobalResourceTypes": { + "type": "boolean" + }, + "ResourceTypes": { "items": { "type": "string" }, "type": "array" - }, - "VpcId": { - "type": "string" } }, - "required": [ - "SubnetIds", - "VpcId" - ], "type": "object" }, - "AWS::DirectoryService::SimpleAD": { + "AWS::Config::DeliveryChannel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11067,42 +10769,30 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CreateAlias": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "EnableSso": { - "type": "boolean" + "ConfigSnapshotDeliveryProperties": { + "$ref": "#/definitions/AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties" }, "Name": { "type": "string" }, - "Password": { + "S3BucketName": { "type": "string" }, - "ShortName": { + "S3KeyPrefix": { "type": "string" }, - "Size": { + "SnsTopicARN": { "type": "string" - }, - "VpcSettings": { - "$ref": "#/definitions/AWS::DirectoryService::SimpleAD.VpcSettings" } }, "required": [ - "Name", - "Password", - "Size", - "VpcSettings" + "S3BucketName" ], "type": "object" }, "Type": { "enum": [ - "AWS::DirectoryService::SimpleAD" + "AWS::Config::DeliveryChannel" ], "type": "string" } @@ -11113,26 +10803,16 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::DirectoryService::SimpleAD.VpcSettings": { + "AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties": { "additionalProperties": false, "properties": { - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "VpcId": { + "DeliveryFrequency": { "type": "string" } }, - "required": [ - "SubnetIds", - "VpcId" - ], "type": "object" }, - "AWS::DynamoDB::Table": { + "AWS::DAX::Cluster": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11164,66 +10844,62 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AttributeDefinitions": { + "AvailabilityZones": { "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.AttributeDefinition" + "type": "string" }, "type": "array" }, - "BillingMode": { + "ClusterName": { "type": "string" }, - "GlobalSecondaryIndexes": { - "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.GlobalSecondaryIndex" - }, - "type": "array" + "Description": { + "type": "string" }, - "KeySchema": { - "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" - }, - "type": "array" + "IAMRoleARN": { + "type": "string" }, - "LocalSecondaryIndexes": { - "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.LocalSecondaryIndex" - }, - "type": "array" + "NodeType": { + "type": "string" }, - "PointInTimeRecoverySpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.PointInTimeRecoverySpecification" + "NotificationTopicARN": { + "type": "string" }, - "ProvisionedThroughput": { - "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput" + "ParameterGroupName": { + "type": "string" }, - "SSESpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.SSESpecification" + "PreferredMaintenanceWindow": { + "type": "string" }, - "StreamSpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.StreamSpecification" + "ReplicationFactor": { + "type": "number" }, - "TableName": { - "type": "string" + "SSESpecification": { + "$ref": "#/definitions/AWS::DAX::Cluster.SSESpecification" }, - "Tags": { + "SecurityGroupIds": { "items": { - "$ref": "#/definitions/Tag" + "type": "string" }, "type": "array" }, - "TimeToLiveSpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.TimeToLiveSpecification" + "SubnetGroupName": { + "type": "string" + }, + "Tags": { + "type": "object" } }, "required": [ - "KeySchema" + "IAMRoleARN", + "NodeType", + "ReplicationFactor" ], "type": "object" }, "Type": { "enum": [ - "AWS::DynamoDB::Table" + "AWS::DAX::Cluster" ], "type": "string" } @@ -11234,168 +10910,16 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::DynamoDB::Table.AttributeDefinition": { - "additionalProperties": false, - "properties": { - "AttributeName": { - "type": "string" - }, - "AttributeType": { - "type": "string" - } - }, - "required": [ - "AttributeName", - "AttributeType" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.GlobalSecondaryIndex": { - "additionalProperties": false, - "properties": { - "IndexName": { - "type": "string" - }, - "KeySchema": { - "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" - }, - "type": "array" - }, - "Projection": { - "$ref": "#/definitions/AWS::DynamoDB::Table.Projection" - }, - "ProvisionedThroughput": { - "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput" - } - }, - "required": [ - "IndexName", - "KeySchema", - "Projection" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.KeySchema": { - "additionalProperties": false, - "properties": { - "AttributeName": { - "type": "string" - }, - "KeyType": { - "type": "string" - } - }, - "required": [ - "AttributeName", - "KeyType" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.LocalSecondaryIndex": { - "additionalProperties": false, - "properties": { - "IndexName": { - "type": "string" - }, - "KeySchema": { - "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" - }, - "type": "array" - }, - "Projection": { - "$ref": "#/definitions/AWS::DynamoDB::Table.Projection" - } - }, - "required": [ - "IndexName", - "KeySchema", - "Projection" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.PointInTimeRecoverySpecification": { - "additionalProperties": false, - "properties": { - "PointInTimeRecoveryEnabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::DynamoDB::Table.Projection": { - "additionalProperties": false, - "properties": { - "NonKeyAttributes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ProjectionType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::DynamoDB::Table.ProvisionedThroughput": { - "additionalProperties": false, - "properties": { - "ReadCapacityUnits": { - "type": "number" - }, - "WriteCapacityUnits": { - "type": "number" - } - }, - "required": [ - "ReadCapacityUnits", - "WriteCapacityUnits" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.SSESpecification": { + "AWS::DAX::Cluster.SSESpecification": { "additionalProperties": false, "properties": { "SSEEnabled": { "type": "boolean" } }, - "required": [ - "SSEEnabled" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.StreamSpecification": { - "additionalProperties": false, - "properties": { - "StreamViewType": { - "type": "string" - } - }, - "required": [ - "StreamViewType" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.TimeToLiveSpecification": { - "additionalProperties": false, - "properties": { - "AttributeName": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - } - }, - "required": [ - "AttributeName", - "Enabled" - ], "type": "object" }, - "AWS::EC2::CustomerGateway": { + "AWS::DAX::ParameterGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11427,43 +10951,31 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "BgpAsn": { - "type": "number" - }, - "IpAddress": { + "Description": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { + "ParameterGroupName": { "type": "string" + }, + "ParameterNameValues": { + "type": "object" } }, - "required": [ - "BgpAsn", - "IpAddress", - "Type" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::CustomerGateway" + "AWS::DAX::ParameterGroup" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::DHCPOptions": { + "AWS::DAX::SubnetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11495,52 +11007,38 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DomainName": { + "Description": { "type": "string" }, - "DomainNameServers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "NetbiosNameServers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "NetbiosNodeType": { - "type": "number" + "SubnetGroupName": { + "type": "string" }, - "NtpServers": { + "SubnetIds": { "items": { "type": "string" }, "type": "array" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" } }, + "required": [ + "SubnetIds" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::DHCPOptions" + "AWS::DAX::SubnetGroup" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::EC2Fleet": { + "AWS::DLM::LifecyclePolicy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11572,192 +11070,116 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ExcessCapacityTerminationPolicy": { + "Description": { "type": "string" }, - "LaunchTemplateConfigs": { - "items": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest" - }, - "type": "array" - }, - "OnDemandOptions": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.OnDemandOptionsRequest" - }, - "ReplaceUnhealthyInstances": { - "type": "boolean" - }, - "SpotOptions": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.SpotOptionsRequest" - }, - "TagSpecifications": { - "items": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.TagSpecification" - }, - "type": "array" - }, - "TargetCapacitySpecification": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest" - }, - "TerminateInstancesWithExpiration": { - "type": "boolean" - }, - "Type": { + "ExecutionRoleArn": { "type": "string" }, - "ValidFrom": { - "type": "number" + "PolicyDetails": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.PolicyDetails" }, - "ValidUntil": { - "type": "number" + "State": { + "type": "string" } }, - "required": [ - "LaunchTemplateConfigs", - "TargetCapacitySpecification" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::EC2Fleet" + "AWS::DLM::LifecyclePolicy" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest": { - "additionalProperties": false, - "properties": { - "LaunchTemplateSpecification": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest" - }, - "Overrides": { - "items": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest": { + "AWS::DLM::LifecyclePolicy.CreateRule": { "additionalProperties": false, "properties": { - "AvailabilityZone": { - "type": "string" - }, - "InstanceType": { - "type": "string" - }, - "MaxPrice": { - "type": "string" - }, - "Priority": { + "Interval": { "type": "number" }, - "SubnetId": { + "IntervalUnit": { "type": "string" }, - "WeightedCapacity": { - "type": "number" + "Times": { + "items": { + "type": "string" + }, + "type": "array" } }, + "required": [ + "Interval", + "IntervalUnit" + ], "type": "object" }, - "AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest": { + "AWS::DLM::LifecyclePolicy.PolicyDetails": { "additionalProperties": false, "properties": { - "LaunchTemplateId": { - "type": "string" + "ResourceTypes": { + "items": { + "type": "string" + }, + "type": "array" }, - "LaunchTemplateName": { - "type": "string" + "Schedules": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Schedule" + }, + "type": "array" }, - "Version": { - "type": "string" + "TargetTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "type": "object" }, - "AWS::EC2::EC2Fleet.OnDemandOptionsRequest": { + "AWS::DLM::LifecyclePolicy.RetainRule": { "additionalProperties": false, "properties": { - "AllocationStrategy": { - "type": "string" + "Count": { + "type": "number" } }, + "required": [ + "Count" + ], "type": "object" }, - "AWS::EC2::EC2Fleet.SpotOptionsRequest": { + "AWS::DLM::LifecyclePolicy.Schedule": { "additionalProperties": false, "properties": { - "AllocationStrategy": { - "type": "string" + "CopyTags": { + "type": "boolean" }, - "InstanceInterruptionBehavior": { - "type": "string" + "CreateRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CreateRule" }, - "InstancePoolsToUseCount": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::EC2::EC2Fleet.TagRequest": { - "additionalProperties": false, - "properties": { - "Key": { + "Name": { "type": "string" }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::EC2Fleet.TagSpecification": { - "additionalProperties": false, - "properties": { - "ResourceType": { - "type": "string" + "RetainRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.RetainRule" }, - "Tags": { + "TagsToAdd": { "items": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.TagRequest" + "$ref": "#/definitions/Tag" }, "type": "array" } }, "type": "object" }, - "AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest": { - "additionalProperties": false, - "properties": { - "DefaultTargetCapacityType": { - "type": "string" - }, - "OnDemandTargetCapacity": { - "type": "number" - }, - "SpotTargetCapacity": { - "type": "number" - }, - "TotalTargetCapacity": { - "type": "number" - } - }, - "required": [ - "TotalTargetCapacity" - ], - "type": "object" - }, - "AWS::EC2::EIP": { + "AWS::DMS::Certificate": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11789,13 +11211,13 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Domain": { + "CertificateIdentifier": { "type": "string" }, - "InstanceId": { + "CertificatePem": { "type": "string" }, - "PublicIpv4Pool": { + "CertificateWallet": { "type": "string" } }, @@ -11803,7 +11225,7 @@ var CloudformationSchema = `{ }, "Type": { "enum": [ - "AWS::EC2::EIP" + "AWS::DMS::Certificate" ], "type": "string" } @@ -11813,7 +11235,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::EIPAssociation": { + "AWS::DMS::Endpoint": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11845,37 +11267,192 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AllocationId": { + "CertificateArn": { "type": "string" }, - "EIP": { + "DatabaseName": { "type": "string" }, - "InstanceId": { + "DynamoDbSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.DynamoDbSettings" + }, + "ElasticsearchSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.ElasticsearchSettings" + }, + "EndpointIdentifier": { "type": "string" }, - "NetworkInterfaceId": { + "EndpointType": { "type": "string" }, - "PrivateIpAddress": { + "EngineName": { + "type": "string" + }, + "ExtraConnectionAttributes": { + "type": "string" + }, + "KinesisSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.KinesisSettings" + }, + "KmsKeyId": { + "type": "string" + }, + "MongoDbSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.MongoDbSettings" + }, + "Password": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "S3Settings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.S3Settings" + }, + "ServerName": { + "type": "string" + }, + "SslMode": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Username": { "type": "string" } }, + "required": [ + "EndpointType", + "EngineName" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::EIPAssociation" + "AWS::DMS::Endpoint" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::EgressOnlyInternetGateway": { + "AWS::DMS::Endpoint.DynamoDbSettings": { + "additionalProperties": false, + "properties": { + "ServiceAccessRoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.ElasticsearchSettings": { + "additionalProperties": false, + "properties": { + "EndpointUri": { + "type": "string" + }, + "ErrorRetryDuration": { + "type": "number" + }, + "FullLoadErrorPercentage": { + "type": "number" + }, + "ServiceAccessRoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.KinesisSettings": { + "additionalProperties": false, + "properties": { + "MessageFormat": { + "type": "string" + }, + "ServiceAccessRoleArn": { + "type": "string" + }, + "StreamArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.MongoDbSettings": { + "additionalProperties": false, + "properties": { + "AuthMechanism": { + "type": "string" + }, + "AuthSource": { + "type": "string" + }, + "AuthType": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DocsToInvestigate": { + "type": "string" + }, + "ExtractDocId": { + "type": "string" + }, + "NestingLevel": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "ServerName": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.S3Settings": { + "additionalProperties": false, + "properties": { + "BucketFolder": { + "type": "string" + }, + "BucketName": { + "type": "string" + }, + "CompressionType": { + "type": "string" + }, + "CsvDelimiter": { + "type": "string" + }, + "CsvRowDelimiter": { + "type": "string" + }, + "ExternalTableDefinition": { + "type": "string" + }, + "ServiceAccessRoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::EventSubscription": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11907,18 +11484,45 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "VpcId": { + "Enabled": { + "type": "boolean" + }, + "EventCategories": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnsTopicArn": { + "type": "string" + }, + "SourceIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceType": { "type": "string" + }, + "SubscriptionName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "VpcId" + "SnsTopicArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::EgressOnlyInternetGateway" + "AWS::DMS::EventSubscription" ], "type": "string" } @@ -11929,7 +11533,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::FlowLog": { + "AWS::DMS::ReplicationInstance": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11961,38 +11565,63 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DeliverLogsPermissionArn": { + "AllocatedStorage": { + "type": "number" + }, + "AllowMajorVersionUpgrade": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZone": { "type": "string" }, - "LogDestination": { + "EngineVersion": { "type": "string" }, - "LogDestinationType": { + "KmsKeyId": { "type": "string" }, - "LogGroupName": { + "MultiAZ": { + "type": "boolean" + }, + "PreferredMaintenanceWindow": { "type": "string" }, - "ResourceId": { + "PubliclyAccessible": { + "type": "boolean" + }, + "ReplicationInstanceClass": { "type": "string" }, - "ResourceType": { + "ReplicationInstanceIdentifier": { "type": "string" }, - "TrafficType": { + "ReplicationSubnetGroupIdentifier": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "ResourceId", - "ResourceType", - "TrafficType" + "ReplicationInstanceClass" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::FlowLog" + "AWS::DMS::ReplicationInstance" ], "type": "string" } @@ -12003,7 +11632,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::Host": { + "AWS::DMS::ReplicationSubnetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -12035,25 +11664,34 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AutoPlacement": { + "ReplicationSubnetGroupDescription": { "type": "string" }, - "AvailabilityZone": { + "ReplicationSubnetGroupIdentifier": { "type": "string" }, - "InstanceType": { - "type": "string" - } - }, - "required": [ - "AvailabilityZone", - "InstanceType" - ], + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ReplicationSubnetGroupDescription", + "SubnetIds" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Host" + "AWS::DMS::ReplicationSubnetGroup" ], "type": "string" } @@ -12064,12 +11702,9 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::Instance": { + "AWS::DMS::ReplicationTask": { "additionalProperties": false, "properties": { - "CreationPolicy": { - "type": "object" - }, "DeletionPolicy": { "enum": [ "Delete", @@ -12099,405 +11734,253 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AdditionalInfo": { - "type": "string" - }, - "Affinity": { - "type": "string" + "CdcStartTime": { + "type": "number" }, - "AvailabilityZone": { + "MigrationType": { "type": "string" }, - "BlockDeviceMappings": { - "items": { - "$ref": "#/definitions/AWS::EC2::Instance.BlockDeviceMapping" - }, - "type": "array" - }, - "CreditSpecification": { - "$ref": "#/definitions/AWS::EC2::Instance.CreditSpecification" - }, - "DisableApiTermination": { - "type": "boolean" - }, - "EbsOptimized": { - "type": "boolean" - }, - "ElasticGpuSpecifications": { - "items": { - "$ref": "#/definitions/AWS::EC2::Instance.ElasticGpuSpecification" - }, - "type": "array" - }, - "ElasticInferenceAccelerators": { - "items": { - "$ref": "#/definitions/AWS::EC2::Instance.ElasticInferenceAccelerator" - }, - "type": "array" - }, - "HostId": { + "ReplicationInstanceArn": { "type": "string" }, - "IamInstanceProfile": { + "ReplicationTaskIdentifier": { "type": "string" }, - "ImageId": { + "ReplicationTaskSettings": { "type": "string" }, - "InstanceInitiatedShutdownBehavior": { + "SourceEndpointArn": { "type": "string" }, - "InstanceType": { + "TableMappings": { "type": "string" }, - "Ipv6AddressCount": { - "type": "number" - }, - "Ipv6Addresses": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "KernelId": { + "TargetEndpointArn": { "type": "string" - }, - "KeyName": { + } + }, + "required": [ + "MigrationType", + "ReplicationInstanceArn", + "SourceEndpointArn", + "TableMappings", + "TargetEndpointArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DMS::ReplicationTask" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - "LaunchTemplate": { - "$ref": "#/definitions/AWS::EC2::Instance.LaunchTemplateSpecification" - }, - "LicenseSpecifications": { + { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.LicenseSpecification" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" - }, - "Monitoring": { + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Activate": { "type": "boolean" }, - "NetworkInterfaces": { - "items": { - "$ref": "#/definitions/AWS::EC2::Instance.NetworkInterface" - }, - "type": "array" - }, - "PlacementGroupName": { - "type": "string" - }, - "PrivateIpAddress": { + "Description": { "type": "string" }, - "RamdiskId": { + "Name": { "type": "string" }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SecurityGroups": { + "ParameterObjects": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterObject" }, "type": "array" }, - "SourceDestCheck": { - "type": "boolean" - }, - "SsmAssociations": { + "ParameterValues": { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.SsmAssociation" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterValue" }, "type": "array" }, - "SubnetId": { - "type": "string" - }, - "Tags": { + "PipelineObjects": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineObject" }, "type": "array" }, - "Tenancy": { - "type": "string" - }, - "UserData": { - "type": "string" - }, - "Volumes": { + "PipelineTags": { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.Volume" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineTag" }, "type": "array" } }, + "required": [ + "Name", + "ParameterObjects" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Instance" + "AWS::DataPipeline::Pipeline" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::Instance.AssociationParameter": { + "AWS::DataPipeline::Pipeline.Field": { "additionalProperties": false, "properties": { "Key": { "type": "string" }, - "Value": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "AWS::EC2::Instance.BlockDeviceMapping": { - "additionalProperties": false, - "properties": { - "DeviceName": { - "type": "string" - }, - "Ebs": { - "$ref": "#/definitions/AWS::EC2::Instance.Ebs" - }, - "NoDevice": { - "$ref": "#/definitions/AWS::EC2::Instance.NoDevice" - }, - "VirtualName": { - "type": "string" - } - }, - "required": [ - "DeviceName" - ], - "type": "object" - }, - "AWS::EC2::Instance.CreditSpecification": { - "additionalProperties": false, - "properties": { - "CPUCredits": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::Instance.Ebs": { - "additionalProperties": false, - "properties": { - "DeleteOnTermination": { - "type": "boolean" - }, - "Encrypted": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "SnapshotId": { + "RefValue": { "type": "string" }, - "VolumeSize": { - "type": "number" - }, - "VolumeType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::Instance.ElasticGpuSpecification": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::EC2::Instance.ElasticInferenceAccelerator": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::EC2::Instance.InstanceIpv6Address": { - "additionalProperties": false, - "properties": { - "Ipv6Address": { + "StringValue": { "type": "string" } }, "required": [ - "Ipv6Address" + "Key" ], "type": "object" }, - "AWS::EC2::Instance.LaunchTemplateSpecification": { + "AWS::DataPipeline::Pipeline.ParameterAttribute": { "additionalProperties": false, "properties": { - "LaunchTemplateId": { - "type": "string" - }, - "LaunchTemplateName": { + "Key": { "type": "string" }, - "Version": { - "type": "string" - } - }, - "required": [ - "Version" - ], - "type": "object" - }, - "AWS::EC2::Instance.LicenseSpecification": { - "additionalProperties": false, - "properties": { - "LicenseConfigurationArn": { + "StringValue": { "type": "string" } }, "required": [ - "LicenseConfigurationArn" + "Key", + "StringValue" ], "type": "object" }, - "AWS::EC2::Instance.NetworkInterface": { + "AWS::DataPipeline::Pipeline.ParameterObject": { "additionalProperties": false, "properties": { - "AssociatePublicIpAddress": { - "type": "boolean" - }, - "DeleteOnTermination": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "DeviceIndex": { - "type": "string" - }, - "GroupSet": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Ipv6AddressCount": { - "type": "number" - }, - "Ipv6Addresses": { - "items": { - "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address" - }, - "type": "array" - }, - "NetworkInterfaceId": { - "type": "string" - }, - "PrivateIpAddress": { - "type": "string" - }, - "PrivateIpAddresses": { + "Attributes": { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.PrivateIpAddressSpecification" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterAttribute" }, "type": "array" }, - "SecondaryPrivateIpAddressCount": { - "type": "number" - }, - "SubnetId": { + "Id": { "type": "string" } }, "required": [ - "DeviceIndex" + "Attributes", + "Id" ], "type": "object" }, - "AWS::EC2::Instance.NoDevice": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "AWS::EC2::Instance.PrivateIpAddressSpecification": { + "AWS::DataPipeline::Pipeline.ParameterValue": { "additionalProperties": false, "properties": { - "Primary": { - "type": "boolean" + "Id": { + "type": "string" }, - "PrivateIpAddress": { + "StringValue": { "type": "string" } }, "required": [ - "Primary", - "PrivateIpAddress" + "Id", + "StringValue" ], "type": "object" }, - "AWS::EC2::Instance.SsmAssociation": { + "AWS::DataPipeline::Pipeline.PipelineObject": { "additionalProperties": false, "properties": { - "AssociationParameters": { + "Fields": { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.AssociationParameter" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.Field" }, "type": "array" }, - "DocumentName": { + "Id": { + "type": "string" + }, + "Name": { "type": "string" } }, "required": [ - "DocumentName" + "Fields", + "Id", + "Name" ], "type": "object" }, - "AWS::EC2::Instance.Volume": { + "AWS::DataPipeline::Pipeline.PipelineTag": { "additionalProperties": false, "properties": { - "Device": { + "Key": { "type": "string" }, - "VolumeId": { + "Value": { "type": "string" } }, "required": [ - "Device", - "VolumeId" + "Key", + "Value" ], "type": "object" }, - "AWS::EC2::InternetGateway": { + "AWS::DirectoryService::MicrosoftAD": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -12529,28 +12012,68 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "CreateAlias": { + "type": "boolean" + }, + "Edition": { + "type": "string" + }, + "EnableSso": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/AWS::DirectoryService::MicrosoftAD.VpcSettings" } }, + "required": [ + "Name", + "Password", + "VpcSettings" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::InternetGateway" + "AWS::DirectoryService::MicrosoftAD" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::LaunchTemplate": { + "AWS::DirectoryService::MicrosoftAD.VpcSettings": { + "additionalProperties": false, + "properties": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "SubnetIds", + "VpcId" + ], + "type": "object" + }, + "AWS::DirectoryService::SimpleAD": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -12582,331 +12105,72 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "LaunchTemplateData": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateData" + "CreateAlias": { + "type": "boolean" }, - "LaunchTemplateName": { + "Description": { + "type": "string" + }, + "EnableSso": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { "type": "string" + }, + "Size": { + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/AWS::DirectoryService::SimpleAD.VpcSettings" } }, + "required": [ + "Name", + "Password", + "Size", + "VpcSettings" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::LaunchTemplate" + "AWS::DirectoryService::SimpleAD" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::LaunchTemplate.BlockDeviceMapping": { + "AWS::DirectoryService::SimpleAD.VpcSettings": { "additionalProperties": false, "properties": { - "DeviceName": { - "type": "string" + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "Ebs": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ebs" - }, - "NoDevice": { - "type": "string" - }, - "VirtualName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.CreditSpecification": { - "additionalProperties": false, - "properties": { - "CpuCredits": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.Ebs": { - "additionalProperties": false, - "properties": { - "DeleteOnTermination": { - "type": "boolean" - }, - "Encrypted": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "KmsKeyId": { - "type": "string" - }, - "SnapshotId": { - "type": "string" - }, - "VolumeSize": { - "type": "number" - }, - "VolumeType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.ElasticGpuSpecification": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.IamInstanceProfile": { - "additionalProperties": false, - "properties": { - "Arn": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.InstanceMarketOptions": { - "additionalProperties": false, - "properties": { - "MarketType": { - "type": "string" - }, - "SpotOptions": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.SpotOptions" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.Ipv6Add": { - "additionalProperties": false, - "properties": { - "Ipv6Address": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.LaunchTemplateData": { - "additionalProperties": false, - "properties": { - "BlockDeviceMappings": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.BlockDeviceMapping" - }, - "type": "array" - }, - "CreditSpecification": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CreditSpecification" - }, - "DisableApiTermination": { - "type": "boolean" - }, - "EbsOptimized": { - "type": "boolean" - }, - "ElasticGpuSpecifications": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.ElasticGpuSpecification" - }, - "type": "array" - }, - "IamInstanceProfile": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.IamInstanceProfile" - }, - "ImageId": { - "type": "string" - }, - "InstanceInitiatedShutdownBehavior": { - "type": "string" - }, - "InstanceMarketOptions": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.InstanceMarketOptions" - }, - "InstanceType": { - "type": "string" - }, - "KernelId": { - "type": "string" - }, - "KeyName": { - "type": "string" - }, - "Monitoring": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Monitoring" - }, - "NetworkInterfaces": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.NetworkInterface" - }, - "type": "array" - }, - "Placement": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Placement" - }, - "RamDiskId": { - "type": "string" - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "TagSpecifications": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.TagSpecification" - }, - "type": "array" - }, - "UserData": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.Monitoring": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.NetworkInterface": { - "additionalProperties": false, - "properties": { - "AssociatePublicIpAddress": { - "type": "boolean" - }, - "DeleteOnTermination": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "DeviceIndex": { - "type": "number" - }, - "Groups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Ipv6AddressCount": { - "type": "number" - }, - "Ipv6Addresses": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ipv6Add" - }, - "type": "array" - }, - "NetworkInterfaceId": { - "type": "string" - }, - "PrivateIpAddress": { - "type": "string" - }, - "PrivateIpAddresses": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.PrivateIpAdd" - }, - "type": "array" - }, - "SecondaryPrivateIpAddressCount": { - "type": "number" - }, - "SubnetId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.Placement": { - "additionalProperties": false, - "properties": { - "Affinity": { - "type": "string" - }, - "AvailabilityZone": { - "type": "string" - }, - "GroupName": { - "type": "string" - }, - "HostId": { - "type": "string" - }, - "Tenancy": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.PrivateIpAdd": { - "additionalProperties": false, - "properties": { - "Primary": { - "type": "boolean" - }, - "PrivateIpAddress": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.SpotOptions": { - "additionalProperties": false, - "properties": { - "InstanceInterruptionBehavior": { - "type": "string" - }, - "MaxPrice": { - "type": "string" - }, - "SpotInstanceType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.TagSpecification": { - "additionalProperties": false, - "properties": { - "ResourceType": { + "VpcId": { "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" } }, + "required": [ + "SubnetIds", + "VpcId" + ], "type": "object" }, - "AWS::EC2::NatGateway": { + "AWS::DocDB::DBCluster": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -12938,39 +12202,79 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AllocationId": { + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BackupRetentionPeriod": { + "type": "number" + }, + "DBClusterIdentifier": { "type": "string" }, - "SubnetId": { + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUsername": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "SnapshotIdentifier": { "type": "string" }, + "StorageEncrypted": { + "type": "boolean" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "AllocationId", - "SubnetId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::NatGateway" + "AWS::DocDB::DBCluster" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::NetworkAcl": { + "AWS::DocDB::DBClusterParameterGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13002,24 +12306,35 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "VpcId": { - "type": "string" } }, "required": [ - "VpcId" + "Description", + "Family", + "Parameters" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::NetworkAcl" + "AWS::DocDB::DBClusterParameterGroup" ], "type": "string" } @@ -13030,7 +12345,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::NetworkAclEntry": { + "AWS::DocDB::DBInstance": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13062,46 +12377,40 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CidrBlock": { - "type": "string" - }, - "Egress": { + "AutoMinorVersionUpgrade": { "type": "boolean" }, - "Icmp": { - "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.Icmp" - }, - "Ipv6CidrBlock": { + "AvailabilityZone": { "type": "string" }, - "NetworkAclId": { + "DBClusterIdentifier": { "type": "string" }, - "PortRange": { - "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.PortRange" + "DBInstanceClass": { + "type": "string" }, - "Protocol": { - "type": "number" + "DBInstanceIdentifier": { + "type": "string" }, - "RuleAction": { + "PreferredMaintenanceWindow": { "type": "string" }, - "RuleNumber": { - "type": "number" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "CidrBlock", - "NetworkAclId", - "Protocol", - "RuleAction", - "RuleNumber" + "DBClusterIdentifier", + "DBInstanceClass" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::NetworkAclEntry" + "AWS::DocDB::DBInstance" ], "type": "string" } @@ -13112,31 +12421,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::NetworkAclEntry.Icmp": { - "additionalProperties": false, - "properties": { - "Code": { - "type": "number" - }, - "Type": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::EC2::NetworkAclEntry.PortRange": { - "additionalProperties": false, - "properties": { - "From": { - "type": "number" - }, - "To": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::EC2::NetworkInterface": { + "AWS::DocDB::DBSubnetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13168,42 +12453,18 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" - }, - "GroupSet": { - "items": { - "type": "string" - }, - "type": "array" - }, - "InterfaceType": { + "DBSubnetGroupDescription": { "type": "string" }, - "Ipv6AddressCount": { - "type": "number" - }, - "Ipv6Addresses": { - "$ref": "#/definitions/AWS::EC2::NetworkInterface.InstanceIpv6Address" - }, - "PrivateIpAddress": { + "DBSubnetGroupName": { "type": "string" }, - "PrivateIpAddresses": { + "SubnetIds": { "items": { - "$ref": "#/definitions/AWS::EC2::NetworkInterface.PrivateIpAddressSpecification" + "type": "string" }, "type": "array" }, - "SecondaryPrivateIpAddressCount": { - "type": "number" - }, - "SourceDestCheck": { - "type": "boolean" - }, - "SubnetId": { - "type": "string" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -13212,13 +12473,14 @@ var CloudformationSchema = `{ } }, "required": [ - "SubnetId" + "DBSubnetGroupDescription", + "SubnetIds" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::NetworkInterface" + "AWS::DocDB::DBSubnetGroup" ], "type": "string" } @@ -13229,35 +12491,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::NetworkInterface.InstanceIpv6Address": { - "additionalProperties": false, - "properties": { - "Ipv6Address": { - "type": "string" - } - }, - "required": [ - "Ipv6Address" - ], - "type": "object" - }, - "AWS::EC2::NetworkInterface.PrivateIpAddressSpecification": { - "additionalProperties": false, - "properties": { - "Primary": { - "type": "boolean" - }, - "PrivateIpAddress": { - "type": "string" - } - }, - "required": [ - "Primary", - "PrivateIpAddress" - ], - "type": "object" - }, - "AWS::EC2::NetworkInterfaceAttachment": { + "AWS::DynamoDB::Table": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13289,29 +12523,66 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DeleteOnTermination": { - "type": "boolean" + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.AttributeDefinition" + }, + "type": "array" }, - "DeviceIndex": { + "BillingMode": { "type": "string" }, - "InstanceId": { - "type": "string" + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.GlobalSecondaryIndex" + }, + "type": "array" }, - "NetworkInterfaceId": { + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" + }, + "type": "array" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.LocalSecondaryIndex" + }, + "type": "array" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput" + }, + "SSESpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.SSESpecification" + }, + "StreamSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.StreamSpecification" + }, + "TableName": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.TimeToLiveSpecification" } }, "required": [ - "DeviceIndex", - "InstanceId", - "NetworkInterfaceId" + "KeySchema" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::NetworkInterfaceAttachment" + "AWS::DynamoDB::Table" ], "type": "string" } @@ -13322,119 +12593,168 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::NetworkInterfacePermission": { + "AWS::DynamoDB::Table.AttributeDefinition": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "AttributeName": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "AwsAccountId": { - "type": "string" - }, - "NetworkInterfaceId": { - "type": "string" - }, - "Permission": { - "type": "string" - } + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" }, - "required": [ - "AwsAccountId", - "NetworkInterfaceId", - "Permission" - ], - "type": "object" + "type": "array" }, - "Type": { - "enum": [ - "AWS::EC2::NetworkInterfacePermission" - ], - "type": "string" + "Projection": { + "$ref": "#/definitions/AWS::DynamoDB::Table.Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput" } }, "required": [ - "Type", - "Properties" + "IndexName", + "KeySchema", + "Projection" ], "type": "object" }, - "AWS::EC2::PlacementGroup": { + "AWS::DynamoDB::Table.KeySchema": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "AttributeName": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "KeyType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "KeyType" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" }, - "Metadata": { - "type": "object" + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" + }, + "type": "array" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Strategy": { - "type": "string" - } + "Projection": { + "$ref": "#/definitions/AWS::DynamoDB::Table.Projection" + } + }, + "required": [ + "IndexName", + "KeySchema", + "Projection" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::DynamoDB::Table.Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" }, - "type": "object" + "type": "array" }, - "Type": { - "enum": [ - "AWS::EC2::PlacementGroup" - ], + "ProjectionType": { "type": "string" } }, + "type": "object" + }, + "AWS::DynamoDB::Table.ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "number" + }, + "WriteCapacityUnits": { + "type": "number" + } + }, "required": [ - "Type" + "ReadCapacityUnits", + "WriteCapacityUnits" ], "type": "object" }, - "AWS::EC2::Route": { + "AWS::DynamoDB::Table.SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "AttributeName", + "Enabled" + ], + "type": "object" + }, + "AWS::EC2::CustomerGateway": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13466,42 +12786,32 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DestinationCidrBlock": { - "type": "string" - }, - "DestinationIpv6CidrBlock": { - "type": "string" - }, - "EgressOnlyInternetGatewayId": { - "type": "string" - }, - "GatewayId": { - "type": "string" - }, - "InstanceId": { - "type": "string" - }, - "NatGatewayId": { - "type": "string" + "BgpAsn": { + "type": "number" }, - "NetworkInterfaceId": { + "IpAddress": { "type": "string" }, - "RouteTableId": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "VpcPeeringConnectionId": { + "Type": { "type": "string" } }, "required": [ - "RouteTableId" + "BgpAsn", + "IpAddress", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Route" + "AWS::EC2::CustomerGateway" ], "type": "string" } @@ -13512,7 +12822,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::RouteTable": { + "AWS::EC2::DHCPOptions": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13544,35 +12854,52 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "DomainName": { + "type": "string" + }, + "DomainNameServers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "NetbiosNameServers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "NetbiosNodeType": { + "type": "number" + }, + "NtpServers": { + "items": { + "type": "string" + }, + "type": "array" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "VpcId": { - "type": "string" } }, - "required": [ - "VpcId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::RouteTable" + "AWS::EC2::DHCPOptions" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::SecurityGroup": { + "AWS::EC2::EC2Fleet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13604,42 +12931,55 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "GroupDescription": { - "type": "string" - }, - "GroupName": { + "ExcessCapacityTerminationPolicy": { "type": "string" }, - "SecurityGroupEgress": { + "LaunchTemplateConfigs": { "items": { - "$ref": "#/definitions/AWS::EC2::SecurityGroup.Egress" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest" }, "type": "array" }, - "SecurityGroupIngress": { - "items": { - "$ref": "#/definitions/AWS::EC2::SecurityGroup.Ingress" - }, - "type": "array" + "OnDemandOptions": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.OnDemandOptionsRequest" }, - "Tags": { + "ReplaceUnhealthyInstances": { + "type": "boolean" + }, + "SpotOptions": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.SpotOptionsRequest" + }, + "TagSpecifications": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TagSpecification" }, "type": "array" }, - "VpcId": { + "TargetCapacitySpecification": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest" + }, + "TerminateInstancesWithExpiration": { + "type": "boolean" + }, + "Type": { + "type": "string" + }, + "ValidFrom": { + "type": "string" + }, + "ValidUntil": { "type": "string" } }, "required": [ - "GroupDescription" + "LaunchTemplateConfigs", + "TargetCapacitySpecification" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SecurityGroup" + "AWS::EC2::EC2Fleet" ], "type": "string" } @@ -13650,79 +12990,133 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::SecurityGroup.Egress": { + "AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest": { "additionalProperties": false, "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest" }, - "Description": { + "Overrides": { + "items": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { "type": "string" }, - "DestinationPrefixListId": { + "InstanceType": { "type": "string" }, - "DestinationSecurityGroupId": { + "MaxPrice": { "type": "string" }, - "FromPort": { + "Priority": { "type": "number" }, - "IpProtocol": { + "SubnetId": { "type": "string" }, - "ToPort": { + "WeightedCapacity": { "type": "number" } }, - "required": [ - "IpProtocol" - ], "type": "object" }, - "AWS::EC2::SecurityGroup.Ingress": { + "AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest": { "additionalProperties": false, "properties": { - "CidrIp": { + "LaunchTemplateId": { "type": "string" }, - "CidrIpv6": { + "LaunchTemplateName": { "type": "string" }, - "Description": { + "Version": { "type": "string" - }, - "FromPort": { - "type": "number" - }, - "IpProtocol": { + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.OnDemandOptionsRequest": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.SpotOptionsRequest": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { "type": "string" }, - "SourcePrefixListId": { + "InstanceInterruptionBehavior": { "type": "string" }, - "SourceSecurityGroupId": { + "InstancePoolsToUseCount": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.TagRequest": { + "additionalProperties": false, + "properties": { + "Key": { "type": "string" }, - "SourceSecurityGroupName": { + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { "type": "string" }, - "SourceSecurityGroupOwnerId": { + "Tags": { + "items": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TagRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest": { + "additionalProperties": false, + "properties": { + "DefaultTargetCapacityType": { "type": "string" }, - "ToPort": { + "OnDemandTargetCapacity": { + "type": "number" + }, + "SpotTargetCapacity": { + "type": "number" + }, + "TotalTargetCapacity": { "type": "number" } }, "required": [ - "IpProtocol" + "TotalTargetCapacity" ], "type": "object" }, - "AWS::EC2::SecurityGroupEgress": { + "AWS::EC2::EIP": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13754,43 +13148,136 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { + "Domain": { "type": "string" }, - "Description": { + "InstanceId": { "type": "string" }, - "DestinationPrefixListId": { + "PublicIpv4Pool": { "type": "string" - }, - "DestinationSecurityGroupId": { + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::EIP" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::EIPAssociation": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - "FromPort": { - "type": "number" + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" }, - "GroupId": { + "EIP": { "type": "string" }, - "IpProtocol": { + "InstanceId": { "type": "string" }, - "ToPort": { - "type": "number" + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::EIPAssociation" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::EgressOnlyInternetGateway": { + "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": { + "VpcId": { + "type": "string" } }, "required": [ - "GroupId", - "IpProtocol" + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SecurityGroupEgress" + "AWS::EC2::EgressOnlyInternetGateway" ], "type": "string" } @@ -13801,7 +13288,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::SecurityGroupIngress": { + "AWS::EC2::FlowLog": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13833,51 +13320,38 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "FromPort": { - "type": "number" - }, - "GroupId": { + "DeliverLogsPermissionArn": { "type": "string" }, - "GroupName": { + "LogDestination": { "type": "string" }, - "IpProtocol": { + "LogDestinationType": { "type": "string" }, - "SourcePrefixListId": { + "LogGroupName": { "type": "string" }, - "SourceSecurityGroupId": { + "ResourceId": { "type": "string" }, - "SourceSecurityGroupName": { + "ResourceType": { "type": "string" }, - "SourceSecurityGroupOwnerId": { + "TrafficType": { "type": "string" - }, - "ToPort": { - "type": "number" } }, "required": [ - "IpProtocol" + "ResourceId", + "ResourceType", + "TrafficType" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SecurityGroupIngress" + "AWS::EC2::FlowLog" ], "type": "string" } @@ -13888,7 +13362,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::SpotFleet": { + "AWS::EC2::Host": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13920,18 +13394,25 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "SpotFleetRequestConfigData": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetRequestConfigData" + "AutoPlacement": { + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "InstanceType": { + "type": "string" } }, "required": [ - "SpotFleetRequestConfigData" + "AvailabilityZone", + "InstanceType" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SpotFleet" + "AWS::EC2::Host" ], "type": "string" } @@ -13942,55 +13423,241 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::SpotFleet.BlockDeviceMapping": { + "AWS::EC2::Instance": { "additionalProperties": false, "properties": { - "DeviceName": { + "CreationPolicy": { + "type": "object" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "Ebs": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.EbsBlockDevice" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "NoDevice": { - "type": "string" + "Metadata": { + "type": "object" }, - "VirtualName": { + "Properties": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.BlockDeviceMapping" + }, + "type": "array" + }, + "CreditSpecification": { + "$ref": "#/definitions/AWS::EC2::Instance.CreditSpecification" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.ElasticGpuSpecification" + }, + "type": "array" + }, + "ElasticInferenceAccelerators": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.ElasticInferenceAccelerator" + }, + "type": "array" + }, + "HostId": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Ipv6AddressCount": { + "type": "number" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address" + }, + "type": "array" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::EC2::Instance.LaunchTemplateSpecification" + }, + "LicenseSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.LicenseSpecification" + }, + "type": "array" + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.NetworkInterface" + }, + "type": "array" + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.SsmAssociation" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Tenancy": { + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.Volume" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::Instance" + ], "type": "string" } }, "required": [ - "DeviceName" + "Type" ], "type": "object" }, - "AWS::EC2::SpotFleet.ClassicLoadBalancer": { + "AWS::EC2::Instance.AssociationParameter": { "additionalProperties": false, "properties": { - "Name": { + "Key": { "type": "string" + }, + "Value": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "Name" + "Key", + "Value" ], "type": "object" }, - "AWS::EC2::SpotFleet.ClassicLoadBalancersConfig": { + "AWS::EC2::Instance.BlockDeviceMapping": { "additionalProperties": false, "properties": { - "ClassicLoadBalancers": { - "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancer" - }, - "type": "array" + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/AWS::EC2::Instance.Ebs" + }, + "NoDevice": { + "$ref": "#/definitions/AWS::EC2::Instance.NoDevice" + }, + "VirtualName": { + "type": "string" } }, "required": [ - "ClassicLoadBalancers" + "DeviceName" ], "type": "object" }, - "AWS::EC2::SpotFleet.EbsBlockDevice": { + "AWS::EC2::Instance.CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::Instance.Ebs": { "additionalProperties": false, "properties": { "DeleteOnTermination": { @@ -14014,58 +13681,73 @@ var CloudformationSchema = `{ }, "type": "object" }, - "AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification": { + "AWS::EC2::Instance.ElasticGpuSpecification": { "additionalProperties": false, "properties": { - "LaunchTemplateId": { - "type": "string" - }, - "LaunchTemplateName": { + "Type": { "type": "string" - }, - "Version": { + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::Instance.ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Type": { "type": "string" } }, "required": [ - "Version" + "Type" ], "type": "object" }, - "AWS::EC2::SpotFleet.GroupIdentifier": { + "AWS::EC2::Instance.InstanceIpv6Address": { "additionalProperties": false, "properties": { - "GroupId": { + "Ipv6Address": { "type": "string" } }, "required": [ - "GroupId" + "Ipv6Address" ], "type": "object" }, - "AWS::EC2::SpotFleet.IamInstanceProfileSpecification": { + "AWS::EC2::Instance.LaunchTemplateSpecification": { "additionalProperties": false, "properties": { - "Arn": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { "type": "string" } }, + "required": [ + "Version" + ], "type": "object" }, - "AWS::EC2::SpotFleet.InstanceIpv6Address": { + "AWS::EC2::Instance.LicenseSpecification": { "additionalProperties": false, "properties": { - "Ipv6Address": { + "LicenseConfigurationArn": { "type": "string" } }, "required": [ - "Ipv6Address" + "LicenseConfigurationArn" ], "type": "object" }, - "AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification": { + "AWS::EC2::Instance.NetworkInterface": { "additionalProperties": false, "properties": { "AssociatePublicIpAddress": { @@ -14078,9 +13760,9 @@ var CloudformationSchema = `{ "type": "string" }, "DeviceIndex": { - "type": "number" + "type": "string" }, - "Groups": { + "GroupSet": { "items": { "type": "string" }, @@ -14091,16 +13773,19 @@ var CloudformationSchema = `{ }, "Ipv6Addresses": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceIpv6Address" + "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address" }, "type": "array" }, "NetworkInterfaceId": { "type": "string" }, + "PrivateIpAddress": { + "type": "string" + }, "PrivateIpAddresses": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.PrivateIpAddressSpecification" + "$ref": "#/definitions/AWS::EC2::Instance.PrivateIpAddressSpecification" }, "type": "array" }, @@ -14111,57 +13796,17 @@ var CloudformationSchema = `{ "type": "string" } }, + "required": [ + "DeviceIndex" + ], "type": "object" }, - "AWS::EC2::SpotFleet.LaunchTemplateConfig": { - "additionalProperties": false, - "properties": { - "LaunchTemplateSpecification": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification" - }, - "Overrides": { - "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateOverrides" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::EC2::SpotFleet.LaunchTemplateOverrides": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "type": "string" - }, - "InstanceType": { - "type": "string" - }, - "SpotPrice": { - "type": "string" - }, - "SubnetId": { - "type": "string" - }, - "WeightedCapacity": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::EC2::SpotFleet.LoadBalancersConfig": { + "AWS::EC2::Instance.NoDevice": { "additionalProperties": false, - "properties": { - "ClassicLoadBalancersConfig": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancersConfig" - }, - "TargetGroupsConfig": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroupsConfig" - } - }, + "properties": {}, "type": "object" }, - "AWS::EC2::SpotFleet.PrivateIpAddressSpecification": { + "AWS::EC2::Instance.PrivateIpAddressSpecification": { "additionalProperties": false, "properties": { "Primary": { @@ -14172,28 +13817,345 @@ var CloudformationSchema = `{ } }, "required": [ + "Primary", "PrivateIpAddress" ], "type": "object" }, - "AWS::EC2::SpotFleet.SpotFleetLaunchSpecification": { + "AWS::EC2::Instance.SsmAssociation": { "additionalProperties": false, "properties": { - "BlockDeviceMappings": { + "AssociationParameters": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.BlockDeviceMapping" + "$ref": "#/definitions/AWS::EC2::Instance.AssociationParameter" + }, + "type": "array" + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "AWS::EC2::Instance.Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "Device", + "VolumeId" + ], + "type": "object" + }, + "AWS::EC2::InternetGateway": { + "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": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::InternetGateway" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::LaunchTemplate": { + "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": { + "LaunchTemplateData": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateData" + }, + "LaunchTemplateName": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::LaunchTemplate" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::LaunchTemplate.BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ebs" + }, + "NoDevice": { + "type": "string" + }, + "VirtualName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CapacityReservationPreference": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CapacityReservationSpecification": { + "additionalProperties": false, + "properties": { + "CapacityReservationPreference": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CapacityReservationPreference" + }, + "CapacityReservationTarget": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CapacityReservationTarget" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CapacityReservationTarget": { + "additionalProperties": false, + "properties": { + "CapacityReservationId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "number" + }, + "ThreadsPerCore": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CreditSpecification": { + "additionalProperties": false, + "properties": { + "CpuCredits": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.IamInstanceProfile": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.InstanceMarketOptions": { + "additionalProperties": false, + "properties": { + "MarketType": { + "type": "string" + }, + "SpotOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.SpotOptions" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Ipv6Add": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.LaunchTemplateData": { + "additionalProperties": false, + "properties": { + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.BlockDeviceMapping" }, "type": "array" }, + "CapacityReservationSpecification": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CapacityReservationSpecification" + }, + "CpuOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CpuOptions" + }, + "CreditSpecification": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CreditSpecification" + }, + "DisableApiTermination": { + "type": "boolean" + }, "EbsOptimized": { "type": "boolean" }, + "ElasticGpuSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.ElasticGpuSpecification" + }, + "type": "array" + }, + "ElasticInferenceAccelerators": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateElasticInferenceAccelerator" + }, + "type": "array" + }, + "HibernationOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.HibernationOptions" + }, "IamInstanceProfile": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.IamInstanceProfileSpecification" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.IamInstanceProfile" }, "ImageId": { "type": "string" }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceMarketOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.InstanceMarketOptions" + }, "InstanceType": { "type": "string" }, @@ -14203,53 +14165,70 @@ var CloudformationSchema = `{ "KeyName": { "type": "string" }, + "LicenseSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LicenseSpecification" + }, + "type": "array" + }, "Monitoring": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetMonitoring" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Monitoring" }, "NetworkInterfaces": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.NetworkInterface" }, "type": "array" }, "Placement": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotPlacement" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Placement" }, - "RamdiskId": { + "RamDiskId": { "type": "string" }, - "SecurityGroups": { + "SecurityGroupIds": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.GroupIdentifier" + "type": "string" }, "type": "array" }, - "SpotPrice": { - "type": "string" - }, - "SubnetId": { - "type": "string" + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" }, "TagSpecifications": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetTagSpecification" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.TagSpecification" }, "type": "array" }, "UserData": { "type": "string" - }, - "WeightedCapacity": { - "type": "number" } }, - "required": [ - "ImageId", - "InstanceType" - ], "type": "object" }, - "AWS::EC2::SpotFleet.SpotFleetMonitoring": { + "AWS::EC2::LaunchTemplate.LaunchTemplateElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Monitoring": { "additionalProperties": false, "properties": { "Enabled": { @@ -14258,122 +14237,121 @@ var CloudformationSchema = `{ }, "type": "object" }, - "AWS::EC2::SpotFleet.SpotFleetRequestConfigData": { + "AWS::EC2::LaunchTemplate.NetworkInterface": { "additionalProperties": false, "properties": { - "AllocationStrategy": { - "type": "string" + "AssociatePublicIpAddress": { + "type": "boolean" }, - "ExcessCapacityTerminationPolicy": { - "type": "string" + "DeleteOnTermination": { + "type": "boolean" }, - "IamFleetRole": { + "Description": { "type": "string" }, - "InstanceInterruptionBehavior": { - "type": "string" + "DeviceIndex": { + "type": "number" }, - "LaunchSpecifications": { + "Groups": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetLaunchSpecification" + "type": "string" }, "type": "array" }, - "LaunchTemplateConfigs": { + "Ipv6AddressCount": { + "type": "number" + }, + "Ipv6Addresses": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateConfig" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ipv6Add" }, "type": "array" }, - "LoadBalancersConfig": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.LoadBalancersConfig" - }, - "ReplaceUnhealthyInstances": { - "type": "boolean" + "NetworkInterfaceId": { + "type": "string" }, - "SpotPrice": { + "PrivateIpAddress": { "type": "string" }, - "TargetCapacity": { + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.PrivateIpAdd" + }, + "type": "array" + }, + "SecondaryPrivateIpAddressCount": { "type": "number" }, - "TerminateInstancesWithExpiration": { - "type": "boolean" + "SubnetId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Placement": { + "additionalProperties": false, + "properties": { + "Affinity": { + "type": "string" }, - "Type": { + "AvailabilityZone": { "type": "string" }, - "ValidFrom": { + "GroupName": { "type": "string" }, - "ValidUntil": { + "HostId": { + "type": "string" + }, + "Tenancy": { "type": "string" } }, - "required": [ - "IamFleetRole", - "TargetCapacity" - ], "type": "object" }, - "AWS::EC2::SpotFleet.SpotFleetTagSpecification": { + "AWS::EC2::LaunchTemplate.PrivateIpAdd": { "additionalProperties": false, "properties": { - "ResourceType": { - "type": "string" + "Primary": { + "type": "boolean" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "PrivateIpAddress": { + "type": "string" } }, "type": "object" }, - "AWS::EC2::SpotFleet.SpotPlacement": { + "AWS::EC2::LaunchTemplate.SpotOptions": { "additionalProperties": false, "properties": { - "AvailabilityZone": { + "InstanceInterruptionBehavior": { "type": "string" }, - "GroupName": { + "MaxPrice": { "type": "string" }, - "Tenancy": { + "SpotInstanceType": { "type": "string" } }, "type": "object" }, - "AWS::EC2::SpotFleet.TargetGroup": { + "AWS::EC2::LaunchTemplate.TagSpecification": { "additionalProperties": false, "properties": { - "Arn": { + "ResourceType": { "type": "string" - } - }, - "required": [ - "Arn" - ], - "type": "object" - }, - "AWS::EC2::SpotFleet.TargetGroupsConfig": { - "additionalProperties": false, - "properties": { - "TargetGroups": { + }, + "Tags": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroup" + "$ref": "#/definitions/Tag" }, "type": "array" } }, - "required": [ - "TargetGroups" - ], "type": "object" }, - "AWS::EC2::Subnet": { + "AWS::EC2::NatGateway": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14405,40 +14383,28 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AssignIpv6AddressOnCreation": { - "type": "boolean" - }, - "AvailabilityZone": { - "type": "string" - }, - "CidrBlock": { + "AllocationId": { "type": "string" }, - "Ipv6CidrBlock": { + "SubnetId": { "type": "string" }, - "MapPublicIpOnLaunch": { - "type": "boolean" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "VpcId": { - "type": "string" } }, "required": [ - "CidrBlock", - "VpcId" + "AllocationId", + "SubnetId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Subnet" + "AWS::EC2::NatGateway" ], "type": "string" } @@ -14449,7 +14415,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::SubnetCidrBlock": { + "AWS::EC2::NetworkAcl": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14481,22 +14447,24 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Ipv6CidrBlock": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "SubnetId": { + "VpcId": { "type": "string" } }, "required": [ - "Ipv6CidrBlock", - "SubnetId" + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SubnetCidrBlock" + "AWS::EC2::NetworkAcl" ], "type": "string" } @@ -14507,7 +14475,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::SubnetNetworkAclAssociation": { + "AWS::EC2::NetworkAclEntry": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14539,22 +14507,46 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "NetworkAclId": { + "CidrBlock": { "type": "string" }, - "SubnetId": { - "type": "string" - } + "Egress": { + "type": "boolean" + }, + "Icmp": { + "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.Icmp" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "NetworkAclId": { + "type": "string" + }, + "PortRange": { + "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.PortRange" + }, + "Protocol": { + "type": "number" + }, + "RuleAction": { + "type": "string" + }, + "RuleNumber": { + "type": "number" + } }, "required": [ + "CidrBlock", "NetworkAclId", - "SubnetId" + "Protocol", + "RuleAction", + "RuleNumber" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SubnetNetworkAclAssociation" + "AWS::EC2::NetworkAclEntry" ], "type": "string" } @@ -14565,65 +14557,31 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::SubnetRouteTableAssociation": { + "AWS::EC2::NetworkAclEntry.Icmp": { "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": { - "RouteTableId": { - "type": "string" - }, - "SubnetId": { - "type": "string" - } - }, - "required": [ - "RouteTableId", - "SubnetId" - ], - "type": "object" + "Code": { + "type": "number" }, "Type": { - "enum": [ - "AWS::EC2::SubnetRouteTableAssociation" - ], - "type": "string" + "type": "number" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::EC2::TransitGateway": { + "AWS::EC2::NetworkAclEntry.PortRange": { + "additionalProperties": false, + "properties": { + "From": { + "type": "number" + }, + "To": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInterface": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14655,22 +14613,40 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AmazonSideAsn": { - "type": "number" - }, - "AutoAcceptSharedAttachments": { + "Description": { "type": "string" }, - "DefaultRouteTableAssociation": { - "type": "string" + "GroupSet": { + "items": { + "type": "string" + }, + "type": "array" }, - "DefaultRouteTablePropagation": { + "InterfaceType": { "type": "string" }, - "Description": { + "Ipv6AddressCount": { + "type": "number" + }, + "Ipv6Addresses": { + "$ref": "#/definitions/AWS::EC2::NetworkInterface.InstanceIpv6Address" + }, + "PrivateIpAddress": { "type": "string" }, - "DnsSupport": { + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInterface.PrivateIpAddressSpecification" + }, + "type": "array" + }, + "SecondaryPrivateIpAddressCount": { + "type": "number" + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SubnetId": { "type": "string" }, "Tags": { @@ -14678,26 +14654,55 @@ var CloudformationSchema = `{ "$ref": "#/definitions/Tag" }, "type": "array" - }, - "VpnEcmpSupport": { - "type": "string" } }, + "required": [ + "SubnetId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGateway" + "AWS::EC2::NetworkInterface" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::TransitGatewayAttachment": { + "AWS::EC2::NetworkInterface.InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "AWS::EC2::NetworkInterface.PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "Primary", + "PrivateIpAddress" + ], + "type": "object" + }, + "AWS::EC2::NetworkInterfaceAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14729,35 +14734,29 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" + "DeleteOnTermination": { + "type": "boolean" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "DeviceIndex": { + "type": "string" }, - "TransitGatewayId": { + "InstanceId": { "type": "string" }, - "VpcId": { + "NetworkInterfaceId": { "type": "string" } }, "required": [ - "SubnetIds", - "TransitGatewayId", - "VpcId" + "DeviceIndex", + "InstanceId", + "NetworkInterfaceId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayAttachment" + "AWS::EC2::NetworkInterfaceAttachment" ], "type": "string" } @@ -14768,7 +14767,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::TransitGatewayRoute": { + "AWS::EC2::NetworkInterfacePermission": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14800,27 +14799,26 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Blackhole": { - "type": "boolean" - }, - "DestinationCidrBlock": { + "AwsAccountId": { "type": "string" }, - "TransitGatewayAttachmentId": { + "NetworkInterfaceId": { "type": "string" }, - "TransitGatewayRouteTableId": { + "Permission": { "type": "string" } }, "required": [ - "TransitGatewayRouteTableId" + "AwsAccountId", + "NetworkInterfaceId", + "Permission" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRoute" + "AWS::EC2::NetworkInterfacePermission" ], "type": "string" } @@ -14831,7 +14829,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::TransitGatewayRouteTable": { + "AWS::EC2::PlacementGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14863,35 +14861,25 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "TransitGatewayId": { + "Strategy": { "type": "string" } }, - "required": [ - "TransitGatewayId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRouteTable" + "AWS::EC2::PlacementGroup" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::TransitGatewayRouteTableAssociation": { + "AWS::EC2::Route": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14923,22 +14911,42 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "TransitGatewayAttachmentId": { + "DestinationCidrBlock": { "type": "string" }, - "TransitGatewayRouteTableId": { + "DestinationIpv6CidrBlock": { + "type": "string" + }, + "EgressOnlyInternetGatewayId": { + "type": "string" + }, + "GatewayId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "NatGatewayId": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "RouteTableId": { + "type": "string" + }, + "VpcPeeringConnectionId": { "type": "string" } }, "required": [ - "TransitGatewayAttachmentId", - "TransitGatewayRouteTableId" + "RouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRouteTableAssociation" + "AWS::EC2::Route" ], "type": "string" } @@ -14949,7 +14957,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::TransitGatewayRouteTablePropagation": { + "AWS::EC2::RouteTable": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14981,22 +14989,24 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "TransitGatewayAttachmentId": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "TransitGatewayRouteTableId": { + "VpcId": { "type": "string" } }, "required": [ - "TransitGatewayAttachmentId", - "TransitGatewayRouteTableId" + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRouteTablePropagation" + "AWS::EC2::RouteTable" ], "type": "string" } @@ -15007,7 +15017,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::TrunkInterfaceAssociation": { + "AWS::EC2::SecurityGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15039,28 +15049,42 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "BranchInterfaceId": { + "GroupDescription": { "type": "string" }, - "GREKey": { - "type": "number" - }, - "TrunkInterfaceId": { + "GroupName": { "type": "string" }, - "VLANId": { - "type": "number" + "SecurityGroupEgress": { + "items": { + "$ref": "#/definitions/AWS::EC2::SecurityGroup.Egress" + }, + "type": "array" + }, + "SecurityGroupIngress": { + "items": { + "$ref": "#/definitions/AWS::EC2::SecurityGroup.Ingress" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { + "type": "string" } }, "required": [ - "BranchInterfaceId", - "TrunkInterfaceId" + "GroupDescription" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TrunkInterfaceAssociation" + "AWS::EC2::SecurityGroup" ], "type": "string" } @@ -15071,7 +15095,79 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VPC": { + "AWS::EC2::SecurityGroup.Egress": { + "additionalProperties": false, + "properties": { + "CidrIp": { + "type": "string" + }, + "CidrIpv6": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DestinationPrefixListId": { + "type": "string" + }, + "DestinationSecurityGroupId": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "IpProtocol": { + "type": "string" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "IpProtocol" + ], + "type": "object" + }, + "AWS::EC2::SecurityGroup.Ingress": { + "additionalProperties": false, + "properties": { + "CidrIp": { + "type": "string" + }, + "CidrIpv6": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "IpProtocol": { + "type": "string" + }, + "SourcePrefixListId": { + "type": "string" + }, + "SourceSecurityGroupId": { + "type": "string" + }, + "SourceSecurityGroupName": { + "type": "string" + }, + "SourceSecurityGroupOwnerId": { + "type": "string" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "IpProtocol" + ], + "type": "object" + }, + "AWS::EC2::SecurityGroupEgress": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15103,33 +15199,43 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CidrBlock": { + "CidrIp": { "type": "string" }, - "EnableDnsHostnames": { - "type": "boolean" + "CidrIpv6": { + "type": "string" }, - "EnableDnsSupport": { - "type": "boolean" + "Description": { + "type": "string" }, - "InstanceTenancy": { + "DestinationPrefixListId": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "DestinationSecurityGroupId": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "GroupId": { + "type": "string" + }, + "IpProtocol": { + "type": "string" + }, + "ToPort": { + "type": "number" } }, "required": [ - "CidrBlock" + "GroupId", + "IpProtocol" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPC" + "AWS::EC2::SecurityGroupEgress" ], "type": "string" } @@ -15140,7 +15246,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCCidrBlock": { + "AWS::EC2::SecurityGroupIngress": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15172,24 +15278,51 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AmazonProvidedIpv6CidrBlock": { - "type": "boolean" + "CidrIp": { + "type": "string" }, - "CidrBlock": { + "CidrIpv6": { "type": "string" }, - "VpcId": { + "Description": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "GroupId": { + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "IpProtocol": { + "type": "string" + }, + "SourcePrefixListId": { + "type": "string" + }, + "SourceSecurityGroupId": { + "type": "string" + }, + "SourceSecurityGroupName": { + "type": "string" + }, + "SourceSecurityGroupOwnerId": { "type": "string" + }, + "ToPort": { + "type": "number" } }, "required": [ - "VpcId" + "IpProtocol" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCCidrBlock" + "AWS::EC2::SecurityGroupIngress" ], "type": "string" } @@ -15200,7 +15333,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCDHCPOptionsAssociation": { + "AWS::EC2::SpotFleet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15232,22 +15365,18 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DhcpOptionsId": { - "type": "string" - }, - "VpcId": { - "type": "string" + "SpotFleetRequestConfigData": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetRequestConfigData" } }, "required": [ - "DhcpOptionsId", - "VpcId" + "SpotFleetRequestConfigData" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCDHCPOptionsAssociation" + "AWS::EC2::SpotFleet" ], "type": "string" } @@ -15258,92 +15387,438 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCEndpoint": { + "AWS::EC2::SpotFleet.BlockDeviceMapping": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "DeviceName": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Ebs": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.EbsBlockDevice" }, - "Metadata": { - "type": "object" + "NoDevice": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "PolicyDocument": { - "type": "object" - }, - "PrivateDnsEnabled": { - "type": "boolean" - }, - "RouteTableIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ServiceName": { - "type": "string" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "VPCEndpointType": { - "type": "string" - }, - "VpcId": { - "type": "string" - } + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.ClassicLoadBalancer": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.ClassicLoadBalancersConfig": { + "additionalProperties": false, + "properties": { + "ClassicLoadBalancers": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancer" }, - "required": [ - "ServiceName", - "VpcId" - ], - "type": "object" + "type": "array" + } + }, + "required": [ + "ClassicLoadBalancers" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.EbsBlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Version" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.GroupIdentifier": { + "additionalProperties": false, + "properties": { + "GroupId": { + "type": "string" + } + }, + "required": [ + "GroupId" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.IamInstanceProfileSpecification": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification": { + "additionalProperties": false, + "properties": { + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "number" + }, + "Groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Ipv6AddressCount": { + "type": "number" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceIpv6Address" + }, + "type": "array" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.PrivateIpAddressSpecification" + }, + "type": "array" + }, + "SecondaryPrivateIpAddressCount": { + "type": "number" + }, + "SubnetId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.LaunchTemplateConfig": { + "additionalProperties": false, + "properties": { + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification" + }, + "Overrides": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateOverrides" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.LaunchTemplateOverrides": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "SpotPrice": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.LoadBalancersConfig": { + "additionalProperties": false, + "properties": { + "ClassicLoadBalancersConfig": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancersConfig" + }, + "TargetGroupsConfig": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroupsConfig" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotFleetLaunchSpecification": { + "additionalProperties": false, + "properties": { + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.BlockDeviceMapping" + }, + "type": "array" + }, + "EbsOptimized": { + "type": "boolean" + }, + "IamInstanceProfile": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.IamInstanceProfileSpecification" + }, + "ImageId": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "Monitoring": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetMonitoring" + }, + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification" + }, + "type": "array" + }, + "Placement": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotPlacement" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.GroupIdentifier" + }, + "type": "array" + }, + "SpotPrice": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetTagSpecification" + }, + "type": "array" + }, + "UserData": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "required": [ + "ImageId", + "InstanceType" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotFleetMonitoring": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotFleetRequestConfigData": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "ExcessCapacityTerminationPolicy": { + "type": "string" + }, + "IamFleetRole": { + "type": "string" + }, + "InstanceInterruptionBehavior": { + "type": "string" + }, + "LaunchSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetLaunchSpecification" + }, + "type": "array" + }, + "LaunchTemplateConfigs": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateConfig" + }, + "type": "array" + }, + "LoadBalancersConfig": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.LoadBalancersConfig" + }, + "ReplaceUnhealthyInstances": { + "type": "boolean" + }, + "SpotPrice": { + "type": "string" + }, + "TargetCapacity": { + "type": "number" + }, + "TerminateInstancesWithExpiration": { + "type": "boolean" }, "Type": { - "enum": [ - "AWS::EC2::VPCEndpoint" - ], + "type": "string" + }, + "ValidFrom": { + "type": "string" + }, + "ValidUntil": { "type": "string" } }, "required": [ - "Type", - "Properties" + "IamFleetRole", + "TargetCapacity" ], "type": "object" }, - "AWS::EC2::VPCEndpointConnectionNotification": { + "AWS::EC2::SpotFleet.SpotFleetTagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotPlacement": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "Tenancy": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.TargetGroup": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.TargetGroupsConfig": { + "additionalProperties": false, + "properties": { + "TargetGroups": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroup" + }, + "type": "array" + } + }, + "required": [ + "TargetGroups" + ], + "type": "object" + }, + "AWS::EC2::Subnet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15375,31 +15850,40 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ConnectionEvents": { - "items": { - "type": "string" - }, - "type": "array" + "AssignIpv6AddressOnCreation": { + "type": "boolean" }, - "ConnectionNotificationArn": { + "AvailabilityZone": { "type": "string" }, - "ServiceId": { + "CidrBlock": { "type": "string" }, - "VPCEndpointId": { + "Ipv6CidrBlock": { + "type": "string" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { "type": "string" } }, "required": [ - "ConnectionEvents", - "ConnectionNotificationArn" + "CidrBlock", + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpointConnectionNotification" + "AWS::EC2::Subnet" ], "type": "string" } @@ -15410,7 +15894,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCEndpointServicePermissions": { + "AWS::EC2::SubnetCidrBlock": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15442,24 +15926,22 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AllowedPrincipals": { - "items": { - "type": "string" - }, - "type": "array" + "Ipv6CidrBlock": { + "type": "string" }, - "ServiceId": { + "SubnetId": { "type": "string" } }, "required": [ - "ServiceId" + "Ipv6CidrBlock", + "SubnetId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpointServicePermissions" + "AWS::EC2::SubnetCidrBlock" ], "type": "string" } @@ -15470,7 +15952,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCGatewayAttachment": { + "AWS::EC2::SubnetNetworkAclAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15502,24 +15984,22 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "InternetGatewayId": { + "NetworkAclId": { "type": "string" }, - "VpcId": { - "type": "string" - }, - "VpnGatewayId": { + "SubnetId": { "type": "string" } }, "required": [ - "VpcId" + "NetworkAclId", + "SubnetId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCGatewayAttachment" + "AWS::EC2::SubnetNetworkAclAssociation" ], "type": "string" } @@ -15530,7 +16010,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCPeeringConnection": { + "AWS::EC2::SubnetRouteTableAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15562,37 +16042,22 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "PeerOwnerId": { - "type": "string" - }, - "PeerRegion": { - "type": "string" - }, - "PeerRoleArn": { - "type": "string" - }, - "PeerVpcId": { + "RouteTableId": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VpcId": { + "SubnetId": { "type": "string" } }, "required": [ - "PeerVpcId", - "VpcId" + "RouteTableId", + "SubnetId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCPeeringConnection" + "AWS::EC2::SubnetRouteTableAssociation" ], "type": "string" } @@ -15603,7 +16068,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VPNConnection": { + "AWS::EC2::TransitGateway": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15635,64 +16100,49 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CustomerGatewayId": { + "AmazonSideAsn": { + "type": "number" + }, + "AutoAcceptSharedAttachments": { "type": "string" }, - "StaticRoutesOnly": { - "type": "boolean" + "DefaultRouteTableAssociation": { + "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "DefaultRouteTablePropagation": { + "type": "string" }, - "Type": { + "Description": { "type": "string" }, - "VpnGatewayId": { + "DnsSupport": { "type": "string" }, - "VpnTunnelOptionsSpecifications": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification" + "$ref": "#/definitions/Tag" }, "type": "array" + }, + "VpnEcmpSupport": { + "type": "string" } }, - "required": [ - "CustomerGatewayId", - "Type", - "VpnGatewayId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNConnection" + "AWS::EC2::TransitGateway" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification": { - "additionalProperties": false, - "properties": { - "PreSharedKey": { - "type": "string" - }, - "TunnelInsideCidr": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::VPNConnectionRoute": { + "AWS::EC2::TransitGatewayAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15724,22 +16174,35 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DestinationCidrBlock": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitGatewayId": { "type": "string" }, - "VpnConnectionId": { + "VpcId": { "type": "string" } }, "required": [ - "DestinationCidrBlock", - "VpnConnectionId" + "SubnetIds", + "TransitGatewayId", + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNConnectionRoute" + "AWS::EC2::TransitGatewayAttachment" ], "type": "string" } @@ -15750,7 +16213,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VPNGateway": { + "AWS::EC2::TransitGatewayRoute": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15782,27 +16245,27 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AmazonSideAsn": { - "type": "number" + "Blackhole": { + "type": "boolean" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "DestinationCidrBlock": { + "type": "string" }, - "Type": { + "TransitGatewayAttachmentId": { + "type": "string" + }, + "TransitGatewayRouteTableId": { "type": "string" } }, "required": [ - "Type" + "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNGateway" + "AWS::EC2::TransitGatewayRoute" ], "type": "string" } @@ -15813,7 +16276,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VPNGatewayRoutePropagation": { + "AWS::EC2::TransitGatewayRouteTable": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15845,25 +16308,24 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "RouteTableIds": { + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "VpnGatewayId": { + "TransitGatewayId": { "type": "string" } }, "required": [ - "RouteTableIds", - "VpnGatewayId" + "TransitGatewayId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNGatewayRoutePropagation" + "AWS::EC2::TransitGatewayRouteTable" ], "type": "string" } @@ -15874,7 +16336,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::Volume": { + "AWS::EC2::TransitGatewayRouteTableAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15906,45 +16368,22 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AutoEnableIO": { - "type": "boolean" - }, - "AvailabilityZone": { - "type": "string" - }, - "Encrypted": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "KmsKeyId": { - "type": "string" - }, - "Size": { - "type": "number" - }, - "SnapshotId": { + "TransitGatewayAttachmentId": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VolumeType": { + "TransitGatewayRouteTableId": { "type": "string" } }, "required": [ - "AvailabilityZone" + "TransitGatewayAttachmentId", + "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Volume" + "AWS::EC2::TransitGatewayRouteTableAssociation" ], "type": "string" } @@ -15955,7 +16394,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VolumeAttachment": { + "AWS::EC2::TransitGatewayRouteTablePropagation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15987,26 +16426,22 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Device": { - "type": "string" - }, - "InstanceId": { + "TransitGatewayAttachmentId": { "type": "string" }, - "VolumeId": { + "TransitGatewayRouteTableId": { "type": "string" } }, "required": [ - "Device", - "InstanceId", - "VolumeId" + "TransitGatewayAttachmentId", + "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VolumeAttachment" + "AWS::EC2::TransitGatewayRouteTablePropagation" ], "type": "string" } @@ -16017,7 +16452,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::ECR::Repository": { + "AWS::EC2::TrunkInterfaceAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -16049,43 +16484,39 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "LifecyclePolicy": { - "$ref": "#/definitions/AWS::ECR::Repository.LifecyclePolicy" + "BranchInterfaceId": { + "type": "string" }, - "RepositoryName": { + "GREKey": { + "type": "number" + }, + "TrunkInterfaceId": { "type": "string" }, - "RepositoryPolicyText": { - "type": "object" + "VLANId": { + "type": "number" } }, + "required": [ + "BranchInterfaceId", + "TrunkInterfaceId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ECR::Repository" + "AWS::EC2::TrunkInterfaceAssociation" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECR::Repository.LifecyclePolicy": { - "additionalProperties": false, - "properties": { - "LifecyclePolicyText": { - "type": "string" - }, - "RegistryId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::Cluster": { + "AWS::EC2::VPC": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -16117,25 +16548,44 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ClusterName": { + "CidrBlock": { + "type": "string" + }, + "EnableDnsHostnames": { + "type": "boolean" + }, + "EnableDnsSupport": { + "type": "boolean" + }, + "InstanceTenancy": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, + "required": [ + "CidrBlock" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ECS::Cluster" + "AWS::EC2::VPC" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::Service": { + "AWS::EC2::VPCCidrBlock": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -16167,72 +16617,167 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Cluster": { - "type": "string" + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" }, - "DeploymentConfiguration": { - "$ref": "#/definitions/AWS::ECS::Service.DeploymentConfiguration" + "CidrBlock": { + "type": "string" }, - "DesiredCount": { - "type": "number" + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCCidrBlock" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPCDHCPOptionsAssociation": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, - "HealthCheckGracePeriodSeconds": { - "type": "number" + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DhcpOptionsId": { + "type": "string" }, - "LaunchType": { + "VpcId": { + "type": "string" + } + }, + "required": [ + "DhcpOptionsId", + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCDHCPOptionsAssociation" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPCEndpoint": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - "LoadBalancers": { + { "items": { - "$ref": "#/definitions/AWS::ECS::Service.LoadBalancer" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" }, - "NetworkConfiguration": { - "$ref": "#/definitions/AWS::ECS::Service.NetworkConfiguration" + "PrivateDnsEnabled": { + "type": "boolean" }, - "PlacementConstraints": { + "RouteTableIds": { "items": { - "$ref": "#/definitions/AWS::ECS::Service.PlacementConstraint" + "type": "string" }, "type": "array" }, - "PlacementStrategies": { + "SecurityGroupIds": { "items": { - "$ref": "#/definitions/AWS::ECS::Service.PlacementStrategy" + "type": "string" }, "type": "array" }, - "PlatformVersion": { - "type": "string" - }, - "Role": { - "type": "string" - }, - "SchedulingStrategy": { - "type": "string" - }, "ServiceName": { "type": "string" }, - "ServiceRegistries": { + "SubnetIds": { "items": { - "$ref": "#/definitions/AWS::ECS::Service.ServiceRegistry" + "type": "string" }, "type": "array" }, - "TaskDefinition": { + "VpcEndpointType": { + "type": "string" + }, + "VpcId": { "type": "string" } }, "required": [ - "TaskDefinition" + "ServiceName", + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::ECS::Service" + "AWS::EC2::VPCEndpoint" ], "type": "string" } @@ -16243,121 +16788,267 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::ECS::Service.AwsVpcConfiguration": { + "AWS::EC2::VPCEndpointConnectionNotification": { "additionalProperties": false, "properties": { - "AssignPublicIp": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "SecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Subnets": { - "items": { - "type": "string" + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ConnectionEvents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ConnectionNotificationArn": { + "type": "string" + }, + "ServiceId": { + "type": "string" + }, + "VPCEndpointId": { + "type": "string" + } }, - "type": "array" + "required": [ + "ConnectionEvents", + "ConnectionNotificationArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCEndpointConnectionNotification" + ], + "type": "string" } }, "required": [ - "Subnets" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::Service.DeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "MaximumPercent": { - "type": "number" - }, - "MinimumHealthyPercent": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ECS::Service.LoadBalancer": { + "AWS::EC2::VPCEndpointServicePermissions": { "additionalProperties": false, "properties": { - "ContainerName": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "ContainerPort": { - "type": "number" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "LoadBalancerName": { - "type": "string" + "Metadata": { + "type": "object" }, - "TargetGroupArn": { - "type": "string" - } - }, - "required": [ - "ContainerPort" - ], - "type": "object" - }, - "AWS::ECS::Service.NetworkConfiguration": { - "additionalProperties": false, - "properties": { - "AwsvpcConfiguration": { - "$ref": "#/definitions/AWS::ECS::Service.AwsVpcConfiguration" - } - }, - "type": "object" - }, - "AWS::ECS::Service.PlacementConstraint": { - "additionalProperties": false, - "properties": { - "Expression": { - "type": "string" + "Properties": { + "additionalProperties": false, + "properties": { + "AllowedPrincipals": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ServiceId": { + "type": "string" + } + }, + "required": [ + "ServiceId" + ], + "type": "object" }, "Type": { + "enum": [ + "AWS::EC2::VPCEndpointServicePermissions" + ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::Service.PlacementStrategy": { + "AWS::EC2::VPCGatewayAttachment": { "additionalProperties": false, "properties": { - "Field": { + "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": { + "InternetGatewayId": { + "type": "string" + }, + "VpcId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + } + }, + "required": [ + "VpcId" + ], + "type": "object" + }, "Type": { + "enum": [ + "AWS::EC2::VPCGatewayAttachment" + ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::Service.ServiceRegistry": { + "AWS::EC2::VPCPeeringConnection": { "additionalProperties": false, "properties": { - "ContainerName": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "ContainerPort": { - "type": "number" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Port": { - "type": "number" + "Metadata": { + "type": "object" }, - "RegistryArn": { + "Properties": { + "additionalProperties": false, + "properties": { + "PeerOwnerId": { + "type": "string" + }, + "PeerRegion": { + "type": "string" + }, + "PeerRoleArn": { + "type": "string" + }, + "PeerVpcId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "PeerVpcId", + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCPeeringConnection" + ], "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::ECS::TaskDefinition": { + "AWS::EC2::VPNConnection": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -16389,502 +17080,122 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ContainerDefinitions": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.ContainerDefinition" - }, - "type": "array" - }, - "Cpu": { - "type": "string" - }, - "ExecutionRoleArn": { - "type": "string" - }, - "Family": { - "type": "string" - }, - "Memory": { + "CustomerGatewayId": { "type": "string" }, - "NetworkMode": { - "type": "string" + "StaticRoutesOnly": { + "type": "boolean" }, - "PlacementConstraints": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "RequiresCompatibilities": { - "items": { - "type": "string" - }, - "type": "array" + "Type": { + "type": "string" }, - "TaskRoleArn": { + "VpnGatewayId": { "type": "string" }, - "Volumes": { + "VpnTunnelOptionsSpecifications": { "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.Volume" + "$ref": "#/definitions/AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification" }, "type": "array" } }, + "required": [ + "CustomerGatewayId", + "Type", + "VpnGatewayId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ECS::TaskDefinition" + "AWS::EC2::VPNConnection" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::TaskDefinition.ContainerDefinition": { + "AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification": { "additionalProperties": false, "properties": { - "Command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Cpu": { - "type": "number" + "PreSharedKey": { + "type": "string" }, - "DisableNetworking": { - "type": "boolean" + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::VPNConnectionRoute": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" }, - "DnsSearchDomains": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DnsServers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DockerLabels": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - }, - "type": "object" - }, - "DockerSecurityOptions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EntryPoint": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Environment": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.KeyValuePair" - }, - "type": "array" - }, - "Essential": { - "type": "boolean" - }, - "ExtraHosts": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostEntry" - }, - "type": "array" - }, - "HealthCheck": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.HealthCheck" - }, - "Hostname": { - "type": "string" - }, - "Image": { - "type": "string" - }, - "Links": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LinuxParameters": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.LinuxParameters" - }, - "LogConfiguration": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.LogConfiguration" - }, - "Memory": { - "type": "number" - }, - "MemoryReservation": { - "type": "number" - }, - "MountPoints": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.MountPoint" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "PortMappings": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.PortMapping" - }, - "type": "array" - }, - "Privileged": { - "type": "boolean" - }, - "ReadonlyRootFilesystem": { - "type": "boolean" - }, - "RepositoryCredentials": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.RepositoryCredentials" - }, - "Ulimits": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.Ulimit" - }, - "type": "array" - }, - "User": { - "type": "string" - }, - "VolumesFrom": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.VolumeFrom" - }, - "type": "array" - }, - "WorkingDirectory": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.Device": { - "additionalProperties": false, - "properties": { - "ContainerPath": { - "type": "string" - }, - "HostPath": { - "type": "string" - }, - "Permissions": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "HostPath" - ], - "type": "object" - }, - "AWS::ECS::TaskDefinition.DockerVolumeConfiguration": { - "additionalProperties": false, - "properties": { - "Autoprovision": { - "type": "boolean" - }, - "Driver": { - "type": "string" + ] }, - "DriverOpts": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, + "Metadata": { "type": "object" }, - "Labels": { + "Properties": { "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { + "properties": { + "DestinationCidrBlock": { "type": "string" - } - }, - "type": "object" - }, - "Scope": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.HealthCheck": { - "additionalProperties": false, - "properties": { - "Command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Interval": { - "type": "number" - }, - "Retries": { - "type": "number" - }, - "StartPeriod": { - "type": "number" - }, - "Timeout": { - "type": "number" - } - }, - "required": [ - "Command" - ], - "type": "object" - }, - "AWS::ECS::TaskDefinition.HostEntry": { - "additionalProperties": false, - "properties": { - "Hostname": { - "type": "string" - }, - "IpAddress": { - "type": "string" - } - }, - "required": [ - "Hostname", - "IpAddress" - ], - "type": "object" - }, - "AWS::ECS::TaskDefinition.HostVolumeProperties": { - "additionalProperties": false, - "properties": { - "SourcePath": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.KernelCapabilities": { - "additionalProperties": false, - "properties": { - "Add": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Drop": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.KeyValuePair": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.LinuxParameters": { - "additionalProperties": false, - "properties": { - "Capabilities": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.KernelCapabilities" - }, - "Devices": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.Device" - }, - "type": "array" - }, - "InitProcessEnabled": { - "type": "boolean" - }, - "SharedMemorySize": { - "type": "number" - }, - "Tmpfs": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.Tmpfs" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.LogConfiguration": { - "additionalProperties": false, - "properties": { - "LogDriver": { - "type": "string" - }, - "Options": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { + }, + "VpnConnectionId": { "type": "string" } }, + "required": [ + "DestinationCidrBlock", + "VpnConnectionId" + ], "type": "object" - } - }, - "required": [ - "LogDriver" - ], - "type": "object" - }, - "AWS::ECS::TaskDefinition.MountPoint": { - "additionalProperties": false, - "properties": { - "ContainerPath": { - "type": "string" - }, - "ReadOnly": { - "type": "boolean" - }, - "SourceVolume": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.PortMapping": { - "additionalProperties": false, - "properties": { - "ContainerPort": { - "type": "number" - }, - "HostPort": { - "type": "number" - }, - "Protocol": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.RepositoryCredentials": { - "additionalProperties": false, - "properties": { - "CredentialsParameter": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint": { - "additionalProperties": false, - "properties": { - "Expression": { - "type": "string" }, "Type": { + "enum": [ + "AWS::EC2::VPNConnectionRoute" + ], "type": "string" } }, "required": [ - "Type" - ], - "type": "object" - }, - "AWS::ECS::TaskDefinition.Tmpfs": { - "additionalProperties": false, - "properties": { - "ContainerPath": { - "type": "string" - }, - "MountOptions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Size": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.Ulimit": { - "additionalProperties": false, - "properties": { - "HardLimit": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "SoftLimit": { - "type": "number" - } - }, - "required": [ - "HardLimit", - "Name", - "SoftLimit" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::TaskDefinition.Volume": { - "additionalProperties": false, - "properties": { - "DockerVolumeConfiguration": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.DockerVolumeConfiguration" - }, - "Host": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostVolumeProperties" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.VolumeFrom": { - "additionalProperties": false, - "properties": { - "ReadOnly": { - "type": "boolean" - }, - "SourceContainer": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EFS::FileSystem": { + "AWS::EC2::VPNGateway": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -16916,59 +17227,38 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Encrypted": { - "type": "boolean" + "AmazonSideAsn": { + "type": "number" }, - "FileSystemTags": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::EFS::FileSystem.ElasticFileSystemTag" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "KmsKeyId": { - "type": "string" - }, - "PerformanceMode": { - "type": "string" - }, - "ProvisionedThroughputInMibps": { - "type": "number" - }, - "ThroughputMode": { + "Type": { "type": "string" } }, + "required": [ + "Type" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EFS::FileSystem" + "AWS::EC2::VPNGateway" ], "type": "string" } }, "required": [ - "Type" - ], - "type": "object" - }, - "AWS::EFS::FileSystem.ElasticFileSystemTag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Key", - "Value" + "Type", + "Properties" ], "type": "object" }, - "AWS::EFS::MountTarget": { + "AWS::EC2::VPNGatewayRoutePropagation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -17000,32 +17290,25 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "FileSystemId": { - "type": "string" - }, - "IpAddress": { - "type": "string" - }, - "SecurityGroups": { + "RouteTableIds": { "items": { "type": "string" }, "type": "array" }, - "SubnetId": { + "VpnGatewayId": { "type": "string" } }, "required": [ - "FileSystemId", - "SecurityGroups", - "SubnetId" + "RouteTableIds", + "VpnGatewayId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EFS::MountTarget" + "AWS::EC2::VPNGatewayRoutePropagation" ], "type": "string" } @@ -17036,7 +17319,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EKS::Cluster": { + "AWS::EC2::Volume": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -17068,28 +17351,45 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Name": { + "AutoEnableIO": { + "type": "boolean" + }, + "AvailabilityZone": { "type": "string" }, - "ResourcesVpcConfig": { - "$ref": "#/definitions/AWS::EKS::Cluster.ResourcesVpcConfig" + "Encrypted": { + "type": "boolean" }, - "RoleArn": { - "type": "string" + "Iops": { + "type": "number" }, - "Version": { + "KmsKeyId": { "type": "string" - } - }, - "required": [ - "ResourcesVpcConfig", - "RoleArn" + }, + "Size": { + "type": "number" + }, + "SnapshotId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "AvailabilityZone" ], "type": "object" }, "Type": { "enum": [ - "AWS::EKS::Cluster" + "AWS::EC2::Volume" ], "type": "string" } @@ -17100,28 +17400,69 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EKS::Cluster.ResourcesVpcConfig": { + "AWS::EC2::VolumeAttachment": { "additionalProperties": false, "properties": { - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" }, - "SubnetIds": { - "items": { - "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": { + "Device": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } }, - "type": "array" + "required": [ + "Device", + "InstanceId", + "VolumeId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VolumeAttachment" + ], + "type": "string" } }, "required": [ - "SubnetIds" + "Type", + "Properties" ], "type": "object" }, - "AWS::EMR::Cluster": { + "AWS::ECR::Repository": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -17153,90 +17494,190 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AdditionalInfo": { - "type": "object" + "LifecyclePolicy": { + "$ref": "#/definitions/AWS::ECR::Repository.LifecyclePolicy" }, - "Applications": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.Application" - }, - "type": "array" + "RepositoryName": { + "type": "string" }, - "AutoScalingRole": { + "RepositoryPolicyText": { + "type": "object" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECR::Repository" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECR::Repository.LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "type": "string" + }, + "RegistryId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::Cluster": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - "BootstrapActions": { + { "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.BootstrapActionConfig" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECS::Cluster" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECS::Service": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, - "Configurations": { + { "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" - }, - "CustomAmiId": { + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Cluster": { "type": "string" }, - "EbsRootVolumeSize": { + "DeploymentConfiguration": { + "$ref": "#/definitions/AWS::ECS::Service.DeploymentConfiguration" + }, + "DesiredCount": { "type": "number" }, - "Instances": { - "$ref": "#/definitions/AWS::EMR::Cluster.JobFlowInstancesConfig" + "HealthCheckGracePeriodSeconds": { + "type": "number" }, - "JobFlowRole": { + "LaunchType": { "type": "string" }, - "KerberosAttributes": { - "$ref": "#/definitions/AWS::EMR::Cluster.KerberosAttributes" + "LoadBalancers": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.LoadBalancer" + }, + "type": "array" }, - "LogUri": { - "type": "string" + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::ECS::Service.NetworkConfiguration" }, - "Name": { - "type": "string" + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.PlacementConstraint" + }, + "type": "array" }, - "ReleaseLabel": { - "type": "string" + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.PlacementStrategy" + }, + "type": "array" }, - "ScaleDownBehavior": { + "PlatformVersion": { "type": "string" }, - "SecurityConfiguration": { + "Role": { "type": "string" }, - "ServiceRole": { + "SchedulingStrategy": { "type": "string" }, - "Steps": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.StepConfig" - }, - "type": "array" + "ServiceName": { + "type": "string" }, - "Tags": { + "ServiceRegistries": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::ECS::Service.ServiceRegistry" }, "type": "array" }, - "VisibleToAllUsers": { - "type": "boolean" + "TaskDefinition": { + "type": "string" } }, "required": [ - "Instances", - "JobFlowRole", - "Name", - "ServiceRole" + "TaskDefinition" ], "type": "object" }, "Type": { "enum": [ - "AWS::EMR::Cluster" + "AWS::ECS::Service" ], "type": "string" } @@ -17247,392 +17688,3229 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EMR::Cluster.Application": { + "AWS::ECS::Service.AwsVpcConfiguration": { "additionalProperties": false, "properties": { - "AdditionalInfo": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" + "AssignPublicIp": { + "type": "string" }, - "Args": { + "SecurityGroups": { "items": { "type": "string" }, "type": "array" }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EMR::Cluster.AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScalingConstraints" - }, - "Rules": { + "Subnets": { "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScalingRule" + "type": "string" }, "type": "array" } }, "required": [ - "Constraints", - "Rules" + "Subnets" ], "type": "object" }, - "AWS::EMR::Cluster.BootstrapActionConfig": { + "AWS::ECS::Service.DeploymentConfiguration": { "additionalProperties": false, "properties": { - "Name": { - "type": "string" + "MaximumPercent": { + "type": "number" }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScriptBootstrapActionConfig" + "MinimumHealthyPercent": { + "type": "number" } }, - "required": [ - "Name", - "ScriptBootstrapAction" - ], "type": "object" }, - "AWS::EMR::Cluster.CloudWatchAlarmDefinition": { + "AWS::ECS::Service.LoadBalancer": { "additionalProperties": false, "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.MetricDimension" - }, - "type": "array" - }, - "EvaluationPeriods": { - "type": "number" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { + "ContainerName": { "type": "string" }, - "Period": { + "ContainerPort": { "type": "number" }, - "Statistic": { + "LoadBalancerName": { "type": "string" }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "ComparisonOperator", - "MetricName", - "Period", - "Threshold" - ], - "type": "object" - }, - "AWS::EMR::Cluster.Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { + "TargetGroupArn": { "type": "string" - }, - "ConfigurationProperties": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::EMR::Cluster.EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/AWS::EMR::Cluster.VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "number" } }, "required": [ - "VolumeSpecification" + "ContainerPort" ], "type": "object" }, - "AWS::EMR::Cluster.EbsConfiguration": { + "AWS::ECS::Service.NetworkConfiguration": { "additionalProperties": false, "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.EbsBlockDeviceConfig" - }, - "type": "array" - }, - "EbsOptimized": { - "type": "boolean" + "AwsvpcConfiguration": { + "$ref": "#/definitions/AWS::ECS::Service.AwsVpcConfiguration" } }, "type": "object" }, - "AWS::EMR::Cluster.HadoopJarStepConfig": { + "AWS::ECS::Service.PlacementConstraint": { "additionalProperties": false, "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Jar": { + "Expression": { "type": "string" }, - "MainClass": { + "Type": { "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.KeyValue" - }, - "type": "array" } }, "required": [ - "Jar" + "Type" ], "type": "object" }, - "AWS::EMR::Cluster.InstanceFleetConfig": { + "AWS::ECS::Service.PlacementStrategy": { "additionalProperties": false, "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceTypeConfig" - }, - "type": "array" - }, - "LaunchSpecifications": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications" - }, - "Name": { + "Field": { "type": "string" }, - "TargetOnDemandCapacity": { - "type": "number" - }, - "TargetSpotCapacity": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "SpotSpecification": { - "$ref": "#/definitions/AWS::EMR::Cluster.SpotProvisioningSpecification" + "Type": { + "type": "string" } }, "required": [ - "SpotSpecification" + "Type" ], "type": "object" }, - "AWS::EMR::Cluster.InstanceGroupConfig": { + "AWS::ECS::Service.ServiceRegistry": { "additionalProperties": false, "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AWS::EMR::Cluster.AutoScalingPolicy" - }, - "BidPrice": { + "ContainerName": { "type": "string" }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" - }, - "type": "array" - }, - "EbsConfiguration": { - "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration" - }, - "InstanceCount": { + "ContainerPort": { "type": "number" }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" + "Port": { + "type": "number" }, - "Name": { + "RegistryArn": { "type": "string" } }, - "required": [ - "InstanceCount", - "InstanceType" - ], "type": "object" }, - "AWS::EMR::Cluster.InstanceTypeConfig": { + "AWS::ECS::TaskDefinition": { "additionalProperties": false, "properties": { - "BidPrice": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" - }, - "type": "array" - }, - "EbsConfiguration": { - "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration" - }, - "InstanceType": { - "type": "string" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "WeightedCapacity": { - "type": "number" + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ContainerDefinitions": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.ContainerDefinition" + }, + "type": "array" + }, + "Cpu": { + "type": "string" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Memory": { + "type": "string" + }, + "NetworkMode": { + "type": "string" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint" + }, + "type": "array" + }, + "RequiresCompatibilities": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TaskRoleArn": { + "type": "string" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Volume" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECS::TaskDefinition" + ], + "type": "string" } }, "required": [ - "InstanceType" + "Type" ], "type": "object" }, - "AWS::EMR::Cluster.JobFlowInstancesConfig": { + "AWS::ECS::TaskDefinition.ContainerDefinition": { "additionalProperties": false, "properties": { - "AdditionalMasterSecurityGroups": { + "Command": { "items": { "type": "string" }, "type": "array" }, - "AdditionalSlaveSecurityGroups": { + "Cpu": { + "type": "number" + }, + "DisableNetworking": { + "type": "boolean" + }, + "DnsSearchDomains": { "items": { "type": "string" }, "type": "array" }, - "CoreInstanceFleet": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + "DnsServers": { + "items": { + "type": "string" + }, + "type": "array" }, - "CoreInstanceGroup": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + "DockerLabels": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" }, - "Ec2KeyName": { + "DockerSecurityOptions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EntryPoint": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Environment": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.KeyValuePair" + }, + "type": "array" + }, + "Essential": { + "type": "boolean" + }, + "ExtraHosts": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostEntry" + }, + "type": "array" + }, + "HealthCheck": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.HealthCheck" + }, + "Hostname": { "type": "string" }, - "Ec2SubnetId": { + "Image": { "type": "string" }, - "EmrManagedMasterSecurityGroup": { + "Links": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LinuxParameters": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.LogConfiguration" + }, + "Memory": { + "type": "number" + }, + "MemoryReservation": { + "type": "number" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.MountPoint" + }, + "type": "array" + }, + "Name": { "type": "string" }, - "EmrManagedSlaveSecurityGroup": { + "PortMappings": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.PortMapping" + }, + "type": "array" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.RepositoryCredentials" + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Ulimit" + }, + "type": "array" + }, + "User": { "type": "string" }, - "HadoopVersion": { + "VolumesFrom": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.VolumeFrom" + }, + "type": "array" + }, + "WorkingDirectory": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.Device": { + "additionalProperties": false, + "properties": { + "ContainerPath": { "type": "string" }, - "KeepJobFlowAliveWhenNoSteps": { + "HostPath": { + "type": "string" + }, + "Permissions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "HostPath" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.DockerVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Autoprovision": { "type": "boolean" }, - "MasterInstanceFleet": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + "Driver": { + "type": "string" }, - "MasterInstanceGroup": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + "DriverOpts": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" }, - "Placement": { - "$ref": "#/definitions/AWS::EMR::Cluster.PlacementType" + "Labels": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" }, - "ServiceAccessSecurityGroup": { + "Scope": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.HealthCheck": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Interval": { + "type": "number" + }, + "Retries": { + "type": "number" + }, + "StartPeriod": { + "type": "number" + }, + "Timeout": { + "type": "number" + } + }, + "required": [ + "Command" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.HostEntry": { + "additionalProperties": false, + "properties": { + "Hostname": { "type": "string" }, - "TerminationProtected": { + "IpAddress": { + "type": "string" + } + }, + "required": [ + "Hostname", + "IpAddress" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.HostVolumeProperties": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.KernelCapabilities": { + "additionalProperties": false, + "properties": { + "Add": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Drop": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.KeyValuePair": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.LinuxParameters": { + "additionalProperties": false, + "properties": { + "Capabilities": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.KernelCapabilities" + }, + "Devices": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Device" + }, + "type": "array" + }, + "InitProcessEnabled": { "type": "boolean" + }, + "SharedMemorySize": { + "type": "number" + }, + "Tmpfs": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Tmpfs" + }, + "type": "array" } }, "type": "object" }, - "AWS::EMR::Cluster.KerberosAttributes": { + "AWS::ECS::TaskDefinition.LogConfiguration": { "additionalProperties": false, "properties": { - "ADDomainJoinPassword": { + "LogDriver": { "type": "string" }, - "ADDomainJoinUser": { + "Options": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "LogDriver" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.MountPoint": { + "additionalProperties": false, + "properties": { + "ContainerPath": { "type": "string" }, - "CrossRealmTrustPrincipalPassword": { + "ReadOnly": { + "type": "boolean" + }, + "SourceVolume": { "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.PortMapping": { + "additionalProperties": false, + "properties": { + "ContainerPort": { + "type": "number" }, - "KdcAdminPassword": { + "HostPort": { + "type": "number" + }, + "Protocol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.RepositoryCredentials": { + "additionalProperties": false, + "properties": { + "CredentialsParameter": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.Tmpfs": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "MountOptions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Size": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "SoftLimit": { + "type": "number" + } + }, + "required": [ + "HardLimit", + "Name", + "SoftLimit" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.Volume": { + "additionalProperties": false, + "properties": { + "DockerVolumeConfiguration": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.DockerVolumeConfiguration" + }, + "Host": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostVolumeProperties" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.VolumeFrom": { + "additionalProperties": false, + "properties": { + "ReadOnly": { + "type": "boolean" + }, + "SourceContainer": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EFS::FileSystem": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "Realm": { + "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": { + "Encrypted": { + "type": "boolean" + }, + "FileSystemTags": { + "items": { + "$ref": "#/definitions/AWS::EFS::FileSystem.ElasticFileSystemTag" + }, + "type": "array" + }, + "KmsKeyId": { + "type": "string" + }, + "PerformanceMode": { + "type": "string" + }, + "ProvisionedThroughputInMibps": { + "type": "number" + }, + "ThroughputMode": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EFS::FileSystem" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EFS::FileSystem.ElasticFileSystemTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EFS::MountTarget": { + "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": { + "FileSystemId": { + "type": "string" + }, + "IpAddress": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "FileSystemId", + "SecurityGroups", + "SubnetId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EFS::MountTarget" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EKS::Cluster": { + "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": { + "Name": { + "type": "string" + }, + "ResourcesVpcConfig": { + "$ref": "#/definitions/AWS::EKS::Cluster.ResourcesVpcConfig" + }, + "RoleArn": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "ResourcesVpcConfig", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EKS::Cluster" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EKS::Cluster.ResourcesVpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SubnetIds" + ], + "type": "object" + }, + "AWS::EMR::Cluster": { + "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": { + "AdditionalInfo": { + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Application" + }, + "type": "array" + }, + "AutoScalingRole": { + "type": "string" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.BootstrapActionConfig" + }, + "type": "array" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "type": "array" + }, + "CustomAmiId": { + "type": "string" + }, + "EbsRootVolumeSize": { + "type": "number" + }, + "Instances": { + "$ref": "#/definitions/AWS::EMR::Cluster.JobFlowInstancesConfig" + }, + "JobFlowRole": { + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/AWS::EMR::Cluster.KerberosAttributes" + }, + "LogUri": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ReleaseLabel": { + "type": "string" + }, + "ScaleDownBehavior": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "Steps": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.StepConfig" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VisibleToAllUsers": { + "type": "boolean" + } + }, + "required": [ + "Instances", + "JobFlowRole", + "Name", + "ServiceRole" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::Cluster" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::Cluster.Application": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingRule" + }, + "type": "array" + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AWS::EMR::Cluster.BootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScriptBootstrapActionConfig" + } + }, + "required": [ + "Name", + "ScriptBootstrapAction" + ], + "type": "object" + }, + "AWS::EMR::Cluster.CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.MetricDimension" + }, + "type": "array" + }, + "EvaluationPeriods": { + "type": "number" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "number" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "MetricName", + "Period", + "Threshold" + ], + "type": "object" + }, + "AWS::EMR::Cluster.Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/AWS::EMR::Cluster.VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "number" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "AWS::EMR::Cluster.EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.EbsBlockDeviceConfig" + }, + "type": "array" + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.KeyValue" + }, + "type": "array" + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "AWS::EMR::Cluster.InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceTypeConfig" + }, + "type": "array" + }, + "LaunchSpecifications": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "number" + }, + "TargetSpotCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "SpotSpecification": { + "$ref": "#/definitions/AWS::EMR::Cluster.SpotProvisioningSpecification" + } + }, + "required": [ + "SpotSpecification" + ], + "type": "object" + }, + "AWS::EMR::Cluster.InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AWS::EMR::Cluster.AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "type": "array" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration" + }, + "InstanceCount": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "AWS::EMR::Cluster.InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "type": "array" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration" + }, + "InstanceType": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "AWS::EMR::Cluster.JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + }, + "Ec2KeyName": { + "type": "string" + }, + "Ec2SubnetId": { + "type": "string" + }, + "EmrManagedMasterSecurityGroup": { + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "type": "string" + }, + "HadoopVersion": { + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + }, + "Placement": { + "$ref": "#/definitions/AWS::EMR::Cluster.PlacementType" + }, + "ServiceAccessSecurityGroup": { + "type": "string" + }, + "TerminationProtected": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "type": "string" + }, + "ADDomainJoinUser": { + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "type": "string" + }, + "KdcAdminPassword": { + "type": "string" + }, + "Realm": { + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "AWS::EMR::Cluster.KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EMR::Cluster.PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::EMR::Cluster.SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "required": [ + "MaxCapacity", + "MinCapacity" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingTrigger" + } + }, + "required": [ + "Action", + "Name", + "Trigger" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/AWS::EMR::Cluster.CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "AWS::EMR::Cluster.SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "number" + }, + "ScalingAdjustment": { + "type": "number" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "AWS::EMR::Cluster.SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "BlockDurationMinutes": { + "type": "number" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "number" + } + }, + "required": [ + "TimeoutAction", + "TimeoutDurationMinutes" + ], + "type": "object" + }, + "AWS::EMR::Cluster.StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/AWS::EMR::Cluster.HadoopJarStepConfig" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "AWS::EMR::Cluster.VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "number" + }, + "SizeInGB": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig": { + "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": { + "ClusterId": { + "type": "string" + }, + "InstanceFleetType": { + "type": "string" + }, + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceTypeConfig" + }, + "type": "array" + }, + "LaunchSpecifications": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "number" + }, + "TargetSpotCapacity": { + "type": "number" + } + }, + "required": [ + "ClusterId", + "InstanceFleetType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::InstanceFleetConfig" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "number" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig" + }, + "type": "array" + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "SpotSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification" + } + }, + "required": [ + "SpotSpecification" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration" + }, + "type": "array" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsConfiguration" + }, + "InstanceType": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "BlockDurationMinutes": { + "type": "number" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "number" + } + }, + "required": [ + "TimeoutAction", + "TimeoutDurationMinutes" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "number" + }, + "SizeInGB": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig": { + "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": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration" + }, + "type": "array" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsConfiguration" + }, + "InstanceCount": { + "type": "number" + }, + "InstanceRole": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "JobFlowId": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceRole", + "InstanceType", + "JobFlowId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::InstanceGroupConfig" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingRule" + }, + "type": "array" + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.MetricDimension" + }, + "type": "array" + }, + "EvaluationPeriods": { + "type": "number" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "number" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "MetricName", + "Period", + "Threshold" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "number" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig" + }, + "type": "array" + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "required": [ + "MaxCapacity", + "MinCapacity" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingTrigger" + } + }, + "required": [ + "Action", + "Name", + "Trigger" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "number" + }, + "ScalingAdjustment": { + "type": "number" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "number" + }, + "SizeInGB": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + }, + "AWS::EMR::SecurityConfiguration": { + "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": { + "Name": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "object" + } + }, + "required": [ + "SecurityConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::SecurityConfiguration" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::Step": { + "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": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/AWS::EMR::Step.HadoopJarStepConfig" + }, + "JobFlowId": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "ActionOnFailure", + "HadoopJarStep", + "JobFlowId", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::Step" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::Step.HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/AWS::EMR::Step.KeyValue" + }, + "type": "array" + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "AWS::EMR::Step.KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElastiCache::CacheCluster": { + "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": { + "AZMode": { + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "CacheNodeType": { + "type": "string" + }, + "CacheParameterGroupName": { + "type": "string" + }, + "CacheSecurityGroupNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CacheSubnetGroupName": { + "type": "string" + }, + "ClusterName": { + "type": "string" + }, + "Engine": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "NotificationTopicArn": { + "type": "string" + }, + "NumCacheNodes": { + "type": "number" + }, + "Port": { + "type": "number" + }, + "PreferredAvailabilityZone": { + "type": "string" + }, + "PreferredAvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "SnapshotArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotName": { + "type": "string" + }, + "SnapshotRetentionLimit": { + "type": "number" + }, + "SnapshotWindow": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "CacheNodeType", + "Engine", + "NumCacheNodes" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::CacheCluster" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::ParameterGroup": { + "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": { + "CacheParameterGroupFamily": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Properties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "CacheParameterGroupFamily", + "Description" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::ParameterGroup" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::ReplicationGroup": { + "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": { + "AtRestEncryptionEnabled": { + "type": "boolean" + }, + "AuthToken": { + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AutomaticFailoverEnabled": { + "type": "boolean" + }, + "CacheNodeType": { + "type": "string" + }, + "CacheParameterGroupName": { + "type": "string" + }, + "CacheSecurityGroupNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CacheSubnetGroupName": { + "type": "string" + }, + "Engine": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "NodeGroupConfiguration": { + "items": { + "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration" + }, + "type": "array" + }, + "NotificationTopicArn": { + "type": "string" + }, + "NumCacheClusters": { + "type": "number" + }, + "NumNodeGroups": { + "type": "number" + }, + "Port": { + "type": "number" + }, + "PreferredCacheClusterAZs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PrimaryClusterId": { + "type": "string" + }, + "ReplicasPerNodeGroup": { + "type": "number" + }, + "ReplicationGroupDescription": { + "type": "string" + }, + "ReplicationGroupId": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotName": { + "type": "string" + }, + "SnapshotRetentionLimit": { + "type": "number" + }, + "SnapshotWindow": { + "type": "string" + }, + "SnapshottingClusterId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitEncryptionEnabled": { + "type": "boolean" + } + }, + "required": [ + "ReplicationGroupDescription" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::ReplicationGroup" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration": { + "additionalProperties": false, + "properties": { + "NodeGroupId": { + "type": "string" + }, + "PrimaryAvailabilityZone": { + "type": "string" + }, + "ReplicaAvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ReplicaCount": { + "type": "number" + }, + "Slots": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElastiCache::SecurityGroup": { + "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" + } + }, + "required": [ + "Description" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::SecurityGroup" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::SecurityGroupIngress": { + "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": { + "CacheSecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupOwnerId": { + "type": "string" + } + }, + "required": [ + "CacheSecurityGroupName", + "EC2SecurityGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::SecurityGroupIngress" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::SubnetGroup": { + "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": { + "CacheSubnetGroupName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Description", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::SubnetGroup" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::Application": { + "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": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "ResourceLifecycleConfig": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticBeanstalk::Application" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig": { + "additionalProperties": false, + "properties": { + "ServiceRole": { + "type": "string" + }, + "VersionLifecycleConfig": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig": { + "additionalProperties": false, + "properties": { + "MaxAgeRule": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxAgeRule" + }, + "MaxCountRule": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxCountRule" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.MaxAgeRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxAgeInDays": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.MaxCountRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxCount": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::ApplicationVersion": { + "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": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "SourceBundle": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle" + } + }, + "required": [ + "ApplicationName", + "SourceBundle" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticBeanstalk::ApplicationVersion" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::ConfigurationTemplate": { + "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": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EnvironmentId": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting" + }, + "type": "array" + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "SourceConfiguration": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration" + } + }, + "required": [ + "ApplicationName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticBeanstalk::ConfigurationTemplate" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "OptionName": { + "type": "string" + }, + "ResourceName": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration": { + "additionalProperties": false, + "properties": { + "ApplicationName": { + "type": "string" + }, + "TemplateName": { + "type": "string" + } + }, + "required": [ + "ApplicationName", + "TemplateName" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::Environment": { + "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": { + "ApplicationName": { + "type": "string" + }, + "CNAMEPrefix": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EnvironmentName": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.OptionSetting" + }, + "type": "array" + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TemplateName": { + "type": "string" + }, + "Tier": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.Tier" + }, + "VersionLabel": { + "type": "string" + } + }, + "required": [ + "ApplicationName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticBeanstalk::Environment" + ], "type": "string" } }, "required": [ - "KdcAdminPassword", - "Realm" + "Type", + "Properties" ], "type": "object" }, - "AWS::EMR::Cluster.KeyValue": { + "AWS::ElasticBeanstalk::Environment.OptionSetting": { "additionalProperties": false, "properties": { - "Key": { + "Namespace": { "type": "string" }, - "Value": { + "OptionName": { "type": "string" - } - }, - "type": "object" - }, - "AWS::EMR::Cluster.MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { + }, + "ResourceName": { "type": "string" }, "Value": { @@ -17640,183 +20918,325 @@ var CloudformationSchema = `{ } }, "required": [ - "Key", - "Value" + "Namespace", + "OptionName" ], "type": "object" }, - "AWS::EMR::Cluster.PlacementType": { + "AWS::ElasticBeanstalk::Environment.Tier": { "additionalProperties": false, "properties": { - "AvailabilityZone": { + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Version": { "type": "string" } }, - "required": [ - "AvailabilityZone" - ], "type": "object" }, - "AWS::EMR::Cluster.ScalingAction": { + "AWS::ElasticLoadBalancing::LoadBalancer": { "additionalProperties": false, "properties": { - "Market": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/AWS::EMR::Cluster.SimpleScalingPolicyConfiguration" + "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": { + "AccessLoggingPolicy": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy" + }, + "AppCookieStickinessPolicy": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy" + }, + "type": "array" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ConnectionDrainingPolicy": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy" + }, + "ConnectionSettings": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings" + }, + "CrossZone": { + "type": "boolean" + }, + "HealthCheck": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck" + }, + "Instances": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LBCookieStickinessPolicy": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy" + }, + "type": "array" + }, + "Listeners": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Listeners" + }, + "type": "array" + }, + "LoadBalancerName": { + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Policies" + }, + "type": "array" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Listeners" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticLoadBalancing::LoadBalancer" + ], + "type": "string" } }, "required": [ - "SimpleScalingPolicyConfiguration" + "Type", + "Properties" ], "type": "object" }, - "AWS::EMR::Cluster.ScalingConstraints": { + "AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy": { "additionalProperties": false, "properties": { - "MaxCapacity": { + "EmitInterval": { "type": "number" }, - "MinCapacity": { - "type": "number" + "Enabled": { + "type": "boolean" + }, + "S3BucketName": { + "type": "string" + }, + "S3BucketPrefix": { + "type": "string" } }, "required": [ - "MaxCapacity", - "MinCapacity" + "Enabled", + "S3BucketName" ], "type": "object" }, - "AWS::EMR::Cluster.ScalingRule": { + "AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy": { "additionalProperties": false, "properties": { - "Action": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScalingAction" - }, - "Description": { + "CookieName": { "type": "string" }, - "Name": { + "PolicyName": { "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScalingTrigger" } }, "required": [ - "Action", - "Name", - "Trigger" + "CookieName", + "PolicyName" ], "type": "object" }, - "AWS::EMR::Cluster.ScalingTrigger": { + "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy": { "additionalProperties": false, "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/AWS::EMR::Cluster.CloudWatchAlarmDefinition" + "Enabled": { + "type": "boolean" + }, + "Timeout": { + "type": "number" } }, "required": [ - "CloudWatchAlarmDefinition" + "Enabled" ], "type": "object" }, - "AWS::EMR::Cluster.ScriptBootstrapActionConfig": { + "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings": { "additionalProperties": false, "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Path": { - "type": "string" + "IdleTimeout": { + "type": "number" } }, "required": [ - "Path" + "IdleTimeout" ], "type": "object" }, - "AWS::EMR::Cluster.SimpleScalingPolicyConfiguration": { + "AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck": { "additionalProperties": false, "properties": { - "AdjustmentType": { + "HealthyThreshold": { "type": "string" }, - "CoolDown": { - "type": "number" + "Interval": { + "type": "string" }, - "ScalingAdjustment": { - "type": "number" + "Target": { + "type": "string" + }, + "Timeout": { + "type": "string" + }, + "UnhealthyThreshold": { + "type": "string" } }, "required": [ - "ScalingAdjustment" + "HealthyThreshold", + "Interval", + "Target", + "Timeout", + "UnhealthyThreshold" ], "type": "object" }, - "AWS::EMR::Cluster.SpotProvisioningSpecification": { + "AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy": { "additionalProperties": false, "properties": { - "BlockDurationMinutes": { - "type": "number" - }, - "TimeoutAction": { + "CookieExpirationPeriod": { "type": "string" }, - "TimeoutDurationMinutes": { - "type": "number" + "PolicyName": { + "type": "string" } }, - "required": [ - "TimeoutAction", - "TimeoutDurationMinutes" - ], "type": "object" }, - "AWS::EMR::Cluster.StepConfig": { + "AWS::ElasticLoadBalancing::LoadBalancer.Listeners": { "additionalProperties": false, "properties": { - "ActionOnFailure": { + "InstancePort": { "type": "string" }, - "HadoopJarStep": { - "$ref": "#/definitions/AWS::EMR::Cluster.HadoopJarStepConfig" + "InstanceProtocol": { + "type": "string" }, - "Name": { + "LoadBalancerPort": { + "type": "string" + }, + "PolicyNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Protocol": { + "type": "string" + }, + "SSLCertificateId": { "type": "string" } }, "required": [ - "HadoopJarStep", - "Name" + "InstancePort", + "LoadBalancerPort", + "Protocol" ], "type": "object" }, - "AWS::EMR::Cluster.VolumeSpecification": { + "AWS::ElasticLoadBalancing::LoadBalancer.Policies": { "additionalProperties": false, "properties": { - "Iops": { - "type": "number" + "Attributes": { + "items": { + "type": "object" + }, + "type": "array" }, - "SizeInGB": { - "type": "number" + "InstancePorts": { + "items": { + "type": "string" + }, + "type": "array" }, - "VolumeType": { + "LoadBalancerPorts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PolicyName": { + "type": "string" + }, + "PolicyType": { "type": "string" } }, "required": [ - "SizeInGB", - "VolumeType" + "Attributes", + "PolicyName", + "PolicyType" ], "type": "object" }, - "AWS::EMR::InstanceFleetConfig": { + "AWS::ElasticLoadBalancingV2::Listener": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -17848,40 +21268,42 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ClusterId": { - "type": "string" - }, - "InstanceFleetType": { - "type": "string" - }, - "InstanceTypeConfigs": { + "Certificates": { "items": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceTypeConfig" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Certificate" }, "type": "array" }, - "LaunchSpecifications": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications" + "DefaultActions": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Action" + }, + "type": "array" }, - "Name": { + "LoadBalancerArn": { "type": "string" }, - "TargetOnDemandCapacity": { + "Port": { "type": "number" }, - "TargetSpotCapacity": { - "type": "number" + "Protocol": { + "type": "string" + }, + "SslPolicy": { + "type": "string" } }, "required": [ - "ClusterId", - "InstanceFleetType" + "DefaultActions", + "LoadBalancerArn", + "Port", + "Protocol" ], "type": "object" }, "Type": { "enum": [ - "AWS::EMR::InstanceFleetConfig" + "AWS::ElasticLoadBalancingV2::Listener" ], "type": "string" } @@ -17892,13 +21314,40 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EMR::InstanceFleetConfig.Configuration": { + "AWS::ElasticLoadBalancingV2::Listener.Action": { "additionalProperties": false, "properties": { - "Classification": { + "AuthenticateCognitoConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig" + }, + "AuthenticateOidcConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig" + }, + "FixedResponseConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig" + }, + "Order": { + "type": "number" + }, + "RedirectConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.RedirectConfig" + }, + "TargetGroupArn": { "type": "string" }, - "ConfigurationProperties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig": { + "additionalProperties": false, + "properties": { + "AuthenticationRequestExtraParams": { "additionalProperties": false, "patternProperties": { "^[a-zA-Z0-9]+$": { @@ -17907,126 +21356,213 @@ var CloudformationSchema = `{ }, "type": "object" }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration" - }, - "type": "array" + "OnUnauthenticatedRequest": { + "type": "string" + }, + "Scope": { + "type": "string" + }, + "SessionCookieName": { + "type": "string" + }, + "SessionTimeout": { + "type": "number" + }, + "UserPoolArn": { + "type": "string" + }, + "UserPoolClientId": { + "type": "string" + }, + "UserPoolDomain": { + "type": "string" } }, + "required": [ + "UserPoolArn", + "UserPoolClientId", + "UserPoolDomain" + ], "type": "object" }, - "AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig": { + "AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig": { "additionalProperties": false, "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.VolumeSpecification" + "AuthenticationRequestExtraParams": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" }, - "VolumesPerInstance": { + "AuthorizationEndpoint": { + "type": "string" + }, + "ClientId": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + }, + "Issuer": { + "type": "string" + }, + "OnUnauthenticatedRequest": { + "type": "string" + }, + "Scope": { + "type": "string" + }, + "SessionCookieName": { + "type": "string" + }, + "SessionTimeout": { "type": "number" + }, + "TokenEndpoint": { + "type": "string" + }, + "UserInfoEndpoint": { + "type": "string" } }, "required": [ - "VolumeSpecification" + "AuthorizationEndpoint", + "ClientId", + "ClientSecret", + "Issuer", + "TokenEndpoint", + "UserInfoEndpoint" ], "type": "object" }, - "AWS::EMR::InstanceFleetConfig.EbsConfiguration": { + "AWS::ElasticLoadBalancingV2::Listener.Certificate": { "additionalProperties": false, "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig" - }, - "type": "array" - }, - "EbsOptimized": { - "type": "boolean" + "CertificateArn": { + "type": "string" } }, "type": "object" }, - "AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications": { + "AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig": { "additionalProperties": false, "properties": { - "SpotSpecification": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification" + "ContentType": { + "type": "string" + }, + "MessageBody": { + "type": "string" + }, + "StatusCode": { + "type": "string" } }, "required": [ - "SpotSpecification" + "StatusCode" ], "type": "object" }, - "AWS::EMR::InstanceFleetConfig.InstanceTypeConfig": { + "AWS::ElasticLoadBalancingV2::Listener.RedirectConfig": { "additionalProperties": false, "properties": { - "BidPrice": { + "Host": { "type": "string" }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration" - }, - "type": "array" + "Path": { + "type": "string" }, - "EbsConfiguration": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsConfiguration" + "Port": { + "type": "string" }, - "InstanceType": { + "Protocol": { "type": "string" }, - "WeightedCapacity": { - "type": "number" + "Query": { + "type": "string" + }, + "StatusCode": { + "type": "string" } }, "required": [ - "InstanceType" + "StatusCode" ], "type": "object" }, - "AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification": { + "AWS::ElasticLoadBalancingV2::ListenerCertificate": { "additionalProperties": false, "properties": { - "BlockDurationMinutes": { - "type": "number" - }, - "TimeoutAction": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "TimeoutDurationMinutes": { - "type": "number" + "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": { + "Certificates": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate" + }, + "type": "array" + }, + "ListenerArn": { + "type": "string" + } + }, + "required": [ + "Certificates", + "ListenerArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticLoadBalancingV2::ListenerCertificate" + ], + "type": "string" } }, "required": [ - "TimeoutAction", - "TimeoutDurationMinutes" + "Type", + "Properties" ], "type": "object" }, - "AWS::EMR::InstanceFleetConfig.VolumeSpecification": { + "AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate": { "additionalProperties": false, "properties": { - "Iops": { - "type": "number" - }, - "SizeInGB": { - "type": "number" - }, - "VolumeType": { + "CertificateArn": { "type": "string" } }, - "required": [ - "SizeInGB", - "VolumeType" - ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig": { + "AWS::ElasticLoadBalancingV2::ListenerRule": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18058,51 +21594,36 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { + "Actions": { "items": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.Action" }, "type": "array" }, - "EbsConfiguration": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsConfiguration" - }, - "InstanceCount": { - "type": "number" - }, - "InstanceRole": { - "type": "string" - }, - "InstanceType": { - "type": "string" - }, - "JobFlowId": { - "type": "string" + "Conditions": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition" + }, + "type": "array" }, - "Market": { + "ListenerArn": { "type": "string" }, - "Name": { - "type": "string" + "Priority": { + "type": "number" } }, "required": [ - "InstanceCount", - "InstanceRole", - "InstanceType", - "JobFlowId" + "Actions", + "Conditions", + "ListenerArn", + "Priority" ], "type": "object" }, "Type": { "enum": [ - "AWS::EMR::InstanceGroupConfig" + "AWS::ElasticLoadBalancingV2::ListenerRule" ], "type": "string" } @@ -18113,74 +21634,81 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.AutoScalingPolicy": { + "AWS::ElasticLoadBalancingV2::ListenerRule.Action": { "additionalProperties": false, "properties": { - "Constraints": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingConstraints" + "AuthenticateCognitoConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig" }, - "Rules": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingRule" - }, - "type": "array" + "AuthenticateOidcConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig" + }, + "FixedResponseConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig" + }, + "Order": { + "type": "number" + }, + "RedirectConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig" + }, + "TargetGroupArn": { + "type": "string" + }, + "Type": { + "type": "string" } }, "required": [ - "Constraints", - "Rules" + "Type" ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition": { + "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig": { "additionalProperties": false, "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.MetricDimension" + "AuthenticationRequestExtraParams": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } }, - "type": "array" + "type": "object" }, - "EvaluationPeriods": { - "type": "number" + "OnUnauthenticatedRequest": { + "type": "string" }, - "MetricName": { + "Scope": { "type": "string" }, - "Namespace": { + "SessionCookieName": { "type": "string" }, - "Period": { + "SessionTimeout": { "type": "number" }, - "Statistic": { + "UserPoolArn": { "type": "string" }, - "Threshold": { - "type": "number" + "UserPoolClientId": { + "type": "string" }, - "Unit": { + "UserPoolDomain": { "type": "string" } }, "required": [ - "ComparisonOperator", - "MetricName", - "Period", - "Threshold" + "UserPoolArn", + "UserPoolClientId", + "UserPoolDomain" ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.Configuration": { + "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig": { "additionalProperties": false, "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { + "AuthenticationRequestExtraParams": { "additionalProperties": false, "patternProperties": { "^[a-zA-Z0-9]+$": { @@ -18189,165 +21717,108 @@ var CloudformationSchema = `{ }, "type": "object" }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.VolumeSpecification" + "AuthorizationEndpoint": { + "type": "string" }, - "VolumesPerInstance": { + "ClientId": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + }, + "Issuer": { + "type": "string" + }, + "OnUnauthenticatedRequest": { + "type": "string" + }, + "Scope": { + "type": "string" + }, + "SessionCookieName": { + "type": "string" + }, + "SessionTimeout": { "type": "number" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "AWS::EMR::InstanceGroupConfig.EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig" - }, - "type": "array" }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::EMR::InstanceGroupConfig.MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { + "TokenEndpoint": { "type": "string" }, - "Value": { + "UserInfoEndpoint": { "type": "string" } }, "required": [ - "Key", - "Value" + "AuthorizationEndpoint", + "ClientId", + "ClientSecret", + "Issuer", + "TokenEndpoint", + "UserInfoEndpoint" ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.ScalingAction": { + "AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig": { "additionalProperties": false, "properties": { - "Market": { + "ContentType": { "type": "string" }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "AWS::EMR::InstanceGroupConfig.ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "number" + "MessageBody": { + "type": "string" }, - "MinCapacity": { - "type": "number" + "StatusCode": { + "type": "string" } }, "required": [ - "MaxCapacity", - "MinCapacity" + "StatusCode" ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.ScalingRule": { + "AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig": { "additionalProperties": false, "properties": { - "Action": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingAction" + "Host": { + "type": "string" }, - "Description": { + "Path": { "type": "string" }, - "Name": { + "Port": { "type": "string" }, - "Trigger": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingTrigger" - } - }, - "required": [ - "Action", - "Name", - "Trigger" - ], - "type": "object" - }, - "AWS::EMR::InstanceGroupConfig.ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { + "Protocol": { "type": "string" }, - "CoolDown": { - "type": "number" + "Query": { + "type": "string" }, - "ScalingAdjustment": { - "type": "number" + "StatusCode": { + "type": "string" } }, "required": [ - "ScalingAdjustment" + "StatusCode" ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.VolumeSpecification": { + "AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition": { "additionalProperties": false, "properties": { - "Iops": { - "type": "number" - }, - "SizeInGB": { - "type": "number" - }, - "VolumeType": { + "Field": { "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "SizeInGB", - "VolumeType" - ], "type": "object" }, - "AWS::EMR::SecurityConfiguration": { + "AWS::ElasticLoadBalancingV2::LoadBalancer": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18379,32 +21850,92 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "IpAddressType": { + "type": "string" + }, + "LoadBalancerAttributes": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute" + }, + "type": "array" + }, "Name": { "type": "string" }, - "SecurityConfiguration": { - "type": "object" + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetMappings": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" } }, - "required": [ - "SecurityConfiguration" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EMR::SecurityConfiguration" + "AWS::ElasticLoadBalancingV2::LoadBalancer" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EMR::Step": { + "AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "AllocationId", + "SubnetId" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::TargetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18421,83 +21952,127 @@ var CloudformationSchema = `{ "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - { + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "HealthCheckEnabled": { + "type": "boolean" + }, + "HealthCheckIntervalSeconds": { + "type": "number" + }, + "HealthCheckPath": { + "type": "string" + }, + "HealthCheckPort": { + "type": "string" + }, + "HealthCheckProtocol": { + "type": "string" + }, + "HealthCheckTimeoutSeconds": { + "type": "number" + }, + "HealthyThresholdCount": { + "type": "number" + }, + "Matcher": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.Matcher" + }, + "Name": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TargetGroupAttributes": { "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute" }, "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { + }, + "TargetType": { "type": "string" }, - "HadoopJarStep": { - "$ref": "#/definitions/AWS::EMR::Step.HadoopJarStepConfig" + "Targets": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription" + }, + "type": "array" }, - "JobFlowId": { - "type": "string" + "UnhealthyThresholdCount": { + "type": "number" }, - "Name": { + "VpcId": { "type": "string" } }, - "required": [ - "ActionOnFailure", - "HadoopJarStep", - "JobFlowId", - "Name" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EMR::Step" + "AWS::ElasticLoadBalancingV2::TargetGroup" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EMR::Step.HadoopJarStepConfig": { + "AWS::ElasticLoadBalancingV2::TargetGroup.Matcher": { "additionalProperties": false, "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Jar": { + "HttpCode": { + "type": "string" + } + }, + "required": [ + "HttpCode" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { "type": "string" }, - "MainClass": { + "Id": { "type": "string" }, - "StepProperties": { - "items": { - "$ref": "#/definitions/AWS::EMR::Step.KeyValue" - }, - "type": "array" + "Port": { + "type": "number" } }, "required": [ - "Jar" + "Id" ], "type": "object" }, - "AWS::EMR::Step.KeyValue": { + "AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute": { "additionalProperties": false, "properties": { "Key": { @@ -18509,7 +22084,7 @@ var CloudformationSchema = `{ }, "type": "object" }, - "AWS::ElastiCache::CacheCluster": { + "AWS::Elasticsearch::Domain": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18541,71 +22116,38 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AZMode": { - "type": "string" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "CacheNodeType": { - "type": "string" - }, - "CacheParameterGroupName": { - "type": "string" + "AccessPolicies": { + "type": "object" }, - "CacheSecurityGroupNames": { - "items": { - "type": "string" + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } }, - "type": "array" - }, - "CacheSubnetGroupName": { - "type": "string" - }, - "ClusterName": { - "type": "string" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" + "type": "object" }, - "NotificationTopicArn": { + "DomainName": { "type": "string" }, - "NumCacheNodes": { - "type": "number" - }, - "Port": { - "type": "number" - }, - "PreferredAvailabilityZone": { - "type": "string" + "EBSOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.EBSOptions" }, - "PreferredAvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" + "ElasticsearchClusterConfig": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.ElasticsearchClusterConfig" }, - "PreferredMaintenanceWindow": { + "ElasticsearchVersion": { "type": "string" }, - "SnapshotArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SnapshotName": { - "type": "string" + "EncryptionAtRestOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.EncryptionAtRestOptions" }, - "SnapshotRetentionLimit": { - "type": "number" + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.NodeToNodeEncryptionOptions" }, - "SnapshotWindow": { - "type": "string" + "SnapshotOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.SnapshotOptions" }, "Tags": { "items": { @@ -18613,34 +22155,115 @@ var CloudformationSchema = `{ }, "type": "array" }, - "VpcSecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" + "VPCOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.VPCOptions" } }, - "required": [ - "CacheNodeType", - "Engine", - "NumCacheNodes" - ], "type": "object" }, "Type": { "enum": [ - "AWS::ElastiCache::CacheCluster" + "AWS::Elasticsearch::Domain" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::ElastiCache::ParameterGroup": { + "AWS::Elasticsearch::Domain.EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.ElasticsearchClusterConfig": { + "additionalProperties": false, + "properties": { + "DedicatedMasterCount": { + "type": "number" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Events::EventBusPolicy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18672,31 +22295,29 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CacheParameterGroupFamily": { + "Action": { "type": "string" }, - "Description": { + "Condition": { + "$ref": "#/definitions/AWS::Events::EventBusPolicy.Condition" + }, + "Principal": { "type": "string" }, - "Properties": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" + "StatementId": { + "type": "string" } }, "required": [ - "CacheParameterGroupFamily", - "Description" + "Action", + "Principal", + "StatementId" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElastiCache::ParameterGroup" + "AWS::Events::EventBusPolicy" ], "type": "string" } @@ -18707,7 +22328,22 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::ElastiCache::ReplicationGroup": { + "AWS::Events::EventBusPolicy.Condition": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Events::Rule": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18739,77 +22375,222 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AtRestEncryptionEnabled": { - "type": "boolean" - }, - "AuthToken": { + "Description": { "type": "string" }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticFailoverEnabled": { - "type": "boolean" - }, - "CacheNodeType": { - "type": "string" + "EventPattern": { + "type": "object" }, - "CacheParameterGroupName": { + "Name": { "type": "string" }, - "CacheSecurityGroupNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "CacheSubnetGroupName": { + "RoleArn": { "type": "string" }, - "Engine": { + "ScheduleExpression": { "type": "string" }, - "EngineVersion": { + "State": { "type": "string" }, - "NodeGroupConfiguration": { + "Targets": { "items": { - "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration" + "$ref": "#/definitions/AWS::Events::Rule.Target" }, "type": "array" - }, - "NotificationTopicArn": { + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Events::Rule" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Events::Rule.EcsParameters": { + "additionalProperties": false, + "properties": { + "TaskCount": { + "type": "number" + }, + "TaskDefinitionArn": { + "type": "string" + } + }, + "required": [ + "TaskDefinitionArn" + ], + "type": "object" + }, + "AWS::Events::Rule.InputTransformer": { + "additionalProperties": false, + "properties": { + "InputPathsMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "InputTemplate": { + "type": "string" + } + }, + "required": [ + "InputTemplate" + ], + "type": "object" + }, + "AWS::Events::Rule.KinesisParameters": { + "additionalProperties": false, + "properties": { + "PartitionKeyPath": { + "type": "string" + } + }, + "required": [ + "PartitionKeyPath" + ], + "type": "object" + }, + "AWS::Events::Rule.RunCommandParameters": { + "additionalProperties": false, + "properties": { + "RunCommandTargets": { + "items": { + "$ref": "#/definitions/AWS::Events::Rule.RunCommandTarget" + }, + "type": "array" + } + }, + "required": [ + "RunCommandTargets" + ], + "type": "object" + }, + "AWS::Events::Rule.RunCommandTarget": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Key", + "Values" + ], + "type": "object" + }, + "AWS::Events::Rule.SqsParameters": { + "additionalProperties": false, + "properties": { + "MessageGroupId": { + "type": "string" + } + }, + "required": [ + "MessageGroupId" + ], + "type": "object" + }, + "AWS::Events::Rule.Target": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "EcsParameters": { + "$ref": "#/definitions/AWS::Events::Rule.EcsParameters" + }, + "Id": { + "type": "string" + }, + "Input": { + "type": "string" + }, + "InputPath": { + "type": "string" + }, + "InputTransformer": { + "$ref": "#/definitions/AWS::Events::Rule.InputTransformer" + }, + "KinesisParameters": { + "$ref": "#/definitions/AWS::Events::Rule.KinesisParameters" + }, + "RoleArn": { + "type": "string" + }, + "RunCommandParameters": { + "$ref": "#/definitions/AWS::Events::Rule.RunCommandParameters" + }, + "SqsParameters": { + "$ref": "#/definitions/AWS::Events::Rule.SqsParameters" + } + }, + "required": [ + "Arn", + "Id" + ], + "type": "object" + }, + "AWS::FSx::FileSystem": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - "NumCacheClusters": { - "type": "number" - }, - "NumNodeGroups": { - "type": "number" - }, - "Port": { - "type": "number" - }, - "PreferredCacheClusterAZs": { + { "items": { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, "type": "array" - }, - "PreferredMaintenanceWindow": { + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "BackupId": { "type": "string" }, - "PrimaryClusterId": { + "FileSystemType": { "type": "string" }, - "ReplicasPerNodeGroup": { - "type": "number" - }, - "ReplicationGroupDescription": { + "KmsKeyId": { "type": "string" }, - "ReplicationGroupId": { - "type": "string" + "LustreConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.LustreConfiguration" }, "SecurityGroupIds": { "items": { @@ -18817,77 +22598,98 @@ var CloudformationSchema = `{ }, "type": "array" }, - "SnapshotArns": { + "StorageCapacity": { + "type": "number" + }, + "SubnetIds": { "items": { "type": "string" }, "type": "array" }, - "SnapshotName": { - "type": "string" - }, - "SnapshotRetentionLimit": { - "type": "number" - }, - "SnapshotWindow": { - "type": "string" - }, - "SnapshottingClusterId": { - "type": "string" - }, "Tags": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::FSx::FileSystem.TagEntry" }, "type": "array" }, - "TransitEncryptionEnabled": { - "type": "boolean" + "WindowsConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.WindowsConfiguration" } }, - "required": [ - "ReplicationGroupDescription" - ], "type": "object" }, "Type": { "enum": [ - "AWS::ElastiCache::ReplicationGroup" + "AWS::FSx::FileSystem" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration": { + "AWS::FSx::FileSystem.LustreConfiguration": { "additionalProperties": false, "properties": { - "NodeGroupId": { + "ExportPath": { "type": "string" }, - "PrimaryAvailabilityZone": { + "ImportPath": { "type": "string" }, - "ReplicaAvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" + "ImportedFileChunkSize": { + "type": "number" }, - "ReplicaCount": { + "WeeklyMaintenanceStartTime": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::FSx::FileSystem.TagEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::FSx::FileSystem.WindowsConfiguration": { + "additionalProperties": false, + "properties": { + "ActiveDirectoryId": { + "type": "string" + }, + "AutomaticBackupRetentionDays": { "type": "number" }, - "Slots": { + "CopyTagsToBackups": { + "type": "boolean" + }, + "DailyAutomaticBackupStartTime": { + "type": "string" + }, + "ThroughputCapacity": { + "type": "number" + }, + "WeeklyMaintenanceStartTime": { "type": "string" } }, "type": "object" }, - "AWS::ElastiCache::SecurityGroup": { + "AWS::GameLift::Alias": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18921,16 +22723,23 @@ var CloudformationSchema = `{ "properties": { "Description": { "type": "string" + }, + "Name": { + "type": "string" + }, + "RoutingStrategy": { + "$ref": "#/definitions/AWS::GameLift::Alias.RoutingStrategy" } }, "required": [ - "Description" + "Name", + "RoutingStrategy" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElastiCache::SecurityGroup" + "AWS::GameLift::Alias" ], "type": "string" } @@ -18941,7 +22750,25 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::ElastiCache::SecurityGroupIngress": { + "AWS::GameLift::Alias.RoutingStrategy": { + "additionalProperties": false, + "properties": { + "FleetId": { + "type": "string" + }, + "Message": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::GameLift::Build": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18973,36 +22800,51 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CacheSecurityGroupName": { + "Name": { "type": "string" }, - "EC2SecurityGroupName": { - "type": "string" + "StorageLocation": { + "$ref": "#/definitions/AWS::GameLift::Build.S3Location" }, - "EC2SecurityGroupOwnerId": { + "Version": { "type": "string" } }, - "required": [ - "CacheSecurityGroupName", - "EC2SecurityGroupName" - ], "type": "object" }, "Type": { "enum": [ - "AWS::ElastiCache::SecurityGroupIngress" + "AWS::GameLift::Build" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::ElastiCache::SubnetGroup": { + "AWS::GameLift::Build.S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key", + "RoleArn" + ], + "type": "object" + }, + "AWS::GameLift::Fleet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19034,28 +22876,58 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CacheSubnetGroupName": { + "BuildId": { "type": "string" }, "Description": { "type": "string" }, - "SubnetIds": { + "DesiredEC2Instances": { + "type": "number" + }, + "EC2InboundPermissions": { + "items": { + "$ref": "#/definitions/AWS::GameLift::Fleet.IpPermission" + }, + "type": "array" + }, + "EC2InstanceType": { + "type": "string" + }, + "LogPaths": { "items": { "type": "string" }, "type": "array" + }, + "MaxSize": { + "type": "number" + }, + "MinSize": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "ServerLaunchParameters": { + "type": "string" + }, + "ServerLaunchPath": { + "type": "string" } }, "required": [ - "Description", - "SubnetIds" + "BuildId", + "DesiredEC2Instances", + "EC2InstanceType", + "Name", + "ServerLaunchPath" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElastiCache::SubnetGroup" + "AWS::GameLift::Fleet" ], "type": "string" } @@ -19066,7 +22938,31 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::ElasticBeanstalk::Application": { + "AWS::GameLift::Fleet.IpPermission": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "number" + }, + "IpRange": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "FromPort", + "IpRange", + "Protocol", + "ToPort" + ], + "type": "object" + }, + "AWS::Glue::Classifier": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19098,21 +22994,21 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApplicationName": { - "type": "string" + "GrokClassifier": { + "$ref": "#/definitions/AWS::Glue::Classifier.GrokClassifier" }, - "Description": { - "type": "string" + "JsonClassifier": { + "$ref": "#/definitions/AWS::Glue::Classifier.JsonClassifier" }, - "ResourceLifecycleConfig": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig" + "XMLClassifier": { + "$ref": "#/definitions/AWS::Glue::Classifier.XMLClassifier" } }, "type": "object" }, "Type": { "enum": [ - "AWS::ElasticBeanstalk::Application" + "AWS::Glue::Classifier" ], "type": "string" } @@ -19122,61 +23018,63 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig": { + "AWS::Glue::Classifier.GrokClassifier": { "additionalProperties": false, "properties": { - "ServiceRole": { + "Classification": { "type": "string" }, - "VersionLifecycleConfig": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig" - } - }, - "type": "object" - }, - "AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig": { - "additionalProperties": false, - "properties": { - "MaxAgeRule": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxAgeRule" + "CustomPatterns": { + "type": "string" }, - "MaxCountRule": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxCountRule" + "GrokPattern": { + "type": "string" + }, + "Name": { + "type": "string" } }, + "required": [ + "Classification", + "GrokPattern" + ], "type": "object" }, - "AWS::ElasticBeanstalk::Application.MaxAgeRule": { + "AWS::Glue::Classifier.JsonClassifier": { "additionalProperties": false, "properties": { - "DeleteSourceFromS3": { - "type": "boolean" - }, - "Enabled": { - "type": "boolean" + "JsonPath": { + "type": "string" }, - "MaxAgeInDays": { - "type": "number" + "Name": { + "type": "string" } }, + "required": [ + "JsonPath" + ], "type": "object" }, - "AWS::ElasticBeanstalk::Application.MaxCountRule": { + "AWS::Glue::Classifier.XMLClassifier": { "additionalProperties": false, "properties": { - "DeleteSourceFromS3": { - "type": "boolean" + "Classification": { + "type": "string" }, - "Enabled": { - "type": "boolean" + "Name": { + "type": "string" }, - "MaxCount": { - "type": "number" + "RowTag": { + "type": "string" } }, + "required": [ + "Classification", + "RowTag" + ], "type": "object" }, - "AWS::ElasticBeanstalk::ApplicationVersion": { + "AWS::Glue::Connection": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19208,25 +23106,22 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApplicationName": { - "type": "string" - }, - "Description": { + "CatalogId": { "type": "string" }, - "SourceBundle": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle" + "ConnectionInput": { + "$ref": "#/definitions/AWS::Glue::Connection.ConnectionInput" } }, "required": [ - "ApplicationName", - "SourceBundle" + "CatalogId", + "ConnectionInput" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticBeanstalk::ApplicationVersion" + "AWS::Glue::Connection" ], "type": "string" } @@ -19237,23 +23132,56 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle": { + "AWS::Glue::Connection.ConnectionInput": { "additionalProperties": false, "properties": { - "S3Bucket": { + "ConnectionProperties": { + "type": "object" + }, + "ConnectionType": { "type": "string" }, - "S3Key": { + "Description": { + "type": "string" + }, + "MatchCriteria": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { "type": "string" + }, + "PhysicalConnectionRequirements": { + "$ref": "#/definitions/AWS::Glue::Connection.PhysicalConnectionRequirements" } }, "required": [ - "S3Bucket", - "S3Key" + "ConnectionProperties", + "ConnectionType" ], "type": "object" }, - "AWS::ElasticBeanstalk::ConfigurationTemplate": { + "AWS::Glue::Connection.PhysicalConnectionRequirements": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "SecurityGroupIdList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19285,39 +23213,180 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApplicationName": { + "Classifiers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Configuration": { + "type": "string" + }, + "DatabaseName": { "type": "string" }, "Description": { "type": "string" }, - "EnvironmentId": { + "Name": { "type": "string" }, - "OptionSettings": { - "items": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting" - }, - "type": "array" + "Role": { + "type": "string" }, - "PlatformArn": { + "Schedule": { + "$ref": "#/definitions/AWS::Glue::Crawler.Schedule" + }, + "SchemaChangePolicy": { + "$ref": "#/definitions/AWS::Glue::Crawler.SchemaChangePolicy" + }, + "TablePrefix": { "type": "string" }, - "SolutionStackName": { + "Targets": { + "$ref": "#/definitions/AWS::Glue::Crawler.Targets" + } + }, + "required": [ + "DatabaseName", + "Role", + "Targets" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Crawler" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Crawler.JdbcTarget": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "type": "string" + }, + "Exclusions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.S3Target": { + "additionalProperties": false, + "properties": { + "Exclusions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.Schedule": { + "additionalProperties": false, + "properties": { + "ScheduleExpression": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.SchemaChangePolicy": { + "additionalProperties": false, + "properties": { + "DeleteBehavior": { + "type": "string" + }, + "UpdateBehavior": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.Targets": { + "additionalProperties": false, + "properties": { + "JdbcTargets": { + "items": { + "$ref": "#/definitions/AWS::Glue::Crawler.JdbcTarget" + }, + "type": "array" + }, + "S3Targets": { + "items": { + "$ref": "#/definitions/AWS::Glue::Crawler.S3Target" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Glue::Database": { + "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": { + "CatalogId": { "type": "string" }, - "SourceConfiguration": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration" + "DatabaseInput": { + "$ref": "#/definitions/AWS::Glue::Database.DatabaseInput" } }, "required": [ - "ApplicationName" + "CatalogId", + "DatabaseInput" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticBeanstalk::ConfigurationTemplate" + "AWS::Glue::Database" ], "type": "string" } @@ -19328,45 +23397,25 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting": { + "AWS::Glue::Database.DatabaseInput": { "additionalProperties": false, "properties": { - "Namespace": { - "type": "string" - }, - "OptionName": { + "Description": { "type": "string" }, - "ResourceName": { + "LocationUri": { "type": "string" }, - "Value": { - "type": "string" - } - }, - "required": [ - "Namespace", - "OptionName" - ], - "type": "object" - }, - "AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration": { - "additionalProperties": false, - "properties": { - "ApplicationName": { + "Name": { "type": "string" }, - "TemplateName": { - "type": "string" + "Parameters": { + "type": "object" } }, - "required": [ - "ApplicationName", - "TemplateName" - ], "type": "object" }, - "AWS::ElasticBeanstalk::Environment": { + "AWS::Glue::DevEndpoint": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19398,54 +23447,43 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApplicationName": { - "type": "string" - }, - "CNAMEPrefix": { + "EndpointName": { "type": "string" }, - "Description": { + "ExtraJarsS3Path": { "type": "string" }, - "EnvironmentName": { + "ExtraPythonLibsS3Path": { "type": "string" }, - "OptionSettings": { - "items": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.OptionSetting" - }, - "type": "array" + "NumberOfNodes": { + "type": "number" }, - "PlatformArn": { + "PublicKey": { "type": "string" }, - "SolutionStackName": { + "RoleArn": { "type": "string" }, - "Tags": { + "SecurityGroupIds": { "items": { - "$ref": "#/definitions/Tag" + "type": "string" }, "type": "array" }, - "TemplateName": { - "type": "string" - }, - "Tier": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.Tier" - }, - "VersionLabel": { + "SubnetId": { "type": "string" } }, "required": [ - "ApplicationName" + "PublicKey", + "RoleArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticBeanstalk::Environment" + "AWS::Glue::DevEndpoint" ], "type": "string" } @@ -19456,44 +23494,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::ElasticBeanstalk::Environment.OptionSetting": { - "additionalProperties": false, - "properties": { - "Namespace": { - "type": "string" - }, - "OptionName": { - "type": "string" - }, - "ResourceName": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Namespace", - "OptionName" - ], - "type": "object" - }, - "AWS::ElasticBeanstalk::Environment.Tier": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer": { + "AWS::Glue::Job": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19525,90 +23526,46 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AccessLoggingPolicy": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy" - }, - "AppCookieStickinessPolicy": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy" - }, - "type": "array" - }, - "AvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ConnectionDrainingPolicy": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy" - }, - "ConnectionSettings": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings" - }, - "CrossZone": { - "type": "boolean" - }, - "HealthCheck": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck" + "AllocatedCapacity": { + "type": "number" }, - "Instances": { - "items": { - "type": "string" - }, - "type": "array" + "Command": { + "$ref": "#/definitions/AWS::Glue::Job.JobCommand" }, - "LBCookieStickinessPolicy": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy" - }, - "type": "array" + "Connections": { + "$ref": "#/definitions/AWS::Glue::Job.ConnectionsList" }, - "Listeners": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Listeners" - }, - "type": "array" + "DefaultArguments": { + "type": "object" }, - "LoadBalancerName": { + "Description": { "type": "string" }, - "Policies": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Policies" - }, - "type": "array" + "ExecutionProperty": { + "$ref": "#/definitions/AWS::Glue::Job.ExecutionProperty" }, - "Scheme": { + "LogUri": { "type": "string" }, - "SecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" + "MaxRetries": { + "type": "number" }, - "Subnets": { - "items": { - "type": "string" - }, - "type": "array" + "Name": { + "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "Role": { + "type": "string" } }, "required": [ - "Listeners" + "Command", + "Role" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticLoadBalancing::LoadBalancer" + "AWS::Glue::Job" ], "type": "string" } @@ -19619,179 +23576,40 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy": { - "additionalProperties": false, - "properties": { - "EmitInterval": { - "type": "number" - }, - "Enabled": { - "type": "boolean" - }, - "S3BucketName": { - "type": "string" - }, - "S3BucketPrefix": { - "type": "string" - } - }, - "required": [ - "Enabled", - "S3BucketName" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy": { - "additionalProperties": false, - "properties": { - "CookieName": { - "type": "string" - }, - "PolicyName": { - "type": "string" - } - }, - "required": [ - "CookieName", - "PolicyName" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy": { + "AWS::Glue::Job.ConnectionsList": { "additionalProperties": false, "properties": { - "Enabled": { - "type": "boolean" - }, - "Timeout": { - "type": "number" + "Connections": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "Enabled" - ], "type": "object" }, - "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings": { + "AWS::Glue::Job.ExecutionProperty": { "additionalProperties": false, "properties": { - "IdleTimeout": { + "MaxConcurrentRuns": { "type": "number" } }, - "required": [ - "IdleTimeout" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck": { - "additionalProperties": false, - "properties": { - "HealthyThreshold": { - "type": "string" - }, - "Interval": { - "type": "string" - }, - "Target": { - "type": "string" - }, - "Timeout": { - "type": "string" - }, - "UnhealthyThreshold": { - "type": "string" - } - }, - "required": [ - "HealthyThreshold", - "Interval", - "Target", - "Timeout", - "UnhealthyThreshold" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy": { - "additionalProperties": false, - "properties": { - "CookieExpirationPeriod": { - "type": "string" - }, - "PolicyName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer.Listeners": { - "additionalProperties": false, - "properties": { - "InstancePort": { - "type": "string" - }, - "InstanceProtocol": { - "type": "string" - }, - "LoadBalancerPort": { - "type": "string" - }, - "PolicyNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Protocol": { - "type": "string" - }, - "SSLCertificateId": { - "type": "string" - } - }, - "required": [ - "InstancePort", - "LoadBalancerPort", - "Protocol" - ], "type": "object" }, - "AWS::ElasticLoadBalancing::LoadBalancer.Policies": { + "AWS::Glue::Job.JobCommand": { "additionalProperties": false, "properties": { - "Attributes": { - "items": { - "type": "object" - }, - "type": "array" - }, - "InstancePorts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LoadBalancerPorts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "PolicyName": { + "Name": { "type": "string" }, - "PolicyType": { + "ScriptLocation": { "type": "string" } }, - "required": [ - "Attributes", - "PolicyName", - "PolicyType" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener": { + "AWS::Glue::Partition": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19823,42 +23641,30 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Certificates": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Certificate" - }, - "type": "array" - }, - "DefaultActions": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Action" - }, - "type": "array" - }, - "LoadBalancerArn": { + "CatalogId": { "type": "string" }, - "Port": { - "type": "number" - }, - "Protocol": { + "DatabaseName": { "type": "string" }, - "SslPolicy": { + "PartitionInput": { + "$ref": "#/definitions/AWS::Glue::Partition.PartitionInput" + }, + "TableName": { "type": "string" } }, "required": [ - "DefaultActions", - "LoadBalancerArn", - "Port", - "Protocol" + "CatalogId", + "DatabaseName", + "PartitionInput", + "TableName" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticLoadBalancingV2::Listener" + "AWS::Glue::Partition" ], "type": "string" } @@ -19869,25 +23675,13 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.Action": { + "AWS::Glue::Partition.Column": { "additionalProperties": false, "properties": { - "AuthenticateCognitoConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig" - }, - "AuthenticateOidcConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig" - }, - "FixedResponseConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig" - }, - "Order": { - "type": "number" - }, - "RedirectConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.RedirectConfig" + "Comment": { + "type": "string" }, - "TargetGroupArn": { + "Name": { "type": "string" }, "Type": { @@ -19895,159 +23689,134 @@ var CloudformationSchema = `{ } }, "required": [ - "Type" + "Name" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig": { + "AWS::Glue::Partition.Order": { "additionalProperties": false, "properties": { - "AuthenticationRequestExtraParams": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "OnUnauthenticatedRequest": { - "type": "string" - }, - "Scope": { - "type": "string" - }, - "SessionCookieName": { + "Column": { "type": "string" }, - "SessionTimeout": { + "SortOrder": { "type": "number" - }, - "UserPoolArn": { - "type": "string" - }, - "UserPoolClientId": { - "type": "string" - }, - "UserPoolDomain": { - "type": "string" } }, "required": [ - "UserPoolArn", - "UserPoolClientId", - "UserPoolDomain" + "Column" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig": { + "AWS::Glue::Partition.PartitionInput": { "additionalProperties": false, "properties": { - "AuthenticationRequestExtraParams": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, + "Parameters": { "type": "object" }, - "AuthorizationEndpoint": { - "type": "string" - }, - "ClientId": { - "type": "string" - }, - "ClientSecret": { - "type": "string" - }, - "Issuer": { - "type": "string" - }, - "OnUnauthenticatedRequest": { - "type": "string" - }, - "Scope": { - "type": "string" - }, - "SessionCookieName": { - "type": "string" - }, - "SessionTimeout": { - "type": "number" - }, - "TokenEndpoint": { - "type": "string" + "StorageDescriptor": { + "$ref": "#/definitions/AWS::Glue::Partition.StorageDescriptor" }, - "UserInfoEndpoint": { - "type": "string" + "Values": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "AuthorizationEndpoint", - "ClientId", - "ClientSecret", - "Issuer", - "TokenEndpoint", - "UserInfoEndpoint" + "Values" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.Certificate": { + "AWS::Glue::Partition.SerdeInfo": { "additionalProperties": false, "properties": { - "CertificateArn": { + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "SerializationLibrary": { "type": "string" } }, "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig": { + "AWS::Glue::Partition.SkewedInfo": { "additionalProperties": false, "properties": { - "ContentType": { - "type": "string" + "SkewedColumnNames": { + "items": { + "type": "string" + }, + "type": "array" }, - "MessageBody": { - "type": "string" + "SkewedColumnValueLocationMaps": { + "type": "object" }, - "StatusCode": { - "type": "string" + "SkewedColumnValues": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "StatusCode" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.RedirectConfig": { + "AWS::Glue::Partition.StorageDescriptor": { "additionalProperties": false, "properties": { - "Host": { - "type": "string" + "BucketColumns": { + "items": { + "type": "string" + }, + "type": "array" }, - "Path": { - "type": "string" + "Columns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Partition.Column" + }, + "type": "array" }, - "Port": { - "type": "string" + "Compressed": { + "type": "boolean" }, - "Protocol": { + "InputFormat": { "type": "string" }, - "Query": { + "Location": { "type": "string" }, - "StatusCode": { + "NumberOfBuckets": { + "type": "number" + }, + "OutputFormat": { "type": "string" + }, + "Parameters": { + "type": "object" + }, + "SerdeInfo": { + "$ref": "#/definitions/AWS::Glue::Partition.SerdeInfo" + }, + "SkewedInfo": { + "$ref": "#/definitions/AWS::Glue::Partition.SkewedInfo" + }, + "SortColumns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Partition.Order" + }, + "type": "array" + }, + "StoredAsSubDirectories": { + "type": "boolean" } }, - "required": [ - "StatusCode" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerCertificate": { + "AWS::Glue::Table": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20079,25 +23848,26 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Certificates": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate" - }, - "type": "array" + "CatalogId": { + "type": "string" }, - "ListenerArn": { + "DatabaseName": { "type": "string" + }, + "TableInput": { + "$ref": "#/definitions/AWS::Glue::Table.TableInput" } }, "required": [ - "Certificates", - "ListenerArn" + "CatalogId", + "DatabaseName", + "TableInput" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticLoadBalancingV2::ListenerCertificate" + "AWS::Glue::Table" ], "type": "string" } @@ -20108,272 +23878,167 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate": { - "additionalProperties": false, - "properties": { - "CertificateArn": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ElasticLoadBalancingV2::ListenerRule": { + "AWS::Glue::Table.Column": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Comment": { "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": { - "Actions": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.Action" - }, - "type": "array" - }, - "Conditions": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition" - }, - "type": "array" - }, - "ListenerArn": { - "type": "string" - }, - "Priority": { - "type": "number" - } - }, - "required": [ - "Actions", - "Conditions", - "ListenerArn", - "Priority" - ], - "type": "object" + "Name": { + "type": "string" }, "Type": { - "enum": [ - "AWS::ElasticLoadBalancingV2::ListenerRule" - ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Name" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerRule.Action": { + "AWS::Glue::Table.Order": { "additionalProperties": false, "properties": { - "AuthenticateCognitoConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig" - }, - "AuthenticateOidcConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig" - }, - "FixedResponseConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig" - }, - "Order": { - "type": "number" - }, - "RedirectConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig" - }, - "TargetGroupArn": { + "Column": { "type": "string" }, - "Type": { - "type": "string" + "SortOrder": { + "type": "number" } }, "required": [ - "Type" + "Column", + "SortOrder" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig": { + "AWS::Glue::Table.SerdeInfo": { "additionalProperties": false, "properties": { - "AuthenticationRequestExtraParams": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "OnUnauthenticatedRequest": { - "type": "string" - }, - "Scope": { - "type": "string" - }, - "SessionCookieName": { + "Name": { "type": "string" }, - "SessionTimeout": { - "type": "number" + "Parameters": { + "type": "object" }, - "UserPoolArn": { + "SerializationLibrary": { "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Table.SkewedInfo": { + "additionalProperties": false, + "properties": { + "SkewedColumnNames": { + "items": { + "type": "string" + }, + "type": "array" }, - "UserPoolClientId": { - "type": "string" + "SkewedColumnValueLocationMaps": { + "type": "object" }, - "UserPoolDomain": { - "type": "string" + "SkewedColumnValues": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "UserPoolArn", - "UserPoolClientId", - "UserPoolDomain" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig": { + "AWS::Glue::Table.StorageDescriptor": { "additionalProperties": false, "properties": { - "AuthenticationRequestExtraParams": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } + "BucketColumns": { + "items": { + "type": "string" }, - "type": "object" + "type": "array" }, - "AuthorizationEndpoint": { - "type": "string" + "Columns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Table.Column" + }, + "type": "array" }, - "ClientId": { - "type": "string" + "Compressed": { + "type": "boolean" }, - "ClientSecret": { + "InputFormat": { "type": "string" }, - "Issuer": { + "Location": { "type": "string" }, - "OnUnauthenticatedRequest": { - "type": "string" + "NumberOfBuckets": { + "type": "number" }, - "Scope": { + "OutputFormat": { "type": "string" }, - "SessionCookieName": { - "type": "string" + "Parameters": { + "type": "object" }, - "SessionTimeout": { - "type": "number" + "SerdeInfo": { + "$ref": "#/definitions/AWS::Glue::Table.SerdeInfo" }, - "TokenEndpoint": { - "type": "string" + "SkewedInfo": { + "$ref": "#/definitions/AWS::Glue::Table.SkewedInfo" }, - "UserInfoEndpoint": { - "type": "string" + "SortColumns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Table.Order" + }, + "type": "array" + }, + "StoredAsSubDirectories": { + "type": "boolean" } }, - "required": [ - "AuthorizationEndpoint", - "ClientId", - "ClientSecret", - "Issuer", - "TokenEndpoint", - "UserInfoEndpoint" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig": { + "AWS::Glue::Table.TableInput": { "additionalProperties": false, "properties": { - "ContentType": { + "Description": { "type": "string" }, - "MessageBody": { + "Name": { "type": "string" }, - "StatusCode": { - "type": "string" - } - }, - "required": [ - "StatusCode" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig": { - "additionalProperties": false, - "properties": { - "Host": { + "Owner": { "type": "string" }, - "Path": { - "type": "string" + "Parameters": { + "type": "object" }, - "Port": { - "type": "string" + "PartitionKeys": { + "items": { + "$ref": "#/definitions/AWS::Glue::Table.Column" + }, + "type": "array" }, - "Protocol": { - "type": "string" + "Retention": { + "type": "number" }, - "Query": { - "type": "string" + "StorageDescriptor": { + "$ref": "#/definitions/AWS::Glue::Table.StorageDescriptor" }, - "StatusCode": { + "TableType": { "type": "string" - } - }, - "required": [ - "StatusCode" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition": { - "additionalProperties": false, - "properties": { - "Field": { + }, + "ViewExpandedText": { "type": "string" }, - "Values": { - "items": { - "type": "string" - }, - "type": "array" + "ViewOriginalText": { + "type": "string" } }, "type": "object" }, - "AWS::ElasticLoadBalancingV2::LoadBalancer": { + "AWS::Glue::Trigger": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20405,92 +24070,147 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "IpAddressType": { - "type": "string" - }, - "LoadBalancerAttributes": { + "Actions": { "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute" + "$ref": "#/definitions/AWS::Glue::Trigger.Action" }, "type": "array" }, - "Name": { + "Description": { "type": "string" }, - "Scheme": { + "Name": { "type": "string" }, - "SecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SubnetMappings": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping" - }, - "type": "array" - }, - "Subnets": { - "items": { - "type": "string" - }, - "type": "array" + "Predicate": { + "$ref": "#/definitions/AWS::Glue::Trigger.Predicate" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "Schedule": { + "type": "string" }, "Type": { "type": "string" } }, + "required": [ + "Actions", + "Type" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticLoadBalancingV2::LoadBalancer" + "AWS::Glue::Trigger" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute": { + "AWS::Glue::Trigger.Action": { "additionalProperties": false, "properties": { - "Key": { + "Arguments": { + "type": "object" + }, + "JobName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Trigger.Condition": { + "additionalProperties": false, + "properties": { + "JobName": { "type": "string" }, - "Value": { + "LogicalOperator": { + "type": "string" + }, + "State": { "type": "string" } }, "type": "object" }, - "AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping": { + "AWS::Glue::Trigger.Predicate": { "additionalProperties": false, "properties": { - "AllocationId": { + "Conditions": { + "items": { + "$ref": "#/definitions/AWS::Glue::Trigger.Condition" + }, + "type": "array" + }, + "Logical": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GuardDuty::Detector": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "SubnetId": { + "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": { + "Enable": { + "type": "boolean" + }, + "FindingPublishingFrequency": { + "type": "string" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GuardDuty::Detector" + ], "type": "string" } }, "required": [ - "AllocationId", - "SubnetId" + "Type", + "Properties" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::TargetGroup": { + "AWS::GuardDuty::Filter": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20522,74 +24242,37 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "HealthCheckIntervalSeconds": { - "type": "number" - }, - "HealthCheckPath": { + "Action": { "type": "string" }, - "HealthCheckPort": { + "Description": { "type": "string" }, - "HealthCheckProtocol": { + "DetectorId": { "type": "string" }, - "HealthCheckTimeoutSeconds": { - "type": "number" - }, - "HealthyThresholdCount": { - "type": "number" - }, - "Matcher": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.Matcher" + "FindingCriteria": { + "$ref": "#/definitions/AWS::GuardDuty::Filter.FindingCriteria" }, "Name": { "type": "string" }, - "Port": { - "type": "number" - }, - "Protocol": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "TargetGroupAttributes": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute" - }, - "type": "array" - }, - "TargetType": { - "type": "string" - }, - "Targets": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription" - }, - "type": "array" - }, - "UnhealthyThresholdCount": { + "Rank": { "type": "number" - }, - "VpcId": { - "type": "string" } }, "required": [ - "Port", - "Protocol", - "VpcId" + "Action", + "Description", + "DetectorId", + "FindingCriteria", + "Rank" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticLoadBalancingV2::TargetGroup" + "AWS::GuardDuty::Filter" ], "type": "string" } @@ -20600,49 +24283,46 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::TargetGroup.Matcher": { - "additionalProperties": false, - "properties": { - "HttpCode": { - "type": "string" - } - }, - "required": [ - "HttpCode" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription": { + "AWS::GuardDuty::Filter.Condition": { "additionalProperties": false, "properties": { - "AvailabilityZone": { - "type": "string" + "Eq": { + "items": { + "type": "string" + }, + "type": "array" }, - "Id": { - "type": "string" + "Gte": { + "type": "number" }, - "Port": { + "Lt": { + "type": "number" + }, + "Lte": { "type": "number" + }, + "Neq": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "Id" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute": { + "AWS::GuardDuty::Filter.FindingCriteria": { "additionalProperties": false, "properties": { - "Key": { - "type": "string" + "Criterion": { + "type": "object" }, - "Value": { - "type": "string" + "ItemType": { + "$ref": "#/definitions/AWS::GuardDuty::Filter.Condition" } }, "type": "object" }, - "AWS::Elasticsearch::Domain": { + "AWS::GuardDuty::IPSet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20674,142 +24354,44 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AccessPolicies": { - "type": "object" - }, - "AdvancedOptions": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" + "Activate": { + "type": "boolean" }, - "DomainName": { + "DetectorId": { "type": "string" }, - "EBSOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.EBSOptions" - }, - "ElasticsearchClusterConfig": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.ElasticsearchClusterConfig" - }, - "ElasticsearchVersion": { + "Format": { "type": "string" }, - "EncryptionAtRestOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.EncryptionAtRestOptions" - }, - "SnapshotOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.SnapshotOptions" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "Location": { + "type": "string" }, - "VPCOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.VPCOptions" + "Name": { + "type": "string" } }, + "required": [ + "Activate", + "DetectorId", + "Format", + "Location" + ], "type": "object" }, "Type": { "enum": [ - "AWS::Elasticsearch::Domain" + "AWS::GuardDuty::IPSet" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::Elasticsearch::Domain.EBSOptions": { - "additionalProperties": false, - "properties": { - "EBSEnabled": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "VolumeSize": { - "type": "number" - }, - "VolumeType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Elasticsearch::Domain.ElasticsearchClusterConfig": { - "additionalProperties": false, - "properties": { - "DedicatedMasterCount": { - "type": "number" - }, - "DedicatedMasterEnabled": { - "type": "boolean" - }, - "DedicatedMasterType": { - "type": "string" - }, - "InstanceCount": { - "type": "number" - }, - "InstanceType": { - "type": "string" - }, - "ZoneAwarenessEnabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::Elasticsearch::Domain.EncryptionAtRestOptions": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "KmsKeyId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Elasticsearch::Domain.SnapshotOptions": { - "additionalProperties": false, - "properties": { - "AutomatedSnapshotStartHour": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::Elasticsearch::Domain.VPCOptions": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Events::EventBusPolicy": { + "AWS::GuardDuty::Master": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20841,29 +24423,25 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Action": { + "DetectorId": { "type": "string" }, - "Condition": { - "$ref": "#/definitions/AWS::Events::EventBusPolicy.Condition" - }, - "Principal": { + "InvitationId": { "type": "string" }, - "StatementId": { + "MasterId": { "type": "string" } }, "required": [ - "Action", - "Principal", - "StatementId" + "DetectorId", + "MasterId" ], "type": "object" }, "Type": { "enum": [ - "AWS::Events::EventBusPolicy" + "AWS::GuardDuty::Master" ], "type": "string" } @@ -20874,22 +24452,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Events::EventBusPolicy.Condition": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Events::Rule": { + "AWS::GuardDuty::Member": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20921,180 +24484,175 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "DetectorId": { "type": "string" }, - "EventPattern": { - "type": "object" + "DisableEmailNotification": { + "type": "boolean" }, - "Name": { + "Email": { "type": "string" }, - "RoleArn": { + "MemberId": { "type": "string" }, - "ScheduleExpression": { + "Message": { "type": "string" }, - "State": { + "Status": { "type": "string" - }, - "Targets": { - "items": { - "$ref": "#/definitions/AWS::Events::Rule.Target" - }, - "type": "array" } }, + "required": [ + "DetectorId", + "Email", + "MemberId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::Events::Rule" + "AWS::GuardDuty::Member" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::Events::Rule.EcsParameters": { + "AWS::GuardDuty::ThreatIntelSet": { "additionalProperties": false, "properties": { - "TaskCount": { - "type": "number" - }, - "TaskDefinitionArn": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" - } - }, - "required": [ - "TaskDefinitionArn" - ], - "type": "object" - }, - "AWS::Events::Rule.InputTransformer": { - "additionalProperties": false, - "properties": { - "InputPathsMap": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - }, + ] + }, + "Metadata": { "type": "object" }, - "InputTemplate": { - "type": "string" - } - }, - "required": [ - "InputTemplate" - ], - "type": "object" - }, - "AWS::Events::Rule.KinesisParameters": { - "additionalProperties": false, - "properties": { - "PartitionKeyPath": { - "type": "string" - } - }, - "required": [ - "PartitionKeyPath" - ], - "type": "object" - }, - "AWS::Events::Rule.RunCommandParameters": { - "additionalProperties": false, - "properties": { - "RunCommandTargets": { - "items": { - "$ref": "#/definitions/AWS::Events::Rule.RunCommandTarget" + "Properties": { + "additionalProperties": false, + "properties": { + "Activate": { + "type": "boolean" + }, + "DetectorId": { + "type": "string" + }, + "Format": { + "type": "string" + }, + "Location": { + "type": "string" + }, + "Name": { + "type": "string" + } }, - "type": "array" - } - }, - "required": [ - "RunCommandTargets" - ], - "type": "object" - }, - "AWS::Events::Rule.RunCommandTarget": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" + "required": [ + "Activate", + "DetectorId", + "Format", + "Location" + ], + "type": "object" }, - "Values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Key", - "Values" - ], - "type": "object" - }, - "AWS::Events::Rule.SqsParameters": { - "additionalProperties": false, - "properties": { - "MessageGroupId": { + "Type": { + "enum": [ + "AWS::GuardDuty::ThreatIntelSet" + ], "type": "string" } }, "required": [ - "MessageGroupId" + "Type", + "Properties" ], "type": "object" }, - "AWS::Events::Rule.Target": { + "AWS::IAM::AccessKey": { "additionalProperties": false, "properties": { - "Arn": { - "type": "string" - }, - "EcsParameters": { - "$ref": "#/definitions/AWS::Events::Rule.EcsParameters" - }, - "Id": { - "type": "string" - }, - "Input": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "InputPath": { - "type": "string" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "InputTransformer": { - "$ref": "#/definitions/AWS::Events::Rule.InputTransformer" + "Metadata": { + "type": "object" }, - "KinesisParameters": { - "$ref": "#/definitions/AWS::Events::Rule.KinesisParameters" + "Properties": { + "additionalProperties": false, + "properties": { + "Serial": { + "type": "number" + }, + "Status": { + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "required": [ + "UserName" + ], + "type": "object" }, - "RoleArn": { + "Type": { + "enum": [ + "AWS::IAM::AccessKey" + ], "type": "string" - }, - "RunCommandParameters": { - "$ref": "#/definitions/AWS::Events::Rule.RunCommandParameters" - }, - "SqsParameters": { - "$ref": "#/definitions/AWS::Events::Rule.SqsParameters" } }, "required": [ - "Arn", - "Id" + "Type", + "Properties" ], "type": "object" }, - "AWS::GameLift::Alias": { + "AWS::IAM::Group": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21126,54 +24684,56 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "GroupName": { "type": "string" }, - "Name": { + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { "type": "string" }, - "RoutingStrategy": { - "$ref": "#/definitions/AWS::GameLift::Alias.RoutingStrategy" + "Policies": { + "items": { + "$ref": "#/definitions/AWS::IAM::Group.Policy" + }, + "type": "array" } }, - "required": [ - "Name", - "RoutingStrategy" - ], "type": "object" }, "Type": { "enum": [ - "AWS::GameLift::Alias" + "AWS::IAM::Group" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::GameLift::Alias.RoutingStrategy": { + "AWS::IAM::Group.Policy": { "additionalProperties": false, "properties": { - "FleetId": { - "type": "string" - }, - "Message": { - "type": "string" + "PolicyDocument": { + "type": "object" }, - "Type": { + "PolicyName": { "type": "string" } }, "required": [ - "Type" + "PolicyDocument", + "PolicyName" ], "type": "object" }, - "AWS::GameLift::Build": { + "AWS::IAM::InstanceProfile": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21205,51 +24765,38 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Name": { + "InstanceProfileName": { "type": "string" }, - "StorageLocation": { - "$ref": "#/definitions/AWS::GameLift::Build.S3Location" - }, - "Version": { + "Path": { "type": "string" + }, + "Roles": { + "items": { + "type": "string" + }, + "type": "array" } }, + "required": [ + "Roles" + ], "type": "object" }, "Type": { "enum": [ - "AWS::GameLift::Build" + "AWS::IAM::InstanceProfile" ], "type": "string" } }, "required": [ - "Type" - ], - "type": "object" - }, - "AWS::GameLift::Build.S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key", - "RoleArn" + "Type", + "Properties" ], "type": "object" }, - "AWS::GameLift::Fleet": { + "AWS::IAM::ManagedPolicy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21281,58 +24828,45 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "BuildId": { - "type": "string" - }, "Description": { "type": "string" }, - "DesiredEC2Instances": { - "type": "number" - }, - "EC2InboundPermissions": { + "Groups": { "items": { - "$ref": "#/definitions/AWS::GameLift::Fleet.IpPermission" + "type": "string" }, "type": "array" }, - "EC2InstanceType": { + "ManagedPolicyName": { "type": "string" }, - "LogPaths": { + "Path": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "Roles": { "items": { "type": "string" }, "type": "array" }, - "MaxSize": { - "type": "number" - }, - "MinSize": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "ServerLaunchParameters": { - "type": "string" - }, - "ServerLaunchPath": { - "type": "string" + "Users": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "BuildId", - "DesiredEC2Instances", - "EC2InstanceType", - "Name", - "ServerLaunchPath" + "PolicyDocument" ], "type": "object" }, "Type": { "enum": [ - "AWS::GameLift::Fleet" + "AWS::IAM::ManagedPolicy" ], "type": "string" } @@ -21343,31 +24877,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::GameLift::Fleet.IpPermission": { - "additionalProperties": false, - "properties": { - "FromPort": { - "type": "number" - }, - "IpRange": { - "type": "string" - }, - "Protocol": { - "type": "string" - }, - "ToPort": { - "type": "number" - } - }, - "required": [ - "FromPort", - "IpRange", - "Protocol", - "ToPort" - ], - "type": "object" - }, - "AWS::Glue::Classifier": { + "AWS::IAM::Policy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21399,87 +24909,145 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "GrokClassifier": { - "$ref": "#/definitions/AWS::Glue::Classifier.GrokClassifier" + "Groups": { + "items": { + "type": "string" + }, + "type": "array" }, - "JsonClassifier": { - "$ref": "#/definitions/AWS::Glue::Classifier.JsonClassifier" + "PolicyDocument": { + "type": "object" }, - "XMLClassifier": { - "$ref": "#/definitions/AWS::Glue::Classifier.XMLClassifier" + "PolicyName": { + "type": "string" + }, + "Roles": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array" } }, + "required": [ + "PolicyDocument", + "PolicyName" + ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Classifier" + "AWS::IAM::Policy" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::Glue::Classifier.GrokClassifier": { + "AWS::IAM::Role": { "additionalProperties": false, "properties": { - "Classification": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "CustomPatterns": { - "type": "string" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "GrokPattern": { - "type": "string" + "Metadata": { + "type": "object" }, - "Name": { - "type": "string" - } - }, - "required": [ - "Classification", - "GrokPattern" - ], - "type": "object" - }, - "AWS::Glue::Classifier.JsonClassifier": { - "additionalProperties": false, - "properties": { - "JsonPath": { - "type": "string" + "Properties": { + "additionalProperties": false, + "properties": { + "AssumeRolePolicyDocument": { + "type": "object" + }, + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxSessionDuration": { + "type": "number" + }, + "Path": { + "type": "string" + }, + "PermissionsBoundary": { + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/AWS::IAM::Role.Policy" + }, + "type": "array" + }, + "RoleName": { + "type": "string" + } + }, + "required": [ + "AssumeRolePolicyDocument" + ], + "type": "object" }, - "Name": { + "Type": { + "enum": [ + "AWS::IAM::Role" + ], "type": "string" } }, "required": [ - "JsonPath" + "Type", + "Properties" ], "type": "object" }, - "AWS::Glue::Classifier.XMLClassifier": { + "AWS::IAM::Role.Policy": { "additionalProperties": false, "properties": { - "Classification": { - "type": "string" - }, - "Name": { - "type": "string" + "PolicyDocument": { + "type": "object" }, - "RowTag": { + "PolicyName": { "type": "string" } }, "required": [ - "Classification", - "RowTag" + "PolicyDocument", + "PolicyName" ], "type": "object" }, - "AWS::Glue::Connection": { + "AWS::IAM::ServiceLinkedRole": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21511,22 +25079,24 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CatalogId": { + "AWSServiceName": { "type": "string" }, - "ConnectionInput": { - "$ref": "#/definitions/AWS::Glue::Connection.ConnectionInput" + "CustomSuffix": { + "type": "string" + }, + "Description": { + "type": "string" } }, "required": [ - "CatalogId", - "ConnectionInput" + "AWSServiceName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Connection" + "AWS::IAM::ServiceLinkedRole" ], "type": "string" } @@ -21537,56 +25107,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Glue::Connection.ConnectionInput": { - "additionalProperties": false, - "properties": { - "ConnectionProperties": { - "type": "object" - }, - "ConnectionType": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "MatchCriteria": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "PhysicalConnectionRequirements": { - "$ref": "#/definitions/AWS::Glue::Connection.PhysicalConnectionRequirements" - } - }, - "required": [ - "ConnectionProperties", - "ConnectionType" - ], - "type": "object" - }, - "AWS::Glue::Connection.PhysicalConnectionRequirements": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "type": "string" - }, - "SecurityGroupIdList": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SubnetId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Crawler": { + "AWS::IAM::User": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21618,133 +25139,144 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Classifiers": { + "Groups": { "items": { "type": "string" }, "type": "array" }, - "Configuration": { - "type": "string" - }, - "DatabaseName": { - "type": "string" + "LoginProfile": { + "$ref": "#/definitions/AWS::IAM::User.LoginProfile" }, - "Description": { - "type": "string" + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" }, - "Name": { + "Path": { "type": "string" }, - "Role": { + "PermissionsBoundary": { "type": "string" }, - "Schedule": { - "$ref": "#/definitions/AWS::Glue::Crawler.Schedule" - }, - "SchemaChangePolicy": { - "$ref": "#/definitions/AWS::Glue::Crawler.SchemaChangePolicy" + "Policies": { + "items": { + "$ref": "#/definitions/AWS::IAM::User.Policy" + }, + "type": "array" }, - "TablePrefix": { + "UserName": { "type": "string" - }, - "Targets": { - "$ref": "#/definitions/AWS::Glue::Crawler.Targets" } }, - "required": [ - "DatabaseName", - "Role", - "Targets" - ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Crawler" + "AWS::IAM::User" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::Glue::Crawler.JdbcTarget": { + "AWS::IAM::User.LoginProfile": { "additionalProperties": false, "properties": { - "ConnectionName": { + "Password": { "type": "string" }, - "Exclusions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Path": { - "type": "string" + "PasswordResetRequired": { + "type": "boolean" } }, + "required": [ + "Password" + ], "type": "object" }, - "AWS::Glue::Crawler.S3Target": { + "AWS::IAM::User.Policy": { "additionalProperties": false, "properties": { - "Exclusions": { - "items": { - "type": "string" - }, - "type": "array" + "PolicyDocument": { + "type": "object" }, - "Path": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Crawler.Schedule": { - "additionalProperties": false, - "properties": { - "ScheduleExpression": { + "PolicyName": { "type": "string" } }, + "required": [ + "PolicyDocument", + "PolicyName" + ], "type": "object" }, - "AWS::Glue::Crawler.SchemaChangePolicy": { + "AWS::IAM::UserToGroupAddition": { "additionalProperties": false, "properties": { - "DeleteBehavior": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "UpdateBehavior": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Crawler.Targets": { - "additionalProperties": false, - "properties": { - "JdbcTargets": { - "items": { - "$ref": "#/definitions/AWS::Glue::Crawler.JdbcTarget" + "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": { + "GroupName": { + "type": "string" + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array" + } }, - "type": "array" + "required": [ + "GroupName", + "Users" + ], + "type": "object" }, - "S3Targets": { - "items": { - "$ref": "#/definitions/AWS::Glue::Crawler.S3Target" - }, - "type": "array" + "Type": { + "enum": [ + "AWS::IAM::UserToGroupAddition" + ], + "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::Glue::Database": { + "AWS::Inspector::AssessmentTarget": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21776,51 +25308,28 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CatalogId": { + "AssessmentTargetName": { "type": "string" }, - "DatabaseInput": { - "$ref": "#/definitions/AWS::Glue::Database.DatabaseInput" + "ResourceGroupArn": { + "type": "string" } }, - "required": [ - "CatalogId", - "DatabaseInput" - ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Database" + "AWS::Inspector::AssessmentTarget" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::Glue::Database.DatabaseInput": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "type": "object" - } - }, - "type": "object" - }, - "AWS::Glue::DevEndpoint": { + "AWS::Inspector::AssessmentTemplate": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21852,43 +25361,38 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "EndpointName": { - "type": "string" - }, - "ExtraJarsS3Path": { + "AssessmentTargetArn": { "type": "string" }, - "ExtraPythonLibsS3Path": { + "AssessmentTemplateName": { "type": "string" }, - "NumberOfNodes": { + "DurationInSeconds": { "type": "number" }, - "PublicKey": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "SecurityGroupIds": { + "RulesPackageArns": { "items": { "type": "string" }, "type": "array" }, - "SubnetId": { - "type": "string" + "UserAttributesForFindings": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "PublicKey", - "RoleArn" + "AssessmentTargetArn", + "DurationInSeconds", + "RulesPackageArns" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::DevEndpoint" + "AWS::Inspector::AssessmentTemplate" ], "type": "string" } @@ -21899,7 +25403,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Glue::Job": { + "AWS::Inspector::ResourceGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21931,46 +25435,21 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AllocatedCapacity": { - "type": "number" - }, - "Command": { - "$ref": "#/definitions/AWS::Glue::Job.JobCommand" - }, - "Connections": { - "$ref": "#/definitions/AWS::Glue::Job.ConnectionsList" - }, - "DefaultArguments": { - "type": "object" - }, - "Description": { - "type": "string" - }, - "ExecutionProperty": { - "$ref": "#/definitions/AWS::Glue::Job.ExecutionProperty" - }, - "LogUri": { - "type": "string" - }, - "MaxRetries": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "Role": { - "type": "string" + "ResourceGroupTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "Command", - "Role" + "ResourceGroupTags" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Job" + "AWS::Inspector::ResourceGroup" ], "type": "string" } @@ -21981,40 +25460,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Glue::Job.ConnectionsList": { - "additionalProperties": false, - "properties": { - "Connections": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Glue::Job.ExecutionProperty": { - "additionalProperties": false, - "properties": { - "MaxConcurrentRuns": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::Glue::Job.JobCommand": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptLocation": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Partition": { + "AWS::IoT1Click::Device": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22046,30 +25492,22 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { + "DeviceId": { "type": "string" }, - "PartitionInput": { - "$ref": "#/definitions/AWS::Glue::Partition.PartitionInput" - }, - "TableName": { - "type": "string" + "Enabled": { + "type": "boolean" } }, "required": [ - "CatalogId", - "DatabaseName", - "PartitionInput", - "TableName" + "DeviceId", + "Enabled" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Partition" + "AWS::IoT1Click::Device" ], "type": "string" } @@ -22080,148 +25518,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Glue::Partition.Column": { - "additionalProperties": false, - "properties": { - "Comment": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "AWS::Glue::Partition.Order": { - "additionalProperties": false, - "properties": { - "Column": { - "type": "string" - }, - "SortOrder": { - "type": "number" - } - }, - "required": [ - "Column" - ], - "type": "object" - }, - "AWS::Glue::Partition.PartitionInput": { - "additionalProperties": false, - "properties": { - "Parameters": { - "type": "object" - }, - "StorageDescriptor": { - "$ref": "#/definitions/AWS::Glue::Partition.StorageDescriptor" - }, - "Values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Values" - ], - "type": "object" - }, - "AWS::Glue::Partition.SerdeInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerializationLibrary": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Partition.SkewedInfo": { - "additionalProperties": false, - "properties": { - "SkewedColumnNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SkewedColumnValueLocationMaps": { - "type": "object" - }, - "SkewedColumnValues": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Glue::Partition.StorageDescriptor": { - "additionalProperties": false, - "properties": { - "BucketColumns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Columns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Partition.Column" - }, - "type": "array" - }, - "Compressed": { - "type": "boolean" - }, - "InputFormat": { - "type": "string" - }, - "Location": { - "type": "string" - }, - "NumberOfBuckets": { - "type": "number" - }, - "OutputFormat": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerdeInfo": { - "$ref": "#/definitions/AWS::Glue::Partition.SerdeInfo" - }, - "SkewedInfo": { - "$ref": "#/definitions/AWS::Glue::Partition.SkewedInfo" - }, - "SortColumns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Partition.Order" - }, - "type": "array" - }, - "StoredAsSubDirectories": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::Glue::Table": { + "AWS::IoT1Click::Placement": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22253,26 +25550,27 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CatalogId": { - "type": "string" + "AssociatedDevices": { + "type": "object" }, - "DatabaseName": { + "Attributes": { + "type": "object" + }, + "PlacementName": { "type": "string" }, - "TableInput": { - "$ref": "#/definitions/AWS::Glue::Table.TableInput" + "ProjectName": { + "type": "string" } }, "required": [ - "CatalogId", - "DatabaseName", - "TableInput" + "ProjectName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Table" + "AWS::IoT1Click::Placement" ], "type": "string" } @@ -22283,167 +25581,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Glue::Table.Column": { - "additionalProperties": false, - "properties": { - "Comment": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "AWS::Glue::Table.Order": { - "additionalProperties": false, - "properties": { - "Column": { - "type": "string" - }, - "SortOrder": { - "type": "number" - } - }, - "required": [ - "Column", - "SortOrder" - ], - "type": "object" - }, - "AWS::Glue::Table.SerdeInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerializationLibrary": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Table.SkewedInfo": { - "additionalProperties": false, - "properties": { - "SkewedColumnNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SkewedColumnValueLocationMaps": { - "type": "object" - }, - "SkewedColumnValues": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Glue::Table.StorageDescriptor": { - "additionalProperties": false, - "properties": { - "BucketColumns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Columns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Table.Column" - }, - "type": "array" - }, - "Compressed": { - "type": "boolean" - }, - "InputFormat": { - "type": "string" - }, - "Location": { - "type": "string" - }, - "NumberOfBuckets": { - "type": "number" - }, - "OutputFormat": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerdeInfo": { - "$ref": "#/definitions/AWS::Glue::Table.SerdeInfo" - }, - "SkewedInfo": { - "$ref": "#/definitions/AWS::Glue::Table.SkewedInfo" - }, - "SortColumns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Table.Order" - }, - "type": "array" - }, - "StoredAsSubDirectories": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::Glue::Table.TableInput": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Owner": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "PartitionKeys": { - "items": { - "$ref": "#/definitions/AWS::Glue::Table.Column" - }, - "type": "array" - }, - "Retention": { - "type": "number" - }, - "StorageDescriptor": { - "$ref": "#/definitions/AWS::Glue::Table.StorageDescriptor" - }, - "TableType": { - "type": "string" - }, - "ViewExpandedText": { - "type": "string" - }, - "ViewOriginalText": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Trigger": { + "AWS::IoT1Click::Project": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22475,37 +25613,24 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/AWS::Glue::Trigger.Action" - }, - "type": "array" - }, "Description": { "type": "string" }, - "Name": { - "type": "string" - }, - "Predicate": { - "$ref": "#/definitions/AWS::Glue::Trigger.Predicate" - }, - "Schedule": { - "type": "string" + "PlacementTemplate": { + "$ref": "#/definitions/AWS::IoT1Click::Project.PlacementTemplate" }, - "Type": { + "ProjectName": { "type": "string" } }, "required": [ - "Actions", - "Type" + "PlacementTemplate" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Trigger" + "AWS::IoT1Click::Project" ], "type": "string" } @@ -22516,49 +25641,31 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Glue::Trigger.Action": { + "AWS::IoT1Click::Project.DeviceTemplate": { "additionalProperties": false, "properties": { - "Arguments": { + "CallbackOverrides": { "type": "object" }, - "JobName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Trigger.Condition": { - "additionalProperties": false, - "properties": { - "JobName": { - "type": "string" - }, - "LogicalOperator": { - "type": "string" - }, - "State": { + "DeviceType": { "type": "string" } }, "type": "object" }, - "AWS::Glue::Trigger.Predicate": { + "AWS::IoT1Click::Project.PlacementTemplate": { "additionalProperties": false, "properties": { - "Conditions": { - "items": { - "$ref": "#/definitions/AWS::Glue::Trigger.Condition" - }, - "type": "array" + "DefaultAttributes": { + "type": "object" }, - "Logical": { - "type": "string" + "DeviceTemplates": { + "type": "object" } }, "type": "object" }, - "AWS::GuardDuty::Detector": { + "AWS::IoT::Certificate": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22590,21 +25697,22 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Enable": { - "type": "boolean" + "CertificateSigningRequest": { + "type": "string" }, - "FindingPublishingFrequency": { + "Status": { "type": "string" } }, "required": [ - "Enable" + "CertificateSigningRequest", + "Status" ], "type": "object" }, "Type": { "enum": [ - "AWS::GuardDuty::Detector" + "AWS::IoT::Certificate" ], "type": "string" } @@ -22615,7 +25723,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::GuardDuty::Filter": { + "AWS::IoT::Policy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22647,37 +25755,21 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Action": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "DetectorId": { - "type": "string" - }, - "FindingCriteria": { - "$ref": "#/definitions/AWS::GuardDuty::Filter.FindingCriteria" + "PolicyDocument": { + "type": "object" }, - "Name": { + "PolicyName": { "type": "string" - }, - "Rank": { - "type": "number" } }, "required": [ - "Action", - "Description", - "DetectorId", - "FindingCriteria", - "Rank" + "PolicyDocument" ], "type": "object" }, "Type": { "enum": [ - "AWS::GuardDuty::Filter" + "AWS::IoT::Policy" ], "type": "string" } @@ -22688,46 +25780,65 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::GuardDuty::Filter.Condition": { + "AWS::IoT::PolicyPrincipalAttachment": { "additionalProperties": false, "properties": { - "Eq": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Gte": { - "type": "number" + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" }, - "Lt": { - "type": "number" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Lte": { - "type": "number" + "Metadata": { + "type": "object" }, - "Neq": { - "items": { - "type": "string" + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyName": { + "type": "string" + }, + "Principal": { + "type": "string" + } }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::GuardDuty::Filter.FindingCriteria": { - "additionalProperties": false, - "properties": { - "Criterion": { + "required": [ + "PolicyName", + "Principal" + ], "type": "object" }, - "ItemType": { - "$ref": "#/definitions/AWS::GuardDuty::Filter.Condition" + "Type": { + "enum": [ + "AWS::IoT::PolicyPrincipalAttachment" + ], + "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::GuardDuty::IPSet": { + "AWS::IoT::Thing": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22759,44 +25870,43 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Activate": { - "type": "boolean" - }, - "DetectorId": { - "type": "string" - }, - "Format": { - "type": "string" - }, - "Location": { - "type": "string" + "AttributePayload": { + "$ref": "#/definitions/AWS::IoT::Thing.AttributePayload" }, - "Name": { + "ThingName": { "type": "string" } }, - "required": [ - "Activate", - "DetectorId", - "Format", - "Location" - ], "type": "object" }, "Type": { "enum": [ - "AWS::GuardDuty::IPSet" + "AWS::IoT::Thing" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::GuardDuty::Master": { + "AWS::IoT::Thing.AttributePayload": { + "additionalProperties": false, + "properties": { + "Attributes": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::IoT::ThingPrincipalAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22828,25 +25938,22 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DetectorId": { - "type": "string" - }, - "InvitationId": { + "Principal": { "type": "string" }, - "MasterId": { + "ThingName": { "type": "string" } }, "required": [ - "DetectorId", - "MasterId" + "Principal", + "ThingName" ], "type": "object" }, "Type": { "enum": [ - "AWS::GuardDuty::Master" + "AWS::IoT::ThingPrincipalAttachment" ], "type": "string" } @@ -22857,7 +25964,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::GuardDuty::Member": { + "AWS::IoT::TopicRule": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22889,256 +25996,414 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DetectorId": { - "type": "string" - }, - "DisableEmailNotification": { - "type": "boolean" - }, - "Email": { - "type": "string" - }, - "MemberId": { - "type": "string" - }, - "Message": { + "RuleName": { "type": "string" }, - "Status": { - "type": "string" + "TopicRulePayload": { + "$ref": "#/definitions/AWS::IoT::TopicRule.TopicRulePayload" } }, "required": [ - "DetectorId", - "Email", - "MemberId" + "TopicRulePayload" ], "type": "object" }, "Type": { "enum": [ - "AWS::GuardDuty::Member" + "AWS::IoT::TopicRule" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.Action": { + "additionalProperties": false, + "properties": { + "CloudwatchAlarm": { + "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchAlarmAction" + }, + "CloudwatchMetric": { + "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchMetricAction" + }, + "DynamoDB": { + "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBAction" + }, + "DynamoDBv2": { + "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBv2Action" + }, + "Elasticsearch": { + "$ref": "#/definitions/AWS::IoT::TopicRule.ElasticsearchAction" + }, + "Firehose": { + "$ref": "#/definitions/AWS::IoT::TopicRule.FirehoseAction" + }, + "IotAnalytics": { + "$ref": "#/definitions/AWS::IoT::TopicRule.IotAnalyticsAction" + }, + "Kinesis": { + "$ref": "#/definitions/AWS::IoT::TopicRule.KinesisAction" + }, + "Lambda": { + "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction" + }, + "Republish": { + "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishAction" + }, + "S3": { + "$ref": "#/definitions/AWS::IoT::TopicRule.S3Action" + }, + "Sns": { + "$ref": "#/definitions/AWS::IoT::TopicRule.SnsAction" + }, + "Sqs": { + "$ref": "#/definitions/AWS::IoT::TopicRule.SqsAction" + }, + "StepFunctions": { + "$ref": "#/definitions/AWS::IoT::TopicRule.StepFunctionsAction" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRule.CloudwatchAlarmAction": { + "additionalProperties": false, + "properties": { + "AlarmName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StateReason": { + "type": "string" + }, + "StateValue": { + "type": "string" + } + }, + "required": [ + "AlarmName", + "RoleArn", + "StateReason", + "StateValue" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.CloudwatchMetricAction": { + "additionalProperties": false, + "properties": { + "MetricName": { + "type": "string" + }, + "MetricNamespace": { + "type": "string" + }, + "MetricTimestamp": { + "type": "string" + }, + "MetricUnit": { + "type": "string" + }, + "MetricValue": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "MetricName", + "MetricNamespace", + "MetricUnit", + "MetricValue", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.DynamoDBAction": { + "additionalProperties": false, + "properties": { + "HashKeyField": { + "type": "string" + }, + "HashKeyType": { + "type": "string" + }, + "HashKeyValue": { + "type": "string" + }, + "PayloadField": { + "type": "string" + }, + "RangeKeyField": { + "type": "string" + }, + "RangeKeyType": { + "type": "string" + }, + "RangeKeyValue": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "HashKeyField", + "HashKeyValue", + "RoleArn", + "TableName" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.DynamoDBv2Action": { + "additionalProperties": false, + "properties": { + "PutItem": { + "$ref": "#/definitions/AWS::IoT::TopicRule.PutItemInput" + }, + "RoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRule.ElasticsearchAction": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Index": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Endpoint", + "Id", + "Index", + "RoleArn", + "Type" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.FirehoseAction": { + "additionalProperties": false, + "properties": { + "DeliveryStreamName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Separator": { + "type": "string" + } + }, + "required": [ + "DeliveryStreamName", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.IotAnalyticsAction": { + "additionalProperties": false, + "properties": { + "ChannelName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "ChannelName", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.KinesisAction": { + "additionalProperties": false, + "properties": { + "PartitionKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StreamName": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "StreamName" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.LambdaAction": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRule.PutItemInput": { + "additionalProperties": false, + "properties": { + "TableName": { + "type": "string" + } + }, + "required": [ + "TableName" ], "type": "object" }, - "AWS::GuardDuty::ThreatIntelSet": { + "AWS::IoT::TopicRule.RepublishAction": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "RoleArn": { "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": { - "Activate": { - "type": "boolean" - }, - "DetectorId": { - "type": "string" - }, - "Format": { - "type": "string" - }, - "Location": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "Activate", - "DetectorId", - "Format", - "Location" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::GuardDuty::ThreatIntelSet" - ], + "Topic": { "type": "string" } }, "required": [ - "Type", - "Properties" + "RoleArn", + "Topic" ], "type": "object" }, - "AWS::IAM::AccessKey": { + "AWS::IoT::TopicRule.S3Action": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "BucketName": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Key": { + "type": "string" }, - "Metadata": { - "type": "object" + "RoleArn": { + "type": "string" + } + }, + "required": [ + "BucketName", + "Key", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.SnsAction": { + "additionalProperties": false, + "properties": { + "MessageFormat": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Serial": { - "type": "number" - }, - "Status": { - "type": "string" - }, - "UserName": { - "type": "string" - } - }, - "required": [ - "UserName" - ], - "type": "object" + "RoleArn": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::IAM::AccessKey" - ], + "TargetArn": { "type": "string" } }, "required": [ - "Type", - "Properties" + "RoleArn", + "TargetArn" ], "type": "object" }, - "AWS::IAM::Group": { + "AWS::IoT::TopicRule.SqsAction": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "QueueUrl": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "RoleArn": { + "type": "string" }, - "Metadata": { - "type": "object" + "UseBase64": { + "type": "boolean" + } + }, + "required": [ + "QueueUrl", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.StepFunctionsAction": { + "additionalProperties": false, + "properties": { + "ExecutionNamePrefix": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "GroupName": { - "type": "string" - }, - "ManagedPolicyArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Path": { - "type": "string" - }, - "Policies": { - "items": { - "$ref": "#/definitions/AWS::IAM::Group.Policy" - }, - "type": "array" - } - }, - "type": "object" + "RoleArn": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::IAM::Group" - ], + "StateMachineName": { "type": "string" } }, "required": [ - "Type" + "RoleArn", + "StateMachineName" ], "type": "object" }, - "AWS::IAM::Group.Policy": { + "AWS::IoT::TopicRule.TopicRulePayload": { "additionalProperties": false, "properties": { - "PolicyDocument": { - "type": "object" + "Actions": { + "items": { + "$ref": "#/definitions/AWS::IoT::TopicRule.Action" + }, + "type": "array" }, - "PolicyName": { + "AwsIotSqlVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "ErrorAction": { + "$ref": "#/definitions/AWS::IoT::TopicRule.Action" + }, + "RuleDisabled": { + "type": "boolean" + }, + "Sql": { "type": "string" } }, "required": [ - "PolicyDocument", - "PolicyName" + "Actions", + "RuleDisabled", + "Sql" ], "type": "object" }, - "AWS::IAM::InstanceProfile": { + "AWS::IoTAnalytics::Channel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23170,38 +26435,46 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "InstanceProfileName": { + "ChannelName": { "type": "string" }, - "Path": { - "type": "string" + "RetentionPeriod": { + "$ref": "#/definitions/AWS::IoTAnalytics::Channel.RetentionPeriod" }, - "Roles": { + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" } }, - "required": [ - "Roles" - ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::InstanceProfile" + "AWS::IoTAnalytics::Channel" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::IAM::ManagedPolicy": { + "AWS::IoTAnalytics::Channel.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "NumberOfDays": { + "type": "number" + }, + "Unlimited": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23233,45 +26506,39 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" - }, - "Groups": { + "Actions": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Action" }, "type": "array" }, - "ManagedPolicyName": { - "type": "string" - }, - "Path": { + "DatasetName": { "type": "string" }, - "PolicyDocument": { - "type": "object" + "RetentionPeriod": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.RetentionPeriod" }, - "Roles": { + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "Users": { + "Triggers": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Trigger" }, "type": "array" } }, "required": [ - "PolicyDocument" + "Actions" ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::ManagedPolicy" + "AWS::IoTAnalytics::Dataset" ], "type": "string" } @@ -23282,177 +26549,204 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::IAM::Policy": { + "AWS::IoTAnalytics::Dataset.Action": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "ActionName": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "ContainerAction": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.ContainerAction" }, - "Metadata": { - "type": "object" + "QueryAction": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.QueryAction" + } + }, + "required": [ + "ActionName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.ContainerAction": { + "additionalProperties": false, + "properties": { + "ExecutionRoleArn": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Groups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "PolicyDocument": { - "type": "object" - }, - "PolicyName": { - "type": "string" - }, - "Roles": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Users": { - "items": { - "type": "string" - }, - "type": "array" - } + "Image": { + "type": "string" + }, + "ResourceConfiguration": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.ResourceConfiguration" + }, + "Variables": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Variable" }, - "required": [ - "PolicyDocument", - "PolicyName" - ], - "type": "object" + "type": "array" + } + }, + "required": [ + "ExecutionRoleArn", + "Image", + "ResourceConfiguration" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.DatasetContentVersionValue": { + "additionalProperties": false, + "properties": { + "DatasetName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.DeltaTime": { + "additionalProperties": false, + "properties": { + "OffsetSeconds": { + "type": "number" }, - "Type": { - "enum": [ - "AWS::IAM::Policy" - ], + "TimeExpression": { "type": "string" } }, "required": [ - "Type", - "Properties" + "OffsetSeconds", + "TimeExpression" ], "type": "object" }, - "AWS::IAM::Role": { + "AWS::IoTAnalytics::Dataset.Filter": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "DeltaTime": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DeltaTime" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.OutputFileUriValue": { + "additionalProperties": false, + "properties": { + "FileName": { "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.QueryAction": { + "additionalProperties": false, + "properties": { + "Filters": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Filter" + }, + "type": "array" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "SqlQuery": { + "type": "string" + } + }, + "required": [ + "SqlQuery" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.ResourceConfiguration": { + "additionalProperties": false, + "properties": { + "ComputeType": { + "type": "string" }, - "Metadata": { - "type": "object" + "VolumeSizeInGB": { + "type": "number" + } + }, + "required": [ + "ComputeType", + "VolumeSizeInGB" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "NumberOfDays": { + "type": "number" }, - "Properties": { - "additionalProperties": false, - "properties": { - "AssumeRolePolicyDocument": { - "type": "object" - }, - "ManagedPolicyArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MaxSessionDuration": { - "type": "number" - }, - "Path": { - "type": "string" - }, - "PermissionsBoundary": { - "type": "string" - }, - "Policies": { - "items": { - "$ref": "#/definitions/AWS::IAM::Role.Policy" - }, - "type": "array" - }, - "RoleName": { - "type": "string" - } - }, - "required": [ - "AssumeRolePolicyDocument" - ], - "type": "object" + "Unlimited": { + "type": "boolean" + } + }, + "required": [ + "NumberOfDays", + "Unlimited" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.Schedule": { + "additionalProperties": false, + "properties": { + "ScheduleExpression": { + "type": "string" + } + }, + "required": [ + "ScheduleExpression" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.Trigger": { + "additionalProperties": false, + "properties": { + "Schedule": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Schedule" }, - "Type": { - "enum": [ - "AWS::IAM::Role" - ], + "TriggeringDataset": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.TriggeringDataset" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.TriggeringDataset": { + "additionalProperties": false, + "properties": { + "DatasetName": { "type": "string" } }, "required": [ - "Type", - "Properties" + "DatasetName" ], "type": "object" }, - "AWS::IAM::Role.Policy": { + "AWS::IoTAnalytics::Dataset.Variable": { "additionalProperties": false, "properties": { - "PolicyDocument": { - "type": "object" + "DatasetContentVersionValue": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DatasetContentVersionValue" }, - "PolicyName": { + "DoubleValue": { + "type": "number" + }, + "OutputFileUriValue": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.OutputFileUriValue" + }, + "StringValue": { + "type": "string" + }, + "VariableName": { "type": "string" } }, "required": [ - "PolicyDocument", - "PolicyName" + "VariableName" ], "type": "object" }, - "AWS::IAM::ServiceLinkedRole": { + "AWS::IoTAnalytics::Datastore": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23484,35 +26778,46 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AWSServiceName": { + "DatastoreName": { "type": "string" }, - "CustomSuffix": { - "type": "string" + "RetentionPeriod": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.RetentionPeriod" }, - "Description": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, - "required": [ - "AWSServiceName" - ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::ServiceLinkedRole" + "AWS::IoTAnalytics::Datastore" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::IAM::User": { + "AWS::IoTAnalytics::Datastore.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "NumberOfDays": { + "type": "number" + }, + "Unlimited": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23544,83 +26849,248 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Groups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LoginProfile": { - "$ref": "#/definitions/AWS::IAM::User.LoginProfile" - }, - "ManagedPolicyArns": { + "PipelineActivities": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Activity" }, "type": "array" }, - "Path": { - "type": "string" - }, - "PermissionsBoundary": { + "PipelineName": { "type": "string" }, - "Policies": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::IAM::User.Policy" + "$ref": "#/definitions/Tag" }, "type": "array" - }, - "UserName": { - "type": "string" } }, + "required": [ + "PipelineActivities" + ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::User" + "AWS::IoTAnalytics::Pipeline" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::IAM::User.LoginProfile": { + "AWS::IoTAnalytics::Pipeline.Activity": { "additionalProperties": false, "properties": { - "Password": { - "type": "string" + "AddAttributes": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.AddAttributes" }, - "PasswordResetRequired": { - "type": "boolean" + "Channel": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Channel" + }, + "Datastore": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Datastore" + }, + "DeviceRegistryEnrich": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.DeviceRegistryEnrich" + }, + "DeviceShadowEnrich": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.DeviceShadowEnrich" + }, + "Filter": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Filter" + }, + "Lambda": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Lambda" + }, + "Math": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Math" + }, + "RemoveAttributes": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.RemoveAttributes" + }, + "SelectAttributes": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.SelectAttributes" } }, - "required": [ - "Password" - ], "type": "object" }, - "AWS::IAM::User.Policy": { + "AWS::IoTAnalytics::Pipeline.AddAttributes": { "additionalProperties": false, "properties": { - "PolicyDocument": { + "Attributes": { "type": "object" }, - "PolicyName": { + "Name": { + "type": "string" + }, + "Next": { "type": "string" } }, - "required": [ - "PolicyDocument", - "PolicyName" - ], "type": "object" }, - "AWS::IAM::UserToGroupAddition": { + "AWS::IoTAnalytics::Pipeline.Channel": { + "additionalProperties": false, + "properties": { + "ChannelName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Datastore": { + "additionalProperties": false, + "properties": { + "DatastoreName": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.DeviceRegistryEnrich": { + "additionalProperties": false, + "properties": { + "Attribute": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.DeviceShadowEnrich": { + "additionalProperties": false, + "properties": { + "Attribute": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Filter": { + "additionalProperties": false, + "properties": { + "Filter": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Lambda": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "type": "number" + }, + "LambdaName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Math": { + "additionalProperties": false, + "properties": { + "Attribute": { + "type": "string" + }, + "Math": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.RemoveAttributes": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.SelectAttributes": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::KMS::Alias": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23652,25 +27122,22 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "GroupName": { + "AliasName": { "type": "string" }, - "Users": { - "items": { - "type": "string" - }, - "type": "array" + "TargetKeyId": { + "type": "string" } }, "required": [ - "GroupName", - "Users" + "AliasName", + "TargetKeyId" ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::UserToGroupAddition" + "AWS::KMS::Alias" ], "type": "string" } @@ -23681,7 +27148,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Inspector::AssessmentTarget": { + "AWS::KMS::Key": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23713,21 +27180,39 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AssessmentTargetName": { + "Description": { "type": "string" }, - "ResourceGroupArn": { + "EnableKeyRotation": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "KeyPolicy": { + "type": "object" + }, + "KeyUsage": { "type": "string" + }, + "PendingWindowInDays": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "ResourceGroupArn" + "KeyPolicy" ], "type": "object" }, "Type": { "enum": [ - "AWS::Inspector::AssessmentTarget" + "AWS::KMS::Key" ], "type": "string" } @@ -23738,7 +27223,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Inspector::AssessmentTemplate": { + "AWS::Kinesis::Stream": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23770,22 +27255,19 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AssessmentTargetArn": { + "Name": { "type": "string" }, - "AssessmentTemplateName": { - "type": "string" + "RetentionPeriodHours": { + "type": "number" }, - "DurationInSeconds": { + "ShardCount": { "type": "number" }, - "RulesPackageArns": { - "items": { - "type": "string" - }, - "type": "array" + "StreamEncryption": { + "$ref": "#/definitions/AWS::Kinesis::Stream.StreamEncryption" }, - "UserAttributesForFindings": { + "Tags": { "items": { "$ref": "#/definitions/Tag" }, @@ -23793,15 +27275,13 @@ var CloudformationSchema = `{ } }, "required": [ - "AssessmentTargetArn", - "DurationInSeconds", - "RulesPackageArns" + "ShardCount" ], "type": "object" }, "Type": { "enum": [ - "AWS::Inspector::AssessmentTemplate" + "AWS::Kinesis::Stream" ], "type": "string" } @@ -23812,7 +27292,23 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Inspector::ResourceGroup": { + "AWS::Kinesis::Stream.StreamEncryption": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "type": "string" + }, + "KeyId": { + "type": "string" + } + }, + "required": [ + "EncryptionType", + "KeyId" + ], + "type": "object" + }, + "AWS::Kinesis::StreamConsumer": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23844,21 +27340,22 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ResourceGroupTags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "ConsumerName": { + "type": "string" + }, + "StreamARN": { + "type": "string" } }, "required": [ - "ResourceGroupTags" + "ConsumerName", + "StreamARN" ], "type": "object" }, "Type": { "enum": [ - "AWS::Inspector::ResourceGroup" + "AWS::Kinesis::StreamConsumer" ], "type": "string" } @@ -23869,7 +27366,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::IoT1Click::Device": { + "AWS::KinesisAnalytics::Application": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23901,96 +27398,231 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DeviceId": { + "ApplicationCode": { "type": "string" }, - "Enabled": { - "type": "boolean" + "ApplicationDescription": { + "type": "string" + }, + "ApplicationName": { + "type": "string" + }, + "Inputs": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.Input" + }, + "type": "array" } }, "required": [ - "DeviceId", - "Enabled" + "Inputs" ], "type": "object" }, - "Type": { - "enum": [ - "AWS::IoT1Click::Device" - ], + "Type": { + "enum": [ + "AWS::KinesisAnalytics::Application" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.CSVMappingParameters": { + "additionalProperties": false, + "properties": { + "RecordColumnDelimiter": { + "type": "string" + }, + "RecordRowDelimiter": { + "type": "string" + } + }, + "required": [ + "RecordColumnDelimiter", + "RecordRowDelimiter" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.Input": { + "additionalProperties": false, + "properties": { + "InputParallelism": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputParallelism" + }, + "InputProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputProcessingConfiguration" + }, + "InputSchema": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputSchema" + }, + "KinesisFirehoseInput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.KinesisFirehoseInput" + }, + "KinesisStreamsInput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.KinesisStreamsInput" + }, + "NamePrefix": { + "type": "string" + } + }, + "required": [ + "InputSchema", + "NamePrefix" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.InputLambdaProcessor": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.InputParallelism": { + "additionalProperties": false, + "properties": { + "Count": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisAnalytics::Application.InputProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "InputLambdaProcessor": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputLambdaProcessor" + } + }, + "type": "object" + }, + "AWS::KinesisAnalytics::Application.InputSchema": { + "additionalProperties": false, + "properties": { + "RecordColumns": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.RecordColumn" + }, + "type": "array" + }, + "RecordEncoding": { + "type": "string" + }, + "RecordFormat": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.RecordFormat" + } + }, + "required": [ + "RecordColumns", + "RecordFormat" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.JSONMappingParameters": { + "additionalProperties": false, + "properties": { + "RecordRowPath": { + "type": "string" + } + }, + "required": [ + "RecordRowPath" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.KinesisFirehoseInput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.KinesisStreamsInput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.MappingParameters": { + "additionalProperties": false, + "properties": { + "CSVMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.CSVMappingParameters" + }, + "JSONMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.JSONMappingParameters" + } + }, + "type": "object" + }, + "AWS::KinesisAnalytics::Application.RecordColumn": { + "additionalProperties": false, + "properties": { + "Mapping": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SqlType": { "type": "string" } }, "required": [ - "Type", - "Properties" + "Name", + "SqlType" ], "type": "object" }, - "AWS::IoT1Click::Placement": { + "AWS::KinesisAnalytics::Application.RecordFormat": { "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": { - "AssociatedDevices": { - "type": "object" - }, - "Attributes": { - "type": "object" - }, - "PlacementName": { - "type": "string" - }, - "ProjectName": { - "type": "string" - } - }, - "required": [ - "ProjectName" - ], - "type": "object" + "MappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.MappingParameters" }, - "Type": { - "enum": [ - "AWS::IoT1Click::Placement" - ], + "RecordFormatType": { "type": "string" } }, "required": [ - "Type", - "Properties" + "RecordFormatType" ], "type": "object" }, - "AWS::IoT1Click::Project": { + "AWS::KinesisAnalytics::ApplicationOutput": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -24022,24 +27654,22 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "ApplicationName": { "type": "string" }, - "PlacementTemplate": { - "$ref": "#/definitions/AWS::IoT1Click::Project.PlacementTemplate" - }, - "ProjectName": { - "type": "string" + "Output": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.Output" } }, "required": [ - "PlacementTemplate" + "ApplicationName", + "Output" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT1Click::Project" + "AWS::KinesisAnalytics::ApplicationOutput" ], "type": "string" } @@ -24050,146 +27680,88 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::IoT1Click::Project.DeviceTemplate": { + "AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema": { "additionalProperties": false, "properties": { - "CallbackOverrides": { - "type": "object" - }, - "DeviceType": { + "RecordFormatType": { "type": "string" } }, "type": "object" }, - "AWS::IoT1Click::Project.PlacementTemplate": { + "AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput": { "additionalProperties": false, "properties": { - "DefaultAttributes": { - "type": "object" + "ResourceARN": { + "type": "string" }, - "DeviceTemplates": { - "type": "object" + "RoleARN": { + "type": "string" } }, + "required": [ + "ResourceARN", + "RoleARN" + ], "type": "object" }, - "AWS::IoT::Certificate": { + "AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "ResourceARN": { "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": { - "CertificateSigningRequest": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "required": [ - "CertificateSigningRequest", - "Status" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::IoT::Certificate" - ], + "RoleARN": { "type": "string" } }, "required": [ - "Type", - "Properties" + "ResourceARN", + "RoleARN" ], "type": "object" }, - "AWS::IoT::Policy": { + "AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "ResourceARN": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "RoleARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationOutput.Output": { + "additionalProperties": false, + "properties": { + "DestinationSchema": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema" }, - "Metadata": { - "type": "object" + "KinesisFirehoseOutput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput" }, - "Properties": { - "additionalProperties": false, - "properties": { - "PolicyDocument": { - "type": "object" - }, - "PolicyName": { - "type": "string" - } - }, - "required": [ - "PolicyDocument" - ], - "type": "object" + "KinesisStreamsOutput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput" }, - "Type": { - "enum": [ - "AWS::IoT::Policy" - ], + "LambdaOutput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput" + }, + "Name": { "type": "string" } }, "required": [ - "Type", - "Properties" + "DestinationSchema" ], "type": "object" }, - "AWS::IoT::PolicyPrincipalAttachment": { + "AWS::KinesisAnalytics::ApplicationReferenceDataSource": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -24221,22 +27793,22 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "PolicyName": { + "ApplicationName": { "type": "string" }, - "Principal": { - "type": "string" + "ReferenceDataSource": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource" } }, "required": [ - "PolicyName", - "Principal" + "ApplicationName", + "ReferenceDataSource" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT::PolicyPrincipalAttachment" + "AWS::KinesisAnalytics::ApplicationReferenceDataSource" ], "type": "string" } @@ -24247,133 +27819,141 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::IoT::Thing": { + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "RecordColumnDelimiter": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "RecordRowDelimiter": { + "type": "string" + } + }, + "required": [ + "RecordColumnDelimiter", + "RecordRowDelimiter" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters": { + "additionalProperties": false, + "properties": { + "RecordRowPath": { + "type": "string" + } + }, + "required": [ + "RecordRowPath" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters": { + "additionalProperties": false, + "properties": { + "CSVMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters" }, - "Metadata": { - "type": "object" + "JSONMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters" + } + }, + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn": { + "additionalProperties": false, + "properties": { + "Mapping": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "AttributePayload": { - "$ref": "#/definitions/AWS::IoT::Thing.AttributePayload" - }, - "ThingName": { - "type": "string" - } - }, - "type": "object" + "Name": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::IoT::Thing" - ], + "SqlType": { "type": "string" } }, "required": [ - "Type" + "Name", + "SqlType" ], "type": "object" }, - "AWS::IoT::Thing.AttributePayload": { + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat": { "additionalProperties": false, "properties": { - "Attributes": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" + "MappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters" + }, + "RecordFormatType": { + "type": "string" } }, + "required": [ + "RecordFormatType" + ], "type": "object" }, - "AWS::IoT::ThingPrincipalAttachment": { + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "ReferenceSchema": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema" + }, + "S3ReferenceDataSource": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource" + }, + "TableName": { "type": "string" + } + }, + "required": [ + "ReferenceSchema" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema": { + "additionalProperties": false, + "properties": { + "RecordColumns": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn" + }, + "type": "array" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "RecordEncoding": { + "type": "string" }, - "Metadata": { - "type": "object" + "RecordFormat": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat" + } + }, + "required": [ + "RecordColumns", + "RecordFormat" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Principal": { - "type": "string" - }, - "ThingName": { - "type": "string" - } - }, - "required": [ - "Principal", - "ThingName" - ], - "type": "object" + "FileKey": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::IoT::ThingPrincipalAttachment" - ], + "ReferenceRoleARN": { "type": "string" } }, "required": [ - "Type", - "Properties" + "BucketARN", + "FileKey", + "ReferenceRoleARN" ], "type": "object" }, - "AWS::IoT::TopicRule": { + "AWS::KinesisAnalyticsV2::Application": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -24405,690 +27985,410 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "RuleName": { + "ApplicationConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ApplicationConfiguration" + }, + "ApplicationDescription": { "type": "string" }, - "TopicRulePayload": { - "$ref": "#/definitions/AWS::IoT::TopicRule.TopicRulePayload" - } - }, - "required": [ - "TopicRulePayload" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::IoT::TopicRule" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::IoT::TopicRule.Action": { - "additionalProperties": false, - "properties": { - "CloudwatchAlarm": { - "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchAlarmAction" - }, - "CloudwatchMetric": { - "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchMetricAction" - }, - "DynamoDB": { - "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBAction" - }, - "DynamoDBv2": { - "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBv2Action" - }, - "Elasticsearch": { - "$ref": "#/definitions/AWS::IoT::TopicRule.ElasticsearchAction" - }, - "Firehose": { - "$ref": "#/definitions/AWS::IoT::TopicRule.FirehoseAction" - }, - "IotAnalytics": { - "$ref": "#/definitions/AWS::IoT::TopicRule.IotAnalyticsAction" - }, - "Kinesis": { - "$ref": "#/definitions/AWS::IoT::TopicRule.KinesisAction" - }, - "Lambda": { - "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction" - }, - "Republish": { - "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishAction" - }, - "S3": { - "$ref": "#/definitions/AWS::IoT::TopicRule.S3Action" - }, - "Sns": { - "$ref": "#/definitions/AWS::IoT::TopicRule.SnsAction" - }, - "Sqs": { - "$ref": "#/definitions/AWS::IoT::TopicRule.SqsAction" + "ApplicationName": { + "type": "string" + }, + "RuntimeEnvironment": { + "type": "string" + }, + "ServiceExecutionRole": { + "type": "string" + } + }, + "required": [ + "RuntimeEnvironment", + "ServiceExecutionRole" + ], + "type": "object" }, - "StepFunctions": { - "$ref": "#/definitions/AWS::IoT::TopicRule.StepFunctionsAction" + "Type": { + "enum": [ + "AWS::KinesisAnalyticsV2::Application" + ], + "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::IoT::TopicRule.CloudwatchAlarmAction": { + "AWS::KinesisAnalyticsV2::Application.ApplicationCodeConfiguration": { "additionalProperties": false, "properties": { - "AlarmName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "StateReason": { - "type": "string" + "CodeContent": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CodeContent" }, - "StateValue": { + "CodeContentType": { "type": "string" } }, "required": [ - "AlarmName", - "RoleArn", - "StateReason", - "StateValue" + "CodeContent", + "CodeContentType" ], "type": "object" }, - "AWS::IoT::TopicRule.CloudwatchMetricAction": { + "AWS::KinesisAnalyticsV2::Application.ApplicationConfiguration": { "additionalProperties": false, "properties": { - "MetricName": { - "type": "string" + "ApplicationCodeConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ApplicationCodeConfiguration" }, - "MetricNamespace": { - "type": "string" - }, - "MetricTimestamp": { - "type": "string" + "ApplicationSnapshotConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ApplicationSnapshotConfiguration" }, - "MetricUnit": { - "type": "string" + "EnvironmentProperties": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.EnvironmentProperties" }, - "MetricValue": { - "type": "string" + "FlinkApplicationConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.FlinkApplicationConfiguration" }, - "RoleArn": { - "type": "string" + "SqlApplicationConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.ApplicationSnapshotConfiguration": { + "additionalProperties": false, + "properties": { + "SnapshotsEnabled": { + "type": "boolean" } }, "required": [ - "MetricName", - "MetricNamespace", - "MetricUnit", - "MetricValue", - "RoleArn" + "SnapshotsEnabled" ], "type": "object" }, - "AWS::IoT::TopicRule.DynamoDBAction": { + "AWS::KinesisAnalyticsV2::Application.CSVMappingParameters": { "additionalProperties": false, "properties": { - "HashKeyField": { - "type": "string" - }, - "HashKeyType": { - "type": "string" - }, - "HashKeyValue": { - "type": "string" - }, - "PayloadField": { - "type": "string" - }, - "RangeKeyField": { - "type": "string" - }, - "RangeKeyType": { - "type": "string" - }, - "RangeKeyValue": { - "type": "string" - }, - "RoleArn": { + "RecordColumnDelimiter": { "type": "string" }, - "TableName": { + "RecordRowDelimiter": { "type": "string" } }, "required": [ - "HashKeyField", - "HashKeyValue", - "RoleArn", - "TableName" + "RecordColumnDelimiter", + "RecordRowDelimiter" ], "type": "object" }, - "AWS::IoT::TopicRule.DynamoDBv2Action": { + "AWS::KinesisAnalyticsV2::Application.CheckpointConfiguration": { "additionalProperties": false, "properties": { - "PutItem": { - "$ref": "#/definitions/AWS::IoT::TopicRule.PutItemInput" + "CheckpointInterval": { + "type": "number" }, - "RoleArn": { + "CheckpointingEnabled": { + "type": "boolean" + }, + "ConfigurationType": { "type": "string" + }, + "MinPauseBetweenCheckpoints": { + "type": "number" } }, + "required": [ + "ConfigurationType" + ], "type": "object" }, - "AWS::IoT::TopicRule.ElasticsearchAction": { + "AWS::KinesisAnalyticsV2::Application.CodeContent": { "additionalProperties": false, "properties": { - "Endpoint": { - "type": "string" + "S3ContentLocation": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.S3ContentLocation" }, - "Id": { + "TextContent": { "type": "string" }, - "Index": { + "ZipFileContent": { "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.EnvironmentProperties": { + "additionalProperties": false, + "properties": { + "PropertyGroups": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.PropertyGroup" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.FlinkApplicationConfiguration": { + "additionalProperties": false, + "properties": { + "CheckpointConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CheckpointConfiguration" }, - "RoleArn": { - "type": "string" + "MonitoringConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.MonitoringConfiguration" }, - "Type": { - "type": "string" + "ParallelismConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ParallelismConfiguration" } }, - "required": [ - "Endpoint", - "Id", - "Index", - "RoleArn", - "Type" - ], "type": "object" }, - "AWS::IoT::TopicRule.FirehoseAction": { + "AWS::KinesisAnalyticsV2::Application.Input": { "additionalProperties": false, "properties": { - "DeliveryStreamName": { - "type": "string" + "InputParallelism": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputParallelism" }, - "RoleArn": { - "type": "string" + "InputProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputProcessingConfiguration" }, - "Separator": { + "InputSchema": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputSchema" + }, + "KinesisFirehoseInput": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.KinesisFirehoseInput" + }, + "KinesisStreamsInput": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.KinesisStreamsInput" + }, + "NamePrefix": { "type": "string" } }, "required": [ - "DeliveryStreamName", - "RoleArn" + "InputSchema", + "NamePrefix" ], "type": "object" }, - "AWS::IoT::TopicRule.IotAnalyticsAction": { + "AWS::KinesisAnalyticsV2::Application.InputLambdaProcessor": { "additionalProperties": false, "properties": { - "ChannelName": { - "type": "string" - }, - "RoleArn": { + "ResourceARN": { "type": "string" } }, "required": [ - "ChannelName", - "RoleArn" + "ResourceARN" ], "type": "object" }, - "AWS::IoT::TopicRule.KinesisAction": { + "AWS::KinesisAnalyticsV2::Application.InputParallelism": { "additionalProperties": false, "properties": { - "PartitionKey": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "StreamName": { - "type": "string" + "Count": { + "type": "number" } }, - "required": [ - "RoleArn", - "StreamName" - ], "type": "object" }, - "AWS::IoT::TopicRule.LambdaAction": { + "AWS::KinesisAnalyticsV2::Application.InputProcessingConfiguration": { "additionalProperties": false, "properties": { - "FunctionArn": { - "type": "string" + "InputLambdaProcessor": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputLambdaProcessor" } }, "type": "object" }, - "AWS::IoT::TopicRule.PutItemInput": { + "AWS::KinesisAnalyticsV2::Application.InputSchema": { "additionalProperties": false, "properties": { - "TableName": { + "RecordColumns": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.RecordColumn" + }, + "type": "array" + }, + "RecordEncoding": { "type": "string" + }, + "RecordFormat": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.RecordFormat" } }, "required": [ - "TableName" + "RecordColumns", + "RecordFormat" ], "type": "object" }, - "AWS::IoT::TopicRule.RepublishAction": { + "AWS::KinesisAnalyticsV2::Application.JSONMappingParameters": { "additionalProperties": false, "properties": { - "RoleArn": { - "type": "string" - }, - "Topic": { + "RecordRowPath": { "type": "string" } }, "required": [ - "RoleArn", - "Topic" + "RecordRowPath" ], "type": "object" }, - "AWS::IoT::TopicRule.S3Action": { + "AWS::KinesisAnalyticsV2::Application.KinesisFirehoseInput": { "additionalProperties": false, "properties": { - "BucketName": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "RoleArn": { + "ResourceARN": { "type": "string" } }, "required": [ - "BucketName", - "Key", - "RoleArn" + "ResourceARN" ], "type": "object" }, - "AWS::IoT::TopicRule.SnsAction": { + "AWS::KinesisAnalyticsV2::Application.KinesisStreamsInput": { "additionalProperties": false, "properties": { - "MessageFormat": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "TargetArn": { + "ResourceARN": { "type": "string" } }, "required": [ - "RoleArn", - "TargetArn" + "ResourceARN" ], "type": "object" }, - "AWS::IoT::TopicRule.SqsAction": { + "AWS::KinesisAnalyticsV2::Application.MappingParameters": { "additionalProperties": false, "properties": { - "QueueUrl": { - "type": "string" - }, - "RoleArn": { - "type": "string" + "CSVMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CSVMappingParameters" }, - "UseBase64": { - "type": "boolean" + "JSONMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.JSONMappingParameters" } }, - "required": [ - "QueueUrl", - "RoleArn" - ], "type": "object" }, - "AWS::IoT::TopicRule.StepFunctionsAction": { + "AWS::KinesisAnalyticsV2::Application.MonitoringConfiguration": { "additionalProperties": false, "properties": { - "ExecutionNamePrefix": { + "ConfigurationType": { "type": "string" }, - "RoleArn": { + "LogLevel": { "type": "string" }, - "StateMachineName": { + "MetricsLevel": { "type": "string" } }, "required": [ - "RoleArn", - "StateMachineName" + "ConfigurationType" ], "type": "object" }, - "AWS::IoT::TopicRule.TopicRulePayload": { + "AWS::KinesisAnalyticsV2::Application.ParallelismConfiguration": { "additionalProperties": false, "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/AWS::IoT::TopicRule.Action" - }, - "type": "array" - }, - "AwsIotSqlVersion": { - "type": "string" + "AutoScalingEnabled": { + "type": "boolean" }, - "Description": { + "ConfigurationType": { "type": "string" }, - "ErrorAction": { - "$ref": "#/definitions/AWS::IoT::TopicRule.Action" - }, - "RuleDisabled": { - "type": "boolean" + "Parallelism": { + "type": "number" }, - "Sql": { - "type": "string" + "ParallelismPerKPU": { + "type": "number" } }, "required": [ - "Actions", - "RuleDisabled", - "Sql" + "ConfigurationType" ], "type": "object" }, - "AWS::KMS::Alias": { + "AWS::KinesisAnalyticsV2::Application.PropertyGroup": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "PropertyGroupId": { "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": { - "AliasName": { - "type": "string" - }, - "TargetKeyId": { - "type": "string" - } - }, - "required": [ - "AliasName", - "TargetKeyId" - ], + "PropertyMap": { "type": "object" - }, - "Type": { - "enum": [ - "AWS::KMS::Alias" - ], - "type": "string" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::KMS::Key": { + "AWS::KinesisAnalyticsV2::Application.RecordColumn": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Mapping": { "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" - }, - "EnableKeyRotation": { - "type": "boolean" - }, - "Enabled": { - "type": "boolean" - }, - "KeyPolicy": { - "type": "object" - }, - "KeyUsage": { - "type": "string" - }, - "PendingWindowInDays": { - "type": "number" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "required": [ - "KeyPolicy" - ], - "type": "object" + "Name": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::KMS::Key" - ], + "SqlType": { "type": "string" } }, "required": [ - "Type", - "Properties" + "Name", + "SqlType" ], "type": "object" }, - "AWS::Kinesis::Stream": { + "AWS::KinesisAnalyticsV2::Application.RecordFormat": { "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": { - "Name": { - "type": "string" - }, - "RetentionPeriodHours": { - "type": "number" - }, - "ShardCount": { - "type": "number" - }, - "StreamEncryption": { - "$ref": "#/definitions/AWS::Kinesis::Stream.StreamEncryption" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "required": [ - "ShardCount" - ], - "type": "object" + "MappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.MappingParameters" }, - "Type": { - "enum": [ - "AWS::Kinesis::Stream" - ], + "RecordFormatType": { "type": "string" } }, "required": [ - "Type", - "Properties" + "RecordFormatType" ], "type": "object" }, - "AWS::Kinesis::Stream.StreamEncryption": { + "AWS::KinesisAnalyticsV2::Application.S3ContentLocation": { "additionalProperties": false, "properties": { - "EncryptionType": { + "BucketARN": { "type": "string" }, - "KeyId": { + "FileKey": { + "type": "string" + }, + "ObjectVersion": { "type": "string" } }, - "required": [ - "EncryptionType", - "KeyId" - ], "type": "object" }, - "AWS::Kinesis::StreamConsumer": { + "AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration": { "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": { - "ConsumerName": { - "type": "string" - }, - "StreamARN": { - "type": "string" - } + "Inputs": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.Input" }, - "required": [ - "ConsumerName", - "StreamARN" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Kinesis::StreamConsumer" - ], - "type": "string" + "type": "array" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::KinesisAnalytics::Application": { + "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -25120,30 +28420,22 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApplicationCode": { - "type": "string" - }, - "ApplicationDescription": { - "type": "string" - }, "ApplicationName": { "type": "string" }, - "Inputs": { - "items": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.Input" - }, - "type": "array" + "CloudWatchLoggingOption": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption.CloudWatchLoggingOption" } }, "required": [ - "Inputs" + "ApplicationName", + "CloudWatchLoggingOption" ], "type": "object" }, "Type": { "enum": [ - "AWS::KinesisAnalytics::Application" + "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption" ], "type": "string" } @@ -25154,197 +28446,19 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::KinesisAnalytics::Application.CSVMappingParameters": { + "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption.CloudWatchLoggingOption": { "additionalProperties": false, "properties": { - "RecordColumnDelimiter": { - "type": "string" - }, - "RecordRowDelimiter": { - "type": "string" - } - }, - "required": [ - "RecordColumnDelimiter", - "RecordRowDelimiter" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.Input": { - "additionalProperties": false, - "properties": { - "InputParallelism": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputParallelism" - }, - "InputProcessingConfiguration": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputProcessingConfiguration" - }, - "InputSchema": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputSchema" - }, - "KinesisFirehoseInput": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.KinesisFirehoseInput" - }, - "KinesisStreamsInput": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.KinesisStreamsInput" - }, - "NamePrefix": { - "type": "string" - } - }, - "required": [ - "InputSchema", - "NamePrefix" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.InputLambdaProcessor": { - "additionalProperties": false, - "properties": { - "ResourceARN": { - "type": "string" - }, - "RoleARN": { - "type": "string" - } - }, - "required": [ - "ResourceARN", - "RoleARN" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.InputParallelism": { - "additionalProperties": false, - "properties": { - "Count": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::KinesisAnalytics::Application.InputProcessingConfiguration": { - "additionalProperties": false, - "properties": { - "InputLambdaProcessor": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputLambdaProcessor" - } - }, - "type": "object" - }, - "AWS::KinesisAnalytics::Application.InputSchema": { - "additionalProperties": false, - "properties": { - "RecordColumns": { - "items": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.RecordColumn" - }, - "type": "array" - }, - "RecordEncoding": { - "type": "string" - }, - "RecordFormat": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.RecordFormat" - } - }, - "required": [ - "RecordColumns", - "RecordFormat" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.JSONMappingParameters": { - "additionalProperties": false, - "properties": { - "RecordRowPath": { - "type": "string" - } - }, - "required": [ - "RecordRowPath" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.KinesisFirehoseInput": { - "additionalProperties": false, - "properties": { - "ResourceARN": { - "type": "string" - }, - "RoleARN": { - "type": "string" - } - }, - "required": [ - "ResourceARN", - "RoleARN" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.KinesisStreamsInput": { - "additionalProperties": false, - "properties": { - "ResourceARN": { - "type": "string" - }, - "RoleARN": { - "type": "string" - } - }, - "required": [ - "ResourceARN", - "RoleARN" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.MappingParameters": { - "additionalProperties": false, - "properties": { - "CSVMappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.CSVMappingParameters" - }, - "JSONMappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.JSONMappingParameters" - } - }, - "type": "object" - }, - "AWS::KinesisAnalytics::Application.RecordColumn": { - "additionalProperties": false, - "properties": { - "Mapping": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "SqlType": { - "type": "string" - } - }, - "required": [ - "Name", - "SqlType" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.RecordFormat": { - "additionalProperties": false, - "properties": { - "MappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.MappingParameters" - }, - "RecordFormatType": { + "LogStreamARN": { "type": "string" } }, "required": [ - "RecordFormatType" + "LogStreamARN" ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput": { + "AWS::KinesisAnalyticsV2::ApplicationOutput": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -25380,7 +28494,7 @@ var CloudformationSchema = `{ "type": "string" }, "Output": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.Output" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.Output" } }, "required": [ @@ -25391,7 +28505,7 @@ var CloudformationSchema = `{ }, "Type": { "enum": [ - "AWS::KinesisAnalytics::ApplicationOutput" + "AWS::KinesisAnalyticsV2::ApplicationOutput" ], "type": "string" } @@ -25402,7 +28516,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema": { + "AWS::KinesisAnalyticsV2::ApplicationOutput.DestinationSchema": { "additionalProperties": false, "properties": { "RecordFormatType": { @@ -25411,68 +28525,56 @@ var CloudformationSchema = `{ }, "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput": { + "AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisFirehoseOutput": { "additionalProperties": false, "properties": { "ResourceARN": { "type": "string" - }, - "RoleARN": { - "type": "string" } }, "required": [ - "ResourceARN", - "RoleARN" + "ResourceARN" ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput": { + "AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisStreamsOutput": { "additionalProperties": false, "properties": { "ResourceARN": { "type": "string" - }, - "RoleARN": { - "type": "string" } }, "required": [ - "ResourceARN", - "RoleARN" + "ResourceARN" ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput": { + "AWS::KinesisAnalyticsV2::ApplicationOutput.LambdaOutput": { "additionalProperties": false, "properties": { "ResourceARN": { "type": "string" - }, - "RoleARN": { - "type": "string" } }, "required": [ - "ResourceARN", - "RoleARN" + "ResourceARN" ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput.Output": { + "AWS::KinesisAnalyticsV2::ApplicationOutput.Output": { "additionalProperties": false, "properties": { "DestinationSchema": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.DestinationSchema" }, "KinesisFirehoseOutput": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisFirehoseOutput" }, "KinesisStreamsOutput": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisStreamsOutput" }, "LambdaOutput": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.LambdaOutput" }, "Name": { "type": "string" @@ -25483,7 +28585,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -25519,7 +28621,7 @@ var CloudformationSchema = `{ "type": "string" }, "ReferenceDataSource": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceDataSource" } }, "required": [ @@ -25530,7 +28632,7 @@ var CloudformationSchema = `{ }, "Type": { "enum": [ - "AWS::KinesisAnalytics::ApplicationReferenceDataSource" + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource" ], "type": "string" } @@ -25541,7 +28643,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.CSVMappingParameters": { "additionalProperties": false, "properties": { "RecordColumnDelimiter": { @@ -25557,7 +28659,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.JSONMappingParameters": { "additionalProperties": false, "properties": { "RecordRowPath": { @@ -25569,19 +28671,19 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.MappingParameters": { "additionalProperties": false, "properties": { "CSVMappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.CSVMappingParameters" }, "JSONMappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.JSONMappingParameters" } }, "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordColumn": { "additionalProperties": false, "properties": { "Mapping": { @@ -25600,11 +28702,11 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordFormat": { "additionalProperties": false, "properties": { "MappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.MappingParameters" }, "RecordFormatType": { "type": "string" @@ -25615,14 +28717,14 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceDataSource": { "additionalProperties": false, "properties": { "ReferenceSchema": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceSchema" }, "S3ReferenceDataSource": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.S3ReferenceDataSource" }, "TableName": { "type": "string" @@ -25633,12 +28735,12 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceSchema": { "additionalProperties": false, "properties": { "RecordColumns": { "items": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordColumn" }, "type": "array" }, @@ -25646,7 +28748,7 @@ var CloudformationSchema = `{ "type": "string" }, "RecordFormat": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordFormat" } }, "required": [ @@ -25655,7 +28757,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.S3ReferenceDataSource": { "additionalProperties": false, "properties": { "BucketARN": { @@ -25663,15 +28765,11 @@ var CloudformationSchema = `{ }, "FileKey": { "type": "string" - }, - "ReferenceRoleARN": { - "type": "string" } }, "required": [ "BucketARN", - "FileKey", - "ReferenceRoleARN" + "FileKey" ], "type": "object" }, @@ -26475,6 +29573,159 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Lambda::LayerVersion": { + "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": { + "CompatibleRuntimes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Content": { + "$ref": "#/definitions/AWS::Lambda::LayerVersion.Content" + }, + "Description": { + "type": "string" + }, + "LayerName": { + "type": "string" + }, + "LicenseInfo": { + "type": "string" + } + }, + "required": [ + "Content" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lambda::LayerVersion" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lambda::LayerVersion.Content": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + }, + "S3ObjectVersion": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::Lambda::LayerVersionPermission": { + "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": { + "Action": { + "type": "string" + }, + "LayerVersionArn": { + "type": "string" + }, + "OrganizationId": { + "type": "string" + }, + "Principal": { + "type": "string" + } + }, + "required": [ + "Action", + "LayerVersionArn", + "Principal" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lambda::LayerVersionPermission" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Lambda::Permission": { "additionalProperties": false, "properties": { @@ -28090,110 +31341,320 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AgentVersion": { - "type": "string" - }, - "Attributes": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "ChefConfiguration": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.ChefConfiguration" - }, - "CloneAppIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ClonePermissions": { - "type": "boolean" - }, - "ConfigurationManager": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.StackConfigurationManager" - }, - "CustomCookbooksSource": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.Source" - }, - "CustomJson": { - "type": "object" - }, - "DefaultAvailabilityZone": { - "type": "string" - }, - "DefaultInstanceProfileArn": { - "type": "string" - }, - "DefaultOs": { - "type": "string" - }, - "DefaultRootDeviceType": { - "type": "string" - }, - "DefaultSshKeyName": { - "type": "string" - }, - "DefaultSubnetId": { - "type": "string" - }, - "EcsClusterArn": { + "AgentVersion": { + "type": "string" + }, + "Attributes": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "ChefConfiguration": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.ChefConfiguration" + }, + "CloneAppIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ClonePermissions": { + "type": "boolean" + }, + "ConfigurationManager": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.StackConfigurationManager" + }, + "CustomCookbooksSource": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.Source" + }, + "CustomJson": { + "type": "object" + }, + "DefaultAvailabilityZone": { + "type": "string" + }, + "DefaultInstanceProfileArn": { + "type": "string" + }, + "DefaultOs": { + "type": "string" + }, + "DefaultRootDeviceType": { + "type": "string" + }, + "DefaultSshKeyName": { + "type": "string" + }, + "DefaultSubnetId": { + "type": "string" + }, + "EcsClusterArn": { + "type": "string" + }, + "ElasticIps": { + "items": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.ElasticIp" + }, + "type": "array" + }, + "HostnameTheme": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RdsDbInstances": { + "items": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.RdsDbInstance" + }, + "type": "array" + }, + "ServiceRoleArn": { + "type": "string" + }, + "SourceStackId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UseCustomCookbooks": { + "type": "boolean" + }, + "UseOpsworksSecurityGroups": { + "type": "boolean" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "DefaultInstanceProfileArn", + "Name", + "ServiceRoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OpsWorks::Stack" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OpsWorks::Stack.ChefConfiguration": { + "additionalProperties": false, + "properties": { + "BerkshelfVersion": { + "type": "string" + }, + "ManageBerkshelf": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Stack.ElasticIp": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Ip" + ], + "type": "object" + }, + "AWS::OpsWorks::Stack.RdsDbInstance": { + "additionalProperties": false, + "properties": { + "DbPassword": { + "type": "string" + }, + "DbUser": { + "type": "string" + }, + "RdsDbInstanceArn": { + "type": "string" + } + }, + "required": [ + "DbPassword", + "DbUser", + "RdsDbInstanceArn" + ], + "type": "object" + }, + "AWS::OpsWorks::Stack.Source": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "Revision": { + "type": "string" + }, + "SshKey": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Stack.StackConfigurationManager": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpsWorks::UserProfile": { + "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": { + "AllowSelfManagement": { + "type": "boolean" + }, + "IamUserArn": { + "type": "string" + }, + "SshPublicKey": { + "type": "string" + }, + "SshUsername": { + "type": "string" + } + }, + "required": [ + "IamUserArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OpsWorks::UserProfile" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OpsWorks::Volume": { + "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": { + "Ec2VolumeId": { "type": "string" }, - "ElasticIps": { - "items": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.ElasticIp" - }, - "type": "array" - }, - "HostnameTheme": { + "MountPoint": { "type": "string" }, "Name": { "type": "string" }, - "RdsDbInstances": { - "items": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.RdsDbInstance" - }, - "type": "array" - }, - "ServiceRoleArn": { - "type": "string" - }, - "SourceStackId": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "UseCustomCookbooks": { - "type": "boolean" - }, - "UseOpsworksSecurityGroups": { - "type": "boolean" - }, - "VpcId": { + "StackId": { "type": "string" } }, "required": [ - "DefaultInstanceProfileArn", - "Name", - "ServiceRoleArn" + "Ec2VolumeId", + "StackId" ], "type": "object" }, "Type": { "enum": [ - "AWS::OpsWorks::Stack" + "AWS::OpsWorks::Volume" ], "type": "string" } @@ -28204,90 +31665,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::OpsWorks::Stack.ChefConfiguration": { - "additionalProperties": false, - "properties": { - "BerkshelfVersion": { - "type": "string" - }, - "ManageBerkshelf": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::OpsWorks::Stack.ElasticIp": { - "additionalProperties": false, - "properties": { - "Ip": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "Ip" - ], - "type": "object" - }, - "AWS::OpsWorks::Stack.RdsDbInstance": { - "additionalProperties": false, - "properties": { - "DbPassword": { - "type": "string" - }, - "DbUser": { - "type": "string" - }, - "RdsDbInstanceArn": { - "type": "string" - } - }, - "required": [ - "DbPassword", - "DbUser", - "RdsDbInstanceArn" - ], - "type": "object" - }, - "AWS::OpsWorks::Stack.Source": { - "additionalProperties": false, - "properties": { - "Password": { - "type": "string" - }, - "Revision": { - "type": "string" - }, - "SshKey": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Url": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::OpsWorks::Stack.StackConfigurationManager": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::OpsWorks::UserProfile": { + "AWS::OpsWorksCM::Server": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -28319,27 +31697,77 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AllowSelfManagement": { + "AssociatePublicIpAddress": { "type": "boolean" }, - "IamUserArn": { + "BackupId": { "type": "string" }, - "SshPublicKey": { + "BackupRetentionCount": { + "type": "number" + }, + "DisableAutomatedBackup": { + "type": "boolean" + }, + "Engine": { "type": "string" }, - "SshUsername": { + "EngineAttributes": { + "items": { + "$ref": "#/definitions/AWS::OpsWorksCM::Server.EngineAttribute" + }, + "type": "array" + }, + "EngineModel": { "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "InstanceProfileArn": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "KeyPair": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ServerName": { + "type": "string" + }, + "ServiceRoleArn": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "IamUserArn" + "InstanceProfileArn", + "InstanceType", + "ServiceRoleArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::OpsWorks::UserProfile" + "AWS::OpsWorksCM::Server" ], "type": "string" } @@ -28350,7 +31778,19 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::OpsWorks::Volume": { + "AWS::OpsWorksCM::Server.EngineAttribute": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RAM::ResourceShare": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -28382,28 +31822,39 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Ec2VolumeId": { - "type": "string" - }, - "MountPoint": { - "type": "string" + "AllowExternalPrincipals": { + "type": "boolean" }, "Name": { "type": "string" }, - "StackId": { - "type": "string" + "Principals": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ResourceArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "Ec2VolumeId", - "StackId" + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::OpsWorks::Volume" + "AWS::RAM::ResourceShare" ], "type": "string" } @@ -28518,6 +31969,9 @@ var CloudformationSchema = `{ "SnapshotIdentifier": { "type": "string" }, + "SourceRegion": { + "type": "string" + }, "StorageEncrypted": { "type": "boolean" }, @@ -28823,6 +32277,9 @@ var CloudformationSchema = `{ "Timezone": { "type": "string" }, + "UseDefaultProcessorFeatures": { + "type": "boolean" + }, "VPCSecurityGroups": { "items": { "type": "string" @@ -29762,31 +33219,517 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "Description": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::ClusterSubnetGroup" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::Fleet": { + "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": { + "Name": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::Fleet" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RoboMaker::Robot": { + "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": { + "Architecture": { + "type": "string" + }, + "Fleet": { + "type": "string" + }, + "GreengrassGroupId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "required": [ + "Architecture", + "GreengrassGroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::Robot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::RobotApplication": { + "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": { + "CurrentRevisionId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RobotSoftwareSuite": { + "$ref": "#/definitions/AWS::RoboMaker::RobotApplication.RobotSoftwareSuite" + }, + "Sources": { + "items": { + "$ref": "#/definitions/AWS::RoboMaker::RobotApplication.SourceConfig" + }, + "type": "array" + }, + "Tags": { + "type": "object" + } + }, + "required": [ + "RobotSoftwareSuite", + "Sources" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::RobotApplication" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::RobotApplication.RobotSoftwareSuite": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "Version" + ], + "type": "object" + }, + "AWS::RoboMaker::RobotApplication.SourceConfig": { + "additionalProperties": false, + "properties": { + "Architecture": { + "type": "string" + }, + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "Architecture", + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::RoboMaker::RobotApplicationVersion": { + "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": { + "Application": { + "type": "string" + }, + "CurrentRevisionId": { + "type": "string" + } + }, + "required": [ + "Application" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::RobotApplicationVersion" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication": { + "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": { + "CurrentRevisionId": { "type": "string" }, - "SubnetIds": { + "Name": { + "type": "string" + }, + "RenderingEngine": { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.RenderingEngine" + }, + "RobotSoftwareSuite": { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.RobotSoftwareSuite" + }, + "SimulationSoftwareSuite": { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.SimulationSoftwareSuite" + }, + "Sources": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.SourceConfig" }, "type": "array" }, "Tags": { + "type": "object" + } + }, + "required": [ + "RenderingEngine", + "RobotSoftwareSuite", + "SimulationSoftwareSuite", + "Sources" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::SimulationApplication" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.RenderingEngine": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "Version" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.RobotSoftwareSuite": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "Version" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.SimulationSoftwareSuite": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "Version" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.SourceConfig": { + "additionalProperties": false, + "properties": { + "Architecture": { + "type": "string" + }, + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "Architecture", + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplicationVersion": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { "items": { - "$ref": "#/definitions/Tag" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Application": { + "type": "string" + }, + "CurrentRevisionId": { + "type": "string" + } }, "required": [ - "Description", - "SubnetIds" + "Application" ], "type": "object" }, "Type": { "enum": [ - "AWS::Redshift::ClusterSubnetGroup" + "AWS::RoboMaker::SimulationApplicationVersion" ], "type": "string" } @@ -30549,6 +34492,67 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Route53Resolver::ResolverRuleAssociation": { + "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": { + "Name": { + "type": "string" + }, + "ResolverRuleId": { + "type": "string" + }, + "VPCId": { + "type": "string" + } + }, + "required": [ + "ResolverRuleId", + "VPCId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::ResolverRuleAssociation" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::S3::Bucket": { "additionalProperties": false, "properties": { @@ -32179,6 +36183,10 @@ var CloudformationSchema = `{ "type": "string" } }, + "required": [ + "Protocol", + "TopicArn" + ], "type": "object" }, "Type": { @@ -32189,7 +36197,8 @@ var CloudformationSchema = `{ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -32739,6 +36748,12 @@ var CloudformationSchema = `{ }, "StartDate": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ @@ -33458,6 +37473,9 @@ var CloudformationSchema = `{ "AWS::SageMaker::EndpointConfig.ProductionVariant": { "additionalProperties": false, "properties": { + "AcceleratorType": { + "type": "string" + }, "InitialInstanceCount": { "type": "number" }, @@ -33515,6 +37533,12 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::Model.ContainerDefinition" + }, + "type": "array" + }, "ExecutionRoleArn": { "type": "string" }, @@ -33535,8 +37559,7 @@ var CloudformationSchema = `{ } }, "required": [ - "ExecutionRoleArn", - "PrimaryContainer" + "ExecutionRoleArn" ], "type": "object" }, @@ -37111,6 +41134,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::AmazonMQ::Configuration" }, + { + "$ref": "#/definitions/AWS::AmazonMQ::ConfigurationAssociation" + }, { "$ref": "#/definitions/AWS::ApiGateway::Account" }, @@ -37168,6 +41194,33 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::ApiGateway::VpcLink" }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Api" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Authorizer" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Deployment" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Integration" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::IntegrationResponse" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Model" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Route" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::RouteResponse" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Stage" + }, { "$ref": "#/definitions/AWS::AppStream::DirectoryConfig" }, @@ -37384,6 +41437,18 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::DirectoryService::SimpleAD" }, + { + "$ref": "#/definitions/AWS::DocDB::DBCluster" + }, + { + "$ref": "#/definitions/AWS::DocDB::DBClusterParameterGroup" + }, + { + "$ref": "#/definitions/AWS::DocDB::DBInstance" + }, + { + "$ref": "#/definitions/AWS::DocDB::DBSubnetGroup" + }, { "$ref": "#/definitions/AWS::DynamoDB::Table" }, @@ -37627,6 +41692,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::Events::Rule" }, + { + "$ref": "#/definitions/AWS::FSx::FileSystem" + }, { "$ref": "#/definitions/AWS::GameLift::Alias" }, @@ -37744,6 +41812,18 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::IoT::TopicRule" }, + { + "$ref": "#/definitions/AWS::IoTAnalytics::Channel" + }, + { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset" + }, + { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore" + }, + { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline" + }, { "$ref": "#/definitions/AWS::KMS::Alias" }, @@ -37765,6 +41845,18 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource" }, + { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application" + }, + { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption" + }, + { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput" + }, + { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource" + }, { "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream" }, @@ -37777,6 +41869,12 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::Lambda::Function" }, + { + "$ref": "#/definitions/AWS::Lambda::LayerVersion" + }, + { + "$ref": "#/definitions/AWS::Lambda::LayerVersionPermission" + }, { "$ref": "#/definitions/AWS::Lambda::Permission" }, @@ -37834,6 +41932,12 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::OpsWorks::Volume" }, + { + "$ref": "#/definitions/AWS::OpsWorksCM::Server" + }, + { + "$ref": "#/definitions/AWS::RAM::ResourceShare" + }, { "$ref": "#/definitions/AWS::RDS::DBCluster" }, @@ -37876,6 +41980,24 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::Redshift::ClusterSubnetGroup" }, + { + "$ref": "#/definitions/AWS::RoboMaker::Fleet" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::Robot" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::RobotApplication" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::RobotApplicationVersion" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplicationVersion" + }, { "$ref": "#/definitions/AWS::Route53::HealthCheck" }, @@ -37894,6 +42016,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::Route53Resolver::ResolverRule" }, + { + "$ref": "#/definitions/AWS::Route53Resolver::ResolverRuleAssociation" + }, { "$ref": "#/definitions/AWS::S3::Bucket" }, diff --git a/schema/cloudformation.schema.json b/schema/cloudformation.schema.json index fdeed9fb1c..3481ce6cd3 100644 --- a/schema/cloudformation.schema.json +++ b/schema/cloudformation.schema.json @@ -76,6 +76,12 @@ }, "type": "array" }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AmazonMQ::Broker.TagsEntry" + }, + "type": "array" + }, "Users": { "items": { "$ref": "#/definitions/AWS::AmazonMQ::Broker.User" @@ -156,6 +162,22 @@ ], "type": "object" }, + "AWS::AmazonMQ::Broker.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::AmazonMQ::Broker.User": { "additionalProperties": false, "properties": { @@ -227,6 +249,12 @@ }, "Name": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AmazonMQ::Configuration.TagsEntry" + }, + "type": "array" } }, "required": [ @@ -250,6 +278,96 @@ ], "type": "object" }, + "AWS::AmazonMQ::Configuration.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::AmazonMQ::ConfigurationAssociation": { + "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": { + "Broker": { + "type": "string" + }, + "Configuration": { + "$ref": "#/definitions/AWS::AmazonMQ::ConfigurationAssociation.ConfigurationId" + } + }, + "required": [ + "Broker", + "Configuration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AmazonMQ::ConfigurationAssociation" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AmazonMQ::ConfigurationAssociation.ConfigurationId": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Revision": { + "type": "number" + } + }, + "required": [ + "Id", + "Revision" + ], + "type": "object" + }, "AWS::ApiGateway::Account": { "additionalProperties": false, "properties": { @@ -352,6 +470,9 @@ "$ref": "#/definitions/AWS::ApiGateway::ApiKey.StageKey" }, "type": "array" + }, + "Value": { + "type": "string" } }, "type": "object" @@ -447,7 +568,8 @@ } }, "required": [ - "RestApiId" + "RestApiId", + "Type" ], "type": "object" }, @@ -2077,7 +2199,7 @@ ], "type": "object" }, - "AWS::AppStream::DirectoryConfig": { + "AWS::ApiGatewayV2::Api": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2109,29 +2231,120 @@ "Properties": { "additionalProperties": false, "properties": { - "DirectoryName": { + "ApiKeySelectionExpression": { "type": "string" }, - "OrganizationalUnitDistinguishedNames": { + "Description": { + "type": "string" + }, + "DisableSchemaValidation": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "ProtocolType": { + "type": "string" + }, + "RouteSelectionExpression": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "ProtocolType", + "RouteSelectionExpression" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGatewayV2::Api" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::Authorizer": { + "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": { + "ApiId": { + "type": "string" }, - "ServiceAccountCredentials": { - "$ref": "#/definitions/AWS::AppStream::DirectoryConfig.ServiceAccountCredentials" + "AuthorizerCredentialsArn": { + "type": "string" + }, + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerType": { + "type": "string" + }, + "AuthorizerUri": { + "type": "string" + }, + "IdentitySource": { + "items": { + "type": "string" + }, + "type": "array" + }, + "IdentityValidationExpression": { + "type": "string" + }, + "Name": { + "type": "string" } }, "required": [ - "DirectoryName", - "OrganizationalUnitDistinguishedNames", - "ServiceAccountCredentials" + "ApiId", + "AuthorizerType", + "AuthorizerUri", + "IdentitySource", + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::DirectoryConfig" + "AWS::ApiGatewayV2::Authorizer" ], "type": "string" } @@ -2142,23 +2355,67 @@ ], "type": "object" }, - "AWS::AppStream::DirectoryConfig.ServiceAccountCredentials": { + "AWS::ApiGatewayV2::Deployment": { "additionalProperties": false, "properties": { - "AccountName": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "AccountPassword": { + "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": { + "ApiId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "StageName": { + "type": "string" + } + }, + "required": [ + "ApiId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGatewayV2::Deployment" + ], "type": "string" } }, "required": [ - "AccountName", - "AccountPassword" + "Type", + "Properties" ], "type": "object" }, - "AWS::AppStream::Fleet": { + "AWS::ApiGatewayV2::Integration": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2190,55 +2447,55 @@ "Properties": { "additionalProperties": false, "properties": { - "ComputeCapacity": { - "$ref": "#/definitions/AWS::AppStream::Fleet.ComputeCapacity" - }, - "Description": { + "ApiId": { "type": "string" }, - "DisconnectTimeoutInSeconds": { - "type": "number" + "ConnectionType": { + "type": "string" }, - "DisplayName": { + "ContentHandlingStrategy": { "type": "string" }, - "DomainJoinInfo": { - "$ref": "#/definitions/AWS::AppStream::Fleet.DomainJoinInfo" + "CredentialsArn": { + "type": "string" }, - "EnableDefaultInternetAccess": { - "type": "boolean" + "Description": { + "type": "string" }, - "FleetType": { + "IntegrationMethod": { "type": "string" }, - "ImageArn": { + "IntegrationType": { "type": "string" }, - "ImageName": { + "IntegrationUri": { "type": "string" }, - "InstanceType": { + "PassthroughBehavior": { "type": "string" }, - "MaxUserDurationInSeconds": { - "type": "number" + "RequestParameters": { + "type": "object" }, - "Name": { + "RequestTemplates": { + "type": "object" + }, + "TemplateSelectionExpression": { "type": "string" }, - "VpcConfig": { - "$ref": "#/definitions/AWS::AppStream::Fleet.VpcConfig" + "TimeoutInMillis": { + "type": "number" } }, "required": [ - "ComputeCapacity", - "InstanceType" + "ApiId", + "IntegrationType" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::Fleet" + "AWS::ApiGatewayV2::Integration" ], "type": "string" } @@ -2249,49 +2506,7 @@ ], "type": "object" }, - "AWS::AppStream::Fleet.ComputeCapacity": { - "additionalProperties": false, - "properties": { - "DesiredInstances": { - "type": "number" - } - }, - "required": [ - "DesiredInstances" - ], - "type": "object" - }, - "AWS::AppStream::Fleet.DomainJoinInfo": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "type": "string" - }, - "OrganizationalUnitDistinguishedName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AppStream::Fleet.VpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::AppStream::ImageBuilder": { + "AWS::ApiGatewayV2::IntegrationResponse": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2323,45 +2538,38 @@ "Properties": { "additionalProperties": false, "properties": { - "AppstreamAgentVersion": { + "ApiId": { "type": "string" }, - "Description": { + "ContentHandlingStrategy": { "type": "string" }, - "DisplayName": { + "IntegrationId": { "type": "string" }, - "DomainJoinInfo": { - "$ref": "#/definitions/AWS::AppStream::ImageBuilder.DomainJoinInfo" - }, - "EnableDefaultInternetAccess": { - "type": "boolean" - }, - "ImageArn": { + "IntegrationResponseKey": { "type": "string" }, - "ImageName": { - "type": "string" + "ResponseParameters": { + "type": "object" }, - "InstanceType": { - "type": "string" + "ResponseTemplates": { + "type": "object" }, - "Name": { + "TemplateSelectionExpression": { "type": "string" - }, - "VpcConfig": { - "$ref": "#/definitions/AWS::AppStream::ImageBuilder.VpcConfig" } }, "required": [ - "InstanceType" + "ApiId", + "IntegrationId", + "IntegrationResponseKey" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::ImageBuilder" + "AWS::ApiGatewayV2::IntegrationResponse" ], "type": "string" } @@ -2372,37 +2580,7 @@ ], "type": "object" }, - "AWS::AppStream::ImageBuilder.DomainJoinInfo": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "type": "string" - }, - "OrganizationalUnitDistinguishedName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AppStream::ImageBuilder.VpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::AppStream::Stack": { + "AWS::ApiGatewayV2::Model": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2434,113 +2612,43 @@ "Properties": { "additionalProperties": false, "properties": { - "ApplicationSettings": { - "$ref": "#/definitions/AWS::AppStream::Stack.ApplicationSettings" - }, - "AttributesToDelete": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DeleteStorageConnectors": { - "type": "boolean" - }, - "Description": { + "ApiId": { "type": "string" }, - "DisplayName": { + "ContentType": { "type": "string" }, - "FeedbackURL": { + "Description": { "type": "string" }, "Name": { "type": "string" }, - "RedirectURL": { - "type": "string" - }, - "StorageConnectors": { - "items": { - "$ref": "#/definitions/AWS::AppStream::Stack.StorageConnector" - }, - "type": "array" - }, - "UserSettings": { - "items": { - "$ref": "#/definitions/AWS::AppStream::Stack.UserSetting" - }, - "type": "array" + "Schema": { + "type": "object" } }, + "required": [ + "ApiId", + "Name", + "Schema" + ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::Stack" + "AWS::ApiGatewayV2::Model" ], "type": "string" } }, "required": [ - "Type" - ], - "type": "object" - }, - "AWS::AppStream::Stack.ApplicationSettings": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "SettingsGroup": { - "type": "string" - } - }, - "required": [ - "Enabled" - ], - "type": "object" - }, - "AWS::AppStream::Stack.StorageConnector": { - "additionalProperties": false, - "properties": { - "ConnectorType": { - "type": "string" - }, - "Domains": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ResourceIdentifier": { - "type": "string" - } - }, - "required": [ - "ConnectorType" - ], - "type": "object" - }, - "AWS::AppStream::Stack.UserSetting": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "Permission": { - "type": "string" - } - }, - "required": [ - "Action", - "Permission" + "Type", + "Properties" ], "type": "object" }, - "AWS::AppStream::StackFleetAssociation": { + "AWS::ApiGatewayV2::Route": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2572,22 +2680,55 @@ "Properties": { "additionalProperties": false, "properties": { - "FleetName": { + "ApiId": { "type": "string" }, - "StackName": { + "ApiKeyRequired": { + "type": "boolean" + }, + "AuthorizationScopes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AuthorizationType": { + "type": "string" + }, + "AuthorizerId": { + "type": "string" + }, + "ModelSelectionExpression": { + "type": "string" + }, + "OperationName": { + "type": "string" + }, + "RequestModels": { + "type": "object" + }, + "RequestParameters": { + "type": "object" + }, + "RouteKey": { + "type": "string" + }, + "RouteResponseSelectionExpression": { + "type": "string" + }, + "Target": { "type": "string" } }, "required": [ - "FleetName", - "StackName" + "ApiId", + "RouteKey" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::StackFleetAssociation" + "AWS::ApiGatewayV2::Route" ], "type": "string" } @@ -2598,7 +2739,19 @@ ], "type": "object" }, - "AWS::AppStream::StackUserAssociation": { + "AWS::ApiGatewayV2::Route.ParameterConstraints": { + "additionalProperties": false, + "properties": { + "Required": { + "type": "boolean" + } + }, + "required": [ + "Required" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::RouteResponse": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2630,29 +2783,35 @@ "Properties": { "additionalProperties": false, "properties": { - "AuthenticationType": { + "ApiId": { "type": "string" }, - "SendEmailNotification": { - "type": "boolean" + "ModelSelectionExpression": { + "type": "string" }, - "StackName": { + "ResponseModels": { + "type": "object" + }, + "ResponseParameters": { + "type": "object" + }, + "RouteId": { "type": "string" }, - "UserName": { + "RouteResponseKey": { "type": "string" } }, "required": [ - "AuthenticationType", - "StackName", - "UserName" + "ApiId", + "RouteId", + "RouteResponseKey" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::StackUserAssociation" + "AWS::ApiGatewayV2::RouteResponse" ], "type": "string" } @@ -2663,7 +2822,19 @@ ], "type": "object" }, - "AWS::AppStream::User": { + "AWS::ApiGatewayV2::RouteResponse.ParameterConstraints": { + "additionalProperties": false, + "properties": { + "Required": { + "type": "boolean" + } + }, + "required": [ + "Required" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::Stage": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2695,31 +2866,44 @@ "Properties": { "additionalProperties": false, "properties": { - "AuthenticationType": { + "AccessLogSettings": { + "$ref": "#/definitions/AWS::ApiGatewayV2::Stage.AccessLogSettings" + }, + "ApiId": { "type": "string" }, - "FirstName": { + "ClientCertificateId": { "type": "string" }, - "LastName": { + "DefaultRouteSettings": { + "$ref": "#/definitions/AWS::ApiGatewayV2::Stage.RouteSettings" + }, + "DeploymentId": { "type": "string" }, - "MessageAction": { + "Description": { "type": "string" }, - "UserName": { + "RouteSettings": { + "type": "object" + }, + "StageName": { "type": "string" + }, + "StageVariables": { + "type": "object" } }, "required": [ - "AuthenticationType", - "UserName" + "ApiId", + "DeploymentId", + "StageName" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::User" + "AWS::ApiGatewayV2::Stage" ], "type": "string" } @@ -2730,7 +2914,40 @@ ], "type": "object" }, - "AWS::AppSync::ApiKey": { + "AWS::ApiGatewayV2::Stage.AccessLogSettings": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "type": "string" + }, + "Format": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGatewayV2::Stage.RouteSettings": { + "additionalProperties": false, + "properties": { + "DataTraceEnabled": { + "type": "boolean" + }, + "DetailedMetricsEnabled": { + "type": "boolean" + }, + "LoggingLevel": { + "type": "string" + }, + "ThrottlingBurstLimit": { + "type": "number" + }, + "ThrottlingRateLimit": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AppStream::DirectoryConfig": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2762,24 +2979,29 @@ "Properties": { "additionalProperties": false, "properties": { - "ApiId": { + "DirectoryName": { "type": "string" }, - "Description": { - "type": "string" + "OrganizationalUnitDistinguishedNames": { + "items": { + "type": "string" + }, + "type": "array" }, - "Expires": { - "type": "number" + "ServiceAccountCredentials": { + "$ref": "#/definitions/AWS::AppStream::DirectoryConfig.ServiceAccountCredentials" } }, "required": [ - "ApiId" + "DirectoryName", + "OrganizationalUnitDistinguishedNames", + "ServiceAccountCredentials" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::ApiKey" + "AWS::AppStream::DirectoryConfig" ], "type": "string" } @@ -2790,7 +3012,23 @@ ], "type": "object" }, - "AWS::AppSync::DataSource": { + "AWS::AppStream::DirectoryConfig.ServiceAccountCredentials": { + "additionalProperties": false, + "properties": { + "AccountName": { + "type": "string" + }, + "AccountPassword": { + "type": "string" + } + }, + "required": [ + "AccountName", + "AccountPassword" + ], + "type": "object" + }, + "AWS::AppStream::Fleet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2822,47 +3060,55 @@ "Properties": { "additionalProperties": false, "properties": { - "ApiId": { - "type": "string" + "ComputeCapacity": { + "$ref": "#/definitions/AWS::AppStream::Fleet.ComputeCapacity" }, "Description": { "type": "string" }, - "DynamoDBConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.DynamoDBConfig" + "DisconnectTimeoutInSeconds": { + "type": "number" }, - "ElasticsearchConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.ElasticsearchConfig" + "DisplayName": { + "type": "string" }, - "HttpConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.HttpConfig" + "DomainJoinInfo": { + "$ref": "#/definitions/AWS::AppStream::Fleet.DomainJoinInfo" }, - "LambdaConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.LambdaConfig" + "EnableDefaultInternetAccess": { + "type": "boolean" }, - "Name": { + "FleetType": { "type": "string" }, - "RelationalDatabaseConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.RelationalDatabaseConfig" + "ImageArn": { + "type": "string" }, - "ServiceRoleArn": { + "ImageName": { "type": "string" }, - "Type": { + "InstanceType": { "type": "string" + }, + "MaxUserDurationInSeconds": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::AppStream::Fleet.VpcConfig" } }, "required": [ - "ApiId", - "Name", - "Type" + "ComputeCapacity", + "InstanceType" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::DataSource" + "AWS::AppStream::Fleet" ], "type": "string" } @@ -2873,145 +3119,57 @@ ], "type": "object" }, - "AWS::AppSync::DataSource.AuthorizationConfig": { + "AWS::AppStream::Fleet.ComputeCapacity": { "additionalProperties": false, "properties": { - "AuthorizationType": { - "type": "string" - }, - "AwsIamConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.AwsIamConfig" + "DesiredInstances": { + "type": "number" } }, "required": [ - "AuthorizationType" + "DesiredInstances" ], "type": "object" }, - "AWS::AppSync::DataSource.AwsIamConfig": { + "AWS::AppStream::Fleet.DomainJoinInfo": { "additionalProperties": false, "properties": { - "SigningRegion": { + "DirectoryName": { "type": "string" }, - "SigningServiceName": { + "OrganizationalUnitDistinguishedName": { "type": "string" } }, "type": "object" }, - "AWS::AppSync::DataSource.DynamoDBConfig": { + "AWS::AppStream::Fleet.VpcConfig": { "additionalProperties": false, "properties": { - "AwsRegion": { - "type": "string" - }, - "TableName": { - "type": "string" + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "UseCallerCredentials": { - "type": "boolean" + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "AwsRegion", - "TableName" - ], "type": "object" }, - "AWS::AppSync::DataSource.ElasticsearchConfig": { + "AWS::AppStream::ImageBuilder": { "additionalProperties": false, "properties": { - "AwsRegion": { - "type": "string" - }, - "Endpoint": { - "type": "string" - } - }, - "required": [ - "AwsRegion", - "Endpoint" - ], - "type": "object" - }, - "AWS::AppSync::DataSource.HttpConfig": { - "additionalProperties": false, - "properties": { - "AuthorizationConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.AuthorizationConfig" - }, - "Endpoint": { - "type": "string" - } - }, - "required": [ - "Endpoint" - ], - "type": "object" - }, - "AWS::AppSync::DataSource.LambdaConfig": { - "additionalProperties": false, - "properties": { - "LambdaFunctionArn": { - "type": "string" - } - }, - "required": [ - "LambdaFunctionArn" - ], - "type": "object" - }, - "AWS::AppSync::DataSource.RdsHttpEndpointConfig": { - "additionalProperties": false, - "properties": { - "AwsRegion": { - "type": "string" - }, - "AwsSecretStoreArn": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "DbClusterIdentifier": { - "type": "string" - }, - "Schema": { - "type": "string" - } - }, - "required": [ - "AwsRegion", - "AwsSecretStoreArn", - "DbClusterIdentifier" - ], - "type": "object" - }, - "AWS::AppSync::DataSource.RelationalDatabaseConfig": { - "additionalProperties": false, - "properties": { - "RdsHttpEndpointConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.RdsHttpEndpointConfig" - }, - "RelationalDatabaseSourceType": { - "type": "string" - } - }, - "required": [ - "RelationalDatabaseSourceType" - ], - "type": "object" - }, - "AWS::AppSync::FunctionConfiguration": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, "DependsOn": { @@ -3035,42 +3193,45 @@ "Properties": { "additionalProperties": false, "properties": { - "ApiId": { - "type": "string" - }, - "DataSourceName": { + "AppstreamAgentVersion": { "type": "string" }, "Description": { "type": "string" }, - "FunctionVersion": { + "DisplayName": { "type": "string" }, - "Name": { - "type": "string" + "DomainJoinInfo": { + "$ref": "#/definitions/AWS::AppStream::ImageBuilder.DomainJoinInfo" }, - "RequestMappingTemplate": { + "EnableDefaultInternetAccess": { + "type": "boolean" + }, + "ImageArn": { "type": "string" }, - "RequestMappingTemplateS3Location": { + "ImageName": { "type": "string" }, - "ResponseMappingTemplate": { + "InstanceType": { "type": "string" }, - "ResponseMappingTemplateS3Location": { + "Name": { "type": "string" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::AppStream::ImageBuilder.VpcConfig" } }, "required": [ - "ApiId" + "InstanceType" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::FunctionConfiguration" + "AWS::AppStream::ImageBuilder" ], "type": "string" } @@ -3081,7 +3242,37 @@ ], "type": "object" }, - "AWS::AppSync::GraphQLApi": { + "AWS::AppStream::ImageBuilder.DomainJoinInfo": { + "additionalProperties": false, + "properties": { + "DirectoryName": { + "type": "string" + }, + "OrganizationalUnitDistinguishedName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppStream::ImageBuilder.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::AppStream::Stack": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3113,90 +3304,113 @@ "Properties": { "additionalProperties": false, "properties": { - "AuthenticationType": { + "ApplicationSettings": { + "$ref": "#/definitions/AWS::AppStream::Stack.ApplicationSettings" + }, + "AttributesToDelete": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DeleteStorageConnectors": { + "type": "boolean" + }, + "Description": { "type": "string" }, - "LogConfig": { - "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LogConfig" + "DisplayName": { + "type": "string" + }, + "FeedbackURL": { + "type": "string" }, "Name": { "type": "string" }, - "OpenIDConnectConfig": { - "$ref": "#/definitions/AWS::AppSync::GraphQLApi.OpenIDConnectConfig" + "RedirectURL": { + "type": "string" }, - "UserPoolConfig": { - "$ref": "#/definitions/AWS::AppSync::GraphQLApi.UserPoolConfig" + "StorageConnectors": { + "items": { + "$ref": "#/definitions/AWS::AppStream::Stack.StorageConnector" + }, + "type": "array" + }, + "UserSettings": { + "items": { + "$ref": "#/definitions/AWS::AppStream::Stack.UserSetting" + }, + "type": "array" } }, - "required": [ - "AuthenticationType", - "Name" - ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::GraphQLApi" + "AWS::AppStream::Stack" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::AppSync::GraphQLApi.LogConfig": { + "AWS::AppStream::Stack.ApplicationSettings": { "additionalProperties": false, "properties": { - "CloudWatchLogsRoleArn": { - "type": "string" + "Enabled": { + "type": "boolean" }, - "FieldLogLevel": { + "SettingsGroup": { "type": "string" } }, + "required": [ + "Enabled" + ], "type": "object" }, - "AWS::AppSync::GraphQLApi.OpenIDConnectConfig": { + "AWS::AppStream::Stack.StorageConnector": { "additionalProperties": false, "properties": { - "AuthTTL": { - "type": "number" - }, - "ClientId": { + "ConnectorType": { "type": "string" }, - "IatTTL": { - "type": "number" + "Domains": { + "items": { + "type": "string" + }, + "type": "array" }, - "Issuer": { + "ResourceIdentifier": { "type": "string" } }, + "required": [ + "ConnectorType" + ], "type": "object" }, - "AWS::AppSync::GraphQLApi.UserPoolConfig": { + "AWS::AppStream::Stack.UserSetting": { "additionalProperties": false, "properties": { - "AppIdClientRegex": { - "type": "string" - }, - "AwsRegion": { - "type": "string" - }, - "DefaultAction": { + "Action": { "type": "string" }, - "UserPoolId": { + "Permission": { "type": "string" } }, + "required": [ + "Action", + "Permission" + ], "type": "object" }, - "AWS::AppSync::GraphQLSchema": { + "AWS::AppStream::StackFleetAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3228,24 +3442,22 @@ "Properties": { "additionalProperties": false, "properties": { - "ApiId": { - "type": "string" - }, - "Definition": { + "FleetName": { "type": "string" }, - "DefinitionS3Location": { + "StackName": { "type": "string" } }, "required": [ - "ApiId" + "FleetName", + "StackName" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::GraphQLSchema" + "AWS::AppStream::StackFleetAssociation" ], "type": "string" } @@ -3256,7 +3468,7 @@ ], "type": "object" }, - "AWS::AppSync::Resolver": { + "AWS::AppStream::StackUserAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3288,47 +3500,29 @@ "Properties": { "additionalProperties": false, "properties": { - "ApiId": { - "type": "string" - }, - "DataSourceName": { - "type": "string" - }, - "FieldName": { - "type": "string" - }, - "Kind": { - "type": "string" - }, - "PipelineConfig": { - "$ref": "#/definitions/AWS::AppSync::Resolver.PipelineConfig" - }, - "RequestMappingTemplate": { - "type": "string" - }, - "RequestMappingTemplateS3Location": { + "AuthenticationType": { "type": "string" }, - "ResponseMappingTemplate": { - "type": "string" + "SendEmailNotification": { + "type": "boolean" }, - "ResponseMappingTemplateS3Location": { + "StackName": { "type": "string" }, - "TypeName": { + "UserName": { "type": "string" } }, "required": [ - "ApiId", - "FieldName", - "TypeName" + "AuthenticationType", + "StackName", + "UserName" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::Resolver" + "AWS::AppStream::StackUserAssociation" ], "type": "string" } @@ -3339,19 +3533,7 @@ ], "type": "object" }, - "AWS::AppSync::Resolver.PipelineConfig": { - "additionalProperties": false, - "properties": { - "Functions": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::ApplicationAutoScaling::ScalableTarget": { + "AWS::AppStream::User": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3383,44 +3565,31 @@ "Properties": { "additionalProperties": false, "properties": { - "MaxCapacity": { - "type": "number" - }, - "MinCapacity": { - "type": "number" - }, - "ResourceId": { + "AuthenticationType": { "type": "string" }, - "RoleARN": { + "FirstName": { "type": "string" }, - "ScalableDimension": { + "LastName": { "type": "string" }, - "ScheduledActions": { - "items": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction" - }, - "type": "array" + "MessageAction": { + "type": "string" }, - "ServiceNamespace": { + "UserName": { "type": "string" } }, "required": [ - "MaxCapacity", - "MinCapacity", - "ResourceId", - "RoleARN", - "ScalableDimension", - "ServiceNamespace" + "AuthenticationType", + "UserName" ], "type": "object" }, "Type": { "enum": [ - "AWS::ApplicationAutoScaling::ScalableTarget" + "AWS::AppStream::User" ], "type": "string" } @@ -3431,44 +3600,67 @@ ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "number" - }, - "MinCapacity": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction": { + "AWS::AppSync::ApiKey": { "additionalProperties": false, "properties": { - "EndTime": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "ScalableTargetAction": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Schedule": { - "type": "string" + "Metadata": { + "type": "object" }, - "ScheduledActionName": { - "type": "string" + "Properties": { + "additionalProperties": false, + "properties": { + "ApiId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Expires": { + "type": "number" + } + }, + "required": [ + "ApiId" + ], + "type": "object" }, - "StartTime": { + "Type": { + "enum": [ + "AWS::AppSync::ApiKey" + ], "type": "string" } }, "required": [ - "Schedule", - "ScheduledActionName" + "Type", + "Properties" ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy": { + "AWS::AppSync::DataSource": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3500,40 +3692,47 @@ "Properties": { "additionalProperties": false, "properties": { - "PolicyName": { + "ApiId": { "type": "string" }, - "PolicyType": { + "Description": { "type": "string" }, - "ResourceId": { - "type": "string" + "DynamoDBConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.DynamoDBConfig" }, - "ScalableDimension": { - "type": "string" + "ElasticsearchConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.ElasticsearchConfig" }, - "ScalingTargetId": { - "type": "string" + "HttpConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.HttpConfig" }, - "ServiceNamespace": { + "LambdaConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.LambdaConfig" + }, + "Name": { "type": "string" }, - "StepScalingPolicyConfiguration": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration" + "RelationalDatabaseConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.RelationalDatabaseConfig" }, - "TargetTrackingScalingPolicyConfiguration": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration" + "ServiceRoleArn": { + "type": "string" + }, + "Type": { + "type": "string" } }, "required": [ - "PolicyName", - "PolicyType" + "ApiId", + "Name", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::ApplicationAutoScaling::ScalingPolicy" + "AWS::AppSync::DataSource" ], "type": "string" } @@ -3544,136 +3743,137 @@ ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification": { + "AWS::AppSync::DataSource.AuthorizationConfig": { "additionalProperties": false, "properties": { - "Dimensions": { - "items": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension" - }, - "type": "array" - }, - "MetricName": { + "AuthorizationType": { "type": "string" }, - "Namespace": { + "AwsIamConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.AwsIamConfig" + } + }, + "required": [ + "AuthorizationType" + ], + "type": "object" + }, + "AWS::AppSync::DataSource.AwsIamConfig": { + "additionalProperties": false, + "properties": { + "SigningRegion": { "type": "string" }, - "Statistic": { + "SigningServiceName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::DataSource.DynamoDBConfig": { + "additionalProperties": false, + "properties": { + "AwsRegion": { "type": "string" }, - "Unit": { + "TableName": { "type": "string" + }, + "UseCallerCredentials": { + "type": "boolean" } }, "required": [ - "MetricName", - "Namespace", - "Statistic" + "AwsRegion", + "TableName" ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension": { + "AWS::AppSync::DataSource.ElasticsearchConfig": { "additionalProperties": false, "properties": { - "Name": { + "AwsRegion": { "type": "string" }, - "Value": { + "Endpoint": { "type": "string" } }, "required": [ - "Name", - "Value" + "AwsRegion", + "Endpoint" ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification": { + "AWS::AppSync::DataSource.HttpConfig": { "additionalProperties": false, "properties": { - "PredefinedMetricType": { - "type": "string" + "AuthorizationConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.AuthorizationConfig" }, - "ResourceLabel": { + "Endpoint": { "type": "string" } }, "required": [ - "PredefinedMetricType" + "Endpoint" ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment": { + "AWS::AppSync::DataSource.LambdaConfig": { "additionalProperties": false, "properties": { - "MetricIntervalLowerBound": { - "type": "number" - }, - "MetricIntervalUpperBound": { - "type": "number" - }, - "ScalingAdjustment": { - "type": "number" + "LambdaFunctionArn": { + "type": "string" } }, "required": [ - "ScalingAdjustment" + "LambdaFunctionArn" ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration": { + "AWS::AppSync::DataSource.RdsHttpEndpointConfig": { "additionalProperties": false, "properties": { - "AdjustmentType": { + "AwsRegion": { "type": "string" }, - "Cooldown": { - "type": "number" + "AwsSecretStoreArn": { + "type": "string" }, - "MetricAggregationType": { + "DatabaseName": { "type": "string" }, - "MinAdjustmentMagnitude": { - "type": "number" + "DbClusterIdentifier": { + "type": "string" }, - "StepAdjustments": { - "items": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment" - }, - "type": "array" + "Schema": { + "type": "string" } }, + "required": [ + "AwsRegion", + "AwsSecretStoreArn", + "DbClusterIdentifier" + ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration": { + "AWS::AppSync::DataSource.RelationalDatabaseConfig": { "additionalProperties": false, "properties": { - "CustomizedMetricSpecification": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification" - }, - "DisableScaleIn": { - "type": "boolean" - }, - "PredefinedMetricSpecification": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification" - }, - "ScaleInCooldown": { - "type": "number" - }, - "ScaleOutCooldown": { - "type": "number" + "RdsHttpEndpointConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.RdsHttpEndpointConfig" }, - "TargetValue": { - "type": "number" + "RelationalDatabaseSourceType": { + "type": "string" } }, "required": [ - "TargetValue" + "RelationalDatabaseSourceType" ], "type": "object" }, - "AWS::Athena::NamedQuery": { + "AWS::AppSync::FunctionConfiguration": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3705,28 +3905,42 @@ "Properties": { "additionalProperties": false, "properties": { - "Database": { + "ApiId": { + "type": "string" + }, + "DataSourceName": { "type": "string" }, "Description": { "type": "string" }, + "FunctionVersion": { + "type": "string" + }, "Name": { "type": "string" }, - "QueryString": { + "RequestMappingTemplate": { + "type": "string" + }, + "RequestMappingTemplateS3Location": { + "type": "string" + }, + "ResponseMappingTemplate": { + "type": "string" + }, + "ResponseMappingTemplateS3Location": { "type": "string" } }, "required": [ - "Database", - "QueryString" + "ApiId" ], "type": "object" }, "Type": { "enum": [ - "AWS::Athena::NamedQuery" + "AWS::AppSync::FunctionConfiguration" ], "type": "string" } @@ -3737,12 +3951,9 @@ ], "type": "object" }, - "AWS::AutoScaling::AutoScalingGroup": { + "AWS::AppSync::GraphQLApi": { "additionalProperties": false, "properties": { - "CreationPolicy": { - "type": "object" - }, "DeletionPolicy": { "enum": [ "Delete", @@ -3772,114 +3983,33 @@ "Properties": { "additionalProperties": false, "properties": { - "AutoScalingGroupName": { - "type": "string" - }, - "AvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Cooldown": { - "type": "string" - }, - "DesiredCapacity": { - "type": "string" - }, - "HealthCheckGracePeriod": { - "type": "number" - }, - "HealthCheckType": { - "type": "string" - }, - "InstanceId": { - "type": "string" - }, - "LaunchConfigurationName": { - "type": "string" - }, - "LaunchTemplate": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" - }, - "LifecycleHookSpecificationList": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification" - }, - "type": "array" - }, - "LoadBalancerNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MaxSize": { - "type": "string" - }, - "MetricsCollection": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MetricsCollection" - }, - "type": "array" - }, - "MinSize": { + "AuthenticationType": { "type": "string" }, - "MixedInstancesPolicy": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy" - }, - "NotificationConfigurations": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration" - }, - "type": "array" - }, - "PlacementGroup": { - "type": "string" + "LogConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LogConfig" }, - "ServiceLinkedRoleARN": { + "Name": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.TagProperty" - }, - "type": "array" - }, - "TargetGroupARNs": { - "items": { - "type": "string" - }, - "type": "array" - }, - "TerminationPolicies": { - "items": { - "type": "string" - }, - "type": "array" + "OpenIDConnectConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.OpenIDConnectConfig" }, - "VPCZoneIdentifier": { - "items": { - "type": "string" - }, - "type": "array" + "UserPoolConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.UserPoolConfig" } }, "required": [ - "MaxSize", - "MinSize" + "AuthenticationType", + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScaling::AutoScalingGroup" + "AWS::AppSync::GraphQLApi" ], "type": "string" - }, - "UpdatePolicy": { - "type": "object" } }, "required": [ @@ -3888,178 +4018,55 @@ ], "type": "object" }, - "AWS::AutoScaling::AutoScalingGroup.InstancesDistribution": { - "additionalProperties": false, - "properties": { - "OnDemandAllocationStrategy": { - "type": "string" - }, - "OnDemandBaseCapacity": { - "type": "number" - }, - "OnDemandPercentageAboveBaseCapacity": { - "type": "number" - }, - "SpotAllocationStrategy": { - "type": "string" - }, - "SpotInstancePools": { - "type": "number" - }, - "SpotMaxPrice": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.LaunchTemplate": { - "additionalProperties": false, - "properties": { - "LaunchTemplateSpecification": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" - }, - "Overrides": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides" - }, - "type": "array" - } - }, - "required": [ - "LaunchTemplateSpecification" - ], - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification": { + "AWS::AppSync::GraphQLApi.LogConfig": { "additionalProperties": false, "properties": { - "LaunchTemplateId": { - "type": "string" - }, - "LaunchTemplateName": { + "CloudWatchLogsRoleArn": { "type": "string" }, - "Version": { + "FieldLogLevel": { "type": "string" } }, - "required": [ - "Version" - ], "type": "object" }, - "AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification": { + "AWS::AppSync::GraphQLApi.OpenIDConnectConfig": { "additionalProperties": false, "properties": { - "DefaultResult": { - "type": "string" - }, - "HeartbeatTimeout": { + "AuthTTL": { "type": "number" }, - "LifecycleHookName": { - "type": "string" - }, - "LifecycleTransition": { - "type": "string" - }, - "NotificationMetadata": { + "ClientId": { "type": "string" }, - "NotificationTargetARN": { - "type": "string" + "IatTTL": { + "type": "number" }, - "RoleARN": { + "Issuer": { "type": "string" } }, - "required": [ - "LifecycleHookName", - "LifecycleTransition" - ], "type": "object" }, - "AWS::AutoScaling::AutoScalingGroup.MetricsCollection": { + "AWS::AppSync::GraphQLApi.UserPoolConfig": { "additionalProperties": false, "properties": { - "Granularity": { + "AppIdClientRegex": { "type": "string" }, - "Metrics": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Granularity" - ], - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy": { - "additionalProperties": false, - "properties": { - "InstancesDistribution": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.InstancesDistribution" - }, - "LaunchTemplate": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplate" - } - }, - "required": [ - "LaunchTemplate" - ], - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration": { - "additionalProperties": false, - "properties": { - "NotificationTypes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "TopicARN": { - "type": "string" - } - }, - "required": [ - "TopicARN" - ], - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.TagProperty": { - "additionalProperties": false, - "properties": { - "Key": { + "AwsRegion": { "type": "string" }, - "PropagateAtLaunch": { - "type": "boolean" + "DefaultAction": { + "type": "string" }, - "Value": { + "UserPoolId": { "type": "string" } }, - "required": [ - "Key", - "PropagateAtLaunch", - "Value" - ], "type": "object" }, - "AWS::AutoScaling::LaunchConfiguration": { + "AWS::AppSync::GraphQLSchema": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -4091,79 +4098,24 @@ "Properties": { "additionalProperties": false, "properties": { - "AssociatePublicIpAddress": { - "type": "boolean" - }, - "BlockDeviceMappings": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping" - }, - "type": "array" - }, - "ClassicLinkVPCId": { - "type": "string" - }, - "ClassicLinkVPCSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EbsOptimized": { - "type": "boolean" - }, - "IamInstanceProfile": { - "type": "string" - }, - "ImageId": { - "type": "string" - }, - "InstanceId": { - "type": "string" - }, - "InstanceMonitoring": { - "type": "boolean" - }, - "InstanceType": { - "type": "string" - }, - "KernelId": { - "type": "string" - }, - "KeyName": { - "type": "string" - }, - "LaunchConfigurationName": { - "type": "string" - }, - "PlacementTenancy": { - "type": "string" - }, - "RamDiskId": { + "ApiId": { "type": "string" }, - "SecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SpotPrice": { + "Definition": { "type": "string" }, - "UserData": { + "DefinitionS3Location": { "type": "string" } }, "required": [ - "ImageId", - "InstanceType" + "ApiId" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScaling::LaunchConfiguration" + "AWS::AppSync::GraphQLSchema" ], "type": "string" } @@ -4174,52 +4126,7 @@ ], "type": "object" }, - "AWS::AutoScaling::LaunchConfiguration.BlockDevice": { - "additionalProperties": false, - "properties": { - "DeleteOnTermination": { - "type": "boolean" - }, - "Encrypted": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "SnapshotId": { - "type": "string" - }, - "VolumeSize": { - "type": "number" - }, - "VolumeType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping": { - "additionalProperties": false, - "properties": { - "DeviceName": { - "type": "string" - }, - "Ebs": { - "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDevice" - }, - "NoDevice": { - "type": "boolean" - }, - "VirtualName": { - "type": "string" - } - }, - "required": [ - "DeviceName" - ], - "type": "object" - }, - "AWS::AutoScaling::LifecycleHook": { + "AWS::AppSync::Resolver": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -4251,40 +4158,47 @@ "Properties": { "additionalProperties": false, "properties": { - "AutoScalingGroupName": { + "ApiId": { "type": "string" }, - "DefaultResult": { + "DataSourceName": { "type": "string" }, - "HeartbeatTimeout": { - "type": "number" + "FieldName": { + "type": "string" }, - "LifecycleHookName": { + "Kind": { "type": "string" }, - "LifecycleTransition": { + "PipelineConfig": { + "$ref": "#/definitions/AWS::AppSync::Resolver.PipelineConfig" + }, + "RequestMappingTemplate": { "type": "string" }, - "NotificationMetadata": { + "RequestMappingTemplateS3Location": { "type": "string" }, - "NotificationTargetARN": { + "ResponseMappingTemplate": { "type": "string" }, - "RoleARN": { + "ResponseMappingTemplateS3Location": { + "type": "string" + }, + "TypeName": { "type": "string" } }, "required": [ - "AutoScalingGroupName", - "LifecycleTransition" + "ApiId", + "FieldName", + "TypeName" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScaling::LifecycleHook" + "AWS::AppSync::Resolver" ], "type": "string" } @@ -4295,7 +4209,19 @@ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy": { + "AWS::AppSync::Resolver.PipelineConfig": { + "additionalProperties": false, + "properties": { + "Functions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalableTarget": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -4327,48 +4253,157 @@ "Properties": { "additionalProperties": false, "properties": { - "AdjustmentType": { - "type": "string" - }, - "AutoScalingGroupName": { - "type": "string" - }, - "Cooldown": { - "type": "string" + "MaxCapacity": { + "type": "number" }, - "EstimatedInstanceWarmup": { + "MinCapacity": { "type": "number" }, - "MetricAggregationType": { + "ResourceId": { "type": "string" }, - "MinAdjustmentMagnitude": { - "type": "number" + "RoleARN": { + "type": "string" }, - "PolicyType": { + "ScalableDimension": { "type": "string" }, - "ScalingAdjustment": { - "type": "number" + "ScheduledActions": { + "items": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction" + }, + "type": "array" }, - "StepAdjustments": { + "ServiceNamespace": { + "type": "string" + } + }, + "required": [ + "MaxCapacity", + "MinCapacity", + "ResourceId", + "RoleARN", + "ScalableDimension", + "ServiceNamespace" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApplicationAutoScaling::ScalableTarget" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction": { + "additionalProperties": false, + "properties": { + "EndTime": { + "type": "string" + }, + "ScalableTargetAction": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction" + }, + "Schedule": { + "type": "string" + }, + "ScheduledActionName": { + "type": "string" + }, + "StartTime": { + "type": "string" + } + }, + "required": [ + "Schedule", + "ScheduledActionName" + ], + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { "items": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.StepAdjustment" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyName": { + "type": "string" }, - "TargetTrackingConfiguration": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration" + "PolicyType": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "ScalableDimension": { + "type": "string" + }, + "ScalingTargetId": { + "type": "string" + }, + "ServiceNamespace": { + "type": "string" + }, + "StepScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration" } }, "required": [ - "AutoScalingGroupName" + "PolicyName", + "PolicyType" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScaling::ScalingPolicy" + "AWS::ApplicationAutoScaling::ScalingPolicy" ], "type": "string" } @@ -4379,12 +4414,12 @@ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification": { + "AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification": { "additionalProperties": false, "properties": { "Dimensions": { "items": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDimension" + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension" }, "type": "array" }, @@ -4408,7 +4443,7 @@ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy.MetricDimension": { + "AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension": { "additionalProperties": false, "properties": { "Name": { @@ -4424,7 +4459,7 @@ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification": { + "AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification": { "additionalProperties": false, "properties": { "PredefinedMetricType": { @@ -4439,7 +4474,7 @@ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy.StepAdjustment": { + "AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment": { "additionalProperties": false, "properties": { "MetricIntervalLowerBound": { @@ -4457,17 +4492,47 @@ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration": { + "AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "Cooldown": { + "type": "number" + }, + "MetricAggregationType": { + "type": "string" + }, + "MinAdjustmentMagnitude": { + "type": "number" + }, + "StepAdjustments": { + "items": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration": { "additionalProperties": false, "properties": { "CustomizedMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification" + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification" }, "DisableScaleIn": { "type": "boolean" }, "PredefinedMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification" + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification" + }, + "ScaleInCooldown": { + "type": "number" + }, + "ScaleOutCooldown": { + "type": "number" }, "TargetValue": { "type": "number" @@ -4478,7 +4543,7 @@ ], "type": "object" }, - "AWS::AutoScaling::ScheduledAction": { + "AWS::Athena::NamedQuery": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -4510,36 +4575,28 @@ "Properties": { "additionalProperties": false, "properties": { - "AutoScalingGroupName": { + "Database": { "type": "string" }, - "DesiredCapacity": { - "type": "number" - }, - "EndTime": { + "Description": { "type": "string" }, - "MaxSize": { - "type": "number" - }, - "MinSize": { - "type": "number" - }, - "Recurrence": { + "Name": { "type": "string" }, - "StartTime": { + "QueryString": { "type": "string" } }, "required": [ - "AutoScalingGroupName" + "Database", + "QueryString" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScaling::ScheduledAction" + "AWS::Athena::NamedQuery" ], "type": "string" } @@ -4550,9 +4607,12 @@ ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan": { + "AWS::AutoScaling::AutoScalingGroup": { "additionalProperties": false, "properties": { + "CreationPolicy": { + "type": "object" + }, "DeletionPolicy": { "enum": [ "Delete", @@ -4582,27 +4642,114 @@ "Properties": { "additionalProperties": false, "properties": { - "ApplicationSource": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ApplicationSource" + "AutoScalingGroupName": { + "type": "string" }, - "ScalingInstructions": { + "AvailabilityZones": { "items": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction" + "type": "string" + }, + "type": "array" + }, + "Cooldown": { + "type": "string" + }, + "DesiredCapacity": { + "type": "string" + }, + "HealthCheckGracePeriod": { + "type": "number" + }, + "HealthCheckType": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "LaunchConfigurationName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" + }, + "LifecycleHookSpecificationList": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification" + }, + "type": "array" + }, + "LoadBalancerNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxSize": { + "type": "string" + }, + "MetricsCollection": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MetricsCollection" + }, + "type": "array" + }, + "MinSize": { + "type": "string" + }, + "MixedInstancesPolicy": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy" + }, + "NotificationConfigurations": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration" + }, + "type": "array" + }, + "PlacementGroup": { + "type": "string" + }, + "ServiceLinkedRoleARN": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.TagProperty" + }, + "type": "array" + }, + "TargetGroupARNs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TerminationPolicies": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VPCZoneIdentifier": { + "items": { + "type": "string" }, "type": "array" } }, "required": [ - "ApplicationSource", - "ScalingInstructions" + "MaxSize", + "MinSize" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScalingPlans::ScalingPlan" + "AWS::AutoScaling::AutoScalingGroup" ], "type": "string" + }, + "UpdatePolicy": { + "type": "object" } }, "required": [ @@ -4611,191 +4758,113 @@ ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.ApplicationSource": { + "AWS::AutoScaling::AutoScalingGroup.InstancesDistribution": { "additionalProperties": false, "properties": { - "CloudFormationStackARN": { + "OnDemandAllocationStrategy": { "type": "string" }, - "TagFilters": { - "items": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TagFilter" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification": { - "additionalProperties": false, - "properties": { - "Dimensions": { - "items": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension" - }, - "type": "array" + "OnDemandBaseCapacity": { + "type": "number" }, - "MetricName": { - "type": "string" + "OnDemandPercentageAboveBaseCapacity": { + "type": "number" }, - "Namespace": { + "SpotAllocationStrategy": { "type": "string" }, - "Statistic": { - "type": "string" + "SpotInstancePools": { + "type": "number" }, - "Unit": { + "SpotMaxPrice": { "type": "string" } }, - "required": [ - "MetricName", - "Namespace", - "Statistic" - ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification": { + "AWS::AutoScaling::AutoScalingGroup.LaunchTemplate": { "additionalProperties": false, "properties": { - "Dimensions": { + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" + }, + "Overrides": { "items": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension" + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides" }, "type": "array" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Statistic": { - "type": "string" - }, - "Unit": { - "type": "string" } }, "required": [ - "MetricName", - "Namespace", - "Statistic" + "LaunchTemplateSpecification" ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.MetricDimension": { + "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides": { "additionalProperties": false, "properties": { - "Name": { - "type": "string" - }, - "Value": { + "InstanceType": { "type": "string" } }, - "required": [ - "Name", - "Value" - ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification": { + "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification": { "additionalProperties": false, "properties": { - "PredefinedLoadMetricType": { + "LaunchTemplateId": { "type": "string" }, - "ResourceLabel": { - "type": "string" - } - }, - "required": [ - "PredefinedLoadMetricType" - ], - "type": "object" - }, - "AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification": { - "additionalProperties": false, - "properties": { - "PredefinedScalingMetricType": { + "LaunchTemplateName": { "type": "string" }, - "ResourceLabel": { + "Version": { "type": "string" } }, "required": [ - "PredefinedScalingMetricType" + "Version" ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction": { + "AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification": { "additionalProperties": false, "properties": { - "CustomizedLoadMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification" - }, - "DisableDynamicScaling": { - "type": "boolean" - }, - "MaxCapacity": { - "type": "number" - }, - "MinCapacity": { - "type": "number" - }, - "PredefinedLoadMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification" - }, - "PredictiveScalingMaxCapacityBehavior": { + "DefaultResult": { "type": "string" }, - "PredictiveScalingMaxCapacityBuffer": { + "HeartbeatTimeout": { "type": "number" }, - "PredictiveScalingMode": { + "LifecycleHookName": { "type": "string" }, - "ResourceId": { + "LifecycleTransition": { "type": "string" }, - "ScalableDimension": { + "NotificationMetadata": { "type": "string" }, - "ScalingPolicyUpdateBehavior": { + "NotificationTargetARN": { "type": "string" }, - "ScheduledActionBufferTime": { - "type": "number" - }, - "ServiceNamespace": { + "RoleARN": { "type": "string" - }, - "TargetTrackingConfigurations": { - "items": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration" - }, - "type": "array" } }, "required": [ - "MaxCapacity", - "MinCapacity", - "ResourceId", - "ScalableDimension", - "ServiceNamespace", - "TargetTrackingConfigurations" + "LifecycleHookName", + "LifecycleTransition" ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.TagFilter": { + "AWS::AutoScaling::AutoScalingGroup.MetricsCollection": { "additionalProperties": false, "properties": { - "Key": { + "Granularity": { "type": "string" }, - "Values": { + "Metrics": { "items": { "type": "string" }, @@ -4803,52 +4872,75 @@ } }, "required": [ - "Key" + "Granularity" ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration": { + "AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy": { "additionalProperties": false, "properties": { - "CustomizedScalingMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification" - }, - "DisableScaleIn": { - "type": "boolean" - }, - "EstimatedInstanceWarmup": { - "type": "number" - }, - "PredefinedScalingMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification" - }, - "ScaleInCooldown": { - "type": "number" + "InstancesDistribution": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.InstancesDistribution" }, - "ScaleOutCooldown": { - "type": "number" + "LaunchTemplate": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplate" + } + }, + "required": [ + "LaunchTemplate" + ], + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration": { + "additionalProperties": false, + "properties": { + "NotificationTypes": { + "items": { + "type": "string" + }, + "type": "array" }, - "TargetValue": { - "type": "number" + "TopicARN": { + "type": "string" } }, "required": [ - "TargetValue" + "TopicARN" ], "type": "object" }, - "AWS::Batch::ComputeEnvironment": { + "AWS::AutoScaling::AutoScalingGroup.TagProperty": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Key": { "type": "string" }, - "DependsOn": { + "PropagateAtLaunch": { + "type": "boolean" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "PropagateAtLaunch", + "Value" + ], + "type": "object" + }, + "AWS::AutoScaling::LaunchConfiguration": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { "anyOf": [ { "pattern": "^[a-zA-Z0-9]+$", @@ -4869,31 +4961,79 @@ "Properties": { "additionalProperties": false, "properties": { - "ComputeEnvironmentName": { + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping" + }, + "type": "array" + }, + "ClassicLinkVPCId": { "type": "string" }, - "ComputeResources": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.ComputeResources" + "ClassicLinkVPCSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" }, - "ServiceRole": { + "EbsOptimized": { + "type": "boolean" + }, + "IamInstanceProfile": { "type": "string" }, - "State": { + "ImageId": { "type": "string" }, - "Type": { + "InstanceId": { + "type": "string" + }, + "InstanceMonitoring": { + "type": "boolean" + }, + "InstanceType": { + "type": "string" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchConfigurationName": { + "type": "string" + }, + "PlacementTenancy": { + "type": "string" + }, + "RamDiskId": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SpotPrice": { + "type": "string" + }, + "UserData": { "type": "string" } }, "required": [ - "ServiceRole", - "Type" + "ImageId", + "InstanceType" ], "type": "object" }, "Type": { "enum": [ - "AWS::Batch::ComputeEnvironment" + "AWS::AutoScaling::LaunchConfiguration" ], "type": "string" } @@ -4904,91 +5044,128 @@ ], "type": "object" }, - "AWS::Batch::ComputeEnvironment.ComputeResources": { + "AWS::AutoScaling::LaunchConfiguration.BlockDevice": { "additionalProperties": false, "properties": { - "BidPercentage": { - "type": "number" - }, - "DesiredvCpus": { - "type": "number" + "DeleteOnTermination": { + "type": "boolean" }, - "Ec2KeyPair": { - "type": "string" + "Encrypted": { + "type": "boolean" }, - "ImageId": { - "type": "string" + "Iops": { + "type": "number" }, - "InstanceRole": { + "SnapshotId": { "type": "string" }, - "InstanceTypes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LaunchTemplate": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification" - }, - "MaxvCpus": { - "type": "number" - }, - "MinvCpus": { + "VolumeSize": { "type": "number" }, - "PlacementGroup": { + "VolumeType": { "type": "string" - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SpotIamFleetRole": { + } + }, + "type": "object" + }, + "AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { "type": "string" }, - "Subnets": { - "items": { - "type": "string" - }, - "type": "array" + "Ebs": { + "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDevice" }, - "Tags": { - "type": "object" + "NoDevice": { + "type": "boolean" }, - "Type": { + "VirtualName": { "type": "string" } }, "required": [ - "InstanceRole", - "InstanceTypes", - "MaxvCpus", - "MinvCpus", - "SecurityGroupIds", - "Subnets", - "Type" + "DeviceName" ], "type": "object" }, - "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": { + "AWS::AutoScaling::LifecycleHook": { "additionalProperties": false, "properties": { - "LaunchTemplateId": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "LaunchTemplateName": { - "type": "string" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Version": { + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AutoScalingGroupName": { + "type": "string" + }, + "DefaultResult": { + "type": "string" + }, + "HeartbeatTimeout": { + "type": "number" + }, + "LifecycleHookName": { + "type": "string" + }, + "LifecycleTransition": { + "type": "string" + }, + "NotificationMetadata": { + "type": "string" + }, + "NotificationTargetARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "AutoScalingGroupName", + "LifecycleTransition" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AutoScaling::LifecycleHook" + ], "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::Batch::JobDefinition": { + "AWS::AutoScaling::ScalingPolicy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -5020,36 +5197,48 @@ "Properties": { "additionalProperties": false, "properties": { - "ContainerProperties": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties" + "AdjustmentType": { + "type": "string" }, - "JobDefinitionName": { + "AutoScalingGroupName": { "type": "string" }, - "NodeProperties": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeProperties" + "Cooldown": { + "type": "string" }, - "Parameters": { - "type": "object" + "EstimatedInstanceWarmup": { + "type": "number" }, - "RetryStrategy": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.RetryStrategy" + "MetricAggregationType": { + "type": "string" }, - "Timeout": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.Timeout" + "MinAdjustmentMagnitude": { + "type": "number" }, - "Type": { + "PolicyType": { "type": "string" + }, + "ScalingAdjustment": { + "type": "number" + }, + "StepAdjustments": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.StepAdjustment" + }, + "type": "array" + }, + "TargetTrackingConfiguration": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration" } }, "required": [ - "Type" + "AutoScalingGroupName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Batch::JobDefinition" + "AWS::AutoScaling::ScalingPolicy" ], "type": "string" } @@ -5060,72 +5249,36 @@ ], "type": "object" }, - "AWS::Batch::JobDefinition.ContainerProperties": { + "AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification": { "additionalProperties": false, "properties": { - "Command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Environment": { + "Dimensions": { "items": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.Environment" + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDimension" }, "type": "array" }, - "Image": { + "MetricName": { "type": "string" }, - "InstanceType": { + "Namespace": { "type": "string" }, - "JobRoleArn": { + "Statistic": { "type": "string" }, - "Memory": { - "type": "number" - }, - "MountPoints": { - "items": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.MountPoints" - }, - "type": "array" - }, - "Privileged": { - "type": "boolean" - }, - "ReadonlyRootFilesystem": { - "type": "boolean" - }, - "Ulimits": { - "items": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.Ulimit" - }, - "type": "array" - }, - "User": { + "Unit": { "type": "string" - }, - "Vcpus": { - "type": "number" - }, - "Volumes": { - "items": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.Volumes" - }, - "type": "array" } }, "required": [ - "Image", - "Memory", - "Vcpus" + "MetricName", + "Namespace", + "Statistic" ], "type": "object" }, - "AWS::Batch::JobDefinition.Environment": { + "AWS::AutoScaling::ScalingPolicy.MetricDimension": { "additionalProperties": false, "properties": { "Name": { @@ -5135,121 +5288,67 @@ "type": "string" } }, + "required": [ + "Name", + "Value" + ], "type": "object" }, - "AWS::Batch::JobDefinition.MountPoints": { + "AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification": { "additionalProperties": false, "properties": { - "ContainerPath": { + "PredefinedMetricType": { "type": "string" }, - "ReadOnly": { - "type": "boolean" - }, - "SourceVolume": { + "ResourceLabel": { "type": "string" } }, + "required": [ + "PredefinedMetricType" + ], "type": "object" }, - "AWS::Batch::JobDefinition.NodeProperties": { + "AWS::AutoScaling::ScalingPolicy.StepAdjustment": { "additionalProperties": false, "properties": { - "MainNode": { + "MetricIntervalLowerBound": { "type": "number" }, - "NodeRangeProperties": { - "items": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeRangeProperty" - }, - "type": "array" + "MetricIntervalUpperBound": { + "type": "number" }, - "NumNodes": { + "ScalingAdjustment": { "type": "number" } }, "required": [ - "MainNode", - "NodeRangeProperties", - "NumNodes" + "ScalingAdjustment" ], "type": "object" }, - "AWS::Batch::JobDefinition.NodeRangeProperty": { + "AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration": { "additionalProperties": false, "properties": { - "Container": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties" + "CustomizedMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification" }, - "TargetNodes": { - "type": "string" - } - }, - "required": [ - "TargetNodes" - ], - "type": "object" - }, - "AWS::Batch::JobDefinition.RetryStrategy": { - "additionalProperties": false, - "properties": { - "Attempts": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::Batch::JobDefinition.Timeout": { - "additionalProperties": false, - "properties": { - "AttemptDurationSeconds": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::Batch::JobDefinition.Ulimit": { - "additionalProperties": false, - "properties": { - "HardLimit": { - "type": "number" + "DisableScaleIn": { + "type": "boolean" }, - "Name": { - "type": "string" + "PredefinedMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification" }, - "SoftLimit": { + "TargetValue": { "type": "number" } }, "required": [ - "HardLimit", - "Name", - "SoftLimit" + "TargetValue" ], "type": "object" }, - "AWS::Batch::JobDefinition.Volumes": { - "additionalProperties": false, - "properties": { - "Host": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.VolumesHost" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Batch::JobDefinition.VolumesHost": { - "additionalProperties": false, - "properties": { - "SourcePath": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Batch::JobQueue": { + "AWS::AutoScaling::ScheduledAction": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -5281,31 +5380,36 @@ "Properties": { "additionalProperties": false, "properties": { - "ComputeEnvironmentOrder": { - "items": { - "$ref": "#/definitions/AWS::Batch::JobQueue.ComputeEnvironmentOrder" - }, - "type": "array" + "AutoScalingGroupName": { + "type": "string" }, - "JobQueueName": { + "DesiredCapacity": { + "type": "number" + }, + "EndTime": { "type": "string" }, - "Priority": { + "MaxSize": { "type": "number" }, - "State": { + "MinSize": { + "type": "number" + }, + "Recurrence": { + "type": "string" + }, + "StartTime": { "type": "string" } }, "required": [ - "ComputeEnvironmentOrder", - "Priority" + "AutoScalingGroupName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Batch::JobQueue" + "AWS::AutoScaling::ScheduledAction" ], "type": "string" } @@ -5316,23 +5420,7 @@ ], "type": "object" }, - "AWS::Batch::JobQueue.ComputeEnvironmentOrder": { - "additionalProperties": false, - "properties": { - "ComputeEnvironment": { - "type": "string" - }, - "Order": { - "type": "number" - } - }, - "required": [ - "ComputeEnvironment", - "Order" - ], - "type": "object" - }, - "AWS::Budgets::Budget": { + "AWS::AutoScalingPlans::ScalingPlan": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -5364,24 +5452,25 @@ "Properties": { "additionalProperties": false, "properties": { - "Budget": { - "$ref": "#/definitions/AWS::Budgets::Budget.BudgetData" + "ApplicationSource": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ApplicationSource" }, - "NotificationsWithSubscribers": { + "ScalingInstructions": { "items": { - "$ref": "#/definitions/AWS::Budgets::Budget.NotificationWithSubscribers" + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction" }, "type": "array" } }, "required": [ - "Budget" + "ApplicationSource", + "ScalingInstructions" ], "type": "object" }, "Type": { "enum": [ - "AWS::Budgets::Budget" + "AWS::AutoScalingPlans::ScalingPlan" ], "type": "string" } @@ -5392,254 +5481,233 @@ ], "type": "object" }, - "AWS::Budgets::Budget.BudgetData": { + "AWS::AutoScalingPlans::ScalingPlan.ApplicationSource": { "additionalProperties": false, "properties": { - "BudgetLimit": { - "$ref": "#/definitions/AWS::Budgets::Budget.Spend" - }, - "BudgetName": { - "type": "string" - }, - "BudgetType": { + "CloudFormationStackARN": { "type": "string" }, - "CostFilters": { - "type": "object" - }, - "CostTypes": { - "$ref": "#/definitions/AWS::Budgets::Budget.CostTypes" - }, - "TimePeriod": { - "$ref": "#/definitions/AWS::Budgets::Budget.TimePeriod" - }, - "TimeUnit": { - "type": "string" + "TagFilters": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TagFilter" + }, + "type": "array" } }, - "required": [ - "BudgetType", - "TimeUnit" - ], "type": "object" }, - "AWS::Budgets::Budget.CostTypes": { + "AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification": { "additionalProperties": false, "properties": { - "IncludeCredit": { - "type": "boolean" - }, - "IncludeDiscount": { - "type": "boolean" - }, - "IncludeOtherSubscription": { - "type": "boolean" - }, - "IncludeRecurring": { - "type": "boolean" - }, - "IncludeRefund": { - "type": "boolean" - }, - "IncludeSubscription": { - "type": "boolean" - }, - "IncludeSupport": { - "type": "boolean" + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension" + }, + "type": "array" }, - "IncludeTax": { - "type": "boolean" + "MetricName": { + "type": "string" }, - "IncludeUpfront": { - "type": "boolean" + "Namespace": { + "type": "string" }, - "UseAmortized": { - "type": "boolean" + "Statistic": { + "type": "string" }, - "UseBlended": { - "type": "boolean" + "Unit": { + "type": "string" } }, + "required": [ + "MetricName", + "Namespace", + "Statistic" + ], "type": "object" }, - "AWS::Budgets::Budget.Notification": { + "AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification": { "additionalProperties": false, "properties": { - "ComparisonOperator": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension" + }, + "type": "array" + }, + "MetricName": { "type": "string" }, - "NotificationType": { + "Namespace": { "type": "string" }, - "Threshold": { - "type": "number" + "Statistic": { + "type": "string" }, - "ThresholdType": { + "Unit": { "type": "string" } }, "required": [ - "ComparisonOperator", - "NotificationType", - "Threshold" + "MetricName", + "Namespace", + "Statistic" ], "type": "object" }, - "AWS::Budgets::Budget.NotificationWithSubscribers": { + "AWS::AutoScalingPlans::ScalingPlan.MetricDimension": { "additionalProperties": false, "properties": { - "Notification": { - "$ref": "#/definitions/AWS::Budgets::Budget.Notification" + "Name": { + "type": "string" }, - "Subscribers": { - "items": { - "$ref": "#/definitions/AWS::Budgets::Budget.Subscriber" - }, - "type": "array" + "Value": { + "type": "string" } }, "required": [ - "Notification", - "Subscribers" + "Name", + "Value" ], "type": "object" }, - "AWS::Budgets::Budget.Spend": { + "AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification": { "additionalProperties": false, "properties": { - "Amount": { - "type": "number" + "PredefinedLoadMetricType": { + "type": "string" }, - "Unit": { + "ResourceLabel": { "type": "string" } }, "required": [ - "Amount", - "Unit" + "PredefinedLoadMetricType" ], "type": "object" }, - "AWS::Budgets::Budget.Subscriber": { + "AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification": { "additionalProperties": false, "properties": { - "Address": { + "PredefinedScalingMetricType": { "type": "string" }, - "SubscriptionType": { + "ResourceLabel": { "type": "string" } }, "required": [ - "Address", - "SubscriptionType" + "PredefinedScalingMetricType" ], "type": "object" }, - "AWS::Budgets::Budget.TimePeriod": { + "AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction": { "additionalProperties": false, "properties": { - "End": { + "CustomizedLoadMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification" + }, + "DisableDynamicScaling": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + }, + "PredefinedLoadMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification" + }, + "PredictiveScalingMaxCapacityBehavior": { "type": "string" }, - "Start": { + "PredictiveScalingMaxCapacityBuffer": { + "type": "number" + }, + "PredictiveScalingMode": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "ScalableDimension": { + "type": "string" + }, + "ScalingPolicyUpdateBehavior": { + "type": "string" + }, + "ScheduledActionBufferTime": { + "type": "number" + }, + "ServiceNamespace": { "type": "string" + }, + "TargetTrackingConfigurations": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration" + }, + "type": "array" } }, + "required": [ + "MaxCapacity", + "MinCapacity", + "ResourceId", + "ScalableDimension", + "ServiceNamespace", + "TargetTrackingConfigurations" + ], "type": "object" }, - "AWS::CertificateManager::Certificate": { + "AWS::AutoScalingPlans::ScalingPlan.TagFilter": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Key": { "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": { - "DomainName": { - "type": "string" - }, - "DomainValidationOptions": { - "items": { - "$ref": "#/definitions/AWS::CertificateManager::Certificate.DomainValidationOption" - }, - "type": "array" - }, - "SubjectAlternativeNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "ValidationMethod": { - "type": "string" - } + "Values": { + "items": { + "type": "string" }, - "required": [ - "DomainName" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::CertificateManager::Certificate" - ], - "type": "string" + "type": "array" } }, "required": [ - "Type", - "Properties" + "Key" ], "type": "object" }, - "AWS::CertificateManager::Certificate.DomainValidationOption": { + "AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration": { "additionalProperties": false, "properties": { - "DomainName": { - "type": "string" + "CustomizedScalingMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification" }, - "ValidationDomain": { - "type": "string" + "DisableScaleIn": { + "type": "boolean" + }, + "EstimatedInstanceWarmup": { + "type": "number" + }, + "PredefinedScalingMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification" + }, + "ScaleInCooldown": { + "type": "number" + }, + "ScaleOutCooldown": { + "type": "number" + }, + "TargetValue": { + "type": "number" } }, "required": [ - "DomainName", - "ValidationDomain" + "TargetValue" ], "type": "object" }, - "AWS::Cloud9::EnvironmentEC2": { + "AWS::Batch::ComputeEnvironment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -5671,39 +5739,31 @@ "Properties": { "additionalProperties": false, "properties": { - "AutomaticStopTimeMinutes": { - "type": "number" - }, - "Description": { + "ComputeEnvironmentName": { "type": "string" }, - "InstanceType": { - "type": "string" + "ComputeResources": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.ComputeResources" }, - "Name": { + "ServiceRole": { "type": "string" }, - "OwnerArn": { + "State": { "type": "string" }, - "Repositories": { - "items": { - "$ref": "#/definitions/AWS::Cloud9::EnvironmentEC2.Repository" - }, - "type": "array" - }, - "SubnetId": { + "Type": { "type": "string" } }, "required": [ - "InstanceType" + "ServiceRole", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::Cloud9::EnvironmentEC2" + "AWS::Batch::ComputeEnvironment" ], "type": "string" } @@ -5714,144 +5774,91 @@ ], "type": "object" }, - "AWS::Cloud9::EnvironmentEC2.Repository": { + "AWS::Batch::ComputeEnvironment.ComputeResources": { "additionalProperties": false, "properties": { - "PathComponent": { + "BidPercentage": { + "type": "number" + }, + "DesiredvCpus": { + "type": "number" + }, + "Ec2KeyPair": { "type": "string" }, - "RepositoryUrl": { + "ImageId": { "type": "string" - } - }, - "required": [ - "PathComponent", - "RepositoryUrl" - ], - "type": "object" - }, - "AWS::CloudFormation::CustomResource": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + }, + "InstanceRole": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "InstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" }, - "Metadata": { - "type": "object" + "LaunchTemplate": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification" }, - "Properties": { - "additionalProperties": false, - "properties": { - "ServiceToken": { - "type": "string" - } + "MaxvCpus": { + "type": "number" + }, + "MinvCpus": { + "type": "number" + }, + "PlacementGroup": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" }, - "required": [ - "ServiceToken" - ], + "type": "array" + }, + "SpotIamFleetRole": { + "type": "string" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { "type": "object" }, "Type": { - "enum": [ - "AWS::CloudFormation::CustomResource" - ], "type": "string" } }, "required": [ - "Type", - "Properties" + "InstanceRole", + "InstanceTypes", + "MaxvCpus", + "MinvCpus", + "SecurityGroupIds", + "Subnets", + "Type" ], "type": "object" }, - "AWS::CloudFormation::Macro": { + "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "LaunchTemplateId": { "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" - }, - "FunctionName": { - "type": "string" - }, - "LogGroupName": { - "type": "string" - }, - "LogRoleARN": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "FunctionName", - "Name" - ], - "type": "object" + "LaunchTemplateName": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::CloudFormation::Macro" - ], + "Version": { "type": "string" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::CloudFormation::Stack": { + "AWS::Batch::JobDefinition": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -5883,42 +5890,36 @@ "Properties": { "additionalProperties": false, "properties": { - "NotificationARNs": { - "items": { - "type": "string" - }, - "type": "array" + "ContainerProperties": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties" + }, + "JobDefinitionName": { + "type": "string" + }, + "NodeProperties": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeProperties" }, "Parameters": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, "type": "object" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "RetryStrategy": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.RetryStrategy" }, - "TemplateURL": { - "type": "string" + "Timeout": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Timeout" }, - "TimeoutInMinutes": { - "type": "number" + "Type": { + "type": "string" } }, "required": [ - "TemplateURL" + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudFormation::Stack" + "AWS::Batch::JobDefinition" ], "type": "string" } @@ -5929,112 +5930,196 @@ ], "type": "object" }, - "AWS::CloudFormation::WaitCondition": { + "AWS::Batch::JobDefinition.ContainerProperties": { "additionalProperties": false, "properties": { - "CreationPolicy": { - "type": "object" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Command": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Environment": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Environment" + }, + "type": "array" + }, + "Image": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "InstanceType": { + "type": "string" }, - "Metadata": { - "type": "object" + "JobRoleArn": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Count": { - "type": "number" - }, - "Handle": { - "type": "string" - }, - "Timeout": { - "type": "string" - } + "Memory": { + "type": "number" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.MountPoints" }, - "type": "object" + "type": "array" }, - "Type": { - "enum": [ - "AWS::CloudFormation::WaitCondition" - ], + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Ulimit" + }, + "type": "array" + }, + "User": { "type": "string" + }, + "Vcpus": { + "type": "number" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Volumes" + }, + "type": "array" } }, "required": [ - "Type" + "Image", + "Memory", + "Vcpus" ], "type": "object" }, - "AWS::CloudFormation::WaitConditionHandle": { + "AWS::Batch::JobDefinition.Environment": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Name": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.MountPoints": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" }, - "Metadata": { - "type": "object" + "ReadOnly": { + "type": "boolean" }, - "Properties": { - "additionalProperties": false, - "properties": {}, - "type": "object" + "SourceVolume": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.NodeProperties": { + "additionalProperties": false, + "properties": { + "MainNode": { + "type": "number" }, - "Type": { - "enum": [ - "AWS::CloudFormation::WaitConditionHandle" - ], + "NodeRangeProperties": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeRangeProperty" + }, + "type": "array" + }, + "NumNodes": { + "type": "number" + } + }, + "required": [ + "MainNode", + "NodeRangeProperties", + "NumNodes" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.NodeRangeProperty": { + "additionalProperties": false, + "properties": { + "Container": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties" + }, + "TargetNodes": { "type": "string" } }, "required": [ - "Type" + "TargetNodes" ], "type": "object" }, - "AWS::CloudFront::CloudFrontOriginAccessIdentity": { + "AWS::Batch::JobDefinition.RetryStrategy": { + "additionalProperties": false, + "properties": { + "Attempts": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.Timeout": { + "additionalProperties": false, + "properties": { + "AttemptDurationSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "SoftLimit": { + "type": "number" + } + }, + "required": [ + "HardLimit", + "Name", + "SoftLimit" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.Volumes": { + "additionalProperties": false, + "properties": { + "Host": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.VolumesHost" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.VolumesHost": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobQueue": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -6066,18 +6151,31 @@ "Properties": { "additionalProperties": false, "properties": { - "CloudFrontOriginAccessIdentityConfig": { - "$ref": "#/definitions/AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig" + "ComputeEnvironmentOrder": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobQueue.ComputeEnvironmentOrder" + }, + "type": "array" + }, + "JobQueueName": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "State": { + "type": "string" } }, "required": [ - "CloudFrontOriginAccessIdentityConfig" + "ComputeEnvironmentOrder", + "Priority" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudFront::CloudFrontOriginAccessIdentity" + "AWS::Batch::JobQueue" ], "type": "string" } @@ -6088,19 +6186,23 @@ ], "type": "object" }, - "AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig": { + "AWS::Batch::JobQueue.ComputeEnvironmentOrder": { "additionalProperties": false, "properties": { - "Comment": { + "ComputeEnvironment": { "type": "string" + }, + "Order": { + "type": "number" } }, "required": [ - "Comment" + "ComputeEnvironment", + "Order" ], "type": "object" }, - "AWS::CloudFront::Distribution": { + "AWS::Budgets::Budget": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -6132,24 +6234,24 @@ "Properties": { "additionalProperties": false, "properties": { - "DistributionConfig": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.DistributionConfig" + "Budget": { + "$ref": "#/definitions/AWS::Budgets::Budget.BudgetData" }, - "Tags": { + "NotificationsWithSubscribers": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::Budgets::Budget.NotificationWithSubscribers" }, "type": "array" } }, "required": [ - "DistributionConfig" + "Budget" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudFront::Distribution" + "AWS::Budgets::Budget" ], "type": "string" } @@ -6160,443 +6262,172 @@ ], "type": "object" }, - "AWS::CloudFront::Distribution.CacheBehavior": { + "AWS::Budgets::Budget.BudgetData": { "additionalProperties": false, "properties": { - "AllowedMethods": { - "items": { - "type": "string" - }, - "type": "array" + "BudgetLimit": { + "$ref": "#/definitions/AWS::Budgets::Budget.Spend" }, - "CachedMethods": { - "items": { - "type": "string" - }, - "type": "array" + "BudgetName": { + "type": "string" }, - "Compress": { - "type": "boolean" + "BudgetType": { + "type": "string" }, - "DefaultTTL": { - "type": "number" + "CostFilters": { + "type": "object" }, - "FieldLevelEncryptionId": { + "CostTypes": { + "$ref": "#/definitions/AWS::Budgets::Budget.CostTypes" + }, + "TimePeriod": { + "$ref": "#/definitions/AWS::Budgets::Budget.TimePeriod" + }, + "TimeUnit": { "type": "string" + } + }, + "required": [ + "BudgetType", + "TimeUnit" + ], + "type": "object" + }, + "AWS::Budgets::Budget.CostTypes": { + "additionalProperties": false, + "properties": { + "IncludeCredit": { + "type": "boolean" }, - "ForwardedValues": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues" + "IncludeDiscount": { + "type": "boolean" }, - "LambdaFunctionAssociations": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation" - }, - "type": "array" + "IncludeOtherSubscription": { + "type": "boolean" }, - "MaxTTL": { - "type": "number" + "IncludeRecurring": { + "type": "boolean" }, - "MinTTL": { - "type": "number" + "IncludeRefund": { + "type": "boolean" }, - "PathPattern": { - "type": "string" + "IncludeSubscription": { + "type": "boolean" }, - "SmoothStreaming": { + "IncludeSupport": { "type": "boolean" }, - "TargetOriginId": { + "IncludeTax": { + "type": "boolean" + }, + "IncludeUpfront": { + "type": "boolean" + }, + "UseAmortized": { + "type": "boolean" + }, + "UseBlended": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Budgets::Budget.Notification": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { "type": "string" }, - "TrustedSigners": { - "items": { - "type": "string" - }, - "type": "array" + "NotificationType": { + "type": "string" }, - "ViewerProtocolPolicy": { + "Threshold": { + "type": "number" + }, + "ThresholdType": { "type": "string" } }, "required": [ - "ForwardedValues", - "PathPattern", - "TargetOriginId", - "ViewerProtocolPolicy" + "ComparisonOperator", + "NotificationType", + "Threshold" ], "type": "object" }, - "AWS::CloudFront::Distribution.Cookies": { + "AWS::Budgets::Budget.NotificationWithSubscribers": { "additionalProperties": false, "properties": { - "Forward": { - "type": "string" + "Notification": { + "$ref": "#/definitions/AWS::Budgets::Budget.Notification" }, - "WhitelistedNames": { + "Subscribers": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::Budgets::Budget.Subscriber" }, "type": "array" } }, "required": [ - "Forward" + "Notification", + "Subscribers" ], "type": "object" }, - "AWS::CloudFront::Distribution.CustomErrorResponse": { + "AWS::Budgets::Budget.Spend": { "additionalProperties": false, "properties": { - "ErrorCachingMinTTL": { - "type": "number" - }, - "ErrorCode": { - "type": "number" - }, - "ResponseCode": { + "Amount": { "type": "number" }, - "ResponsePagePath": { + "Unit": { "type": "string" } }, "required": [ - "ErrorCode" + "Amount", + "Unit" ], "type": "object" }, - "AWS::CloudFront::Distribution.CustomOriginConfig": { + "AWS::Budgets::Budget.Subscriber": { "additionalProperties": false, "properties": { - "HTTPPort": { - "type": "number" - }, - "HTTPSPort": { - "type": "number" - }, - "OriginKeepaliveTimeout": { - "type": "number" - }, - "OriginProtocolPolicy": { + "Address": { "type": "string" }, - "OriginReadTimeout": { - "type": "number" - }, - "OriginSSLProtocols": { - "items": { - "type": "string" - }, - "type": "array" + "SubscriptionType": { + "type": "string" } }, "required": [ - "OriginProtocolPolicy" + "Address", + "SubscriptionType" ], "type": "object" }, - "AWS::CloudFront::Distribution.DefaultCacheBehavior": { + "AWS::Budgets::Budget.TimePeriod": { "additionalProperties": false, "properties": { - "AllowedMethods": { - "items": { - "type": "string" - }, - "type": "array" - }, - "CachedMethods": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Compress": { - "type": "boolean" - }, - "DefaultTTL": { - "type": "number" - }, - "FieldLevelEncryptionId": { - "type": "string" - }, - "ForwardedValues": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues" - }, - "LambdaFunctionAssociations": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation" - }, - "type": "array" - }, - "MaxTTL": { - "type": "number" - }, - "MinTTL": { - "type": "number" - }, - "SmoothStreaming": { - "type": "boolean" - }, - "TargetOriginId": { + "End": { "type": "string" }, - "TrustedSigners": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ViewerProtocolPolicy": { + "Start": { "type": "string" } }, - "required": [ - "ForwardedValues", - "TargetOriginId", - "ViewerProtocolPolicy" - ], "type": "object" }, - "AWS::CloudFront::Distribution.DistributionConfig": { + "AWS::CertificateManager::Certificate": { "additionalProperties": false, "properties": { - "Aliases": { - "items": { - "type": "string" - }, - "type": "array" - }, - "CacheBehaviors": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.CacheBehavior" - }, - "type": "array" - }, - "Comment": { - "type": "string" - }, - "CustomErrorResponses": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomErrorResponse" - }, - "type": "array" - }, - "DefaultCacheBehavior": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.DefaultCacheBehavior" - }, - "DefaultRootObject": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "HttpVersion": { - "type": "string" - }, - "IPV6Enabled": { - "type": "boolean" - }, - "Logging": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.Logging" - }, - "Origins": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.Origin" - }, - "type": "array" - }, - "PriceClass": { - "type": "string" - }, - "Restrictions": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.Restrictions" - }, - "ViewerCertificate": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.ViewerCertificate" - }, - "WebACLId": { - "type": "string" - } - }, - "required": [ - "Enabled" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.ForwardedValues": { - "additionalProperties": false, - "properties": { - "Cookies": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.Cookies" - }, - "Headers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "QueryString": { - "type": "boolean" - }, - "QueryStringCacheKeys": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "QueryString" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.GeoRestriction": { - "additionalProperties": false, - "properties": { - "Locations": { - "items": { - "type": "string" - }, - "type": "array" - }, - "RestrictionType": { - "type": "string" - } - }, - "required": [ - "RestrictionType" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.LambdaFunctionAssociation": { - "additionalProperties": false, - "properties": { - "EventType": { - "type": "string" - }, - "LambdaFunctionARN": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CloudFront::Distribution.Logging": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "IncludeCookies": { - "type": "boolean" - }, - "Prefix": { - "type": "string" - } - }, - "required": [ - "Bucket" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.Origin": { - "additionalProperties": false, - "properties": { - "CustomOriginConfig": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomOriginConfig" - }, - "DomainName": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "OriginCustomHeaders": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginCustomHeader" - }, - "type": "array" - }, - "OriginPath": { - "type": "string" - }, - "S3OriginConfig": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.S3OriginConfig" - } - }, - "required": [ - "DomainName", - "Id" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.OriginCustomHeader": { - "additionalProperties": false, - "properties": { - "HeaderName": { - "type": "string" - }, - "HeaderValue": { - "type": "string" - } - }, - "required": [ - "HeaderName", - "HeaderValue" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.Restrictions": { - "additionalProperties": false, - "properties": { - "GeoRestriction": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.GeoRestriction" - } - }, - "required": [ - "GeoRestriction" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.S3OriginConfig": { - "additionalProperties": false, - "properties": { - "OriginAccessIdentity": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CloudFront::Distribution.ViewerCertificate": { - "additionalProperties": false, - "properties": { - "AcmCertificateArn": { - "type": "string" - }, - "CloudFrontDefaultCertificate": { - "type": "boolean" - }, - "IamCertificateId": { - "type": "string" - }, - "MinimumProtocolVersion": { - "type": "string" - }, - "SslSupportMethod": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CloudFront::StreamingDistribution": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" }, "DependsOn": { "anyOf": [ @@ -6619,25 +6450,39 @@ "Properties": { "additionalProperties": false, "properties": { - "StreamingDistributionConfig": { - "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig" + "DomainName": { + "type": "string" + }, + "DomainValidationOptions": { + "items": { + "$ref": "#/definitions/AWS::CertificateManager::Certificate.DomainValidationOption" + }, + "type": "array" + }, + "SubjectAlternativeNames": { + "items": { + "type": "string" + }, + "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "ValidationMethod": { + "type": "string" } }, "required": [ - "StreamingDistributionConfig", - "Tags" + "DomainName" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudFront::StreamingDistribution" + "AWS::CertificateManager::Certificate" ], "type": "string" } @@ -6648,97 +6493,23 @@ ], "type": "object" }, - "AWS::CloudFront::StreamingDistribution.Logging": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "Prefix": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Enabled", - "Prefix" - ], - "type": "object" - }, - "AWS::CloudFront::StreamingDistribution.S3Origin": { + "AWS::CertificateManager::Certificate.DomainValidationOption": { "additionalProperties": false, "properties": { "DomainName": { "type": "string" }, - "OriginAccessIdentity": { + "ValidationDomain": { "type": "string" } }, "required": [ "DomainName", - "OriginAccessIdentity" - ], - "type": "object" - }, - "AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig": { - "additionalProperties": false, - "properties": { - "Aliases": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Comment": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "Logging": { - "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.Logging" - }, - "PriceClass": { - "type": "string" - }, - "S3Origin": { - "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.S3Origin" - }, - "TrustedSigners": { - "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.TrustedSigners" - } - }, - "required": [ - "Comment", - "Enabled", - "S3Origin", - "TrustedSigners" - ], - "type": "object" - }, - "AWS::CloudFront::StreamingDistribution.TrustedSigners": { - "additionalProperties": false, - "properties": { - "AwsAccountNumbers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Enabled": { - "type": "boolean" - } - }, - "required": [ - "Enabled" + "ValidationDomain" ], "type": "object" }, - "AWS::CloudTrail::Trail": { + "AWS::Cloud9::EnvironmentEC2": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -6770,61 +6541,39 @@ "Properties": { "additionalProperties": false, "properties": { - "CloudWatchLogsLogGroupArn": { - "type": "string" - }, - "CloudWatchLogsRoleArn": { - "type": "string" - }, - "EnableLogFileValidation": { - "type": "boolean" - }, - "EventSelectors": { - "items": { - "$ref": "#/definitions/AWS::CloudTrail::Trail.EventSelector" - }, - "type": "array" - }, - "IncludeGlobalServiceEvents": { - "type": "boolean" - }, - "IsLogging": { - "type": "boolean" - }, - "IsMultiRegionTrail": { - "type": "boolean" + "AutomaticStopTimeMinutes": { + "type": "number" }, - "KMSKeyId": { + "Description": { "type": "string" }, - "S3BucketName": { + "InstanceType": { "type": "string" }, - "S3KeyPrefix": { + "Name": { "type": "string" }, - "SnsTopicName": { + "OwnerArn": { "type": "string" }, - "Tags": { + "Repositories": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::Cloud9::EnvironmentEC2.Repository" }, "type": "array" }, - "TrailName": { + "SubnetId": { "type": "string" } }, "required": [ - "IsLogging", - "S3BucketName" + "InstanceType" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudTrail::Trail" + "AWS::Cloud9::EnvironmentEC2" ], "type": "string" } @@ -6835,43 +6584,23 @@ ], "type": "object" }, - "AWS::CloudTrail::Trail.DataResource": { + "AWS::Cloud9::EnvironmentEC2.Repository": { "additionalProperties": false, "properties": { - "Type": { + "PathComponent": { "type": "string" }, - "Values": { - "items": { - "type": "string" - }, - "type": "array" + "RepositoryUrl": { + "type": "string" } }, "required": [ - "Type" + "PathComponent", + "RepositoryUrl" ], "type": "object" }, - "AWS::CloudTrail::Trail.EventSelector": { - "additionalProperties": false, - "properties": { - "DataResources": { - "items": { - "$ref": "#/definitions/AWS::CloudTrail::Trail.DataResource" - }, - "type": "array" - }, - "IncludeManagementEvents": { - "type": "boolean" - }, - "ReadWriteType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CloudWatch::Alarm": { + "AWS::CloudFormation::CustomResource": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -6903,86 +6632,18 @@ "Properties": { "additionalProperties": false, "properties": { - "ActionsEnabled": { - "type": "boolean" - }, - "AlarmActions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AlarmDescription": { - "type": "string" - }, - "AlarmName": { - "type": "string" - }, - "ComparisonOperator": { - "type": "string" - }, - "DatapointsToAlarm": { - "type": "number" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/AWS::CloudWatch::Alarm.Dimension" - }, - "type": "array" - }, - "EvaluateLowSampleCountPercentile": { - "type": "string" - }, - "EvaluationPeriods": { - "type": "number" - }, - "ExtendedStatistic": { - "type": "string" - }, - "InsufficientDataActions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "OKActions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Period": { - "type": "number" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "TreatMissingData": { - "type": "string" - }, - "Unit": { + "ServiceToken": { "type": "string" } }, "required": [ - "ComparisonOperator", - "EvaluationPeriods", - "Threshold" + "ServiceToken" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudWatch::Alarm" + "AWS::CloudFormation::CustomResource" ], "type": "string" } @@ -6993,23 +6654,7 @@ ], "type": "object" }, - "AWS::CloudWatch::Alarm.Dimension": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Name", - "Value" - ], - "type": "object" - }, - "AWS::CloudWatch::Dashboard": { + "AWS::CloudFormation::Macro": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -7041,21 +6686,31 @@ "Properties": { "additionalProperties": false, "properties": { - "DashboardBody": { + "Description": { "type": "string" }, - "DashboardName": { + "FunctionName": { "type": "string" - } + }, + "LogGroupName": { + "type": "string" + }, + "LogRoleARN": { + "type": "string" + }, + "Name": { + "type": "string" + } }, "required": [ - "DashboardBody" + "FunctionName", + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudWatch::Dashboard" + "AWS::CloudFormation::Macro" ], "type": "string" } @@ -7066,7 +6721,7 @@ ], "type": "object" }, - "AWS::CodeBuild::Project": { + "AWS::CloudFormation::Stack": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -7098,50 +6753,20 @@ "Properties": { "additionalProperties": false, "properties": { - "Artifacts": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts" - }, - "BadgeEnabled": { - "type": "boolean" - }, - "Cache": { - "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectCache" - }, - "Description": { - "type": "string" - }, - "EncryptionKey": { - "type": "string" - }, - "Environment": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Environment" - }, - "LogsConfig": { - "$ref": "#/definitions/AWS::CodeBuild::Project.LogsConfig" - }, - "Name": { - "type": "string" - }, - "QueuedTimeoutInMinutes": { - "type": "number" - }, - "SecondaryArtifacts": { + "NotificationARNs": { "items": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts" + "type": "string" }, "type": "array" }, - "SecondarySources": { - "items": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Source" + "Parameters": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } }, - "type": "array" - }, - "ServiceRole": { - "type": "string" - }, - "Source": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Source" + "type": "object" }, "Tags": { "items": { @@ -7149,27 +6774,21 @@ }, "type": "array" }, + "TemplateURL": { + "type": "string" + }, "TimeoutInMinutes": { "type": "number" - }, - "Triggers": { - "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectTriggers" - }, - "VpcConfig": { - "$ref": "#/definitions/AWS::CodeBuild::Project.VpcConfig" } }, "required": [ - "Artifacts", - "Environment", - "ServiceRole", - "Source" + "TemplateURL" ], "type": "object" }, "Type": { "enum": [ - "AWS::CodeBuild::Project" + "AWS::CloudFormation::Stack" ], "type": "string" } @@ -7180,234 +6799,12 @@ ], "type": "object" }, - "AWS::CodeBuild::Project.Artifacts": { - "additionalProperties": false, - "properties": { - "ArtifactIdentifier": { - "type": "string" - }, - "EncryptionDisabled": { - "type": "boolean" - }, - "Location": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "NamespaceType": { - "type": "string" - }, - "OverrideArtifactName": { - "type": "boolean" - }, - "Packaging": { - "type": "string" - }, - "Path": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.CloudWatchLogsConfig": { - "additionalProperties": false, - "properties": { - "GroupName": { - "type": "string" - }, - "Status": { - "type": "string" - }, - "StreamName": { - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.Environment": { - "additionalProperties": false, - "properties": { - "Certificate": { - "type": "string" - }, - "ComputeType": { - "type": "string" - }, - "EnvironmentVariables": { - "items": { - "$ref": "#/definitions/AWS::CodeBuild::Project.EnvironmentVariable" - }, - "type": "array" - }, - "Image": { - "type": "string" - }, - "PrivilegedMode": { - "type": "boolean" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "ComputeType", - "Image", - "Type" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.EnvironmentVariable": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Name", - "Value" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.LogsConfig": { - "additionalProperties": false, - "properties": { - "CloudWatchLogs": { - "$ref": "#/definitions/AWS::CodeBuild::Project.CloudWatchLogsConfig" - }, - "S3Logs": { - "$ref": "#/definitions/AWS::CodeBuild::Project.S3LogsConfig" - } - }, - "type": "object" - }, - "AWS::CodeBuild::Project.ProjectCache": { - "additionalProperties": false, - "properties": { - "Location": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.ProjectTriggers": { - "additionalProperties": false, - "properties": { - "Webhook": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::CodeBuild::Project.S3LogsConfig": { - "additionalProperties": false, - "properties": { - "Location": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.Source": { - "additionalProperties": false, - "properties": { - "Auth": { - "$ref": "#/definitions/AWS::CodeBuild::Project.SourceAuth" - }, - "BuildSpec": { - "type": "string" - }, - "GitCloneDepth": { - "type": "number" - }, - "InsecureSsl": { - "type": "boolean" - }, - "Location": { - "type": "string" - }, - "ReportBuildStatus": { - "type": "boolean" - }, - "SourceIdentifier": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.SourceAuth": { - "additionalProperties": false, - "properties": { - "Resource": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.VpcConfig": { + "AWS::CloudFormation::WaitCondition": { "additionalProperties": false, "properties": { - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Subnets": { - "items": { - "type": "string" - }, - "type": "array" + "CreationPolicy": { + "type": "object" }, - "VpcId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CodeCommit::Repository": { - "additionalProperties": false, - "properties": { "DeletionPolicy": { "enum": [ "Delete", @@ -7437,65 +6834,31 @@ "Properties": { "additionalProperties": false, "properties": { - "RepositoryDescription": { - "type": "string" + "Count": { + "type": "number" }, - "RepositoryName": { + "Handle": { "type": "string" }, - "Triggers": { - "items": { - "$ref": "#/definitions/AWS::CodeCommit::Repository.RepositoryTrigger" - }, - "type": "array" + "Timeout": { + "type": "string" } }, - "required": [ - "RepositoryName" - ], "type": "object" }, "Type": { "enum": [ - "AWS::CodeCommit::Repository" + "AWS::CloudFormation::WaitCondition" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::CodeCommit::Repository.RepositoryTrigger": { - "additionalProperties": false, - "properties": { - "Branches": { - "items": { - "type": "string" - }, - "type": "array" - }, - "CustomData": { - "type": "string" - }, - "DestinationArn": { - "type": "string" - }, - "Events": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CodeDeploy::Application": { + "AWS::CloudFormation::WaitConditionHandle": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -7526,19 +6889,12 @@ }, "Properties": { "additionalProperties": false, - "properties": { - "ApplicationName": { - "type": "string" - }, - "ComputePlatform": { - "type": "string" - } - }, + "properties": {}, "type": "object" }, "Type": { "enum": [ - "AWS::CodeDeploy::Application" + "AWS::CloudFormation::WaitConditionHandle" ], "type": "string" } @@ -7548,7 +6904,7 @@ ], "type": "object" }, - "AWS::CodeDeploy::DeploymentConfig": { + "AWS::CloudFront::CloudFrontOriginAccessIdentity": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -7580,44 +6936,41 @@ "Properties": { "additionalProperties": false, "properties": { - "DeploymentConfigName": { - "type": "string" - }, - "MinimumHealthyHosts": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts" + "CloudFrontOriginAccessIdentityConfig": { + "$ref": "#/definitions/AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig" } }, + "required": [ + "CloudFrontOriginAccessIdentityConfig" + ], "type": "object" }, "Type": { "enum": [ - "AWS::CodeDeploy::DeploymentConfig" + "AWS::CloudFront::CloudFrontOriginAccessIdentity" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts": { + "AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig": { "additionalProperties": false, "properties": { - "Type": { + "Comment": { "type": "string" - }, - "Value": { - "type": "number" } }, "required": [ - "Type", - "Value" + "Comment" ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup": { + "AWS::CloudFront::Distribution": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -7649,73 +7002,24 @@ "Properties": { "additionalProperties": false, "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Deployment": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.DeploymentStyle" - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter" - }, - "type": "array" - }, - "Ec2TagSet": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSet" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter" - }, - "type": "array" - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet" - }, - "ServiceRoleArn": { - "type": "string" + "DistributionConfig": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.DistributionConfig" }, - "TriggerConfigurations": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TriggerConfig" + "$ref": "#/definitions/Tag" }, "type": "array" } }, "required": [ - "ApplicationName", - "ServiceRoleArn" + "DistributionConfig" ], "type": "object" }, "Type": { "enum": [ - "AWS::CodeDeploy::DeploymentGroup" + "AWS::CloudFront::Distribution" ], "type": "string" } @@ -7726,267 +7030,434 @@ ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration": { + "AWS::CloudFront::Distribution.CacheBehavior": { "additionalProperties": false, "properties": { - "Alarms": { + "AllowedMethods": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Alarm" + "type": "string" }, "type": "array" }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { + "CachedMethods": { "items": { "type": "string" }, "type": "array" - } - }, - "type": "object" - }, - "AWS::CodeDeploy::DeploymentGroup.Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" }, - "IgnoreApplicationStopFailures": { + "Compress": { "type": "boolean" }, - "Revision": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "AWS::CodeDeploy::DeploymentGroup.DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "type": "string" + "DefaultTTL": { + "type": "number" }, - "DeploymentType": { + "FieldLevelEncryptionId": { "type": "string" - } - }, - "type": "object" - }, - "AWS::CodeDeploy::DeploymentGroup.EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { + }, + "ForwardedValues": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues" + }, + "LambdaFunctionAssociations": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation" + }, + "type": "array" + }, + "MaxTTL": { + "type": "number" + }, + "MinTTL": { + "type": "number" + }, + "PathPattern": { "type": "string" }, - "Type": { + "SmoothStreaming": { + "type": "boolean" + }, + "TargetOriginId": { "type": "string" }, - "Value": { + "TrustedSigners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ViewerProtocolPolicy": { "type": "string" } }, + "required": [ + "ForwardedValues", + "PathPattern", + "TargetOriginId", + "ViewerProtocolPolicy" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.EC2TagSet": { + "AWS::CloudFront::Distribution.Cookies": { "additionalProperties": false, "properties": { - "Ec2TagSetList": { + "Forward": { + "type": "string" + }, + "WhitelistedNames": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject" + "type": "string" }, "type": "array" } }, + "required": [ + "Forward" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject": { + "AWS::CloudFront::Distribution.CustomErrorResponse": { "additionalProperties": false, "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter" - }, - "type": "array" + "ErrorCachingMinTTL": { + "type": "number" + }, + "ErrorCode": { + "type": "number" + }, + "ResponseCode": { + "type": "number" + }, + "ResponsePagePath": { + "type": "string" } }, + "required": [ + "ErrorCode" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.ELBInfo": { + "AWS::CloudFront::Distribution.CustomOriginConfig": { "additionalProperties": false, "properties": { - "Name": { + "HTTPPort": { + "type": "number" + }, + "HTTPSPort": { + "type": "number" + }, + "OriginKeepaliveTimeout": { + "type": "number" + }, + "OriginProtocolPolicy": { "type": "string" + }, + "OriginReadTimeout": { + "type": "number" + }, + "OriginSSLProtocols": { + "items": { + "type": "string" + }, + "type": "array" } }, + "required": [ + "OriginProtocolPolicy" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.GitHubLocation": { + "AWS::CloudFront::Distribution.DefaultCacheBehavior": { "additionalProperties": false, "properties": { - "CommitId": { + "AllowedMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CachedMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Compress": { + "type": "boolean" + }, + "DefaultTTL": { + "type": "number" + }, + "FieldLevelEncryptionId": { "type": "string" }, - "Repository": { + "ForwardedValues": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues" + }, + "LambdaFunctionAssociations": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation" + }, + "type": "array" + }, + "MaxTTL": { + "type": "number" + }, + "MinTTL": { + "type": "number" + }, + "SmoothStreaming": { + "type": "boolean" + }, + "TargetOriginId": { + "type": "string" + }, + "TrustedSigners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ViewerProtocolPolicy": { "type": "string" } }, "required": [ - "CommitId", - "Repository" + "ForwardedValues", + "TargetOriginId", + "ViewerProtocolPolicy" ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo": { + "AWS::CloudFront::Distribution.DistributionConfig": { "additionalProperties": false, "properties": { - "ElbInfoList": { + "Aliases": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.ELBInfo" + "type": "string" }, "type": "array" }, - "TargetGroupInfoList": { + "CacheBehaviors": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo" + "$ref": "#/definitions/AWS::CloudFront::Distribution.CacheBehavior" + }, + "type": "array" + }, + "Comment": { + "type": "string" + }, + "CustomErrorResponses": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomErrorResponse" + }, + "type": "array" + }, + "DefaultCacheBehavior": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.DefaultCacheBehavior" + }, + "DefaultRootObject": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "HttpVersion": { + "type": "string" + }, + "IPV6Enabled": { + "type": "boolean" + }, + "Logging": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Logging" + }, + "Origins": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Origin" }, "type": "array" + }, + "PriceClass": { + "type": "string" + }, + "Restrictions": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Restrictions" + }, + "ViewerCertificate": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.ViewerCertificate" + }, + "WebACLId": { + "type": "string" } }, + "required": [ + "Enabled" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet": { + "AWS::CloudFront::Distribution.ForwardedValues": { "additionalProperties": false, "properties": { - "OnPremisesTagSetList": { + "Cookies": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Cookies" + }, + "Headers": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject" + "type": "string" + }, + "type": "array" + }, + "QueryString": { + "type": "boolean" + }, + "QueryStringCacheKeys": { + "items": { + "type": "string" }, "type": "array" } }, + "required": [ + "QueryString" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject": { + "AWS::CloudFront::Distribution.GeoRestriction": { "additionalProperties": false, "properties": { - "OnPremisesTagGroup": { + "Locations": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter" + "type": "string" }, "type": "array" + }, + "RestrictionType": { + "type": "string" } }, + "required": [ + "RestrictionType" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.RevisionLocation": { + "AWS::CloudFront::Distribution.LambdaFunctionAssociation": { "additionalProperties": false, "properties": { - "GitHubLocation": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.GitHubLocation" - }, - "RevisionType": { + "EventType": { "type": "string" }, - "S3Location": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.S3Location" + "LambdaFunctionARN": { + "type": "string" } }, "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.S3Location": { + "AWS::CloudFront::Distribution.Logging": { "additionalProperties": false, "properties": { "Bucket": { "type": "string" }, - "BundleType": { + "IncludeCookies": { + "type": "boolean" + }, + "Prefix": { "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.Origin": { + "additionalProperties": false, + "properties": { + "CustomOriginConfig": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomOriginConfig" }, - "ETag": { + "DomainName": { "type": "string" }, - "Key": { + "Id": { "type": "string" }, - "Version": { + "OriginCustomHeaders": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginCustomHeader" + }, + "type": "array" + }, + "OriginPath": { "type": "string" + }, + "S3OriginConfig": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.S3OriginConfig" } }, "required": [ - "Bucket", - "Key" + "DomainName", + "Id" ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.TagFilter": { + "AWS::CloudFront::Distribution.OriginCustomHeader": { "additionalProperties": false, "properties": { - "Key": { - "type": "string" - }, - "Type": { + "HeaderName": { "type": "string" }, - "Value": { + "HeaderValue": { "type": "string" } }, + "required": [ + "HeaderName", + "HeaderValue" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.Restrictions": { + "additionalProperties": false, + "properties": { + "GeoRestriction": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.GeoRestriction" + } + }, + "required": [ + "GeoRestriction" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo": { + "AWS::CloudFront::Distribution.S3OriginConfig": { "additionalProperties": false, "properties": { - "Name": { + "OriginAccessIdentity": { "type": "string" } }, "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.TriggerConfig": { + "AWS::CloudFront::Distribution.ViewerCertificate": { "additionalProperties": false, "properties": { - "TriggerEvents": { - "items": { - "type": "string" - }, - "type": "array" + "AcmCertificateArn": { + "type": "string" }, - "TriggerName": { + "CloudFrontDefaultCertificate": { + "type": "boolean" + }, + "IamCertificateId": { "type": "string" }, - "TriggerTargetArn": { + "MinimumProtocolVersion": { + "type": "string" + }, + "SslSupportMethod": { "type": "string" } }, "type": "object" }, - "AWS::CodePipeline::CustomActionType": { + "AWS::CloudFront::StreamingDistribution": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -8018,42 +7489,25 @@ "Properties": { "additionalProperties": false, "properties": { - "Category": { - "type": "string" + "StreamingDistributionConfig": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig" }, - "ConfigurationProperties": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ConfigurationProperties" + "$ref": "#/definitions/Tag" }, "type": "array" - }, - "InputArtifactDetails": { - "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails" - }, - "OutputArtifactDetails": { - "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails" - }, - "Provider": { - "type": "string" - }, - "Settings": { - "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.Settings" - }, - "Version": { - "type": "string" } }, "required": [ - "Category", - "InputArtifactDetails", - "OutputArtifactDetails", - "Provider" + "StreamingDistributionConfig", + "Tags" ], "type": "object" }, "Type": { "enum": [ - "AWS::CodePipeline::CustomActionType" + "AWS::CloudFront::StreamingDistribution" ], "type": "string" } @@ -8064,74 +7518,97 @@ ], "type": "object" }, - "AWS::CodePipeline::CustomActionType.ArtifactDetails": { + "AWS::CloudFront::StreamingDistribution.Logging": { "additionalProperties": false, "properties": { - "MaximumCount": { - "type": "number" + "Bucket": { + "type": "string" }, - "MinimumCount": { - "type": "number" + "Enabled": { + "type": "boolean" + }, + "Prefix": { + "type": "string" } }, "required": [ - "MaximumCount", - "MinimumCount" + "Bucket", + "Enabled", + "Prefix" ], "type": "object" }, - "AWS::CodePipeline::CustomActionType.ConfigurationProperties": { + "AWS::CloudFront::StreamingDistribution.S3Origin": { "additionalProperties": false, "properties": { - "Description": { + "DomainName": { "type": "string" }, - "Key": { - "type": "boolean" - }, - "Name": { + "OriginAccessIdentity": { "type": "string" + } + }, + "required": [ + "DomainName", + "OriginAccessIdentity" + ], + "type": "object" + }, + "AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig": { + "additionalProperties": false, + "properties": { + "Aliases": { + "items": { + "type": "string" + }, + "type": "array" }, - "Queryable": { - "type": "boolean" + "Comment": { + "type": "string" }, - "Required": { + "Enabled": { "type": "boolean" }, - "Secret": { - "type": "boolean" + "Logging": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.Logging" }, - "Type": { + "PriceClass": { "type": "string" + }, + "S3Origin": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.S3Origin" + }, + "TrustedSigners": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.TrustedSigners" } }, "required": [ - "Key", - "Name", - "Required", - "Secret" + "Comment", + "Enabled", + "S3Origin", + "TrustedSigners" ], "type": "object" }, - "AWS::CodePipeline::CustomActionType.Settings": { + "AWS::CloudFront::StreamingDistribution.TrustedSigners": { "additionalProperties": false, "properties": { - "EntityUrlTemplate": { - "type": "string" - }, - "ExecutionUrlTemplate": { - "type": "string" - }, - "RevisionUrlTemplate": { - "type": "string" + "AwsAccountNumbers": { + "items": { + "type": "string" + }, + "type": "array" }, - "ThirdPartyConfigurationUrl": { - "type": "string" + "Enabled": { + "type": "boolean" } }, + "required": [ + "Enabled" + ], "type": "object" }, - "AWS::CodePipeline::Pipeline": { + "AWS::CloudTrail::Trail": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -8163,46 +7640,61 @@ "Properties": { "additionalProperties": false, "properties": { - "ArtifactStore": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore" + "CloudWatchLogsLogGroupArn": { + "type": "string" }, - "ArtifactStores": { - "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStoreMap" - }, - "type": "array" + "CloudWatchLogsRoleArn": { + "type": "string" }, - "DisableInboundStageTransitions": { + "EnableLogFileValidation": { + "type": "boolean" + }, + "EventSelectors": { "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageTransition" + "$ref": "#/definitions/AWS::CloudTrail::Trail.EventSelector" }, "type": "array" }, - "Name": { - "type": "string" + "IncludeGlobalServiceEvents": { + "type": "boolean" }, - "RestartExecutionOnUpdate": { + "IsLogging": { "type": "boolean" }, - "RoleArn": { + "IsMultiRegionTrail": { + "type": "boolean" + }, + "KMSKeyId": { "type": "string" }, - "Stages": { - "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageDeclaration" + "S3BucketName": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + }, + "SnsTopicName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" }, "type": "array" + }, + "TrailName": { + "type": "string" } }, "required": [ - "RoleArn", - "Stages" + "IsLogging", + "S3BucketName" ], "type": "object" }, "Type": { "enum": [ - "AWS::CodePipeline::Pipeline" + "AWS::CloudTrail::Trail" ], "type": "string" } @@ -8213,203 +7705,252 @@ ], "type": "object" }, - "AWS::CodePipeline::Pipeline.ActionDeclaration": { + "AWS::CloudTrail::Trail.DataResource": { "additionalProperties": false, "properties": { - "ActionTypeId": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionTypeId" - }, - "Configuration": { - "type": "object" - }, - "InputArtifacts": { - "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.InputArtifact" - }, - "type": "array" - }, - "Name": { + "Type": { "type": "string" }, - "OutputArtifacts": { + "Values": { "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.OutputArtifact" + "type": "string" }, "type": "array" - }, - "Region": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "RunOrder": { - "type": "number" } }, "required": [ - "ActionTypeId", - "Name" + "Type" ], "type": "object" }, - "AWS::CodePipeline::Pipeline.ActionTypeId": { + "AWS::CloudTrail::Trail.EventSelector": { "additionalProperties": false, "properties": { - "Category": { - "type": "string" - }, - "Owner": { - "type": "string" + "DataResources": { + "items": { + "$ref": "#/definitions/AWS::CloudTrail::Trail.DataResource" + }, + "type": "array" }, - "Provider": { - "type": "string" + "IncludeManagementEvents": { + "type": "boolean" }, - "Version": { + "ReadWriteType": { "type": "string" } }, - "required": [ - "Category", - "Owner", - "Provider", - "Version" - ], "type": "object" }, - "AWS::CodePipeline::Pipeline.ArtifactStore": { + "AWS::CloudWatch::Alarm": { "additionalProperties": false, "properties": { - "EncryptionKey": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.EncryptionKey" - }, - "Location": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "Type": { - "type": "string" - } - }, - "required": [ - "Location", - "Type" - ], - "type": "object" - }, - "AWS::CodePipeline::Pipeline.ArtifactStoreMap": { - "additionalProperties": false, - "properties": { - "ArtifactStore": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Region": { + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ActionsEnabled": { + "type": "boolean" + }, + "AlarmActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AlarmDescription": { + "type": "string" + }, + "AlarmName": { + "type": "string" + }, + "ComparisonOperator": { + "type": "string" + }, + "DatapointsToAlarm": { + "type": "number" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.Dimension" + }, + "type": "array" + }, + "EvaluateLowSampleCountPercentile": { + "type": "string" + }, + "EvaluationPeriods": { + "type": "number" + }, + "ExtendedStatistic": { + "type": "string" + }, + "InsufficientDataActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MetricName": { + "type": "string" + }, + "Metrics": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.MetricDataQuery" + }, + "type": "array" + }, + "Namespace": { + "type": "string" + }, + "OKActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Period": { + "type": "number" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "TreatMissingData": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "EvaluationPeriods", + "Threshold" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudWatch::Alarm" + ], "type": "string" } }, "required": [ - "ArtifactStore", - "Region" + "Type", + "Properties" ], "type": "object" }, - "AWS::CodePipeline::Pipeline.BlockerDeclaration": { + "AWS::CloudWatch::Alarm.Dimension": { "additionalProperties": false, "properties": { "Name": { "type": "string" }, - "Type": { + "Value": { "type": "string" } }, "required": [ "Name", - "Type" + "Value" ], "type": "object" }, - "AWS::CodePipeline::Pipeline.EncryptionKey": { + "AWS::CloudWatch::Alarm.Metric": { "additionalProperties": false, "properties": { - "Id": { - "type": "string" + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.Dimension" + }, + "type": "array" }, - "Type": { + "MetricName": { "type": "string" - } - }, - "required": [ - "Id", - "Type" - ], - "type": "object" - }, - "AWS::CodePipeline::Pipeline.InputArtifact": { - "additionalProperties": false, - "properties": { - "Name": { + }, + "Namespace": { "type": "string" } }, - "required": [ - "Name" - ], "type": "object" }, - "AWS::CodePipeline::Pipeline.OutputArtifact": { + "AWS::CloudWatch::Alarm.MetricDataQuery": { "additionalProperties": false, "properties": { - "Name": { + "Expression": { "type": "string" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "AWS::CodePipeline::Pipeline.StageDeclaration": { - "additionalProperties": false, - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionDeclaration" - }, - "type": "array" }, - "Blockers": { - "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.BlockerDeclaration" - }, - "type": "array" + "Id": { + "type": "string" }, - "Name": { + "Label": { "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.MetricStat" + }, + "ReturnData": { + "type": "boolean" } }, "required": [ - "Actions", - "Name" + "Id" ], "type": "object" }, - "AWS::CodePipeline::Pipeline.StageTransition": { + "AWS::CloudWatch::Alarm.MetricStat": { "additionalProperties": false, "properties": { - "Reason": { + "Metric": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.Metric" + }, + "Period": { + "type": "number" + }, + "Stat": { "type": "string" }, - "StageName": { + "Unit": { "type": "string" } }, "required": [ - "Reason", - "StageName" + "Metric", + "Period", + "Stat" ], "type": "object" }, - "AWS::CodePipeline::Webhook": { + "AWS::CloudWatch::Dashboard": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -8441,47 +7982,21 @@ "Properties": { "additionalProperties": false, "properties": { - "Authentication": { - "type": "string" - }, - "AuthenticationConfiguration": { - "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookAuthConfiguration" - }, - "Filters": { - "items": { - "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookFilterRule" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "RegisterWithThirdParty": { - "type": "boolean" - }, - "TargetAction": { + "DashboardBody": { "type": "string" }, - "TargetPipeline": { + "DashboardName": { "type": "string" - }, - "TargetPipelineVersion": { - "type": "number" } }, "required": [ - "Authentication", - "AuthenticationConfiguration", - "Filters", - "TargetAction", - "TargetPipeline", - "TargetPipelineVersion" + "DashboardBody" ], "type": "object" }, "Type": { "enum": [ - "AWS::CodePipeline::Webhook" + "AWS::CloudWatch::Dashboard" ], "type": "string" } @@ -8492,34 +8007,7 @@ ], "type": "object" }, - "AWS::CodePipeline::Webhook.WebhookAuthConfiguration": { - "additionalProperties": false, - "properties": { - "AllowedIPRange": { - "type": "string" - }, - "SecretToken": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CodePipeline::Webhook.WebhookFilterRule": { - "additionalProperties": false, - "properties": { - "JsonPath": { - "type": "string" - }, - "MatchEquals": { - "type": "string" - } - }, - "required": [ - "JsonPath" - ], - "type": "object" - }, - "AWS::Cognito::IdentityPool": { + "AWS::CodeBuild::Project": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -8551,54 +8039,78 @@ "Properties": { "additionalProperties": false, "properties": { - "AllowUnauthenticatedIdentities": { - "type": "boolean" + "Artifacts": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts" }, - "CognitoEvents": { - "type": "object" + "BadgeEnabled": { + "type": "boolean" }, - "CognitoIdentityProviders": { - "items": { - "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoIdentityProvider" - }, - "type": "array" + "Cache": { + "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectCache" }, - "CognitoStreams": { - "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoStreams" + "Description": { + "type": "string" }, - "DeveloperProviderName": { + "EncryptionKey": { "type": "string" }, - "IdentityPoolName": { + "Environment": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Environment" + }, + "LogsConfig": { + "$ref": "#/definitions/AWS::CodeBuild::Project.LogsConfig" + }, + "Name": { "type": "string" }, - "OpenIdConnectProviderARNs": { + "QueuedTimeoutInMinutes": { + "type": "number" + }, + "SecondaryArtifacts": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts" }, "type": "array" }, - "PushSync": { - "$ref": "#/definitions/AWS::Cognito::IdentityPool.PushSync" + "SecondarySources": { + "items": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Source" + }, + "type": "array" }, - "SamlProviderARNs": { + "ServiceRole": { + "type": "string" + }, + "Source": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Source" + }, + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "SupportedLoginProviders": { - "type": "object" + "TimeoutInMinutes": { + "type": "number" + }, + "Triggers": { + "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectTriggers" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::CodeBuild::Project.VpcConfig" } }, "required": [ - "AllowUnauthenticatedIdentities" + "Artifacts", + "Environment", + "ServiceRole", + "Source" ], "type": "object" }, "Type": { "enum": [ - "AWS::Cognito::IdentityPool" + "AWS::CodeBuild::Project" ], "type": "string" } @@ -8609,121 +8121,105 @@ ], "type": "object" }, - "AWS::Cognito::IdentityPool.CognitoIdentityProvider": { + "AWS::CodeBuild::Project.Artifacts": { "additionalProperties": false, "properties": { - "ClientId": { + "ArtifactIdentifier": { "type": "string" }, - "ProviderName": { + "EncryptionDisabled": { + "type": "boolean" + }, + "Location": { "type": "string" }, - "ServerSideTokenCheck": { + "Name": { + "type": "string" + }, + "NamespaceType": { + "type": "string" + }, + "OverrideArtifactName": { "type": "boolean" + }, + "Packaging": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "Type": { + "type": "string" } }, + "required": [ + "Type" + ], "type": "object" }, - "AWS::Cognito::IdentityPool.CognitoStreams": { + "AWS::CodeBuild::Project.CloudWatchLogsConfig": { "additionalProperties": false, "properties": { - "RoleArn": { + "GroupName": { "type": "string" }, - "StreamName": { + "Status": { "type": "string" }, - "StreamingStatus": { + "StreamName": { "type": "string" } }, + "required": [ + "Status" + ], "type": "object" }, - "AWS::Cognito::IdentityPool.PushSync": { + "AWS::CodeBuild::Project.Environment": { "additionalProperties": false, "properties": { - "ApplicationArns": { + "Certificate": { + "type": "string" + }, + "ComputeType": { + "type": "string" + }, + "EnvironmentVariables": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::CodeBuild::Project.EnvironmentVariable" }, "type": "array" }, - "RoleArn": { + "Image": { + "type": "string" + }, + "ImagePullCredentialsType": { + "type": "string" + }, + "PrivilegedMode": { + "type": "boolean" + }, + "RegistryCredential": { + "$ref": "#/definitions/AWS::CodeBuild::Project.RegistryCredential" + }, + "Type": { "type": "string" } }, + "required": [ + "ComputeType", + "Image", + "Type" + ], "type": "object" }, - "AWS::Cognito::IdentityPoolRoleAttachment": { + "AWS::CodeBuild::Project.EnvironmentVariable": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Name": { "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": { - "IdentityPoolId": { - "type": "string" - }, - "RoleMappings": { - "type": "object" - }, - "Roles": { - "type": "object" - } - }, - "required": [ - "IdentityPoolId" - ], - "type": "object" - }, "Type": { - "enum": [ - "AWS::Cognito::IdentityPoolRoleAttachment" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::Cognito::IdentityPoolRoleAttachment.MappingRule": { - "additionalProperties": false, - "properties": { - "Claim": { - "type": "string" - }, - "MatchType": { - "type": "string" - }, - "RoleARN": { "type": "string" }, "Value": { @@ -8731,148 +8227,41 @@ } }, "required": [ - "Claim", - "MatchType", - "RoleARN", + "Name", "Value" ], "type": "object" }, - "AWS::Cognito::IdentityPoolRoleAttachment.RoleMapping": { + "AWS::CodeBuild::Project.FilterGroup": { "additionalProperties": false, - "properties": { - "AmbiguousRoleResolution": { - "type": "string" - }, - "RulesConfiguration": { - "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], + "properties": {}, "type": "object" }, - "AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType": { + "AWS::CodeBuild::Project.LogsConfig": { "additionalProperties": false, "properties": { - "Rules": { - "items": { - "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.MappingRule" - }, - "type": "array" + "CloudWatchLogs": { + "$ref": "#/definitions/AWS::CodeBuild::Project.CloudWatchLogsConfig" + }, + "S3Logs": { + "$ref": "#/definitions/AWS::CodeBuild::Project.S3LogsConfig" } }, - "required": [ - "Rules" - ], "type": "object" }, - "AWS::Cognito::UserPool": { + "AWS::CodeBuild::Project.ProjectCache": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Location": { "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": { - "AdminCreateUserConfig": { - "$ref": "#/definitions/AWS::Cognito::UserPool.AdminCreateUserConfig" - }, - "AliasAttributes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AutoVerifiedAttributes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DeviceConfiguration": { - "$ref": "#/definitions/AWS::Cognito::UserPool.DeviceConfiguration" - }, - "EmailConfiguration": { - "$ref": "#/definitions/AWS::Cognito::UserPool.EmailConfiguration" - }, - "EmailVerificationMessage": { - "type": "string" - }, - "EmailVerificationSubject": { - "type": "string" - }, - "LambdaConfig": { - "$ref": "#/definitions/AWS::Cognito::UserPool.LambdaConfig" - }, - "MfaConfiguration": { - "type": "string" - }, - "Policies": { - "$ref": "#/definitions/AWS::Cognito::UserPool.Policies" - }, - "Schema": { - "items": { - "$ref": "#/definitions/AWS::Cognito::UserPool.SchemaAttribute" - }, - "type": "array" - }, - "SmsAuthenticationMessage": { - "type": "string" - }, - "SmsConfiguration": { - "$ref": "#/definitions/AWS::Cognito::UserPool.SmsConfiguration" - }, - "SmsVerificationMessage": { - "type": "string" - }, - "UserPoolName": { - "type": "string" - }, - "UserPoolTags": { - "type": "object" - }, - "UsernameAttributes": { - "items": { - "type": "string" - }, - "type": "array" - } + "Modes": { + "items": { + "type": "string" }, - "type": "object" + "type": "array" }, "Type": { - "enum": [ - "AWS::Cognito::UserPool" - ], "type": "string" } }, @@ -8881,184 +8270,141 @@ ], "type": "object" }, - "AWS::Cognito::UserPool.AdminCreateUserConfig": { - "additionalProperties": false, - "properties": { - "AllowAdminCreateUserOnly": { - "type": "boolean" - }, - "InviteMessageTemplate": { - "$ref": "#/definitions/AWS::Cognito::UserPool.InviteMessageTemplate" - }, - "UnusedAccountValidityDays": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::Cognito::UserPool.DeviceConfiguration": { + "AWS::CodeBuild::Project.ProjectTriggers": { "additionalProperties": false, "properties": { - "ChallengeRequiredOnNewDevice": { - "type": "boolean" + "FilterGroups": { + "items": { + "$ref": "#/definitions/AWS::CodeBuild::Project.FilterGroup" + }, + "type": "array" }, - "DeviceOnlyRememberedOnUserPrompt": { + "Webhook": { "type": "boolean" } }, "type": "object" }, - "AWS::Cognito::UserPool.EmailConfiguration": { + "AWS::CodeBuild::Project.RegistryCredential": { "additionalProperties": false, "properties": { - "ReplyToEmailAddress": { + "Credential": { "type": "string" }, - "SourceArn": { + "CredentialProvider": { "type": "string" } }, + "required": [ + "Credential", + "CredentialProvider" + ], "type": "object" }, - "AWS::Cognito::UserPool.InviteMessageTemplate": { + "AWS::CodeBuild::Project.S3LogsConfig": { "additionalProperties": false, "properties": { - "EmailMessage": { - "type": "string" - }, - "EmailSubject": { + "Location": { "type": "string" }, - "SMSMessage": { + "Status": { "type": "string" } }, + "required": [ + "Status" + ], "type": "object" }, - "AWS::Cognito::UserPool.LambdaConfig": { + "AWS::CodeBuild::Project.Source": { "additionalProperties": false, "properties": { - "CreateAuthChallenge": { - "type": "string" + "Auth": { + "$ref": "#/definitions/AWS::CodeBuild::Project.SourceAuth" }, - "CustomMessage": { + "BuildSpec": { "type": "string" }, - "DefineAuthChallenge": { - "type": "string" + "GitCloneDepth": { + "type": "number" }, - "PostAuthentication": { - "type": "string" + "InsecureSsl": { + "type": "boolean" }, - "PostConfirmation": { + "Location": { "type": "string" }, - "PreAuthentication": { - "type": "string" + "ReportBuildStatus": { + "type": "boolean" }, - "PreSignUp": { + "SourceIdentifier": { "type": "string" }, - "VerifyAuthChallengeResponse": { + "Type": { "type": "string" } }, + "required": [ + "Type" + ], "type": "object" }, - "AWS::Cognito::UserPool.NumberAttributeConstraints": { + "AWS::CodeBuild::Project.SourceAuth": { "additionalProperties": false, "properties": { - "MaxValue": { + "Resource": { "type": "string" }, - "MinValue": { + "Type": { "type": "string" } }, + "required": [ + "Type" + ], "type": "object" }, - "AWS::Cognito::UserPool.PasswordPolicy": { - "additionalProperties": false, - "properties": { - "MinimumLength": { - "type": "number" - }, - "RequireLowercase": { - "type": "boolean" - }, - "RequireNumbers": { - "type": "boolean" - }, - "RequireSymbols": { - "type": "boolean" - }, - "RequireUppercase": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::Cognito::UserPool.Policies": { - "additionalProperties": false, - "properties": { - "PasswordPolicy": { - "$ref": "#/definitions/AWS::Cognito::UserPool.PasswordPolicy" - } - }, - "type": "object" - }, - "AWS::Cognito::UserPool.SchemaAttribute": { + "AWS::CodeBuild::Project.VpcConfig": { "additionalProperties": false, "properties": { - "AttributeDataType": { - "type": "string" - }, - "DeveloperOnlyAttribute": { - "type": "boolean" + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "Mutable": { - "type": "boolean" + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" }, - "Name": { + "VpcId": { "type": "string" - }, - "NumberAttributeConstraints": { - "$ref": "#/definitions/AWS::Cognito::UserPool.NumberAttributeConstraints" - }, - "Required": { - "type": "boolean" - }, - "StringAttributeConstraints": { - "$ref": "#/definitions/AWS::Cognito::UserPool.StringAttributeConstraints" } }, "type": "object" }, - "AWS::Cognito::UserPool.SmsConfiguration": { + "AWS::CodeBuild::Project.WebhookFilter": { "additionalProperties": false, "properties": { - "ExternalId": { - "type": "string" + "ExcludeMatchedPattern": { + "type": "boolean" }, - "SnsCallerArn": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Cognito::UserPool.StringAttributeConstraints": { - "additionalProperties": false, - "properties": { - "MaxLength": { + "Pattern": { "type": "string" }, - "MinLength": { + "Type": { "type": "string" } }, + "required": [ + "Pattern", + "Type" + ], "type": "object" }, - "AWS::Cognito::UserPoolClient": { + "AWS::CodeCommit::Repository": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9090,45 +8436,27 @@ "Properties": { "additionalProperties": false, "properties": { - "ClientName": { + "RepositoryDescription": { "type": "string" }, - "ExplicitAuthFlows": { - "items": { - "type": "string" - }, - "type": "array" - }, - "GenerateSecret": { - "type": "boolean" - }, - "ReadAttributes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "RefreshTokenValidity": { - "type": "number" - }, - "UserPoolId": { + "RepositoryName": { "type": "string" }, - "WriteAttributes": { + "Triggers": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::CodeCommit::Repository.RepositoryTrigger" }, "type": "array" } }, "required": [ - "UserPoolId" + "RepositoryName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Cognito::UserPoolClient" + "AWS::CodeCommit::Repository" ], "type": "string" } @@ -9139,7 +8467,34 @@ ], "type": "object" }, - "AWS::Cognito::UserPoolGroup": { + "AWS::CodeCommit::Repository.RepositoryTrigger": { + "additionalProperties": false, + "properties": { + "Branches": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CustomData": { + "type": "string" + }, + "DestinationArn": { + "type": "string" + }, + "Events": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::Application": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9171,41 +8526,28 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" - }, - "GroupName": { - "type": "string" - }, - "Precedence": { - "type": "number" - }, - "RoleArn": { + "ApplicationName": { "type": "string" }, - "UserPoolId": { + "ComputePlatform": { "type": "string" } }, - "required": [ - "UserPoolId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::Cognito::UserPoolGroup" + "AWS::CodeDeploy::Application" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::Cognito::UserPoolUser": { + "AWS::CodeDeploy::DeploymentConfig": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9237,68 +8579,44 @@ "Properties": { "additionalProperties": false, "properties": { - "DesiredDeliveryMediums": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ForceAliasCreation": { - "type": "boolean" - }, - "MessageAction": { - "type": "string" - }, - "UserAttributes": { - "items": { - "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType" - }, - "type": "array" - }, - "UserPoolId": { - "type": "string" - }, - "Username": { + "DeploymentConfigName": { "type": "string" }, - "ValidationData": { - "items": { - "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType" - }, - "type": "array" + "MinimumHealthyHosts": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts" } }, - "required": [ - "UserPoolId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::Cognito::UserPoolUser" + "AWS::CodeDeploy::DeploymentConfig" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::Cognito::UserPoolUser.AttributeType": { + "AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts": { "additionalProperties": false, "properties": { - "Name": { + "Type": { "type": "string" }, "Value": { - "type": "string" + "type": "number" } }, + "required": [ + "Type", + "Value" + ], "type": "object" }, - "AWS::Cognito::UserPoolUserToGroupAttachment": { + "AWS::CodeDeploy::DeploymentGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9330,84 +8648,73 @@ "Properties": { "additionalProperties": false, "properties": { - "GroupName": { + "AlarmConfiguration": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration" + }, + "ApplicationName": { "type": "string" }, - "UserPoolId": { + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration" + }, + "AutoScalingGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Deployment": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Deployment" + }, + "DeploymentConfigName": { "type": "string" }, - "Username": { - "type": "string" - } - }, - "required": [ - "GroupName", - "UserPoolId", - "Username" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Cognito::UserPoolUserToGroupAttachment" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::Config::AggregationAuthorization": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", + "DeploymentGroupName": { "type": "string" }, - { + "DeploymentStyle": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.DeploymentStyle" + }, + "Ec2TagFilters": { "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter" }, "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "AuthorizedAccountId": { - "type": "string" }, - "AuthorizedAwsRegion": { + "Ec2TagSet": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSet" + }, + "LoadBalancerInfo": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo" + }, + "OnPremisesInstanceTagFilters": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter" + }, + "type": "array" + }, + "OnPremisesTagSet": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet" + }, + "ServiceRoleArn": { "type": "string" + }, + "TriggerConfigurations": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TriggerConfig" + }, + "type": "array" } }, "required": [ - "AuthorizedAccountId", - "AuthorizedAwsRegion" + "ApplicationName", + "ServiceRoleArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::Config::AggregationAuthorization" + "AWS::CodeDeploy::DeploymentGroup" ], "type": "string" } @@ -9418,138 +8725,267 @@ ], "type": "object" }, - "AWS::Config::ConfigRule": { + "AWS::CodeDeploy::DeploymentGroup.Alarm": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Name": { "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Alarm" + }, + "type": "array" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Enabled": { + "type": "boolean" }, - "Metadata": { - "type": "object" + "IgnorePollAlarmFailure": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" }, - "Properties": { - "additionalProperties": false, - "properties": { - "ConfigRuleName": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "InputParameters": { - "type": "object" - }, - "MaximumExecutionFrequency": { - "type": "string" - }, - "Scope": { - "$ref": "#/definitions/AWS::Config::ConfigRule.Scope" - }, - "Source": { - "$ref": "#/definitions/AWS::Config::ConfigRule.Source" - } + "Events": { + "items": { + "type": "string" }, - "required": [ - "Source" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Config::ConfigRule" - ], + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.Deployment": { + "additionalProperties": false, + "properties": { + "Description": { "type": "string" + }, + "IgnoreApplicationStopFailures": { + "type": "boolean" + }, + "Revision": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.RevisionLocation" } }, "required": [ - "Type", - "Properties" + "Revision" ], "type": "object" }, - "AWS::Config::ConfigRule.Scope": { + "AWS::CodeDeploy::DeploymentGroup.DeploymentStyle": { "additionalProperties": false, "properties": { - "ComplianceResourceId": { + "DeploymentOption": { "type": "string" }, - "ComplianceResourceTypes": { + "DeploymentType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.EC2TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.EC2TagSet": { + "additionalProperties": false, + "properties": { + "Ec2TagSetList": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject" }, "type": "array" - }, - "TagKey": { + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject": { + "additionalProperties": false, + "properties": { + "Ec2TagGroup": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.ELBInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.GitHubLocation": { + "additionalProperties": false, + "properties": { + "CommitId": { "type": "string" }, - "TagValue": { + "Repository": { "type": "string" } }, + "required": [ + "CommitId", + "Repository" + ], "type": "object" }, - "AWS::Config::ConfigRule.Source": { + "AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo": { "additionalProperties": false, "properties": { - "Owner": { - "type": "string" + "ElbInfoList": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.ELBInfo" + }, + "type": "array" }, - "SourceDetails": { + "TargetGroupInfoList": { "items": { - "$ref": "#/definitions/AWS::Config::ConfigRule.SourceDetail" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet": { + "additionalProperties": false, + "properties": { + "OnPremisesTagSetList": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject": { + "additionalProperties": false, + "properties": { + "OnPremisesTagGroup": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter" }, "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.RevisionLocation": { + "additionalProperties": false, + "properties": { + "GitHubLocation": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.GitHubLocation" }, - "SourceIdentifier": { + "RevisionType": { "type": "string" + }, + "S3Location": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.S3Location" } }, - "required": [ - "Owner", - "SourceIdentifier" - ], "type": "object" }, - "AWS::Config::ConfigRule.SourceDetail": { + "AWS::CodeDeploy::DeploymentGroup.S3Location": { "additionalProperties": false, "properties": { - "EventSource": { + "Bucket": { "type": "string" }, - "MaximumExecutionFrequency": { + "BundleType": { "type": "string" }, - "MessageType": { + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { "type": "string" } }, "required": [ - "EventSource", - "MessageType" + "Bucket", + "Key" ], "type": "object" }, - "AWS::Config::ConfigurationAggregator": { + "AWS::CodeDeploy::DeploymentGroup.TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerEvents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TriggerName": { + "type": "string" + }, + "TriggerTargetArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodePipeline::CustomActionType": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9581,27 +9017,42 @@ "Properties": { "additionalProperties": false, "properties": { - "AccountAggregationSources": { + "Category": { + "type": "string" + }, + "ConfigurationProperties": { "items": { - "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.AccountAggregationSource" + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ConfigurationProperties" }, "type": "array" }, - "ConfigurationAggregatorName": { + "InputArtifactDetails": { + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails" + }, + "OutputArtifactDetails": { + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails" + }, + "Provider": { "type": "string" }, - "OrganizationAggregationSource": { - "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.OrganizationAggregationSource" + "Settings": { + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.Settings" + }, + "Version": { + "type": "string" } }, "required": [ - "ConfigurationAggregatorName" + "Category", + "InputArtifactDetails", + "OutputArtifactDetails", + "Provider" ], "type": "object" }, "Type": { "enum": [ - "AWS::Config::ConfigurationAggregator" + "AWS::CodePipeline::CustomActionType" ], "type": "string" } @@ -9612,52 +9063,74 @@ ], "type": "object" }, - "AWS::Config::ConfigurationAggregator.AccountAggregationSource": { + "AWS::CodePipeline::CustomActionType.ArtifactDetails": { "additionalProperties": false, "properties": { - "AccountIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AllAwsRegions": { - "type": "boolean" + "MaximumCount": { + "type": "number" }, - "AwsRegions": { - "items": { - "type": "string" - }, - "type": "array" + "MinimumCount": { + "type": "number" } }, "required": [ - "AccountIds" + "MaximumCount", + "MinimumCount" ], "type": "object" }, - "AWS::Config::ConfigurationAggregator.OrganizationAggregationSource": { + "AWS::CodePipeline::CustomActionType.ConfigurationProperties": { "additionalProperties": false, "properties": { - "AllAwsRegions": { + "Description": { + "type": "string" + }, + "Key": { "type": "boolean" }, - "AwsRegions": { - "items": { - "type": "string" - }, - "type": "array" + "Name": { + "type": "string" }, - "RoleArn": { + "Queryable": { + "type": "boolean" + }, + "Required": { + "type": "boolean" + }, + "Secret": { + "type": "boolean" + }, + "Type": { "type": "string" } }, "required": [ - "RoleArn" + "Key", + "Name", + "Required", + "Secret" ], "type": "object" }, - "AWS::Config::ConfigurationRecorder": { + "AWS::CodePipeline::CustomActionType.Settings": { + "additionalProperties": false, + "properties": { + "EntityUrlTemplate": { + "type": "string" + }, + "ExecutionUrlTemplate": { + "type": "string" + }, + "RevisionUrlTemplate": { + "type": "string" + }, + "ThirdPartyConfigurationUrl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodePipeline::Pipeline": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9689,24 +9162,46 @@ "Properties": { "additionalProperties": false, "properties": { + "ArtifactStore": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore" + }, + "ArtifactStores": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStoreMap" + }, + "type": "array" + }, + "DisableInboundStageTransitions": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageTransition" + }, + "type": "array" + }, "Name": { "type": "string" }, - "RecordingGroup": { - "$ref": "#/definitions/AWS::Config::ConfigurationRecorder.RecordingGroup" + "RestartExecutionOnUpdate": { + "type": "boolean" }, - "RoleARN": { + "RoleArn": { "type": "string" + }, + "Stages": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageDeclaration" + }, + "type": "array" } }, "required": [ - "RoleARN" + "RoleArn", + "Stages" ], "type": "object" }, "Type": { "enum": [ - "AWS::Config::ConfigurationRecorder" + "AWS::CodePipeline::Pipeline" ], "type": "string" } @@ -9717,28 +9212,206 @@ ], "type": "object" }, - "AWS::Config::ConfigurationRecorder.RecordingGroup": { + "AWS::CodePipeline::Pipeline.ActionDeclaration": { "additionalProperties": false, "properties": { - "AllSupported": { - "type": "boolean" + "ActionTypeId": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionTypeId" }, - "IncludeGlobalResourceTypes": { - "type": "boolean" + "Configuration": { + "type": "object" }, - "ResourceTypes": { + "InputArtifacts": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.InputArtifact" }, "type": "array" - } - }, - "type": "object" - }, - "AWS::Config::DeliveryChannel": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { + }, + "Name": { + "type": "string" + }, + "OutputArtifacts": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.OutputArtifact" + }, + "type": "array" + }, + "Region": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "RunOrder": { + "type": "number" + } + }, + "required": [ + "ActionTypeId", + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.ActionTypeId": { + "additionalProperties": false, + "properties": { + "Category": { + "type": "string" + }, + "Owner": { + "type": "string" + }, + "Provider": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Category", + "Owner", + "Provider", + "Version" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.ArtifactStore": { + "additionalProperties": false, + "properties": { + "EncryptionKey": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.EncryptionKey" + }, + "Location": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Location", + "Type" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.ArtifactStoreMap": { + "additionalProperties": false, + "properties": { + "ArtifactStore": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "ArtifactStore", + "Region" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.BlockerDeclaration": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.EncryptionKey": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Id", + "Type" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.InputArtifact": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.OutputArtifact": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.StageDeclaration": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionDeclaration" + }, + "type": "array" + }, + "Blockers": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.BlockerDeclaration" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Actions", + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.StageTransition": { + "additionalProperties": false, + "properties": { + "Reason": { + "type": "string" + }, + "StageName": { + "type": "string" + } + }, + "required": [ + "Reason", + "StageName" + ], + "type": "object" + }, + "AWS::CodePipeline::Webhook": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { "enum": [ "Delete", "Retain", @@ -9767,30 +9440,47 @@ "Properties": { "additionalProperties": false, "properties": { - "ConfigSnapshotDeliveryProperties": { - "$ref": "#/definitions/AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties" + "Authentication": { + "type": "string" + }, + "AuthenticationConfiguration": { + "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookAuthConfiguration" + }, + "Filters": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookFilterRule" + }, + "type": "array" }, "Name": { "type": "string" }, - "S3BucketName": { - "type": "string" + "RegisterWithThirdParty": { + "type": "boolean" }, - "S3KeyPrefix": { + "TargetAction": { "type": "string" }, - "SnsTopicARN": { + "TargetPipeline": { "type": "string" + }, + "TargetPipelineVersion": { + "type": "number" } }, "required": [ - "S3BucketName" + "Authentication", + "AuthenticationConfiguration", + "Filters", + "TargetAction", + "TargetPipeline", + "TargetPipelineVersion" ], "type": "object" }, "Type": { "enum": [ - "AWS::Config::DeliveryChannel" + "AWS::CodePipeline::Webhook" ], "type": "string" } @@ -9801,16 +9491,34 @@ ], "type": "object" }, - "AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties": { + "AWS::CodePipeline::Webhook.WebhookAuthConfiguration": { "additionalProperties": false, "properties": { - "DeliveryFrequency": { + "AllowedIPRange": { + "type": "string" + }, + "SecretToken": { "type": "string" } }, "type": "object" }, - "AWS::DAX::Cluster": { + "AWS::CodePipeline::Webhook.WebhookFilterRule": { + "additionalProperties": false, + "properties": { + "JsonPath": { + "type": "string" + }, + "MatchEquals": { + "type": "string" + } + }, + "required": [ + "JsonPath" + ], + "type": "object" + }, + "AWS::Cognito::IdentityPool": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9842,62 +9550,54 @@ "Properties": { "additionalProperties": false, "properties": { - "AvailabilityZones": { + "AllowUnauthenticatedIdentities": { + "type": "boolean" + }, + "CognitoEvents": { + "type": "object" + }, + "CognitoIdentityProviders": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoIdentityProvider" }, "type": "array" }, - "ClusterName": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IAMRoleARN": { - "type": "string" - }, - "NodeType": { - "type": "string" - }, - "NotificationTopicARN": { - "type": "string" + "CognitoStreams": { + "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoStreams" }, - "ParameterGroupName": { + "DeveloperProviderName": { "type": "string" }, - "PreferredMaintenanceWindow": { + "IdentityPoolName": { "type": "string" }, - "ReplicationFactor": { - "type": "number" + "OpenIdConnectProviderARNs": { + "items": { + "type": "string" + }, + "type": "array" }, - "SSESpecification": { - "$ref": "#/definitions/AWS::DAX::Cluster.SSESpecification" + "PushSync": { + "$ref": "#/definitions/AWS::Cognito::IdentityPool.PushSync" }, - "SecurityGroupIds": { + "SamlProviderARNs": { "items": { "type": "string" }, "type": "array" }, - "SubnetGroupName": { - "type": "string" - }, - "Tags": { + "SupportedLoginProviders": { "type": "object" } }, "required": [ - "IAMRoleARN", - "NodeType", - "ReplicationFactor" + "AllowUnauthenticatedIdentities" ], "type": "object" }, "Type": { "enum": [ - "AWS::DAX::Cluster" + "AWS::Cognito::IdentityPool" ], "type": "string" } @@ -9908,72 +9608,52 @@ ], "type": "object" }, - "AWS::DAX::Cluster.SSESpecification": { + "AWS::Cognito::IdentityPool.CognitoIdentityProvider": { "additionalProperties": false, "properties": { - "SSEEnabled": { + "ClientId": { + "type": "string" + }, + "ProviderName": { + "type": "string" + }, + "ServerSideTokenCheck": { "type": "boolean" } }, "type": "object" }, - "AWS::DAX::ParameterGroup": { + "AWS::Cognito::IdentityPool.CognitoStreams": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "RoleArn": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" + "StreamName": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "ParameterGroupName": { - "type": "string" - }, - "ParameterNameValues": { - "type": "object" - } + "StreamingStatus": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::IdentityPool.PushSync": { + "additionalProperties": false, + "properties": { + "ApplicationArns": { + "items": { + "type": "string" }, - "type": "object" + "type": "array" }, - "Type": { - "enum": [ - "AWS::DAX::ParameterGroup" - ], + "RoleArn": { "type": "string" } }, - "required": [ - "Type" - ], "type": "object" }, - "AWS::DAX::SubnetGroup": { + "AWS::Cognito::IdentityPoolRoleAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10005,27 +9685,24 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "IdentityPoolId": { "type": "string" }, - "SubnetGroupName": { - "type": "string" + "RoleMappings": { + "type": "object" }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" + "Roles": { + "type": "object" } }, "required": [ - "SubnetIds" + "IdentityPoolId" ], "type": "object" }, "Type": { "enum": [ - "AWS::DAX::SubnetGroup" + "AWS::Cognito::IdentityPoolRoleAttachment" ], "type": "string" } @@ -10036,7 +9713,64 @@ ], "type": "object" }, - "AWS::DLM::LifecyclePolicy": { + "AWS::Cognito::IdentityPoolRoleAttachment.MappingRule": { + "additionalProperties": false, + "properties": { + "Claim": { + "type": "string" + }, + "MatchType": { + "type": "string" + }, + "RoleARN": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Claim", + "MatchType", + "RoleARN", + "Value" + ], + "type": "object" + }, + "AWS::Cognito::IdentityPoolRoleAttachment.RoleMapping": { + "additionalProperties": false, + "properties": { + "AmbiguousRoleResolution": { + "type": "string" + }, + "RulesConfiguration": { + "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.MappingRule" + }, + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::Cognito::UserPool": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10068,24 +9802,75 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "AdminCreateUserConfig": { + "$ref": "#/definitions/AWS::Cognito::UserPool.AdminCreateUserConfig" + }, + "AliasAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AutoVerifiedAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DeviceConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPool.DeviceConfiguration" + }, + "EmailConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPool.EmailConfiguration" + }, + "EmailVerificationMessage": { "type": "string" }, - "ExecutionRoleArn": { + "EmailVerificationSubject": { "type": "string" }, - "PolicyDetails": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.PolicyDetails" + "LambdaConfig": { + "$ref": "#/definitions/AWS::Cognito::UserPool.LambdaConfig" }, - "State": { + "MfaConfiguration": { + "type": "string" + }, + "Policies": { + "$ref": "#/definitions/AWS::Cognito::UserPool.Policies" + }, + "Schema": { + "items": { + "$ref": "#/definitions/AWS::Cognito::UserPool.SchemaAttribute" + }, + "type": "array" + }, + "SmsAuthenticationMessage": { + "type": "string" + }, + "SmsConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPool.SmsConfiguration" + }, + "SmsVerificationMessage": { "type": "string" + }, + "UserPoolName": { + "type": "string" + }, + "UserPoolTags": { + "type": "object" + }, + "UsernameAttributes": { + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, "Type": { "enum": [ - "AWS::DLM::LifecyclePolicy" + "AWS::Cognito::UserPool" ], "type": "string" } @@ -10095,89 +9880,184 @@ ], "type": "object" }, - "AWS::DLM::LifecyclePolicy.CreateRule": { + "AWS::Cognito::UserPool.AdminCreateUserConfig": { "additionalProperties": false, "properties": { - "Interval": { + "AllowAdminCreateUserOnly": { + "type": "boolean" + }, + "InviteMessageTemplate": { + "$ref": "#/definitions/AWS::Cognito::UserPool.InviteMessageTemplate" + }, + "UnusedAccountValidityDays": { "type": "number" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.DeviceConfiguration": { + "additionalProperties": false, + "properties": { + "ChallengeRequiredOnNewDevice": { + "type": "boolean" }, - "IntervalUnit": { + "DeviceOnlyRememberedOnUserPrompt": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.EmailConfiguration": { + "additionalProperties": false, + "properties": { + "ReplyToEmailAddress": { "type": "string" }, - "Times": { - "items": { - "type": "string" - }, - "type": "array" + "SourceArn": { + "type": "string" } }, - "required": [ - "Interval", - "IntervalUnit" - ], "type": "object" }, - "AWS::DLM::LifecyclePolicy.PolicyDetails": { + "AWS::Cognito::UserPool.InviteMessageTemplate": { "additionalProperties": false, "properties": { - "ResourceTypes": { - "items": { - "type": "string" - }, - "type": "array" + "EmailMessage": { + "type": "string" }, - "Schedules": { - "items": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Schedule" - }, - "type": "array" + "EmailSubject": { + "type": "string" }, - "TargetTags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "SMSMessage": { + "type": "string" } }, "type": "object" }, - "AWS::DLM::LifecyclePolicy.RetainRule": { + "AWS::Cognito::UserPool.LambdaConfig": { "additionalProperties": false, "properties": { - "Count": { + "CreateAuthChallenge": { + "type": "string" + }, + "CustomMessage": { + "type": "string" + }, + "DefineAuthChallenge": { + "type": "string" + }, + "PostAuthentication": { + "type": "string" + }, + "PostConfirmation": { + "type": "string" + }, + "PreAuthentication": { + "type": "string" + }, + "PreSignUp": { + "type": "string" + }, + "VerifyAuthChallengeResponse": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.NumberAttributeConstraints": { + "additionalProperties": false, + "properties": { + "MaxValue": { + "type": "string" + }, + "MinValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.PasswordPolicy": { + "additionalProperties": false, + "properties": { + "MinimumLength": { "type": "number" + }, + "RequireLowercase": { + "type": "boolean" + }, + "RequireNumbers": { + "type": "boolean" + }, + "RequireSymbols": { + "type": "boolean" + }, + "RequireUppercase": { + "type": "boolean" } }, - "required": [ - "Count" - ], "type": "object" }, - "AWS::DLM::LifecyclePolicy.Schedule": { + "AWS::Cognito::UserPool.Policies": { "additionalProperties": false, "properties": { - "CopyTags": { + "PasswordPolicy": { + "$ref": "#/definitions/AWS::Cognito::UserPool.PasswordPolicy" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.SchemaAttribute": { + "additionalProperties": false, + "properties": { + "AttributeDataType": { + "type": "string" + }, + "DeveloperOnlyAttribute": { "type": "boolean" }, - "CreateRule": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CreateRule" + "Mutable": { + "type": "boolean" }, "Name": { "type": "string" }, - "RetainRule": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.RetainRule" + "NumberAttributeConstraints": { + "$ref": "#/definitions/AWS::Cognito::UserPool.NumberAttributeConstraints" }, - "TagsToAdd": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "Required": { + "type": "boolean" + }, + "StringAttributeConstraints": { + "$ref": "#/definitions/AWS::Cognito::UserPool.StringAttributeConstraints" } }, "type": "object" }, - "AWS::DMS::Certificate": { + "AWS::Cognito::UserPool.SmsConfiguration": { + "additionalProperties": false, + "properties": { + "ExternalId": { + "type": "string" + }, + "SnsCallerArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.StringAttributeConstraints": { + "additionalProperties": false, + "properties": { + "MaxLength": { + "type": "string" + }, + "MinLength": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPoolClient": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10209,31 +10089,56 @@ "Properties": { "additionalProperties": false, "properties": { - "CertificateIdentifier": { + "ClientName": { "type": "string" }, - "CertificatePem": { - "type": "string" + "ExplicitAuthFlows": { + "items": { + "type": "string" + }, + "type": "array" }, - "CertificateWallet": { + "GenerateSecret": { + "type": "boolean" + }, + "ReadAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RefreshTokenValidity": { + "type": "number" + }, + "UserPoolId": { "type": "string" + }, + "WriteAttributes": { + "items": { + "type": "string" + }, + "type": "array" } }, + "required": [ + "UserPoolId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::Certificate" + "AWS::Cognito::UserPoolClient" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::DMS::Endpoint": { + "AWS::Cognito::UserPoolGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10265,67 +10170,30 @@ "Properties": { "additionalProperties": false, "properties": { - "CertificateArn": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "DynamoDbSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.DynamoDbSettings" - }, - "EndpointIdentifier": { - "type": "string" - }, - "EndpointType": { - "type": "string" - }, - "EngineName": { - "type": "string" - }, - "ExtraConnectionAttributes": { - "type": "string" - }, - "KmsKeyId": { + "Description": { "type": "string" }, - "MongoDbSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.MongoDbSettings" - }, - "Password": { + "GroupName": { "type": "string" }, - "Port": { + "Precedence": { "type": "number" }, - "S3Settings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.S3Settings" - }, - "ServerName": { - "type": "string" - }, - "SslMode": { + "RoleArn": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Username": { + "UserPoolId": { "type": "string" } }, "required": [ - "EndpointType", - "EngineName" + "UserPoolId" ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::Endpoint" + "AWS::Cognito::UserPoolGroup" ], "type": "string" } @@ -10336,82 +10204,7 @@ ], "type": "object" }, - "AWS::DMS::Endpoint.DynamoDbSettings": { - "additionalProperties": false, - "properties": { - "ServiceAccessRoleArn": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::DMS::Endpoint.MongoDbSettings": { - "additionalProperties": false, - "properties": { - "AuthMechanism": { - "type": "string" - }, - "AuthSource": { - "type": "string" - }, - "AuthType": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "DocsToInvestigate": { - "type": "string" - }, - "ExtractDocId": { - "type": "string" - }, - "NestingLevel": { - "type": "string" - }, - "Password": { - "type": "string" - }, - "Port": { - "type": "number" - }, - "ServerName": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::DMS::Endpoint.S3Settings": { - "additionalProperties": false, - "properties": { - "BucketFolder": { - "type": "string" - }, - "BucketName": { - "type": "string" - }, - "CompressionType": { - "type": "string" - }, - "CsvDelimiter": { - "type": "string" - }, - "CsvRowDelimiter": { - "type": "string" - }, - "ExternalTableDefinition": { - "type": "string" - }, - "ServiceAccessRoleArn": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::DMS::EventSubscription": { + "AWS::Cognito::UserPoolUser": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10443,45 +10236,45 @@ "Properties": { "additionalProperties": false, "properties": { - "Enabled": { - "type": "boolean" - }, - "EventCategories": { + "DesiredDeliveryMediums": { "items": { "type": "string" }, "type": "array" }, - "SnsTopicArn": { + "ForceAliasCreation": { + "type": "boolean" + }, + "MessageAction": { "type": "string" }, - "SourceIds": { + "UserAttributes": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType" }, "type": "array" }, - "SourceType": { + "UserPoolId": { "type": "string" }, - "SubscriptionName": { + "Username": { "type": "string" }, - "Tags": { + "ValidationData": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType" }, "type": "array" } }, "required": [ - "SnsTopicArn" + "UserPoolId" ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::EventSubscription" + "AWS::Cognito::UserPoolUser" ], "type": "string" } @@ -10492,7 +10285,19 @@ ], "type": "object" }, - "AWS::DMS::ReplicationInstance": { + "AWS::Cognito::UserPoolUser.AttributeType": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPoolUserToGroupAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10524,63 +10329,26 @@ "Properties": { "additionalProperties": false, "properties": { - "AllocatedStorage": { - "type": "number" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AvailabilityZone": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "KmsKeyId": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicationInstanceClass": { + "GroupName": { "type": "string" }, - "ReplicationInstanceIdentifier": { + "UserPoolId": { "type": "string" }, - "ReplicationSubnetGroupIdentifier": { + "Username": { "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VpcSecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" } }, "required": [ - "ReplicationInstanceClass" + "GroupName", + "UserPoolId", + "Username" ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::ReplicationInstance" + "AWS::Cognito::UserPoolUserToGroupAttachment" ], "type": "string" } @@ -10591,7 +10359,7 @@ ], "type": "object" }, - "AWS::DMS::ReplicationSubnetGroup": { + "AWS::Config::AggregationAuthorization": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10623,34 +10391,22 @@ "Properties": { "additionalProperties": false, "properties": { - "ReplicationSubnetGroupDescription": { + "AuthorizedAccountId": { "type": "string" }, - "ReplicationSubnetGroupIdentifier": { + "AuthorizedAwsRegion": { "type": "string" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" } }, "required": [ - "ReplicationSubnetGroupDescription", - "SubnetIds" + "AuthorizedAccountId", + "AuthorizedAwsRegion" ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::ReplicationSubnetGroup" + "AWS::Config::AggregationAuthorization" ], "type": "string" } @@ -10661,7 +10417,7 @@ ], "type": "object" }, - "AWS::DMS::ReplicationTask": { + "AWS::Config::ConfigRule": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10693,49 +10449,33 @@ "Properties": { "additionalProperties": false, "properties": { - "CdcStartTime": { - "type": "number" - }, - "MigrationType": { - "type": "string" - }, - "ReplicationInstanceArn": { - "type": "string" - }, - "ReplicationTaskIdentifier": { + "ConfigRuleName": { "type": "string" }, - "ReplicationTaskSettings": { + "Description": { "type": "string" }, - "SourceEndpointArn": { - "type": "string" + "InputParameters": { + "type": "object" }, - "TableMappings": { + "MaximumExecutionFrequency": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "Scope": { + "$ref": "#/definitions/AWS::Config::ConfigRule.Scope" }, - "TargetEndpointArn": { - "type": "string" + "Source": { + "$ref": "#/definitions/AWS::Config::ConfigRule.Source" } }, "required": [ - "MigrationType", - "ReplicationInstanceArn", - "SourceEndpointArn", - "TableMappings", - "TargetEndpointArn" + "Source" ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::ReplicationTask" + "AWS::Config::ConfigRule" ], "type": "string" } @@ -10746,14 +10486,76 @@ ], "type": "object" }, - "AWS::DataPipeline::Pipeline": { + "AWS::Config::ConfigRule.Scope": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" + "ComplianceResourceId": { + "type": "string" + }, + "ComplianceResourceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TagKey": { + "type": "string" + }, + "TagValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Config::ConfigRule.Source": { + "additionalProperties": false, + "properties": { + "Owner": { + "type": "string" + }, + "SourceDetails": { + "items": { + "$ref": "#/definitions/AWS::Config::ConfigRule.SourceDetail" + }, + "type": "array" + }, + "SourceIdentifier": { + "type": "string" + } + }, + "required": [ + "Owner", + "SourceIdentifier" + ], + "type": "object" + }, + "AWS::Config::ConfigRule.SourceDetail": { + "additionalProperties": false, + "properties": { + "EventSource": { + "type": "string" + }, + "MaximumExecutionFrequency": { + "type": "string" + }, + "MessageType": { + "type": "string" + } + }, + "required": [ + "EventSource", + "MessageType" + ], + "type": "object" + }, + "AWS::Config::ConfigurationAggregator": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], "type": "string" }, @@ -10778,49 +10580,27 @@ "Properties": { "additionalProperties": false, "properties": { - "Activate": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "ParameterObjects": { - "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterObject" - }, - "type": "array" - }, - "ParameterValues": { + "AccountAggregationSources": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterValue" + "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.AccountAggregationSource" }, "type": "array" }, - "PipelineObjects": { - "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineObject" - }, - "type": "array" + "ConfigurationAggregatorName": { + "type": "string" }, - "PipelineTags": { - "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineTag" - }, - "type": "array" + "OrganizationAggregationSource": { + "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.OrganizationAggregationSource" } }, "required": [ - "Name", - "ParameterObjects" + "ConfigurationAggregatorName" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataPipeline::Pipeline" + "AWS::Config::ConfigurationAggregator" ], "type": "string" } @@ -10831,115 +10611,52 @@ ], "type": "object" }, - "AWS::DataPipeline::Pipeline.Field": { + "AWS::Config::ConfigurationAggregator.AccountAggregationSource": { "additionalProperties": false, "properties": { - "Key": { - "type": "string" - }, - "RefValue": { - "type": "string" + "AccountIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.ParameterAttribute": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" + "AllAwsRegions": { + "type": "boolean" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Key", - "StringValue" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.ParameterObject": { - "additionalProperties": false, - "properties": { - "Attributes": { + "AwsRegions": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterAttribute" + "type": "string" }, "type": "array" - }, - "Id": { - "type": "string" } }, "required": [ - "Attributes", - "Id" + "AccountIds" ], "type": "object" }, - "AWS::DataPipeline::Pipeline.ParameterValue": { + "AWS::Config::ConfigurationAggregator.OrganizationAggregationSource": { "additionalProperties": false, "properties": { - "Id": { - "type": "string" + "AllAwsRegions": { + "type": "boolean" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Id", - "StringValue" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.PipelineObject": { - "additionalProperties": false, - "properties": { - "Fields": { + "AwsRegions": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.Field" + "type": "string" }, "type": "array" }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "Fields", - "Id", - "Name" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.PipelineTag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { + "RoleArn": { "type": "string" } }, "required": [ - "Key", - "Value" + "RoleArn" ], "type": "object" }, - "AWS::DirectoryService::MicrosoftAD": { + "AWS::Config::ConfigurationRecorder": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10971,38 +10688,24 @@ "Properties": { "additionalProperties": false, "properties": { - "CreateAlias": { - "type": "boolean" - }, - "Edition": { - "type": "string" - }, - "EnableSso": { - "type": "boolean" - }, "Name": { "type": "string" }, - "Password": { - "type": "string" + "RecordingGroup": { + "$ref": "#/definitions/AWS::Config::ConfigurationRecorder.RecordingGroup" }, - "ShortName": { + "RoleARN": { "type": "string" - }, - "VpcSettings": { - "$ref": "#/definitions/AWS::DirectoryService::MicrosoftAD.VpcSettings" } }, "required": [ - "Name", - "Password", - "VpcSettings" + "RoleARN" ], "type": "object" }, "Type": { "enum": [ - "AWS::DirectoryService::MicrosoftAD" + "AWS::Config::ConfigurationRecorder" ], "type": "string" } @@ -11013,26 +10716,25 @@ ], "type": "object" }, - "AWS::DirectoryService::MicrosoftAD.VpcSettings": { + "AWS::Config::ConfigurationRecorder.RecordingGroup": { "additionalProperties": false, "properties": { - "SubnetIds": { + "AllSupported": { + "type": "boolean" + }, + "IncludeGlobalResourceTypes": { + "type": "boolean" + }, + "ResourceTypes": { "items": { "type": "string" }, "type": "array" - }, - "VpcId": { - "type": "string" } }, - "required": [ - "SubnetIds", - "VpcId" - ], "type": "object" }, - "AWS::DirectoryService::SimpleAD": { + "AWS::Config::DeliveryChannel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11064,42 +10766,30 @@ "Properties": { "additionalProperties": false, "properties": { - "CreateAlias": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "EnableSso": { - "type": "boolean" + "ConfigSnapshotDeliveryProperties": { + "$ref": "#/definitions/AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties" }, "Name": { "type": "string" }, - "Password": { + "S3BucketName": { "type": "string" }, - "ShortName": { + "S3KeyPrefix": { "type": "string" }, - "Size": { + "SnsTopicARN": { "type": "string" - }, - "VpcSettings": { - "$ref": "#/definitions/AWS::DirectoryService::SimpleAD.VpcSettings" } }, "required": [ - "Name", - "Password", - "Size", - "VpcSettings" + "S3BucketName" ], "type": "object" }, "Type": { "enum": [ - "AWS::DirectoryService::SimpleAD" + "AWS::Config::DeliveryChannel" ], "type": "string" } @@ -11110,26 +10800,16 @@ ], "type": "object" }, - "AWS::DirectoryService::SimpleAD.VpcSettings": { + "AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties": { "additionalProperties": false, "properties": { - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "VpcId": { + "DeliveryFrequency": { "type": "string" } }, - "required": [ - "SubnetIds", - "VpcId" - ], "type": "object" }, - "AWS::DynamoDB::Table": { + "AWS::DAX::Cluster": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11161,66 +10841,62 @@ "Properties": { "additionalProperties": false, "properties": { - "AttributeDefinitions": { + "AvailabilityZones": { "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.AttributeDefinition" + "type": "string" }, "type": "array" }, - "BillingMode": { + "ClusterName": { "type": "string" }, - "GlobalSecondaryIndexes": { - "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.GlobalSecondaryIndex" - }, - "type": "array" + "Description": { + "type": "string" }, - "KeySchema": { - "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" - }, - "type": "array" + "IAMRoleARN": { + "type": "string" }, - "LocalSecondaryIndexes": { - "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.LocalSecondaryIndex" - }, - "type": "array" + "NodeType": { + "type": "string" }, - "PointInTimeRecoverySpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.PointInTimeRecoverySpecification" + "NotificationTopicARN": { + "type": "string" }, - "ProvisionedThroughput": { - "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput" + "ParameterGroupName": { + "type": "string" }, - "SSESpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.SSESpecification" + "PreferredMaintenanceWindow": { + "type": "string" }, - "StreamSpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.StreamSpecification" + "ReplicationFactor": { + "type": "number" }, - "TableName": { - "type": "string" + "SSESpecification": { + "$ref": "#/definitions/AWS::DAX::Cluster.SSESpecification" }, - "Tags": { + "SecurityGroupIds": { "items": { - "$ref": "#/definitions/Tag" + "type": "string" }, "type": "array" }, - "TimeToLiveSpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.TimeToLiveSpecification" + "SubnetGroupName": { + "type": "string" + }, + "Tags": { + "type": "object" } }, "required": [ - "KeySchema" + "IAMRoleARN", + "NodeType", + "ReplicationFactor" ], "type": "object" }, "Type": { "enum": [ - "AWS::DynamoDB::Table" + "AWS::DAX::Cluster" ], "type": "string" } @@ -11231,168 +10907,16 @@ ], "type": "object" }, - "AWS::DynamoDB::Table.AttributeDefinition": { - "additionalProperties": false, - "properties": { - "AttributeName": { - "type": "string" - }, - "AttributeType": { - "type": "string" - } - }, - "required": [ - "AttributeName", - "AttributeType" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.GlobalSecondaryIndex": { - "additionalProperties": false, - "properties": { - "IndexName": { - "type": "string" - }, - "KeySchema": { - "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" - }, - "type": "array" - }, - "Projection": { - "$ref": "#/definitions/AWS::DynamoDB::Table.Projection" - }, - "ProvisionedThroughput": { - "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput" - } - }, - "required": [ - "IndexName", - "KeySchema", - "Projection" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.KeySchema": { - "additionalProperties": false, - "properties": { - "AttributeName": { - "type": "string" - }, - "KeyType": { - "type": "string" - } - }, - "required": [ - "AttributeName", - "KeyType" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.LocalSecondaryIndex": { - "additionalProperties": false, - "properties": { - "IndexName": { - "type": "string" - }, - "KeySchema": { - "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" - }, - "type": "array" - }, - "Projection": { - "$ref": "#/definitions/AWS::DynamoDB::Table.Projection" - } - }, - "required": [ - "IndexName", - "KeySchema", - "Projection" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.PointInTimeRecoverySpecification": { - "additionalProperties": false, - "properties": { - "PointInTimeRecoveryEnabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::DynamoDB::Table.Projection": { - "additionalProperties": false, - "properties": { - "NonKeyAttributes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ProjectionType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::DynamoDB::Table.ProvisionedThroughput": { - "additionalProperties": false, - "properties": { - "ReadCapacityUnits": { - "type": "number" - }, - "WriteCapacityUnits": { - "type": "number" - } - }, - "required": [ - "ReadCapacityUnits", - "WriteCapacityUnits" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.SSESpecification": { + "AWS::DAX::Cluster.SSESpecification": { "additionalProperties": false, "properties": { "SSEEnabled": { "type": "boolean" } }, - "required": [ - "SSEEnabled" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.StreamSpecification": { - "additionalProperties": false, - "properties": { - "StreamViewType": { - "type": "string" - } - }, - "required": [ - "StreamViewType" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.TimeToLiveSpecification": { - "additionalProperties": false, - "properties": { - "AttributeName": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - } - }, - "required": [ - "AttributeName", - "Enabled" - ], "type": "object" }, - "AWS::EC2::CustomerGateway": { + "AWS::DAX::ParameterGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11424,43 +10948,31 @@ "Properties": { "additionalProperties": false, "properties": { - "BgpAsn": { - "type": "number" - }, - "IpAddress": { + "Description": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { + "ParameterGroupName": { "type": "string" + }, + "ParameterNameValues": { + "type": "object" } }, - "required": [ - "BgpAsn", - "IpAddress", - "Type" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::CustomerGateway" + "AWS::DAX::ParameterGroup" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::DHCPOptions": { + "AWS::DAX::SubnetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11492,52 +11004,38 @@ "Properties": { "additionalProperties": false, "properties": { - "DomainName": { + "Description": { "type": "string" }, - "DomainNameServers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "NetbiosNameServers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "NetbiosNodeType": { - "type": "number" + "SubnetGroupName": { + "type": "string" }, - "NtpServers": { + "SubnetIds": { "items": { "type": "string" }, "type": "array" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" } }, + "required": [ + "SubnetIds" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::DHCPOptions" + "AWS::DAX::SubnetGroup" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::EC2Fleet": { + "AWS::DLM::LifecyclePolicy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11569,192 +11067,116 @@ "Properties": { "additionalProperties": false, "properties": { - "ExcessCapacityTerminationPolicy": { + "Description": { "type": "string" }, - "LaunchTemplateConfigs": { - "items": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest" - }, - "type": "array" - }, - "OnDemandOptions": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.OnDemandOptionsRequest" - }, - "ReplaceUnhealthyInstances": { - "type": "boolean" - }, - "SpotOptions": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.SpotOptionsRequest" - }, - "TagSpecifications": { - "items": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.TagSpecification" - }, - "type": "array" - }, - "TargetCapacitySpecification": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest" - }, - "TerminateInstancesWithExpiration": { - "type": "boolean" - }, - "Type": { + "ExecutionRoleArn": { "type": "string" }, - "ValidFrom": { - "type": "number" + "PolicyDetails": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.PolicyDetails" }, - "ValidUntil": { - "type": "number" + "State": { + "type": "string" } }, - "required": [ - "LaunchTemplateConfigs", - "TargetCapacitySpecification" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::EC2Fleet" + "AWS::DLM::LifecyclePolicy" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest": { - "additionalProperties": false, - "properties": { - "LaunchTemplateSpecification": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest" - }, - "Overrides": { - "items": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest": { + "AWS::DLM::LifecyclePolicy.CreateRule": { "additionalProperties": false, "properties": { - "AvailabilityZone": { - "type": "string" - }, - "InstanceType": { - "type": "string" - }, - "MaxPrice": { - "type": "string" - }, - "Priority": { + "Interval": { "type": "number" }, - "SubnetId": { + "IntervalUnit": { "type": "string" }, - "WeightedCapacity": { - "type": "number" + "Times": { + "items": { + "type": "string" + }, + "type": "array" } }, + "required": [ + "Interval", + "IntervalUnit" + ], "type": "object" }, - "AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest": { + "AWS::DLM::LifecyclePolicy.PolicyDetails": { "additionalProperties": false, "properties": { - "LaunchTemplateId": { - "type": "string" + "ResourceTypes": { + "items": { + "type": "string" + }, + "type": "array" }, - "LaunchTemplateName": { - "type": "string" + "Schedules": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Schedule" + }, + "type": "array" }, - "Version": { - "type": "string" + "TargetTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "type": "object" }, - "AWS::EC2::EC2Fleet.OnDemandOptionsRequest": { + "AWS::DLM::LifecyclePolicy.RetainRule": { "additionalProperties": false, "properties": { - "AllocationStrategy": { - "type": "string" + "Count": { + "type": "number" } }, + "required": [ + "Count" + ], "type": "object" }, - "AWS::EC2::EC2Fleet.SpotOptionsRequest": { + "AWS::DLM::LifecyclePolicy.Schedule": { "additionalProperties": false, "properties": { - "AllocationStrategy": { - "type": "string" + "CopyTags": { + "type": "boolean" }, - "InstanceInterruptionBehavior": { - "type": "string" + "CreateRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CreateRule" }, - "InstancePoolsToUseCount": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::EC2::EC2Fleet.TagRequest": { - "additionalProperties": false, - "properties": { - "Key": { + "Name": { "type": "string" }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::EC2Fleet.TagSpecification": { - "additionalProperties": false, - "properties": { - "ResourceType": { - "type": "string" + "RetainRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.RetainRule" }, - "Tags": { + "TagsToAdd": { "items": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.TagRequest" + "$ref": "#/definitions/Tag" }, "type": "array" } }, "type": "object" }, - "AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest": { - "additionalProperties": false, - "properties": { - "DefaultTargetCapacityType": { - "type": "string" - }, - "OnDemandTargetCapacity": { - "type": "number" - }, - "SpotTargetCapacity": { - "type": "number" - }, - "TotalTargetCapacity": { - "type": "number" - } - }, - "required": [ - "TotalTargetCapacity" - ], - "type": "object" - }, - "AWS::EC2::EIP": { + "AWS::DMS::Certificate": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11786,13 +11208,13 @@ "Properties": { "additionalProperties": false, "properties": { - "Domain": { + "CertificateIdentifier": { "type": "string" }, - "InstanceId": { + "CertificatePem": { "type": "string" }, - "PublicIpv4Pool": { + "CertificateWallet": { "type": "string" } }, @@ -11800,7 +11222,7 @@ }, "Type": { "enum": [ - "AWS::EC2::EIP" + "AWS::DMS::Certificate" ], "type": "string" } @@ -11810,7 +11232,7 @@ ], "type": "object" }, - "AWS::EC2::EIPAssociation": { + "AWS::DMS::Endpoint": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11842,37 +11264,192 @@ "Properties": { "additionalProperties": false, "properties": { - "AllocationId": { + "CertificateArn": { "type": "string" }, - "EIP": { + "DatabaseName": { "type": "string" }, - "InstanceId": { + "DynamoDbSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.DynamoDbSettings" + }, + "ElasticsearchSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.ElasticsearchSettings" + }, + "EndpointIdentifier": { "type": "string" }, - "NetworkInterfaceId": { + "EndpointType": { "type": "string" }, - "PrivateIpAddress": { + "EngineName": { + "type": "string" + }, + "ExtraConnectionAttributes": { + "type": "string" + }, + "KinesisSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.KinesisSettings" + }, + "KmsKeyId": { + "type": "string" + }, + "MongoDbSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.MongoDbSettings" + }, + "Password": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "S3Settings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.S3Settings" + }, + "ServerName": { + "type": "string" + }, + "SslMode": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Username": { "type": "string" } }, + "required": [ + "EndpointType", + "EngineName" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::EIPAssociation" + "AWS::DMS::Endpoint" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::EgressOnlyInternetGateway": { + "AWS::DMS::Endpoint.DynamoDbSettings": { + "additionalProperties": false, + "properties": { + "ServiceAccessRoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.ElasticsearchSettings": { + "additionalProperties": false, + "properties": { + "EndpointUri": { + "type": "string" + }, + "ErrorRetryDuration": { + "type": "number" + }, + "FullLoadErrorPercentage": { + "type": "number" + }, + "ServiceAccessRoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.KinesisSettings": { + "additionalProperties": false, + "properties": { + "MessageFormat": { + "type": "string" + }, + "ServiceAccessRoleArn": { + "type": "string" + }, + "StreamArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.MongoDbSettings": { + "additionalProperties": false, + "properties": { + "AuthMechanism": { + "type": "string" + }, + "AuthSource": { + "type": "string" + }, + "AuthType": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DocsToInvestigate": { + "type": "string" + }, + "ExtractDocId": { + "type": "string" + }, + "NestingLevel": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "ServerName": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.S3Settings": { + "additionalProperties": false, + "properties": { + "BucketFolder": { + "type": "string" + }, + "BucketName": { + "type": "string" + }, + "CompressionType": { + "type": "string" + }, + "CsvDelimiter": { + "type": "string" + }, + "CsvRowDelimiter": { + "type": "string" + }, + "ExternalTableDefinition": { + "type": "string" + }, + "ServiceAccessRoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::EventSubscription": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11904,18 +11481,45 @@ "Properties": { "additionalProperties": false, "properties": { - "VpcId": { + "Enabled": { + "type": "boolean" + }, + "EventCategories": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnsTopicArn": { + "type": "string" + }, + "SourceIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceType": { "type": "string" + }, + "SubscriptionName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "VpcId" + "SnsTopicArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::EgressOnlyInternetGateway" + "AWS::DMS::EventSubscription" ], "type": "string" } @@ -11926,7 +11530,7 @@ ], "type": "object" }, - "AWS::EC2::FlowLog": { + "AWS::DMS::ReplicationInstance": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11958,38 +11562,63 @@ "Properties": { "additionalProperties": false, "properties": { - "DeliverLogsPermissionArn": { + "AllocatedStorage": { + "type": "number" + }, + "AllowMajorVersionUpgrade": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZone": { "type": "string" }, - "LogDestination": { + "EngineVersion": { "type": "string" }, - "LogDestinationType": { + "KmsKeyId": { "type": "string" }, - "LogGroupName": { + "MultiAZ": { + "type": "boolean" + }, + "PreferredMaintenanceWindow": { "type": "string" }, - "ResourceId": { + "PubliclyAccessible": { + "type": "boolean" + }, + "ReplicationInstanceClass": { "type": "string" }, - "ResourceType": { + "ReplicationInstanceIdentifier": { "type": "string" }, - "TrafficType": { + "ReplicationSubnetGroupIdentifier": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "ResourceId", - "ResourceType", - "TrafficType" + "ReplicationInstanceClass" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::FlowLog" + "AWS::DMS::ReplicationInstance" ], "type": "string" } @@ -12000,7 +11629,7 @@ ], "type": "object" }, - "AWS::EC2::Host": { + "AWS::DMS::ReplicationSubnetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -12032,25 +11661,34 @@ "Properties": { "additionalProperties": false, "properties": { - "AutoPlacement": { + "ReplicationSubnetGroupDescription": { "type": "string" }, - "AvailabilityZone": { + "ReplicationSubnetGroupIdentifier": { "type": "string" }, - "InstanceType": { - "type": "string" - } - }, - "required": [ - "AvailabilityZone", - "InstanceType" - ], + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ReplicationSubnetGroupDescription", + "SubnetIds" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Host" + "AWS::DMS::ReplicationSubnetGroup" ], "type": "string" } @@ -12061,12 +11699,9 @@ ], "type": "object" }, - "AWS::EC2::Instance": { + "AWS::DMS::ReplicationTask": { "additionalProperties": false, "properties": { - "CreationPolicy": { - "type": "object" - }, "DeletionPolicy": { "enum": [ "Delete", @@ -12096,405 +11731,253 @@ "Properties": { "additionalProperties": false, "properties": { - "AdditionalInfo": { - "type": "string" - }, - "Affinity": { - "type": "string" + "CdcStartTime": { + "type": "number" }, - "AvailabilityZone": { + "MigrationType": { "type": "string" }, - "BlockDeviceMappings": { - "items": { - "$ref": "#/definitions/AWS::EC2::Instance.BlockDeviceMapping" - }, - "type": "array" - }, - "CreditSpecification": { - "$ref": "#/definitions/AWS::EC2::Instance.CreditSpecification" - }, - "DisableApiTermination": { - "type": "boolean" - }, - "EbsOptimized": { - "type": "boolean" - }, - "ElasticGpuSpecifications": { - "items": { - "$ref": "#/definitions/AWS::EC2::Instance.ElasticGpuSpecification" - }, - "type": "array" - }, - "ElasticInferenceAccelerators": { - "items": { - "$ref": "#/definitions/AWS::EC2::Instance.ElasticInferenceAccelerator" - }, - "type": "array" - }, - "HostId": { + "ReplicationInstanceArn": { "type": "string" }, - "IamInstanceProfile": { + "ReplicationTaskIdentifier": { "type": "string" }, - "ImageId": { + "ReplicationTaskSettings": { "type": "string" }, - "InstanceInitiatedShutdownBehavior": { + "SourceEndpointArn": { "type": "string" }, - "InstanceType": { + "TableMappings": { "type": "string" }, - "Ipv6AddressCount": { - "type": "number" - }, - "Ipv6Addresses": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "KernelId": { + "TargetEndpointArn": { "type": "string" - }, - "KeyName": { + } + }, + "required": [ + "MigrationType", + "ReplicationInstanceArn", + "SourceEndpointArn", + "TableMappings", + "TargetEndpointArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DMS::ReplicationTask" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - "LaunchTemplate": { - "$ref": "#/definitions/AWS::EC2::Instance.LaunchTemplateSpecification" - }, - "LicenseSpecifications": { + { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.LicenseSpecification" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" - }, - "Monitoring": { + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Activate": { "type": "boolean" }, - "NetworkInterfaces": { - "items": { - "$ref": "#/definitions/AWS::EC2::Instance.NetworkInterface" - }, - "type": "array" - }, - "PlacementGroupName": { - "type": "string" - }, - "PrivateIpAddress": { + "Description": { "type": "string" }, - "RamdiskId": { + "Name": { "type": "string" }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SecurityGroups": { + "ParameterObjects": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterObject" }, "type": "array" }, - "SourceDestCheck": { - "type": "boolean" - }, - "SsmAssociations": { + "ParameterValues": { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.SsmAssociation" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterValue" }, "type": "array" }, - "SubnetId": { - "type": "string" - }, - "Tags": { + "PipelineObjects": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineObject" }, "type": "array" }, - "Tenancy": { - "type": "string" - }, - "UserData": { - "type": "string" - }, - "Volumes": { + "PipelineTags": { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.Volume" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineTag" }, "type": "array" } }, + "required": [ + "Name", + "ParameterObjects" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Instance" + "AWS::DataPipeline::Pipeline" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::Instance.AssociationParameter": { + "AWS::DataPipeline::Pipeline.Field": { "additionalProperties": false, "properties": { "Key": { "type": "string" }, - "Value": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "AWS::EC2::Instance.BlockDeviceMapping": { - "additionalProperties": false, - "properties": { - "DeviceName": { - "type": "string" - }, - "Ebs": { - "$ref": "#/definitions/AWS::EC2::Instance.Ebs" - }, - "NoDevice": { - "$ref": "#/definitions/AWS::EC2::Instance.NoDevice" - }, - "VirtualName": { - "type": "string" - } - }, - "required": [ - "DeviceName" - ], - "type": "object" - }, - "AWS::EC2::Instance.CreditSpecification": { - "additionalProperties": false, - "properties": { - "CPUCredits": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::Instance.Ebs": { - "additionalProperties": false, - "properties": { - "DeleteOnTermination": { - "type": "boolean" - }, - "Encrypted": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "SnapshotId": { + "RefValue": { "type": "string" }, - "VolumeSize": { - "type": "number" - }, - "VolumeType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::Instance.ElasticGpuSpecification": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::EC2::Instance.ElasticInferenceAccelerator": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::EC2::Instance.InstanceIpv6Address": { - "additionalProperties": false, - "properties": { - "Ipv6Address": { + "StringValue": { "type": "string" } }, "required": [ - "Ipv6Address" + "Key" ], "type": "object" }, - "AWS::EC2::Instance.LaunchTemplateSpecification": { + "AWS::DataPipeline::Pipeline.ParameterAttribute": { "additionalProperties": false, "properties": { - "LaunchTemplateId": { - "type": "string" - }, - "LaunchTemplateName": { + "Key": { "type": "string" }, - "Version": { - "type": "string" - } - }, - "required": [ - "Version" - ], - "type": "object" - }, - "AWS::EC2::Instance.LicenseSpecification": { - "additionalProperties": false, - "properties": { - "LicenseConfigurationArn": { + "StringValue": { "type": "string" } }, "required": [ - "LicenseConfigurationArn" + "Key", + "StringValue" ], "type": "object" }, - "AWS::EC2::Instance.NetworkInterface": { + "AWS::DataPipeline::Pipeline.ParameterObject": { "additionalProperties": false, "properties": { - "AssociatePublicIpAddress": { - "type": "boolean" - }, - "DeleteOnTermination": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "DeviceIndex": { - "type": "string" - }, - "GroupSet": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Ipv6AddressCount": { - "type": "number" - }, - "Ipv6Addresses": { - "items": { - "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address" - }, - "type": "array" - }, - "NetworkInterfaceId": { - "type": "string" - }, - "PrivateIpAddress": { - "type": "string" - }, - "PrivateIpAddresses": { + "Attributes": { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.PrivateIpAddressSpecification" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterAttribute" }, "type": "array" }, - "SecondaryPrivateIpAddressCount": { - "type": "number" - }, - "SubnetId": { + "Id": { "type": "string" } }, "required": [ - "DeviceIndex" + "Attributes", + "Id" ], "type": "object" }, - "AWS::EC2::Instance.NoDevice": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "AWS::EC2::Instance.PrivateIpAddressSpecification": { + "AWS::DataPipeline::Pipeline.ParameterValue": { "additionalProperties": false, "properties": { - "Primary": { - "type": "boolean" + "Id": { + "type": "string" }, - "PrivateIpAddress": { + "StringValue": { "type": "string" } }, "required": [ - "Primary", - "PrivateIpAddress" + "Id", + "StringValue" ], "type": "object" }, - "AWS::EC2::Instance.SsmAssociation": { + "AWS::DataPipeline::Pipeline.PipelineObject": { "additionalProperties": false, "properties": { - "AssociationParameters": { + "Fields": { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.AssociationParameter" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.Field" }, "type": "array" }, - "DocumentName": { + "Id": { + "type": "string" + }, + "Name": { "type": "string" } }, "required": [ - "DocumentName" + "Fields", + "Id", + "Name" ], "type": "object" }, - "AWS::EC2::Instance.Volume": { + "AWS::DataPipeline::Pipeline.PipelineTag": { "additionalProperties": false, "properties": { - "Device": { + "Key": { "type": "string" }, - "VolumeId": { + "Value": { "type": "string" } }, "required": [ - "Device", - "VolumeId" + "Key", + "Value" ], "type": "object" }, - "AWS::EC2::InternetGateway": { + "AWS::DirectoryService::MicrosoftAD": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -12526,28 +12009,68 @@ "Properties": { "additionalProperties": false, "properties": { - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "CreateAlias": { + "type": "boolean" + }, + "Edition": { + "type": "string" + }, + "EnableSso": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/AWS::DirectoryService::MicrosoftAD.VpcSettings" } }, + "required": [ + "Name", + "Password", + "VpcSettings" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::InternetGateway" + "AWS::DirectoryService::MicrosoftAD" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::LaunchTemplate": { + "AWS::DirectoryService::MicrosoftAD.VpcSettings": { + "additionalProperties": false, + "properties": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "SubnetIds", + "VpcId" + ], + "type": "object" + }, + "AWS::DirectoryService::SimpleAD": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -12579,331 +12102,72 @@ "Properties": { "additionalProperties": false, "properties": { - "LaunchTemplateData": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateData" + "CreateAlias": { + "type": "boolean" }, - "LaunchTemplateName": { + "Description": { + "type": "string" + }, + "EnableSso": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { "type": "string" + }, + "Size": { + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/AWS::DirectoryService::SimpleAD.VpcSettings" } }, + "required": [ + "Name", + "Password", + "Size", + "VpcSettings" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::LaunchTemplate" + "AWS::DirectoryService::SimpleAD" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::LaunchTemplate.BlockDeviceMapping": { + "AWS::DirectoryService::SimpleAD.VpcSettings": { "additionalProperties": false, "properties": { - "DeviceName": { - "type": "string" + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "Ebs": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ebs" - }, - "NoDevice": { - "type": "string" - }, - "VirtualName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.CreditSpecification": { - "additionalProperties": false, - "properties": { - "CpuCredits": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.Ebs": { - "additionalProperties": false, - "properties": { - "DeleteOnTermination": { - "type": "boolean" - }, - "Encrypted": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "KmsKeyId": { - "type": "string" - }, - "SnapshotId": { - "type": "string" - }, - "VolumeSize": { - "type": "number" - }, - "VolumeType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.ElasticGpuSpecification": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.IamInstanceProfile": { - "additionalProperties": false, - "properties": { - "Arn": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.InstanceMarketOptions": { - "additionalProperties": false, - "properties": { - "MarketType": { - "type": "string" - }, - "SpotOptions": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.SpotOptions" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.Ipv6Add": { - "additionalProperties": false, - "properties": { - "Ipv6Address": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.LaunchTemplateData": { - "additionalProperties": false, - "properties": { - "BlockDeviceMappings": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.BlockDeviceMapping" - }, - "type": "array" - }, - "CreditSpecification": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CreditSpecification" - }, - "DisableApiTermination": { - "type": "boolean" - }, - "EbsOptimized": { - "type": "boolean" - }, - "ElasticGpuSpecifications": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.ElasticGpuSpecification" - }, - "type": "array" - }, - "IamInstanceProfile": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.IamInstanceProfile" - }, - "ImageId": { - "type": "string" - }, - "InstanceInitiatedShutdownBehavior": { - "type": "string" - }, - "InstanceMarketOptions": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.InstanceMarketOptions" - }, - "InstanceType": { - "type": "string" - }, - "KernelId": { - "type": "string" - }, - "KeyName": { - "type": "string" - }, - "Monitoring": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Monitoring" - }, - "NetworkInterfaces": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.NetworkInterface" - }, - "type": "array" - }, - "Placement": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Placement" - }, - "RamDiskId": { - "type": "string" - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "TagSpecifications": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.TagSpecification" - }, - "type": "array" - }, - "UserData": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.Monitoring": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.NetworkInterface": { - "additionalProperties": false, - "properties": { - "AssociatePublicIpAddress": { - "type": "boolean" - }, - "DeleteOnTermination": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "DeviceIndex": { - "type": "number" - }, - "Groups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Ipv6AddressCount": { - "type": "number" - }, - "Ipv6Addresses": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ipv6Add" - }, - "type": "array" - }, - "NetworkInterfaceId": { - "type": "string" - }, - "PrivateIpAddress": { - "type": "string" - }, - "PrivateIpAddresses": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.PrivateIpAdd" - }, - "type": "array" - }, - "SecondaryPrivateIpAddressCount": { - "type": "number" - }, - "SubnetId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.Placement": { - "additionalProperties": false, - "properties": { - "Affinity": { - "type": "string" - }, - "AvailabilityZone": { - "type": "string" - }, - "GroupName": { - "type": "string" - }, - "HostId": { - "type": "string" - }, - "Tenancy": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.PrivateIpAdd": { - "additionalProperties": false, - "properties": { - "Primary": { - "type": "boolean" - }, - "PrivateIpAddress": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.SpotOptions": { - "additionalProperties": false, - "properties": { - "InstanceInterruptionBehavior": { - "type": "string" - }, - "MaxPrice": { - "type": "string" - }, - "SpotInstanceType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.TagSpecification": { - "additionalProperties": false, - "properties": { - "ResourceType": { + "VpcId": { "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" } }, + "required": [ + "SubnetIds", + "VpcId" + ], "type": "object" }, - "AWS::EC2::NatGateway": { + "AWS::DocDB::DBCluster": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -12935,39 +12199,79 @@ "Properties": { "additionalProperties": false, "properties": { - "AllocationId": { + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BackupRetentionPeriod": { + "type": "number" + }, + "DBClusterIdentifier": { "type": "string" }, - "SubnetId": { + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUsername": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "SnapshotIdentifier": { "type": "string" }, + "StorageEncrypted": { + "type": "boolean" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "AllocationId", - "SubnetId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::NatGateway" + "AWS::DocDB::DBCluster" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::NetworkAcl": { + "AWS::DocDB::DBClusterParameterGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -12999,24 +12303,35 @@ "Properties": { "additionalProperties": false, "properties": { + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "VpcId": { - "type": "string" } }, "required": [ - "VpcId" + "Description", + "Family", + "Parameters" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::NetworkAcl" + "AWS::DocDB::DBClusterParameterGroup" ], "type": "string" } @@ -13027,7 +12342,7 @@ ], "type": "object" }, - "AWS::EC2::NetworkAclEntry": { + "AWS::DocDB::DBInstance": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13059,46 +12374,40 @@ "Properties": { "additionalProperties": false, "properties": { - "CidrBlock": { - "type": "string" - }, - "Egress": { + "AutoMinorVersionUpgrade": { "type": "boolean" }, - "Icmp": { - "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.Icmp" - }, - "Ipv6CidrBlock": { + "AvailabilityZone": { "type": "string" }, - "NetworkAclId": { + "DBClusterIdentifier": { "type": "string" }, - "PortRange": { - "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.PortRange" + "DBInstanceClass": { + "type": "string" }, - "Protocol": { - "type": "number" + "DBInstanceIdentifier": { + "type": "string" }, - "RuleAction": { + "PreferredMaintenanceWindow": { "type": "string" }, - "RuleNumber": { - "type": "number" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "CidrBlock", - "NetworkAclId", - "Protocol", - "RuleAction", - "RuleNumber" + "DBClusterIdentifier", + "DBInstanceClass" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::NetworkAclEntry" + "AWS::DocDB::DBInstance" ], "type": "string" } @@ -13109,31 +12418,7 @@ ], "type": "object" }, - "AWS::EC2::NetworkAclEntry.Icmp": { - "additionalProperties": false, - "properties": { - "Code": { - "type": "number" - }, - "Type": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::EC2::NetworkAclEntry.PortRange": { - "additionalProperties": false, - "properties": { - "From": { - "type": "number" - }, - "To": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::EC2::NetworkInterface": { + "AWS::DocDB::DBSubnetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13165,42 +12450,18 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" - }, - "GroupSet": { - "items": { - "type": "string" - }, - "type": "array" - }, - "InterfaceType": { + "DBSubnetGroupDescription": { "type": "string" }, - "Ipv6AddressCount": { - "type": "number" - }, - "Ipv6Addresses": { - "$ref": "#/definitions/AWS::EC2::NetworkInterface.InstanceIpv6Address" - }, - "PrivateIpAddress": { + "DBSubnetGroupName": { "type": "string" }, - "PrivateIpAddresses": { + "SubnetIds": { "items": { - "$ref": "#/definitions/AWS::EC2::NetworkInterface.PrivateIpAddressSpecification" + "type": "string" }, "type": "array" }, - "SecondaryPrivateIpAddressCount": { - "type": "number" - }, - "SourceDestCheck": { - "type": "boolean" - }, - "SubnetId": { - "type": "string" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -13209,13 +12470,14 @@ } }, "required": [ - "SubnetId" + "DBSubnetGroupDescription", + "SubnetIds" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::NetworkInterface" + "AWS::DocDB::DBSubnetGroup" ], "type": "string" } @@ -13226,35 +12488,7 @@ ], "type": "object" }, - "AWS::EC2::NetworkInterface.InstanceIpv6Address": { - "additionalProperties": false, - "properties": { - "Ipv6Address": { - "type": "string" - } - }, - "required": [ - "Ipv6Address" - ], - "type": "object" - }, - "AWS::EC2::NetworkInterface.PrivateIpAddressSpecification": { - "additionalProperties": false, - "properties": { - "Primary": { - "type": "boolean" - }, - "PrivateIpAddress": { - "type": "string" - } - }, - "required": [ - "Primary", - "PrivateIpAddress" - ], - "type": "object" - }, - "AWS::EC2::NetworkInterfaceAttachment": { + "AWS::DynamoDB::Table": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13286,29 +12520,66 @@ "Properties": { "additionalProperties": false, "properties": { - "DeleteOnTermination": { - "type": "boolean" + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.AttributeDefinition" + }, + "type": "array" }, - "DeviceIndex": { + "BillingMode": { "type": "string" }, - "InstanceId": { - "type": "string" + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.GlobalSecondaryIndex" + }, + "type": "array" }, - "NetworkInterfaceId": { + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" + }, + "type": "array" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.LocalSecondaryIndex" + }, + "type": "array" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput" + }, + "SSESpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.SSESpecification" + }, + "StreamSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.StreamSpecification" + }, + "TableName": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.TimeToLiveSpecification" } }, "required": [ - "DeviceIndex", - "InstanceId", - "NetworkInterfaceId" + "KeySchema" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::NetworkInterfaceAttachment" + "AWS::DynamoDB::Table" ], "type": "string" } @@ -13319,119 +12590,168 @@ ], "type": "object" }, - "AWS::EC2::NetworkInterfacePermission": { + "AWS::DynamoDB::Table.AttributeDefinition": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "AttributeName": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "AwsAccountId": { - "type": "string" - }, - "NetworkInterfaceId": { - "type": "string" - }, - "Permission": { - "type": "string" - } + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" }, - "required": [ - "AwsAccountId", - "NetworkInterfaceId", - "Permission" - ], - "type": "object" + "type": "array" }, - "Type": { - "enum": [ - "AWS::EC2::NetworkInterfacePermission" - ], - "type": "string" + "Projection": { + "$ref": "#/definitions/AWS::DynamoDB::Table.Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput" } }, "required": [ - "Type", - "Properties" + "IndexName", + "KeySchema", + "Projection" ], "type": "object" }, - "AWS::EC2::PlacementGroup": { + "AWS::DynamoDB::Table.KeySchema": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "AttributeName": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "KeyType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "KeyType" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" }, - "Metadata": { - "type": "object" + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" + }, + "type": "array" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Strategy": { - "type": "string" - } + "Projection": { + "$ref": "#/definitions/AWS::DynamoDB::Table.Projection" + } + }, + "required": [ + "IndexName", + "KeySchema", + "Projection" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::DynamoDB::Table.Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" }, - "type": "object" + "type": "array" }, - "Type": { - "enum": [ - "AWS::EC2::PlacementGroup" - ], + "ProjectionType": { "type": "string" } }, + "type": "object" + }, + "AWS::DynamoDB::Table.ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "number" + }, + "WriteCapacityUnits": { + "type": "number" + } + }, "required": [ - "Type" + "ReadCapacityUnits", + "WriteCapacityUnits" ], "type": "object" }, - "AWS::EC2::Route": { + "AWS::DynamoDB::Table.SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "AttributeName", + "Enabled" + ], + "type": "object" + }, + "AWS::EC2::CustomerGateway": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13463,42 +12783,32 @@ "Properties": { "additionalProperties": false, "properties": { - "DestinationCidrBlock": { - "type": "string" - }, - "DestinationIpv6CidrBlock": { - "type": "string" - }, - "EgressOnlyInternetGatewayId": { - "type": "string" - }, - "GatewayId": { - "type": "string" - }, - "InstanceId": { - "type": "string" - }, - "NatGatewayId": { - "type": "string" + "BgpAsn": { + "type": "number" }, - "NetworkInterfaceId": { + "IpAddress": { "type": "string" }, - "RouteTableId": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "VpcPeeringConnectionId": { + "Type": { "type": "string" } }, "required": [ - "RouteTableId" + "BgpAsn", + "IpAddress", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Route" + "AWS::EC2::CustomerGateway" ], "type": "string" } @@ -13509,7 +12819,7 @@ ], "type": "object" }, - "AWS::EC2::RouteTable": { + "AWS::EC2::DHCPOptions": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13541,35 +12851,52 @@ "Properties": { "additionalProperties": false, "properties": { + "DomainName": { + "type": "string" + }, + "DomainNameServers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "NetbiosNameServers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "NetbiosNodeType": { + "type": "number" + }, + "NtpServers": { + "items": { + "type": "string" + }, + "type": "array" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "VpcId": { - "type": "string" } }, - "required": [ - "VpcId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::RouteTable" + "AWS::EC2::DHCPOptions" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::SecurityGroup": { + "AWS::EC2::EC2Fleet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13601,42 +12928,55 @@ "Properties": { "additionalProperties": false, "properties": { - "GroupDescription": { - "type": "string" - }, - "GroupName": { + "ExcessCapacityTerminationPolicy": { "type": "string" }, - "SecurityGroupEgress": { + "LaunchTemplateConfigs": { "items": { - "$ref": "#/definitions/AWS::EC2::SecurityGroup.Egress" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest" }, "type": "array" }, - "SecurityGroupIngress": { - "items": { - "$ref": "#/definitions/AWS::EC2::SecurityGroup.Ingress" - }, - "type": "array" + "OnDemandOptions": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.OnDemandOptionsRequest" }, - "Tags": { + "ReplaceUnhealthyInstances": { + "type": "boolean" + }, + "SpotOptions": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.SpotOptionsRequest" + }, + "TagSpecifications": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TagSpecification" }, "type": "array" }, - "VpcId": { + "TargetCapacitySpecification": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest" + }, + "TerminateInstancesWithExpiration": { + "type": "boolean" + }, + "Type": { + "type": "string" + }, + "ValidFrom": { + "type": "string" + }, + "ValidUntil": { "type": "string" } }, "required": [ - "GroupDescription" + "LaunchTemplateConfigs", + "TargetCapacitySpecification" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SecurityGroup" + "AWS::EC2::EC2Fleet" ], "type": "string" } @@ -13647,79 +12987,133 @@ ], "type": "object" }, - "AWS::EC2::SecurityGroup.Egress": { + "AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest": { "additionalProperties": false, "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest" }, - "Description": { + "Overrides": { + "items": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { "type": "string" }, - "DestinationPrefixListId": { + "InstanceType": { "type": "string" }, - "DestinationSecurityGroupId": { + "MaxPrice": { "type": "string" }, - "FromPort": { + "Priority": { "type": "number" }, - "IpProtocol": { + "SubnetId": { "type": "string" }, - "ToPort": { + "WeightedCapacity": { "type": "number" } }, - "required": [ - "IpProtocol" - ], "type": "object" }, - "AWS::EC2::SecurityGroup.Ingress": { + "AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest": { "additionalProperties": false, "properties": { - "CidrIp": { + "LaunchTemplateId": { "type": "string" }, - "CidrIpv6": { + "LaunchTemplateName": { "type": "string" }, - "Description": { + "Version": { "type": "string" - }, - "FromPort": { - "type": "number" - }, - "IpProtocol": { + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.OnDemandOptionsRequest": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.SpotOptionsRequest": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { "type": "string" }, - "SourcePrefixListId": { + "InstanceInterruptionBehavior": { "type": "string" }, - "SourceSecurityGroupId": { + "InstancePoolsToUseCount": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.TagRequest": { + "additionalProperties": false, + "properties": { + "Key": { "type": "string" }, - "SourceSecurityGroupName": { + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { "type": "string" }, - "SourceSecurityGroupOwnerId": { + "Tags": { + "items": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TagRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest": { + "additionalProperties": false, + "properties": { + "DefaultTargetCapacityType": { "type": "string" }, - "ToPort": { + "OnDemandTargetCapacity": { + "type": "number" + }, + "SpotTargetCapacity": { + "type": "number" + }, + "TotalTargetCapacity": { "type": "number" } }, "required": [ - "IpProtocol" + "TotalTargetCapacity" ], "type": "object" }, - "AWS::EC2::SecurityGroupEgress": { + "AWS::EC2::EIP": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13751,43 +13145,136 @@ "Properties": { "additionalProperties": false, "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { + "Domain": { "type": "string" }, - "Description": { + "InstanceId": { "type": "string" }, - "DestinationPrefixListId": { + "PublicIpv4Pool": { "type": "string" - }, - "DestinationSecurityGroupId": { + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::EIP" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::EIPAssociation": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - "FromPort": { - "type": "number" + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" }, - "GroupId": { + "EIP": { "type": "string" }, - "IpProtocol": { + "InstanceId": { "type": "string" }, - "ToPort": { - "type": "number" + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::EIPAssociation" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::EgressOnlyInternetGateway": { + "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": { + "VpcId": { + "type": "string" } }, "required": [ - "GroupId", - "IpProtocol" + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SecurityGroupEgress" + "AWS::EC2::EgressOnlyInternetGateway" ], "type": "string" } @@ -13798,7 +13285,7 @@ ], "type": "object" }, - "AWS::EC2::SecurityGroupIngress": { + "AWS::EC2::FlowLog": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13830,51 +13317,38 @@ "Properties": { "additionalProperties": false, "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "FromPort": { - "type": "number" - }, - "GroupId": { + "DeliverLogsPermissionArn": { "type": "string" }, - "GroupName": { + "LogDestination": { "type": "string" }, - "IpProtocol": { + "LogDestinationType": { "type": "string" }, - "SourcePrefixListId": { + "LogGroupName": { "type": "string" }, - "SourceSecurityGroupId": { + "ResourceId": { "type": "string" }, - "SourceSecurityGroupName": { + "ResourceType": { "type": "string" }, - "SourceSecurityGroupOwnerId": { + "TrafficType": { "type": "string" - }, - "ToPort": { - "type": "number" } }, "required": [ - "IpProtocol" + "ResourceId", + "ResourceType", + "TrafficType" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SecurityGroupIngress" + "AWS::EC2::FlowLog" ], "type": "string" } @@ -13885,7 +13359,7 @@ ], "type": "object" }, - "AWS::EC2::SpotFleet": { + "AWS::EC2::Host": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13917,18 +13391,25 @@ "Properties": { "additionalProperties": false, "properties": { - "SpotFleetRequestConfigData": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetRequestConfigData" + "AutoPlacement": { + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "InstanceType": { + "type": "string" } }, "required": [ - "SpotFleetRequestConfigData" + "AvailabilityZone", + "InstanceType" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SpotFleet" + "AWS::EC2::Host" ], "type": "string" } @@ -13939,55 +13420,241 @@ ], "type": "object" }, - "AWS::EC2::SpotFleet.BlockDeviceMapping": { + "AWS::EC2::Instance": { "additionalProperties": false, "properties": { - "DeviceName": { + "CreationPolicy": { + "type": "object" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "Ebs": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.EbsBlockDevice" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "NoDevice": { - "type": "string" + "Metadata": { + "type": "object" }, - "VirtualName": { + "Properties": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.BlockDeviceMapping" + }, + "type": "array" + }, + "CreditSpecification": { + "$ref": "#/definitions/AWS::EC2::Instance.CreditSpecification" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.ElasticGpuSpecification" + }, + "type": "array" + }, + "ElasticInferenceAccelerators": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.ElasticInferenceAccelerator" + }, + "type": "array" + }, + "HostId": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Ipv6AddressCount": { + "type": "number" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address" + }, + "type": "array" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::EC2::Instance.LaunchTemplateSpecification" + }, + "LicenseSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.LicenseSpecification" + }, + "type": "array" + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.NetworkInterface" + }, + "type": "array" + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.SsmAssociation" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Tenancy": { + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.Volume" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::Instance" + ], "type": "string" } }, "required": [ - "DeviceName" + "Type" ], "type": "object" }, - "AWS::EC2::SpotFleet.ClassicLoadBalancer": { + "AWS::EC2::Instance.AssociationParameter": { "additionalProperties": false, "properties": { - "Name": { + "Key": { "type": "string" + }, + "Value": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "Name" + "Key", + "Value" ], "type": "object" }, - "AWS::EC2::SpotFleet.ClassicLoadBalancersConfig": { + "AWS::EC2::Instance.BlockDeviceMapping": { "additionalProperties": false, "properties": { - "ClassicLoadBalancers": { - "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancer" - }, - "type": "array" + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/AWS::EC2::Instance.Ebs" + }, + "NoDevice": { + "$ref": "#/definitions/AWS::EC2::Instance.NoDevice" + }, + "VirtualName": { + "type": "string" } }, "required": [ - "ClassicLoadBalancers" + "DeviceName" ], "type": "object" }, - "AWS::EC2::SpotFleet.EbsBlockDevice": { + "AWS::EC2::Instance.CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::Instance.Ebs": { "additionalProperties": false, "properties": { "DeleteOnTermination": { @@ -14011,58 +13678,73 @@ }, "type": "object" }, - "AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification": { + "AWS::EC2::Instance.ElasticGpuSpecification": { "additionalProperties": false, "properties": { - "LaunchTemplateId": { - "type": "string" - }, - "LaunchTemplateName": { + "Type": { "type": "string" - }, - "Version": { + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::Instance.ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Type": { "type": "string" } }, "required": [ - "Version" + "Type" ], "type": "object" }, - "AWS::EC2::SpotFleet.GroupIdentifier": { + "AWS::EC2::Instance.InstanceIpv6Address": { "additionalProperties": false, "properties": { - "GroupId": { + "Ipv6Address": { "type": "string" } }, "required": [ - "GroupId" + "Ipv6Address" ], "type": "object" }, - "AWS::EC2::SpotFleet.IamInstanceProfileSpecification": { + "AWS::EC2::Instance.LaunchTemplateSpecification": { "additionalProperties": false, "properties": { - "Arn": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { "type": "string" } }, + "required": [ + "Version" + ], "type": "object" }, - "AWS::EC2::SpotFleet.InstanceIpv6Address": { + "AWS::EC2::Instance.LicenseSpecification": { "additionalProperties": false, "properties": { - "Ipv6Address": { + "LicenseConfigurationArn": { "type": "string" } }, "required": [ - "Ipv6Address" + "LicenseConfigurationArn" ], "type": "object" }, - "AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification": { + "AWS::EC2::Instance.NetworkInterface": { "additionalProperties": false, "properties": { "AssociatePublicIpAddress": { @@ -14075,9 +13757,9 @@ "type": "string" }, "DeviceIndex": { - "type": "number" + "type": "string" }, - "Groups": { + "GroupSet": { "items": { "type": "string" }, @@ -14088,16 +13770,19 @@ }, "Ipv6Addresses": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceIpv6Address" + "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address" }, "type": "array" }, "NetworkInterfaceId": { "type": "string" }, + "PrivateIpAddress": { + "type": "string" + }, "PrivateIpAddresses": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.PrivateIpAddressSpecification" + "$ref": "#/definitions/AWS::EC2::Instance.PrivateIpAddressSpecification" }, "type": "array" }, @@ -14108,57 +13793,17 @@ "type": "string" } }, + "required": [ + "DeviceIndex" + ], "type": "object" }, - "AWS::EC2::SpotFleet.LaunchTemplateConfig": { - "additionalProperties": false, - "properties": { - "LaunchTemplateSpecification": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification" - }, - "Overrides": { - "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateOverrides" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::EC2::SpotFleet.LaunchTemplateOverrides": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "type": "string" - }, - "InstanceType": { - "type": "string" - }, - "SpotPrice": { - "type": "string" - }, - "SubnetId": { - "type": "string" - }, - "WeightedCapacity": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::EC2::SpotFleet.LoadBalancersConfig": { + "AWS::EC2::Instance.NoDevice": { "additionalProperties": false, - "properties": { - "ClassicLoadBalancersConfig": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancersConfig" - }, - "TargetGroupsConfig": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroupsConfig" - } - }, + "properties": {}, "type": "object" }, - "AWS::EC2::SpotFleet.PrivateIpAddressSpecification": { + "AWS::EC2::Instance.PrivateIpAddressSpecification": { "additionalProperties": false, "properties": { "Primary": { @@ -14169,28 +13814,345 @@ } }, "required": [ + "Primary", "PrivateIpAddress" ], "type": "object" }, - "AWS::EC2::SpotFleet.SpotFleetLaunchSpecification": { + "AWS::EC2::Instance.SsmAssociation": { "additionalProperties": false, "properties": { - "BlockDeviceMappings": { + "AssociationParameters": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.BlockDeviceMapping" + "$ref": "#/definitions/AWS::EC2::Instance.AssociationParameter" + }, + "type": "array" + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "AWS::EC2::Instance.Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "Device", + "VolumeId" + ], + "type": "object" + }, + "AWS::EC2::InternetGateway": { + "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": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::InternetGateway" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::LaunchTemplate": { + "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": { + "LaunchTemplateData": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateData" + }, + "LaunchTemplateName": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::LaunchTemplate" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::LaunchTemplate.BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ebs" + }, + "NoDevice": { + "type": "string" + }, + "VirtualName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CapacityReservationPreference": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CapacityReservationSpecification": { + "additionalProperties": false, + "properties": { + "CapacityReservationPreference": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CapacityReservationPreference" + }, + "CapacityReservationTarget": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CapacityReservationTarget" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CapacityReservationTarget": { + "additionalProperties": false, + "properties": { + "CapacityReservationId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "number" + }, + "ThreadsPerCore": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CreditSpecification": { + "additionalProperties": false, + "properties": { + "CpuCredits": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.IamInstanceProfile": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.InstanceMarketOptions": { + "additionalProperties": false, + "properties": { + "MarketType": { + "type": "string" + }, + "SpotOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.SpotOptions" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Ipv6Add": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.LaunchTemplateData": { + "additionalProperties": false, + "properties": { + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.BlockDeviceMapping" }, "type": "array" }, + "CapacityReservationSpecification": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CapacityReservationSpecification" + }, + "CpuOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CpuOptions" + }, + "CreditSpecification": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CreditSpecification" + }, + "DisableApiTermination": { + "type": "boolean" + }, "EbsOptimized": { "type": "boolean" }, + "ElasticGpuSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.ElasticGpuSpecification" + }, + "type": "array" + }, + "ElasticInferenceAccelerators": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateElasticInferenceAccelerator" + }, + "type": "array" + }, + "HibernationOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.HibernationOptions" + }, "IamInstanceProfile": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.IamInstanceProfileSpecification" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.IamInstanceProfile" }, "ImageId": { "type": "string" }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceMarketOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.InstanceMarketOptions" + }, "InstanceType": { "type": "string" }, @@ -14200,53 +14162,70 @@ "KeyName": { "type": "string" }, + "LicenseSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LicenseSpecification" + }, + "type": "array" + }, "Monitoring": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetMonitoring" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Monitoring" }, "NetworkInterfaces": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.NetworkInterface" }, "type": "array" }, "Placement": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotPlacement" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Placement" }, - "RamdiskId": { + "RamDiskId": { "type": "string" }, - "SecurityGroups": { + "SecurityGroupIds": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.GroupIdentifier" + "type": "string" }, "type": "array" }, - "SpotPrice": { - "type": "string" - }, - "SubnetId": { - "type": "string" + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" }, "TagSpecifications": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetTagSpecification" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.TagSpecification" }, "type": "array" }, "UserData": { "type": "string" - }, - "WeightedCapacity": { - "type": "number" } }, - "required": [ - "ImageId", - "InstanceType" - ], "type": "object" }, - "AWS::EC2::SpotFleet.SpotFleetMonitoring": { + "AWS::EC2::LaunchTemplate.LaunchTemplateElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Monitoring": { "additionalProperties": false, "properties": { "Enabled": { @@ -14255,122 +14234,121 @@ }, "type": "object" }, - "AWS::EC2::SpotFleet.SpotFleetRequestConfigData": { + "AWS::EC2::LaunchTemplate.NetworkInterface": { "additionalProperties": false, "properties": { - "AllocationStrategy": { - "type": "string" + "AssociatePublicIpAddress": { + "type": "boolean" }, - "ExcessCapacityTerminationPolicy": { - "type": "string" + "DeleteOnTermination": { + "type": "boolean" }, - "IamFleetRole": { + "Description": { "type": "string" }, - "InstanceInterruptionBehavior": { - "type": "string" + "DeviceIndex": { + "type": "number" }, - "LaunchSpecifications": { + "Groups": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetLaunchSpecification" + "type": "string" }, "type": "array" }, - "LaunchTemplateConfigs": { + "Ipv6AddressCount": { + "type": "number" + }, + "Ipv6Addresses": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateConfig" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ipv6Add" }, "type": "array" }, - "LoadBalancersConfig": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.LoadBalancersConfig" - }, - "ReplaceUnhealthyInstances": { - "type": "boolean" + "NetworkInterfaceId": { + "type": "string" }, - "SpotPrice": { + "PrivateIpAddress": { "type": "string" }, - "TargetCapacity": { + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.PrivateIpAdd" + }, + "type": "array" + }, + "SecondaryPrivateIpAddressCount": { "type": "number" }, - "TerminateInstancesWithExpiration": { - "type": "boolean" + "SubnetId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Placement": { + "additionalProperties": false, + "properties": { + "Affinity": { + "type": "string" }, - "Type": { + "AvailabilityZone": { "type": "string" }, - "ValidFrom": { + "GroupName": { "type": "string" }, - "ValidUntil": { + "HostId": { + "type": "string" + }, + "Tenancy": { "type": "string" } }, - "required": [ - "IamFleetRole", - "TargetCapacity" - ], "type": "object" }, - "AWS::EC2::SpotFleet.SpotFleetTagSpecification": { + "AWS::EC2::LaunchTemplate.PrivateIpAdd": { "additionalProperties": false, "properties": { - "ResourceType": { - "type": "string" + "Primary": { + "type": "boolean" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "PrivateIpAddress": { + "type": "string" } }, "type": "object" }, - "AWS::EC2::SpotFleet.SpotPlacement": { + "AWS::EC2::LaunchTemplate.SpotOptions": { "additionalProperties": false, "properties": { - "AvailabilityZone": { + "InstanceInterruptionBehavior": { "type": "string" }, - "GroupName": { + "MaxPrice": { "type": "string" }, - "Tenancy": { + "SpotInstanceType": { "type": "string" } }, "type": "object" }, - "AWS::EC2::SpotFleet.TargetGroup": { + "AWS::EC2::LaunchTemplate.TagSpecification": { "additionalProperties": false, "properties": { - "Arn": { + "ResourceType": { "type": "string" - } - }, - "required": [ - "Arn" - ], - "type": "object" - }, - "AWS::EC2::SpotFleet.TargetGroupsConfig": { - "additionalProperties": false, - "properties": { - "TargetGroups": { + }, + "Tags": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroup" + "$ref": "#/definitions/Tag" }, "type": "array" } }, - "required": [ - "TargetGroups" - ], "type": "object" }, - "AWS::EC2::Subnet": { + "AWS::EC2::NatGateway": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14402,40 +14380,28 @@ "Properties": { "additionalProperties": false, "properties": { - "AssignIpv6AddressOnCreation": { - "type": "boolean" - }, - "AvailabilityZone": { - "type": "string" - }, - "CidrBlock": { + "AllocationId": { "type": "string" }, - "Ipv6CidrBlock": { + "SubnetId": { "type": "string" }, - "MapPublicIpOnLaunch": { - "type": "boolean" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "VpcId": { - "type": "string" } }, "required": [ - "CidrBlock", - "VpcId" + "AllocationId", + "SubnetId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Subnet" + "AWS::EC2::NatGateway" ], "type": "string" } @@ -14446,7 +14412,7 @@ ], "type": "object" }, - "AWS::EC2::SubnetCidrBlock": { + "AWS::EC2::NetworkAcl": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14478,22 +14444,24 @@ "Properties": { "additionalProperties": false, "properties": { - "Ipv6CidrBlock": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "SubnetId": { + "VpcId": { "type": "string" } }, "required": [ - "Ipv6CidrBlock", - "SubnetId" + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SubnetCidrBlock" + "AWS::EC2::NetworkAcl" ], "type": "string" } @@ -14504,7 +14472,7 @@ ], "type": "object" }, - "AWS::EC2::SubnetNetworkAclAssociation": { + "AWS::EC2::NetworkAclEntry": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14536,22 +14504,46 @@ "Properties": { "additionalProperties": false, "properties": { - "NetworkAclId": { + "CidrBlock": { "type": "string" }, - "SubnetId": { - "type": "string" - } + "Egress": { + "type": "boolean" + }, + "Icmp": { + "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.Icmp" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "NetworkAclId": { + "type": "string" + }, + "PortRange": { + "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.PortRange" + }, + "Protocol": { + "type": "number" + }, + "RuleAction": { + "type": "string" + }, + "RuleNumber": { + "type": "number" + } }, "required": [ + "CidrBlock", "NetworkAclId", - "SubnetId" + "Protocol", + "RuleAction", + "RuleNumber" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SubnetNetworkAclAssociation" + "AWS::EC2::NetworkAclEntry" ], "type": "string" } @@ -14562,65 +14554,31 @@ ], "type": "object" }, - "AWS::EC2::SubnetRouteTableAssociation": { + "AWS::EC2::NetworkAclEntry.Icmp": { "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": { - "RouteTableId": { - "type": "string" - }, - "SubnetId": { - "type": "string" - } - }, - "required": [ - "RouteTableId", - "SubnetId" - ], - "type": "object" + "Code": { + "type": "number" }, "Type": { - "enum": [ - "AWS::EC2::SubnetRouteTableAssociation" - ], - "type": "string" + "type": "number" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::EC2::TransitGateway": { + "AWS::EC2::NetworkAclEntry.PortRange": { + "additionalProperties": false, + "properties": { + "From": { + "type": "number" + }, + "To": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInterface": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14652,22 +14610,40 @@ "Properties": { "additionalProperties": false, "properties": { - "AmazonSideAsn": { - "type": "number" - }, - "AutoAcceptSharedAttachments": { + "Description": { "type": "string" }, - "DefaultRouteTableAssociation": { - "type": "string" + "GroupSet": { + "items": { + "type": "string" + }, + "type": "array" }, - "DefaultRouteTablePropagation": { + "InterfaceType": { "type": "string" }, - "Description": { + "Ipv6AddressCount": { + "type": "number" + }, + "Ipv6Addresses": { + "$ref": "#/definitions/AWS::EC2::NetworkInterface.InstanceIpv6Address" + }, + "PrivateIpAddress": { "type": "string" }, - "DnsSupport": { + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInterface.PrivateIpAddressSpecification" + }, + "type": "array" + }, + "SecondaryPrivateIpAddressCount": { + "type": "number" + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SubnetId": { "type": "string" }, "Tags": { @@ -14675,26 +14651,55 @@ "$ref": "#/definitions/Tag" }, "type": "array" - }, - "VpnEcmpSupport": { - "type": "string" } }, + "required": [ + "SubnetId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGateway" + "AWS::EC2::NetworkInterface" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::TransitGatewayAttachment": { + "AWS::EC2::NetworkInterface.InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "AWS::EC2::NetworkInterface.PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "Primary", + "PrivateIpAddress" + ], + "type": "object" + }, + "AWS::EC2::NetworkInterfaceAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14726,35 +14731,29 @@ "Properties": { "additionalProperties": false, "properties": { - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" + "DeleteOnTermination": { + "type": "boolean" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "DeviceIndex": { + "type": "string" }, - "TransitGatewayId": { + "InstanceId": { "type": "string" }, - "VpcId": { + "NetworkInterfaceId": { "type": "string" } }, "required": [ - "SubnetIds", - "TransitGatewayId", - "VpcId" + "DeviceIndex", + "InstanceId", + "NetworkInterfaceId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayAttachment" + "AWS::EC2::NetworkInterfaceAttachment" ], "type": "string" } @@ -14765,7 +14764,7 @@ ], "type": "object" }, - "AWS::EC2::TransitGatewayRoute": { + "AWS::EC2::NetworkInterfacePermission": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14797,27 +14796,26 @@ "Properties": { "additionalProperties": false, "properties": { - "Blackhole": { - "type": "boolean" - }, - "DestinationCidrBlock": { + "AwsAccountId": { "type": "string" }, - "TransitGatewayAttachmentId": { + "NetworkInterfaceId": { "type": "string" }, - "TransitGatewayRouteTableId": { + "Permission": { "type": "string" } }, "required": [ - "TransitGatewayRouteTableId" + "AwsAccountId", + "NetworkInterfaceId", + "Permission" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRoute" + "AWS::EC2::NetworkInterfacePermission" ], "type": "string" } @@ -14828,7 +14826,7 @@ ], "type": "object" }, - "AWS::EC2::TransitGatewayRouteTable": { + "AWS::EC2::PlacementGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14860,35 +14858,25 @@ "Properties": { "additionalProperties": false, "properties": { - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "TransitGatewayId": { + "Strategy": { "type": "string" } }, - "required": [ - "TransitGatewayId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRouteTable" + "AWS::EC2::PlacementGroup" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::TransitGatewayRouteTableAssociation": { + "AWS::EC2::Route": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14920,22 +14908,42 @@ "Properties": { "additionalProperties": false, "properties": { - "TransitGatewayAttachmentId": { + "DestinationCidrBlock": { "type": "string" }, - "TransitGatewayRouteTableId": { + "DestinationIpv6CidrBlock": { + "type": "string" + }, + "EgressOnlyInternetGatewayId": { + "type": "string" + }, + "GatewayId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "NatGatewayId": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "RouteTableId": { + "type": "string" + }, + "VpcPeeringConnectionId": { "type": "string" } }, "required": [ - "TransitGatewayAttachmentId", - "TransitGatewayRouteTableId" + "RouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRouteTableAssociation" + "AWS::EC2::Route" ], "type": "string" } @@ -14946,7 +14954,7 @@ ], "type": "object" }, - "AWS::EC2::TransitGatewayRouteTablePropagation": { + "AWS::EC2::RouteTable": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14978,22 +14986,24 @@ "Properties": { "additionalProperties": false, "properties": { - "TransitGatewayAttachmentId": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "TransitGatewayRouteTableId": { + "VpcId": { "type": "string" } }, "required": [ - "TransitGatewayAttachmentId", - "TransitGatewayRouteTableId" + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRouteTablePropagation" + "AWS::EC2::RouteTable" ], "type": "string" } @@ -15004,7 +15014,7 @@ ], "type": "object" }, - "AWS::EC2::TrunkInterfaceAssociation": { + "AWS::EC2::SecurityGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15036,28 +15046,42 @@ "Properties": { "additionalProperties": false, "properties": { - "BranchInterfaceId": { + "GroupDescription": { "type": "string" }, - "GREKey": { - "type": "number" - }, - "TrunkInterfaceId": { + "GroupName": { "type": "string" }, - "VLANId": { - "type": "number" + "SecurityGroupEgress": { + "items": { + "$ref": "#/definitions/AWS::EC2::SecurityGroup.Egress" + }, + "type": "array" + }, + "SecurityGroupIngress": { + "items": { + "$ref": "#/definitions/AWS::EC2::SecurityGroup.Ingress" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { + "type": "string" } }, "required": [ - "BranchInterfaceId", - "TrunkInterfaceId" + "GroupDescription" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TrunkInterfaceAssociation" + "AWS::EC2::SecurityGroup" ], "type": "string" } @@ -15068,7 +15092,79 @@ ], "type": "object" }, - "AWS::EC2::VPC": { + "AWS::EC2::SecurityGroup.Egress": { + "additionalProperties": false, + "properties": { + "CidrIp": { + "type": "string" + }, + "CidrIpv6": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DestinationPrefixListId": { + "type": "string" + }, + "DestinationSecurityGroupId": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "IpProtocol": { + "type": "string" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "IpProtocol" + ], + "type": "object" + }, + "AWS::EC2::SecurityGroup.Ingress": { + "additionalProperties": false, + "properties": { + "CidrIp": { + "type": "string" + }, + "CidrIpv6": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "IpProtocol": { + "type": "string" + }, + "SourcePrefixListId": { + "type": "string" + }, + "SourceSecurityGroupId": { + "type": "string" + }, + "SourceSecurityGroupName": { + "type": "string" + }, + "SourceSecurityGroupOwnerId": { + "type": "string" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "IpProtocol" + ], + "type": "object" + }, + "AWS::EC2::SecurityGroupEgress": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15100,33 +15196,43 @@ "Properties": { "additionalProperties": false, "properties": { - "CidrBlock": { + "CidrIp": { "type": "string" }, - "EnableDnsHostnames": { - "type": "boolean" + "CidrIpv6": { + "type": "string" }, - "EnableDnsSupport": { - "type": "boolean" + "Description": { + "type": "string" }, - "InstanceTenancy": { + "DestinationPrefixListId": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "DestinationSecurityGroupId": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "GroupId": { + "type": "string" + }, + "IpProtocol": { + "type": "string" + }, + "ToPort": { + "type": "number" } }, "required": [ - "CidrBlock" + "GroupId", + "IpProtocol" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPC" + "AWS::EC2::SecurityGroupEgress" ], "type": "string" } @@ -15137,7 +15243,7 @@ ], "type": "object" }, - "AWS::EC2::VPCCidrBlock": { + "AWS::EC2::SecurityGroupIngress": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15169,24 +15275,51 @@ "Properties": { "additionalProperties": false, "properties": { - "AmazonProvidedIpv6CidrBlock": { - "type": "boolean" + "CidrIp": { + "type": "string" }, - "CidrBlock": { + "CidrIpv6": { "type": "string" }, - "VpcId": { + "Description": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "GroupId": { + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "IpProtocol": { + "type": "string" + }, + "SourcePrefixListId": { + "type": "string" + }, + "SourceSecurityGroupId": { + "type": "string" + }, + "SourceSecurityGroupName": { + "type": "string" + }, + "SourceSecurityGroupOwnerId": { "type": "string" + }, + "ToPort": { + "type": "number" } }, "required": [ - "VpcId" + "IpProtocol" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCCidrBlock" + "AWS::EC2::SecurityGroupIngress" ], "type": "string" } @@ -15197,7 +15330,7 @@ ], "type": "object" }, - "AWS::EC2::VPCDHCPOptionsAssociation": { + "AWS::EC2::SpotFleet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15229,22 +15362,18 @@ "Properties": { "additionalProperties": false, "properties": { - "DhcpOptionsId": { - "type": "string" - }, - "VpcId": { - "type": "string" + "SpotFleetRequestConfigData": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetRequestConfigData" } }, "required": [ - "DhcpOptionsId", - "VpcId" + "SpotFleetRequestConfigData" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCDHCPOptionsAssociation" + "AWS::EC2::SpotFleet" ], "type": "string" } @@ -15255,92 +15384,438 @@ ], "type": "object" }, - "AWS::EC2::VPCEndpoint": { + "AWS::EC2::SpotFleet.BlockDeviceMapping": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "DeviceName": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Ebs": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.EbsBlockDevice" }, - "Metadata": { - "type": "object" + "NoDevice": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "PolicyDocument": { - "type": "object" - }, - "PrivateDnsEnabled": { - "type": "boolean" - }, - "RouteTableIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ServiceName": { - "type": "string" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "VPCEndpointType": { - "type": "string" - }, - "VpcId": { - "type": "string" - } + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.ClassicLoadBalancer": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.ClassicLoadBalancersConfig": { + "additionalProperties": false, + "properties": { + "ClassicLoadBalancers": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancer" }, - "required": [ - "ServiceName", - "VpcId" - ], - "type": "object" + "type": "array" + } + }, + "required": [ + "ClassicLoadBalancers" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.EbsBlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Version" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.GroupIdentifier": { + "additionalProperties": false, + "properties": { + "GroupId": { + "type": "string" + } + }, + "required": [ + "GroupId" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.IamInstanceProfileSpecification": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification": { + "additionalProperties": false, + "properties": { + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "number" + }, + "Groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Ipv6AddressCount": { + "type": "number" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceIpv6Address" + }, + "type": "array" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.PrivateIpAddressSpecification" + }, + "type": "array" + }, + "SecondaryPrivateIpAddressCount": { + "type": "number" + }, + "SubnetId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.LaunchTemplateConfig": { + "additionalProperties": false, + "properties": { + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification" + }, + "Overrides": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateOverrides" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.LaunchTemplateOverrides": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "SpotPrice": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.LoadBalancersConfig": { + "additionalProperties": false, + "properties": { + "ClassicLoadBalancersConfig": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancersConfig" + }, + "TargetGroupsConfig": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroupsConfig" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotFleetLaunchSpecification": { + "additionalProperties": false, + "properties": { + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.BlockDeviceMapping" + }, + "type": "array" + }, + "EbsOptimized": { + "type": "boolean" + }, + "IamInstanceProfile": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.IamInstanceProfileSpecification" + }, + "ImageId": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "Monitoring": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetMonitoring" + }, + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification" + }, + "type": "array" + }, + "Placement": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotPlacement" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.GroupIdentifier" + }, + "type": "array" + }, + "SpotPrice": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetTagSpecification" + }, + "type": "array" + }, + "UserData": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "required": [ + "ImageId", + "InstanceType" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotFleetMonitoring": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotFleetRequestConfigData": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "ExcessCapacityTerminationPolicy": { + "type": "string" + }, + "IamFleetRole": { + "type": "string" + }, + "InstanceInterruptionBehavior": { + "type": "string" + }, + "LaunchSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetLaunchSpecification" + }, + "type": "array" + }, + "LaunchTemplateConfigs": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateConfig" + }, + "type": "array" + }, + "LoadBalancersConfig": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.LoadBalancersConfig" + }, + "ReplaceUnhealthyInstances": { + "type": "boolean" + }, + "SpotPrice": { + "type": "string" + }, + "TargetCapacity": { + "type": "number" + }, + "TerminateInstancesWithExpiration": { + "type": "boolean" }, "Type": { - "enum": [ - "AWS::EC2::VPCEndpoint" - ], + "type": "string" + }, + "ValidFrom": { + "type": "string" + }, + "ValidUntil": { "type": "string" } }, "required": [ - "Type", - "Properties" + "IamFleetRole", + "TargetCapacity" ], "type": "object" }, - "AWS::EC2::VPCEndpointConnectionNotification": { + "AWS::EC2::SpotFleet.SpotFleetTagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotPlacement": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "Tenancy": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.TargetGroup": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.TargetGroupsConfig": { + "additionalProperties": false, + "properties": { + "TargetGroups": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroup" + }, + "type": "array" + } + }, + "required": [ + "TargetGroups" + ], + "type": "object" + }, + "AWS::EC2::Subnet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15372,31 +15847,40 @@ "Properties": { "additionalProperties": false, "properties": { - "ConnectionEvents": { - "items": { - "type": "string" - }, - "type": "array" + "AssignIpv6AddressOnCreation": { + "type": "boolean" }, - "ConnectionNotificationArn": { + "AvailabilityZone": { "type": "string" }, - "ServiceId": { + "CidrBlock": { "type": "string" }, - "VPCEndpointId": { + "Ipv6CidrBlock": { + "type": "string" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { "type": "string" } }, "required": [ - "ConnectionEvents", - "ConnectionNotificationArn" + "CidrBlock", + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpointConnectionNotification" + "AWS::EC2::Subnet" ], "type": "string" } @@ -15407,7 +15891,7 @@ ], "type": "object" }, - "AWS::EC2::VPCEndpointServicePermissions": { + "AWS::EC2::SubnetCidrBlock": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15439,24 +15923,22 @@ "Properties": { "additionalProperties": false, "properties": { - "AllowedPrincipals": { - "items": { - "type": "string" - }, - "type": "array" + "Ipv6CidrBlock": { + "type": "string" }, - "ServiceId": { + "SubnetId": { "type": "string" } }, "required": [ - "ServiceId" + "Ipv6CidrBlock", + "SubnetId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpointServicePermissions" + "AWS::EC2::SubnetCidrBlock" ], "type": "string" } @@ -15467,7 +15949,7 @@ ], "type": "object" }, - "AWS::EC2::VPCGatewayAttachment": { + "AWS::EC2::SubnetNetworkAclAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15499,24 +15981,22 @@ "Properties": { "additionalProperties": false, "properties": { - "InternetGatewayId": { + "NetworkAclId": { "type": "string" }, - "VpcId": { - "type": "string" - }, - "VpnGatewayId": { + "SubnetId": { "type": "string" } }, "required": [ - "VpcId" + "NetworkAclId", + "SubnetId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCGatewayAttachment" + "AWS::EC2::SubnetNetworkAclAssociation" ], "type": "string" } @@ -15527,7 +16007,7 @@ ], "type": "object" }, - "AWS::EC2::VPCPeeringConnection": { + "AWS::EC2::SubnetRouteTableAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15559,37 +16039,22 @@ "Properties": { "additionalProperties": false, "properties": { - "PeerOwnerId": { - "type": "string" - }, - "PeerRegion": { - "type": "string" - }, - "PeerRoleArn": { - "type": "string" - }, - "PeerVpcId": { + "RouteTableId": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VpcId": { + "SubnetId": { "type": "string" } }, "required": [ - "PeerVpcId", - "VpcId" + "RouteTableId", + "SubnetId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCPeeringConnection" + "AWS::EC2::SubnetRouteTableAssociation" ], "type": "string" } @@ -15600,7 +16065,7 @@ ], "type": "object" }, - "AWS::EC2::VPNConnection": { + "AWS::EC2::TransitGateway": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15632,64 +16097,49 @@ "Properties": { "additionalProperties": false, "properties": { - "CustomerGatewayId": { + "AmazonSideAsn": { + "type": "number" + }, + "AutoAcceptSharedAttachments": { "type": "string" }, - "StaticRoutesOnly": { - "type": "boolean" + "DefaultRouteTableAssociation": { + "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "DefaultRouteTablePropagation": { + "type": "string" }, - "Type": { + "Description": { "type": "string" }, - "VpnGatewayId": { + "DnsSupport": { "type": "string" }, - "VpnTunnelOptionsSpecifications": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification" + "$ref": "#/definitions/Tag" }, "type": "array" + }, + "VpnEcmpSupport": { + "type": "string" } }, - "required": [ - "CustomerGatewayId", - "Type", - "VpnGatewayId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNConnection" + "AWS::EC2::TransitGateway" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification": { - "additionalProperties": false, - "properties": { - "PreSharedKey": { - "type": "string" - }, - "TunnelInsideCidr": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::VPNConnectionRoute": { + "AWS::EC2::TransitGatewayAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15721,22 +16171,35 @@ "Properties": { "additionalProperties": false, "properties": { - "DestinationCidrBlock": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitGatewayId": { "type": "string" }, - "VpnConnectionId": { + "VpcId": { "type": "string" } }, "required": [ - "DestinationCidrBlock", - "VpnConnectionId" + "SubnetIds", + "TransitGatewayId", + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNConnectionRoute" + "AWS::EC2::TransitGatewayAttachment" ], "type": "string" } @@ -15747,7 +16210,7 @@ ], "type": "object" }, - "AWS::EC2::VPNGateway": { + "AWS::EC2::TransitGatewayRoute": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15779,27 +16242,27 @@ "Properties": { "additionalProperties": false, "properties": { - "AmazonSideAsn": { - "type": "number" + "Blackhole": { + "type": "boolean" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "DestinationCidrBlock": { + "type": "string" }, - "Type": { + "TransitGatewayAttachmentId": { + "type": "string" + }, + "TransitGatewayRouteTableId": { "type": "string" } }, "required": [ - "Type" + "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNGateway" + "AWS::EC2::TransitGatewayRoute" ], "type": "string" } @@ -15810,7 +16273,7 @@ ], "type": "object" }, - "AWS::EC2::VPNGatewayRoutePropagation": { + "AWS::EC2::TransitGatewayRouteTable": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15842,25 +16305,24 @@ "Properties": { "additionalProperties": false, "properties": { - "RouteTableIds": { + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "VpnGatewayId": { + "TransitGatewayId": { "type": "string" } }, "required": [ - "RouteTableIds", - "VpnGatewayId" + "TransitGatewayId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNGatewayRoutePropagation" + "AWS::EC2::TransitGatewayRouteTable" ], "type": "string" } @@ -15871,7 +16333,7 @@ ], "type": "object" }, - "AWS::EC2::Volume": { + "AWS::EC2::TransitGatewayRouteTableAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15903,45 +16365,22 @@ "Properties": { "additionalProperties": false, "properties": { - "AutoEnableIO": { - "type": "boolean" - }, - "AvailabilityZone": { - "type": "string" - }, - "Encrypted": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "KmsKeyId": { - "type": "string" - }, - "Size": { - "type": "number" - }, - "SnapshotId": { + "TransitGatewayAttachmentId": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VolumeType": { + "TransitGatewayRouteTableId": { "type": "string" } }, "required": [ - "AvailabilityZone" + "TransitGatewayAttachmentId", + "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Volume" + "AWS::EC2::TransitGatewayRouteTableAssociation" ], "type": "string" } @@ -15952,7 +16391,7 @@ ], "type": "object" }, - "AWS::EC2::VolumeAttachment": { + "AWS::EC2::TransitGatewayRouteTablePropagation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15984,26 +16423,22 @@ "Properties": { "additionalProperties": false, "properties": { - "Device": { - "type": "string" - }, - "InstanceId": { + "TransitGatewayAttachmentId": { "type": "string" }, - "VolumeId": { + "TransitGatewayRouteTableId": { "type": "string" } }, "required": [ - "Device", - "InstanceId", - "VolumeId" + "TransitGatewayAttachmentId", + "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VolumeAttachment" + "AWS::EC2::TransitGatewayRouteTablePropagation" ], "type": "string" } @@ -16014,7 +16449,7 @@ ], "type": "object" }, - "AWS::ECR::Repository": { + "AWS::EC2::TrunkInterfaceAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -16046,43 +16481,39 @@ "Properties": { "additionalProperties": false, "properties": { - "LifecyclePolicy": { - "$ref": "#/definitions/AWS::ECR::Repository.LifecyclePolicy" + "BranchInterfaceId": { + "type": "string" }, - "RepositoryName": { + "GREKey": { + "type": "number" + }, + "TrunkInterfaceId": { "type": "string" }, - "RepositoryPolicyText": { - "type": "object" + "VLANId": { + "type": "number" } }, + "required": [ + "BranchInterfaceId", + "TrunkInterfaceId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ECR::Repository" + "AWS::EC2::TrunkInterfaceAssociation" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECR::Repository.LifecyclePolicy": { - "additionalProperties": false, - "properties": { - "LifecyclePolicyText": { - "type": "string" - }, - "RegistryId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::Cluster": { + "AWS::EC2::VPC": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -16114,25 +16545,44 @@ "Properties": { "additionalProperties": false, "properties": { - "ClusterName": { + "CidrBlock": { + "type": "string" + }, + "EnableDnsHostnames": { + "type": "boolean" + }, + "EnableDnsSupport": { + "type": "boolean" + }, + "InstanceTenancy": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, + "required": [ + "CidrBlock" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ECS::Cluster" + "AWS::EC2::VPC" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::Service": { + "AWS::EC2::VPCCidrBlock": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -16164,72 +16614,167 @@ "Properties": { "additionalProperties": false, "properties": { - "Cluster": { - "type": "string" + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" }, - "DeploymentConfiguration": { - "$ref": "#/definitions/AWS::ECS::Service.DeploymentConfiguration" + "CidrBlock": { + "type": "string" }, - "DesiredCount": { - "type": "number" + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCCidrBlock" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPCDHCPOptionsAssociation": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, - "HealthCheckGracePeriodSeconds": { - "type": "number" + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DhcpOptionsId": { + "type": "string" }, - "LaunchType": { + "VpcId": { + "type": "string" + } + }, + "required": [ + "DhcpOptionsId", + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCDHCPOptionsAssociation" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPCEndpoint": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - "LoadBalancers": { + { "items": { - "$ref": "#/definitions/AWS::ECS::Service.LoadBalancer" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" }, - "NetworkConfiguration": { - "$ref": "#/definitions/AWS::ECS::Service.NetworkConfiguration" + "PrivateDnsEnabled": { + "type": "boolean" }, - "PlacementConstraints": { + "RouteTableIds": { "items": { - "$ref": "#/definitions/AWS::ECS::Service.PlacementConstraint" + "type": "string" }, "type": "array" }, - "PlacementStrategies": { + "SecurityGroupIds": { "items": { - "$ref": "#/definitions/AWS::ECS::Service.PlacementStrategy" + "type": "string" }, "type": "array" }, - "PlatformVersion": { - "type": "string" - }, - "Role": { - "type": "string" - }, - "SchedulingStrategy": { - "type": "string" - }, "ServiceName": { "type": "string" }, - "ServiceRegistries": { + "SubnetIds": { "items": { - "$ref": "#/definitions/AWS::ECS::Service.ServiceRegistry" + "type": "string" }, "type": "array" }, - "TaskDefinition": { + "VpcEndpointType": { + "type": "string" + }, + "VpcId": { "type": "string" } }, "required": [ - "TaskDefinition" + "ServiceName", + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::ECS::Service" + "AWS::EC2::VPCEndpoint" ], "type": "string" } @@ -16240,121 +16785,267 @@ ], "type": "object" }, - "AWS::ECS::Service.AwsVpcConfiguration": { + "AWS::EC2::VPCEndpointConnectionNotification": { "additionalProperties": false, "properties": { - "AssignPublicIp": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "SecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Subnets": { - "items": { - "type": "string" + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ConnectionEvents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ConnectionNotificationArn": { + "type": "string" + }, + "ServiceId": { + "type": "string" + }, + "VPCEndpointId": { + "type": "string" + } }, - "type": "array" + "required": [ + "ConnectionEvents", + "ConnectionNotificationArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCEndpointConnectionNotification" + ], + "type": "string" } }, "required": [ - "Subnets" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::Service.DeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "MaximumPercent": { - "type": "number" - }, - "MinimumHealthyPercent": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ECS::Service.LoadBalancer": { + "AWS::EC2::VPCEndpointServicePermissions": { "additionalProperties": false, "properties": { - "ContainerName": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "ContainerPort": { - "type": "number" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "LoadBalancerName": { - "type": "string" + "Metadata": { + "type": "object" }, - "TargetGroupArn": { - "type": "string" - } - }, - "required": [ - "ContainerPort" - ], - "type": "object" - }, - "AWS::ECS::Service.NetworkConfiguration": { - "additionalProperties": false, - "properties": { - "AwsvpcConfiguration": { - "$ref": "#/definitions/AWS::ECS::Service.AwsVpcConfiguration" - } - }, - "type": "object" - }, - "AWS::ECS::Service.PlacementConstraint": { - "additionalProperties": false, - "properties": { - "Expression": { - "type": "string" + "Properties": { + "additionalProperties": false, + "properties": { + "AllowedPrincipals": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ServiceId": { + "type": "string" + } + }, + "required": [ + "ServiceId" + ], + "type": "object" }, "Type": { + "enum": [ + "AWS::EC2::VPCEndpointServicePermissions" + ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::Service.PlacementStrategy": { + "AWS::EC2::VPCGatewayAttachment": { "additionalProperties": false, "properties": { - "Field": { + "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": { + "InternetGatewayId": { + "type": "string" + }, + "VpcId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + } + }, + "required": [ + "VpcId" + ], + "type": "object" + }, "Type": { + "enum": [ + "AWS::EC2::VPCGatewayAttachment" + ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::Service.ServiceRegistry": { + "AWS::EC2::VPCPeeringConnection": { "additionalProperties": false, "properties": { - "ContainerName": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "ContainerPort": { - "type": "number" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Port": { - "type": "number" + "Metadata": { + "type": "object" }, - "RegistryArn": { + "Properties": { + "additionalProperties": false, + "properties": { + "PeerOwnerId": { + "type": "string" + }, + "PeerRegion": { + "type": "string" + }, + "PeerRoleArn": { + "type": "string" + }, + "PeerVpcId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "PeerVpcId", + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCPeeringConnection" + ], "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::ECS::TaskDefinition": { + "AWS::EC2::VPNConnection": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -16386,502 +17077,122 @@ "Properties": { "additionalProperties": false, "properties": { - "ContainerDefinitions": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.ContainerDefinition" - }, - "type": "array" - }, - "Cpu": { - "type": "string" - }, - "ExecutionRoleArn": { - "type": "string" - }, - "Family": { - "type": "string" - }, - "Memory": { + "CustomerGatewayId": { "type": "string" }, - "NetworkMode": { - "type": "string" + "StaticRoutesOnly": { + "type": "boolean" }, - "PlacementConstraints": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "RequiresCompatibilities": { - "items": { - "type": "string" - }, - "type": "array" + "Type": { + "type": "string" }, - "TaskRoleArn": { + "VpnGatewayId": { "type": "string" }, - "Volumes": { + "VpnTunnelOptionsSpecifications": { "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.Volume" + "$ref": "#/definitions/AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification" }, "type": "array" } }, + "required": [ + "CustomerGatewayId", + "Type", + "VpnGatewayId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ECS::TaskDefinition" + "AWS::EC2::VPNConnection" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::TaskDefinition.ContainerDefinition": { + "AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification": { "additionalProperties": false, "properties": { - "Command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Cpu": { - "type": "number" + "PreSharedKey": { + "type": "string" }, - "DisableNetworking": { - "type": "boolean" + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::VPNConnectionRoute": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" }, - "DnsSearchDomains": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DnsServers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DockerLabels": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - }, - "type": "object" - }, - "DockerSecurityOptions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EntryPoint": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Environment": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.KeyValuePair" - }, - "type": "array" - }, - "Essential": { - "type": "boolean" - }, - "ExtraHosts": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostEntry" - }, - "type": "array" - }, - "HealthCheck": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.HealthCheck" - }, - "Hostname": { - "type": "string" - }, - "Image": { - "type": "string" - }, - "Links": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LinuxParameters": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.LinuxParameters" - }, - "LogConfiguration": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.LogConfiguration" - }, - "Memory": { - "type": "number" - }, - "MemoryReservation": { - "type": "number" - }, - "MountPoints": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.MountPoint" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "PortMappings": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.PortMapping" - }, - "type": "array" - }, - "Privileged": { - "type": "boolean" - }, - "ReadonlyRootFilesystem": { - "type": "boolean" - }, - "RepositoryCredentials": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.RepositoryCredentials" - }, - "Ulimits": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.Ulimit" - }, - "type": "array" - }, - "User": { - "type": "string" - }, - "VolumesFrom": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.VolumeFrom" - }, - "type": "array" - }, - "WorkingDirectory": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.Device": { - "additionalProperties": false, - "properties": { - "ContainerPath": { - "type": "string" - }, - "HostPath": { - "type": "string" - }, - "Permissions": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "HostPath" - ], - "type": "object" - }, - "AWS::ECS::TaskDefinition.DockerVolumeConfiguration": { - "additionalProperties": false, - "properties": { - "Autoprovision": { - "type": "boolean" - }, - "Driver": { - "type": "string" + ] }, - "DriverOpts": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, + "Metadata": { "type": "object" }, - "Labels": { + "Properties": { "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { + "properties": { + "DestinationCidrBlock": { "type": "string" - } - }, - "type": "object" - }, - "Scope": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.HealthCheck": { - "additionalProperties": false, - "properties": { - "Command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Interval": { - "type": "number" - }, - "Retries": { - "type": "number" - }, - "StartPeriod": { - "type": "number" - }, - "Timeout": { - "type": "number" - } - }, - "required": [ - "Command" - ], - "type": "object" - }, - "AWS::ECS::TaskDefinition.HostEntry": { - "additionalProperties": false, - "properties": { - "Hostname": { - "type": "string" - }, - "IpAddress": { - "type": "string" - } - }, - "required": [ - "Hostname", - "IpAddress" - ], - "type": "object" - }, - "AWS::ECS::TaskDefinition.HostVolumeProperties": { - "additionalProperties": false, - "properties": { - "SourcePath": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.KernelCapabilities": { - "additionalProperties": false, - "properties": { - "Add": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Drop": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.KeyValuePair": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.LinuxParameters": { - "additionalProperties": false, - "properties": { - "Capabilities": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.KernelCapabilities" - }, - "Devices": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.Device" - }, - "type": "array" - }, - "InitProcessEnabled": { - "type": "boolean" - }, - "SharedMemorySize": { - "type": "number" - }, - "Tmpfs": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.Tmpfs" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.LogConfiguration": { - "additionalProperties": false, - "properties": { - "LogDriver": { - "type": "string" - }, - "Options": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { + }, + "VpnConnectionId": { "type": "string" } }, + "required": [ + "DestinationCidrBlock", + "VpnConnectionId" + ], "type": "object" - } - }, - "required": [ - "LogDriver" - ], - "type": "object" - }, - "AWS::ECS::TaskDefinition.MountPoint": { - "additionalProperties": false, - "properties": { - "ContainerPath": { - "type": "string" - }, - "ReadOnly": { - "type": "boolean" - }, - "SourceVolume": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.PortMapping": { - "additionalProperties": false, - "properties": { - "ContainerPort": { - "type": "number" - }, - "HostPort": { - "type": "number" - }, - "Protocol": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.RepositoryCredentials": { - "additionalProperties": false, - "properties": { - "CredentialsParameter": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint": { - "additionalProperties": false, - "properties": { - "Expression": { - "type": "string" }, "Type": { + "enum": [ + "AWS::EC2::VPNConnectionRoute" + ], "type": "string" } }, "required": [ - "Type" - ], - "type": "object" - }, - "AWS::ECS::TaskDefinition.Tmpfs": { - "additionalProperties": false, - "properties": { - "ContainerPath": { - "type": "string" - }, - "MountOptions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Size": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.Ulimit": { - "additionalProperties": false, - "properties": { - "HardLimit": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "SoftLimit": { - "type": "number" - } - }, - "required": [ - "HardLimit", - "Name", - "SoftLimit" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::TaskDefinition.Volume": { - "additionalProperties": false, - "properties": { - "DockerVolumeConfiguration": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.DockerVolumeConfiguration" - }, - "Host": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostVolumeProperties" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.VolumeFrom": { - "additionalProperties": false, - "properties": { - "ReadOnly": { - "type": "boolean" - }, - "SourceContainer": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EFS::FileSystem": { + "AWS::EC2::VPNGateway": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -16913,59 +17224,38 @@ "Properties": { "additionalProperties": false, "properties": { - "Encrypted": { - "type": "boolean" + "AmazonSideAsn": { + "type": "number" }, - "FileSystemTags": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::EFS::FileSystem.ElasticFileSystemTag" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "KmsKeyId": { - "type": "string" - }, - "PerformanceMode": { - "type": "string" - }, - "ProvisionedThroughputInMibps": { - "type": "number" - }, - "ThroughputMode": { + "Type": { "type": "string" } }, + "required": [ + "Type" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EFS::FileSystem" + "AWS::EC2::VPNGateway" ], "type": "string" } }, "required": [ - "Type" - ], - "type": "object" - }, - "AWS::EFS::FileSystem.ElasticFileSystemTag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Key", - "Value" + "Type", + "Properties" ], "type": "object" }, - "AWS::EFS::MountTarget": { + "AWS::EC2::VPNGatewayRoutePropagation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -16997,32 +17287,25 @@ "Properties": { "additionalProperties": false, "properties": { - "FileSystemId": { - "type": "string" - }, - "IpAddress": { - "type": "string" - }, - "SecurityGroups": { + "RouteTableIds": { "items": { "type": "string" }, "type": "array" }, - "SubnetId": { + "VpnGatewayId": { "type": "string" } }, "required": [ - "FileSystemId", - "SecurityGroups", - "SubnetId" + "RouteTableIds", + "VpnGatewayId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EFS::MountTarget" + "AWS::EC2::VPNGatewayRoutePropagation" ], "type": "string" } @@ -17033,7 +17316,7 @@ ], "type": "object" }, - "AWS::EKS::Cluster": { + "AWS::EC2::Volume": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -17065,28 +17348,45 @@ "Properties": { "additionalProperties": false, "properties": { - "Name": { + "AutoEnableIO": { + "type": "boolean" + }, + "AvailabilityZone": { "type": "string" }, - "ResourcesVpcConfig": { - "$ref": "#/definitions/AWS::EKS::Cluster.ResourcesVpcConfig" + "Encrypted": { + "type": "boolean" }, - "RoleArn": { - "type": "string" + "Iops": { + "type": "number" }, - "Version": { + "KmsKeyId": { "type": "string" - } - }, - "required": [ - "ResourcesVpcConfig", - "RoleArn" + }, + "Size": { + "type": "number" + }, + "SnapshotId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "AvailabilityZone" ], "type": "object" }, "Type": { "enum": [ - "AWS::EKS::Cluster" + "AWS::EC2::Volume" ], "type": "string" } @@ -17097,28 +17397,69 @@ ], "type": "object" }, - "AWS::EKS::Cluster.ResourcesVpcConfig": { + "AWS::EC2::VolumeAttachment": { "additionalProperties": false, "properties": { - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" }, - "SubnetIds": { - "items": { - "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": { + "Device": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } }, - "type": "array" + "required": [ + "Device", + "InstanceId", + "VolumeId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VolumeAttachment" + ], + "type": "string" } }, "required": [ - "SubnetIds" + "Type", + "Properties" ], "type": "object" }, - "AWS::EMR::Cluster": { + "AWS::ECR::Repository": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -17150,90 +17491,190 @@ "Properties": { "additionalProperties": false, "properties": { - "AdditionalInfo": { - "type": "object" + "LifecyclePolicy": { + "$ref": "#/definitions/AWS::ECR::Repository.LifecyclePolicy" }, - "Applications": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.Application" - }, - "type": "array" + "RepositoryName": { + "type": "string" }, - "AutoScalingRole": { + "RepositoryPolicyText": { + "type": "object" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECR::Repository" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECR::Repository.LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "type": "string" + }, + "RegistryId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::Cluster": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - "BootstrapActions": { + { "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.BootstrapActionConfig" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECS::Cluster" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECS::Service": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, - "Configurations": { + { "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" - }, - "CustomAmiId": { + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Cluster": { "type": "string" }, - "EbsRootVolumeSize": { + "DeploymentConfiguration": { + "$ref": "#/definitions/AWS::ECS::Service.DeploymentConfiguration" + }, + "DesiredCount": { "type": "number" }, - "Instances": { - "$ref": "#/definitions/AWS::EMR::Cluster.JobFlowInstancesConfig" + "HealthCheckGracePeriodSeconds": { + "type": "number" }, - "JobFlowRole": { + "LaunchType": { "type": "string" }, - "KerberosAttributes": { - "$ref": "#/definitions/AWS::EMR::Cluster.KerberosAttributes" + "LoadBalancers": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.LoadBalancer" + }, + "type": "array" }, - "LogUri": { - "type": "string" + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::ECS::Service.NetworkConfiguration" }, - "Name": { - "type": "string" + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.PlacementConstraint" + }, + "type": "array" }, - "ReleaseLabel": { - "type": "string" + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.PlacementStrategy" + }, + "type": "array" }, - "ScaleDownBehavior": { + "PlatformVersion": { "type": "string" }, - "SecurityConfiguration": { + "Role": { "type": "string" }, - "ServiceRole": { + "SchedulingStrategy": { "type": "string" }, - "Steps": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.StepConfig" - }, - "type": "array" + "ServiceName": { + "type": "string" }, - "Tags": { + "ServiceRegistries": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::ECS::Service.ServiceRegistry" }, "type": "array" }, - "VisibleToAllUsers": { - "type": "boolean" + "TaskDefinition": { + "type": "string" } }, "required": [ - "Instances", - "JobFlowRole", - "Name", - "ServiceRole" + "TaskDefinition" ], "type": "object" }, "Type": { "enum": [ - "AWS::EMR::Cluster" + "AWS::ECS::Service" ], "type": "string" } @@ -17244,392 +17685,3229 @@ ], "type": "object" }, - "AWS::EMR::Cluster.Application": { + "AWS::ECS::Service.AwsVpcConfiguration": { "additionalProperties": false, "properties": { - "AdditionalInfo": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" + "AssignPublicIp": { + "type": "string" }, - "Args": { + "SecurityGroups": { "items": { "type": "string" }, "type": "array" }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EMR::Cluster.AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScalingConstraints" - }, - "Rules": { + "Subnets": { "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScalingRule" + "type": "string" }, "type": "array" } }, "required": [ - "Constraints", - "Rules" + "Subnets" ], "type": "object" }, - "AWS::EMR::Cluster.BootstrapActionConfig": { + "AWS::ECS::Service.DeploymentConfiguration": { "additionalProperties": false, "properties": { - "Name": { - "type": "string" + "MaximumPercent": { + "type": "number" }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScriptBootstrapActionConfig" + "MinimumHealthyPercent": { + "type": "number" } }, - "required": [ - "Name", - "ScriptBootstrapAction" - ], "type": "object" }, - "AWS::EMR::Cluster.CloudWatchAlarmDefinition": { + "AWS::ECS::Service.LoadBalancer": { "additionalProperties": false, "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.MetricDimension" - }, - "type": "array" - }, - "EvaluationPeriods": { - "type": "number" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { + "ContainerName": { "type": "string" }, - "Period": { + "ContainerPort": { "type": "number" }, - "Statistic": { + "LoadBalancerName": { "type": "string" }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "ComparisonOperator", - "MetricName", - "Period", - "Threshold" - ], - "type": "object" - }, - "AWS::EMR::Cluster.Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { + "TargetGroupArn": { "type": "string" - }, - "ConfigurationProperties": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::EMR::Cluster.EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/AWS::EMR::Cluster.VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "number" } }, "required": [ - "VolumeSpecification" + "ContainerPort" ], "type": "object" }, - "AWS::EMR::Cluster.EbsConfiguration": { + "AWS::ECS::Service.NetworkConfiguration": { "additionalProperties": false, "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.EbsBlockDeviceConfig" - }, - "type": "array" - }, - "EbsOptimized": { - "type": "boolean" + "AwsvpcConfiguration": { + "$ref": "#/definitions/AWS::ECS::Service.AwsVpcConfiguration" } }, "type": "object" }, - "AWS::EMR::Cluster.HadoopJarStepConfig": { + "AWS::ECS::Service.PlacementConstraint": { "additionalProperties": false, "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Jar": { + "Expression": { "type": "string" }, - "MainClass": { + "Type": { "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.KeyValue" - }, - "type": "array" } }, "required": [ - "Jar" + "Type" ], "type": "object" }, - "AWS::EMR::Cluster.InstanceFleetConfig": { + "AWS::ECS::Service.PlacementStrategy": { "additionalProperties": false, "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceTypeConfig" - }, - "type": "array" - }, - "LaunchSpecifications": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications" - }, - "Name": { + "Field": { "type": "string" }, - "TargetOnDemandCapacity": { - "type": "number" - }, - "TargetSpotCapacity": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "SpotSpecification": { - "$ref": "#/definitions/AWS::EMR::Cluster.SpotProvisioningSpecification" + "Type": { + "type": "string" } }, "required": [ - "SpotSpecification" + "Type" ], "type": "object" }, - "AWS::EMR::Cluster.InstanceGroupConfig": { + "AWS::ECS::Service.ServiceRegistry": { "additionalProperties": false, "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AWS::EMR::Cluster.AutoScalingPolicy" - }, - "BidPrice": { + "ContainerName": { "type": "string" }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" - }, - "type": "array" - }, - "EbsConfiguration": { - "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration" - }, - "InstanceCount": { + "ContainerPort": { "type": "number" }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" + "Port": { + "type": "number" }, - "Name": { + "RegistryArn": { "type": "string" } }, - "required": [ - "InstanceCount", - "InstanceType" - ], "type": "object" }, - "AWS::EMR::Cluster.InstanceTypeConfig": { + "AWS::ECS::TaskDefinition": { "additionalProperties": false, "properties": { - "BidPrice": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" - }, - "type": "array" - }, - "EbsConfiguration": { - "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration" - }, - "InstanceType": { - "type": "string" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "WeightedCapacity": { - "type": "number" + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ContainerDefinitions": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.ContainerDefinition" + }, + "type": "array" + }, + "Cpu": { + "type": "string" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Memory": { + "type": "string" + }, + "NetworkMode": { + "type": "string" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint" + }, + "type": "array" + }, + "RequiresCompatibilities": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TaskRoleArn": { + "type": "string" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Volume" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECS::TaskDefinition" + ], + "type": "string" } }, "required": [ - "InstanceType" + "Type" ], "type": "object" }, - "AWS::EMR::Cluster.JobFlowInstancesConfig": { + "AWS::ECS::TaskDefinition.ContainerDefinition": { "additionalProperties": false, "properties": { - "AdditionalMasterSecurityGroups": { + "Command": { "items": { "type": "string" }, "type": "array" }, - "AdditionalSlaveSecurityGroups": { + "Cpu": { + "type": "number" + }, + "DisableNetworking": { + "type": "boolean" + }, + "DnsSearchDomains": { "items": { "type": "string" }, "type": "array" }, - "CoreInstanceFleet": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + "DnsServers": { + "items": { + "type": "string" + }, + "type": "array" }, - "CoreInstanceGroup": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + "DockerLabels": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" }, - "Ec2KeyName": { + "DockerSecurityOptions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EntryPoint": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Environment": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.KeyValuePair" + }, + "type": "array" + }, + "Essential": { + "type": "boolean" + }, + "ExtraHosts": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostEntry" + }, + "type": "array" + }, + "HealthCheck": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.HealthCheck" + }, + "Hostname": { "type": "string" }, - "Ec2SubnetId": { + "Image": { "type": "string" }, - "EmrManagedMasterSecurityGroup": { + "Links": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LinuxParameters": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.LogConfiguration" + }, + "Memory": { + "type": "number" + }, + "MemoryReservation": { + "type": "number" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.MountPoint" + }, + "type": "array" + }, + "Name": { "type": "string" }, - "EmrManagedSlaveSecurityGroup": { + "PortMappings": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.PortMapping" + }, + "type": "array" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.RepositoryCredentials" + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Ulimit" + }, + "type": "array" + }, + "User": { "type": "string" }, - "HadoopVersion": { + "VolumesFrom": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.VolumeFrom" + }, + "type": "array" + }, + "WorkingDirectory": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.Device": { + "additionalProperties": false, + "properties": { + "ContainerPath": { "type": "string" }, - "KeepJobFlowAliveWhenNoSteps": { + "HostPath": { + "type": "string" + }, + "Permissions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "HostPath" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.DockerVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Autoprovision": { "type": "boolean" }, - "MasterInstanceFleet": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + "Driver": { + "type": "string" }, - "MasterInstanceGroup": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + "DriverOpts": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" }, - "Placement": { - "$ref": "#/definitions/AWS::EMR::Cluster.PlacementType" + "Labels": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" }, - "ServiceAccessSecurityGroup": { + "Scope": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.HealthCheck": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Interval": { + "type": "number" + }, + "Retries": { + "type": "number" + }, + "StartPeriod": { + "type": "number" + }, + "Timeout": { + "type": "number" + } + }, + "required": [ + "Command" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.HostEntry": { + "additionalProperties": false, + "properties": { + "Hostname": { "type": "string" }, - "TerminationProtected": { + "IpAddress": { + "type": "string" + } + }, + "required": [ + "Hostname", + "IpAddress" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.HostVolumeProperties": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.KernelCapabilities": { + "additionalProperties": false, + "properties": { + "Add": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Drop": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.KeyValuePair": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.LinuxParameters": { + "additionalProperties": false, + "properties": { + "Capabilities": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.KernelCapabilities" + }, + "Devices": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Device" + }, + "type": "array" + }, + "InitProcessEnabled": { "type": "boolean" + }, + "SharedMemorySize": { + "type": "number" + }, + "Tmpfs": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Tmpfs" + }, + "type": "array" } }, "type": "object" }, - "AWS::EMR::Cluster.KerberosAttributes": { + "AWS::ECS::TaskDefinition.LogConfiguration": { "additionalProperties": false, "properties": { - "ADDomainJoinPassword": { + "LogDriver": { "type": "string" }, - "ADDomainJoinUser": { + "Options": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "LogDriver" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.MountPoint": { + "additionalProperties": false, + "properties": { + "ContainerPath": { "type": "string" }, - "CrossRealmTrustPrincipalPassword": { + "ReadOnly": { + "type": "boolean" + }, + "SourceVolume": { "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.PortMapping": { + "additionalProperties": false, + "properties": { + "ContainerPort": { + "type": "number" }, - "KdcAdminPassword": { + "HostPort": { + "type": "number" + }, + "Protocol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.RepositoryCredentials": { + "additionalProperties": false, + "properties": { + "CredentialsParameter": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.Tmpfs": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "MountOptions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Size": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "SoftLimit": { + "type": "number" + } + }, + "required": [ + "HardLimit", + "Name", + "SoftLimit" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.Volume": { + "additionalProperties": false, + "properties": { + "DockerVolumeConfiguration": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.DockerVolumeConfiguration" + }, + "Host": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostVolumeProperties" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.VolumeFrom": { + "additionalProperties": false, + "properties": { + "ReadOnly": { + "type": "boolean" + }, + "SourceContainer": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EFS::FileSystem": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "Realm": { + "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": { + "Encrypted": { + "type": "boolean" + }, + "FileSystemTags": { + "items": { + "$ref": "#/definitions/AWS::EFS::FileSystem.ElasticFileSystemTag" + }, + "type": "array" + }, + "KmsKeyId": { + "type": "string" + }, + "PerformanceMode": { + "type": "string" + }, + "ProvisionedThroughputInMibps": { + "type": "number" + }, + "ThroughputMode": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EFS::FileSystem" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EFS::FileSystem.ElasticFileSystemTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EFS::MountTarget": { + "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": { + "FileSystemId": { + "type": "string" + }, + "IpAddress": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "FileSystemId", + "SecurityGroups", + "SubnetId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EFS::MountTarget" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EKS::Cluster": { + "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": { + "Name": { + "type": "string" + }, + "ResourcesVpcConfig": { + "$ref": "#/definitions/AWS::EKS::Cluster.ResourcesVpcConfig" + }, + "RoleArn": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "ResourcesVpcConfig", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EKS::Cluster" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EKS::Cluster.ResourcesVpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SubnetIds" + ], + "type": "object" + }, + "AWS::EMR::Cluster": { + "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": { + "AdditionalInfo": { + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Application" + }, + "type": "array" + }, + "AutoScalingRole": { + "type": "string" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.BootstrapActionConfig" + }, + "type": "array" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "type": "array" + }, + "CustomAmiId": { + "type": "string" + }, + "EbsRootVolumeSize": { + "type": "number" + }, + "Instances": { + "$ref": "#/definitions/AWS::EMR::Cluster.JobFlowInstancesConfig" + }, + "JobFlowRole": { + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/AWS::EMR::Cluster.KerberosAttributes" + }, + "LogUri": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ReleaseLabel": { + "type": "string" + }, + "ScaleDownBehavior": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "Steps": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.StepConfig" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VisibleToAllUsers": { + "type": "boolean" + } + }, + "required": [ + "Instances", + "JobFlowRole", + "Name", + "ServiceRole" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::Cluster" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::Cluster.Application": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingRule" + }, + "type": "array" + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AWS::EMR::Cluster.BootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScriptBootstrapActionConfig" + } + }, + "required": [ + "Name", + "ScriptBootstrapAction" + ], + "type": "object" + }, + "AWS::EMR::Cluster.CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.MetricDimension" + }, + "type": "array" + }, + "EvaluationPeriods": { + "type": "number" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "number" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "MetricName", + "Period", + "Threshold" + ], + "type": "object" + }, + "AWS::EMR::Cluster.Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/AWS::EMR::Cluster.VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "number" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "AWS::EMR::Cluster.EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.EbsBlockDeviceConfig" + }, + "type": "array" + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.KeyValue" + }, + "type": "array" + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "AWS::EMR::Cluster.InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceTypeConfig" + }, + "type": "array" + }, + "LaunchSpecifications": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "number" + }, + "TargetSpotCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "SpotSpecification": { + "$ref": "#/definitions/AWS::EMR::Cluster.SpotProvisioningSpecification" + } + }, + "required": [ + "SpotSpecification" + ], + "type": "object" + }, + "AWS::EMR::Cluster.InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AWS::EMR::Cluster.AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "type": "array" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration" + }, + "InstanceCount": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "AWS::EMR::Cluster.InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "type": "array" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration" + }, + "InstanceType": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "AWS::EMR::Cluster.JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + }, + "Ec2KeyName": { + "type": "string" + }, + "Ec2SubnetId": { + "type": "string" + }, + "EmrManagedMasterSecurityGroup": { + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "type": "string" + }, + "HadoopVersion": { + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + }, + "Placement": { + "$ref": "#/definitions/AWS::EMR::Cluster.PlacementType" + }, + "ServiceAccessSecurityGroup": { + "type": "string" + }, + "TerminationProtected": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "type": "string" + }, + "ADDomainJoinUser": { + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "type": "string" + }, + "KdcAdminPassword": { + "type": "string" + }, + "Realm": { + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "AWS::EMR::Cluster.KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EMR::Cluster.PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::EMR::Cluster.SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "required": [ + "MaxCapacity", + "MinCapacity" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingTrigger" + } + }, + "required": [ + "Action", + "Name", + "Trigger" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/AWS::EMR::Cluster.CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "AWS::EMR::Cluster.SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "number" + }, + "ScalingAdjustment": { + "type": "number" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "AWS::EMR::Cluster.SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "BlockDurationMinutes": { + "type": "number" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "number" + } + }, + "required": [ + "TimeoutAction", + "TimeoutDurationMinutes" + ], + "type": "object" + }, + "AWS::EMR::Cluster.StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/AWS::EMR::Cluster.HadoopJarStepConfig" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "AWS::EMR::Cluster.VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "number" + }, + "SizeInGB": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig": { + "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": { + "ClusterId": { + "type": "string" + }, + "InstanceFleetType": { + "type": "string" + }, + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceTypeConfig" + }, + "type": "array" + }, + "LaunchSpecifications": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "number" + }, + "TargetSpotCapacity": { + "type": "number" + } + }, + "required": [ + "ClusterId", + "InstanceFleetType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::InstanceFleetConfig" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "number" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig" + }, + "type": "array" + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "SpotSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification" + } + }, + "required": [ + "SpotSpecification" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration" + }, + "type": "array" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsConfiguration" + }, + "InstanceType": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "BlockDurationMinutes": { + "type": "number" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "number" + } + }, + "required": [ + "TimeoutAction", + "TimeoutDurationMinutes" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "number" + }, + "SizeInGB": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig": { + "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": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration" + }, + "type": "array" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsConfiguration" + }, + "InstanceCount": { + "type": "number" + }, + "InstanceRole": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "JobFlowId": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceRole", + "InstanceType", + "JobFlowId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::InstanceGroupConfig" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingRule" + }, + "type": "array" + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.MetricDimension" + }, + "type": "array" + }, + "EvaluationPeriods": { + "type": "number" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "number" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "MetricName", + "Period", + "Threshold" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "number" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig" + }, + "type": "array" + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "required": [ + "MaxCapacity", + "MinCapacity" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingTrigger" + } + }, + "required": [ + "Action", + "Name", + "Trigger" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "number" + }, + "ScalingAdjustment": { + "type": "number" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "number" + }, + "SizeInGB": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + }, + "AWS::EMR::SecurityConfiguration": { + "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": { + "Name": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "object" + } + }, + "required": [ + "SecurityConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::SecurityConfiguration" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::Step": { + "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": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/AWS::EMR::Step.HadoopJarStepConfig" + }, + "JobFlowId": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "ActionOnFailure", + "HadoopJarStep", + "JobFlowId", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::Step" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::Step.HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/AWS::EMR::Step.KeyValue" + }, + "type": "array" + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "AWS::EMR::Step.KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElastiCache::CacheCluster": { + "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": { + "AZMode": { + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "CacheNodeType": { + "type": "string" + }, + "CacheParameterGroupName": { + "type": "string" + }, + "CacheSecurityGroupNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CacheSubnetGroupName": { + "type": "string" + }, + "ClusterName": { + "type": "string" + }, + "Engine": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "NotificationTopicArn": { + "type": "string" + }, + "NumCacheNodes": { + "type": "number" + }, + "Port": { + "type": "number" + }, + "PreferredAvailabilityZone": { + "type": "string" + }, + "PreferredAvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "SnapshotArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotName": { + "type": "string" + }, + "SnapshotRetentionLimit": { + "type": "number" + }, + "SnapshotWindow": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "CacheNodeType", + "Engine", + "NumCacheNodes" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::CacheCluster" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::ParameterGroup": { + "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": { + "CacheParameterGroupFamily": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Properties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "CacheParameterGroupFamily", + "Description" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::ParameterGroup" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::ReplicationGroup": { + "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": { + "AtRestEncryptionEnabled": { + "type": "boolean" + }, + "AuthToken": { + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AutomaticFailoverEnabled": { + "type": "boolean" + }, + "CacheNodeType": { + "type": "string" + }, + "CacheParameterGroupName": { + "type": "string" + }, + "CacheSecurityGroupNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CacheSubnetGroupName": { + "type": "string" + }, + "Engine": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "NodeGroupConfiguration": { + "items": { + "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration" + }, + "type": "array" + }, + "NotificationTopicArn": { + "type": "string" + }, + "NumCacheClusters": { + "type": "number" + }, + "NumNodeGroups": { + "type": "number" + }, + "Port": { + "type": "number" + }, + "PreferredCacheClusterAZs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PrimaryClusterId": { + "type": "string" + }, + "ReplicasPerNodeGroup": { + "type": "number" + }, + "ReplicationGroupDescription": { + "type": "string" + }, + "ReplicationGroupId": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotName": { + "type": "string" + }, + "SnapshotRetentionLimit": { + "type": "number" + }, + "SnapshotWindow": { + "type": "string" + }, + "SnapshottingClusterId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitEncryptionEnabled": { + "type": "boolean" + } + }, + "required": [ + "ReplicationGroupDescription" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::ReplicationGroup" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration": { + "additionalProperties": false, + "properties": { + "NodeGroupId": { + "type": "string" + }, + "PrimaryAvailabilityZone": { + "type": "string" + }, + "ReplicaAvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ReplicaCount": { + "type": "number" + }, + "Slots": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElastiCache::SecurityGroup": { + "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" + } + }, + "required": [ + "Description" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::SecurityGroup" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::SecurityGroupIngress": { + "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": { + "CacheSecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupOwnerId": { + "type": "string" + } + }, + "required": [ + "CacheSecurityGroupName", + "EC2SecurityGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::SecurityGroupIngress" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::SubnetGroup": { + "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": { + "CacheSubnetGroupName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Description", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::SubnetGroup" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::Application": { + "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": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "ResourceLifecycleConfig": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticBeanstalk::Application" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig": { + "additionalProperties": false, + "properties": { + "ServiceRole": { + "type": "string" + }, + "VersionLifecycleConfig": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig": { + "additionalProperties": false, + "properties": { + "MaxAgeRule": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxAgeRule" + }, + "MaxCountRule": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxCountRule" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.MaxAgeRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxAgeInDays": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.MaxCountRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxCount": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::ApplicationVersion": { + "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": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "SourceBundle": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle" + } + }, + "required": [ + "ApplicationName", + "SourceBundle" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticBeanstalk::ApplicationVersion" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::ConfigurationTemplate": { + "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": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EnvironmentId": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting" + }, + "type": "array" + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "SourceConfiguration": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration" + } + }, + "required": [ + "ApplicationName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticBeanstalk::ConfigurationTemplate" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "OptionName": { + "type": "string" + }, + "ResourceName": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration": { + "additionalProperties": false, + "properties": { + "ApplicationName": { + "type": "string" + }, + "TemplateName": { + "type": "string" + } + }, + "required": [ + "ApplicationName", + "TemplateName" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::Environment": { + "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": { + "ApplicationName": { + "type": "string" + }, + "CNAMEPrefix": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EnvironmentName": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.OptionSetting" + }, + "type": "array" + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TemplateName": { + "type": "string" + }, + "Tier": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.Tier" + }, + "VersionLabel": { + "type": "string" + } + }, + "required": [ + "ApplicationName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticBeanstalk::Environment" + ], "type": "string" } }, "required": [ - "KdcAdminPassword", - "Realm" + "Type", + "Properties" ], "type": "object" }, - "AWS::EMR::Cluster.KeyValue": { + "AWS::ElasticBeanstalk::Environment.OptionSetting": { "additionalProperties": false, "properties": { - "Key": { + "Namespace": { "type": "string" }, - "Value": { + "OptionName": { "type": "string" - } - }, - "type": "object" - }, - "AWS::EMR::Cluster.MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { + }, + "ResourceName": { "type": "string" }, "Value": { @@ -17637,183 +20915,325 @@ } }, "required": [ - "Key", - "Value" + "Namespace", + "OptionName" ], "type": "object" }, - "AWS::EMR::Cluster.PlacementType": { + "AWS::ElasticBeanstalk::Environment.Tier": { "additionalProperties": false, "properties": { - "AvailabilityZone": { + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Version": { "type": "string" } }, - "required": [ - "AvailabilityZone" - ], "type": "object" }, - "AWS::EMR::Cluster.ScalingAction": { + "AWS::ElasticLoadBalancing::LoadBalancer": { "additionalProperties": false, "properties": { - "Market": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/AWS::EMR::Cluster.SimpleScalingPolicyConfiguration" + "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": { + "AccessLoggingPolicy": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy" + }, + "AppCookieStickinessPolicy": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy" + }, + "type": "array" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ConnectionDrainingPolicy": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy" + }, + "ConnectionSettings": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings" + }, + "CrossZone": { + "type": "boolean" + }, + "HealthCheck": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck" + }, + "Instances": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LBCookieStickinessPolicy": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy" + }, + "type": "array" + }, + "Listeners": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Listeners" + }, + "type": "array" + }, + "LoadBalancerName": { + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Policies" + }, + "type": "array" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Listeners" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticLoadBalancing::LoadBalancer" + ], + "type": "string" } }, "required": [ - "SimpleScalingPolicyConfiguration" + "Type", + "Properties" ], "type": "object" }, - "AWS::EMR::Cluster.ScalingConstraints": { + "AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy": { "additionalProperties": false, "properties": { - "MaxCapacity": { + "EmitInterval": { "type": "number" }, - "MinCapacity": { - "type": "number" + "Enabled": { + "type": "boolean" + }, + "S3BucketName": { + "type": "string" + }, + "S3BucketPrefix": { + "type": "string" } }, "required": [ - "MaxCapacity", - "MinCapacity" + "Enabled", + "S3BucketName" ], "type": "object" }, - "AWS::EMR::Cluster.ScalingRule": { + "AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy": { "additionalProperties": false, "properties": { - "Action": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScalingAction" - }, - "Description": { + "CookieName": { "type": "string" }, - "Name": { + "PolicyName": { "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScalingTrigger" } }, "required": [ - "Action", - "Name", - "Trigger" + "CookieName", + "PolicyName" ], "type": "object" }, - "AWS::EMR::Cluster.ScalingTrigger": { + "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy": { "additionalProperties": false, "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/AWS::EMR::Cluster.CloudWatchAlarmDefinition" + "Enabled": { + "type": "boolean" + }, + "Timeout": { + "type": "number" } }, "required": [ - "CloudWatchAlarmDefinition" + "Enabled" ], "type": "object" }, - "AWS::EMR::Cluster.ScriptBootstrapActionConfig": { + "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings": { "additionalProperties": false, "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Path": { - "type": "string" + "IdleTimeout": { + "type": "number" } }, "required": [ - "Path" + "IdleTimeout" ], "type": "object" }, - "AWS::EMR::Cluster.SimpleScalingPolicyConfiguration": { + "AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck": { "additionalProperties": false, "properties": { - "AdjustmentType": { + "HealthyThreshold": { "type": "string" }, - "CoolDown": { - "type": "number" + "Interval": { + "type": "string" }, - "ScalingAdjustment": { - "type": "number" + "Target": { + "type": "string" + }, + "Timeout": { + "type": "string" + }, + "UnhealthyThreshold": { + "type": "string" } }, "required": [ - "ScalingAdjustment" + "HealthyThreshold", + "Interval", + "Target", + "Timeout", + "UnhealthyThreshold" ], "type": "object" }, - "AWS::EMR::Cluster.SpotProvisioningSpecification": { + "AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy": { "additionalProperties": false, "properties": { - "BlockDurationMinutes": { - "type": "number" - }, - "TimeoutAction": { + "CookieExpirationPeriod": { "type": "string" }, - "TimeoutDurationMinutes": { - "type": "number" + "PolicyName": { + "type": "string" } }, - "required": [ - "TimeoutAction", - "TimeoutDurationMinutes" - ], "type": "object" }, - "AWS::EMR::Cluster.StepConfig": { + "AWS::ElasticLoadBalancing::LoadBalancer.Listeners": { "additionalProperties": false, "properties": { - "ActionOnFailure": { + "InstancePort": { "type": "string" }, - "HadoopJarStep": { - "$ref": "#/definitions/AWS::EMR::Cluster.HadoopJarStepConfig" + "InstanceProtocol": { + "type": "string" }, - "Name": { + "LoadBalancerPort": { + "type": "string" + }, + "PolicyNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Protocol": { + "type": "string" + }, + "SSLCertificateId": { "type": "string" } }, "required": [ - "HadoopJarStep", - "Name" + "InstancePort", + "LoadBalancerPort", + "Protocol" ], "type": "object" }, - "AWS::EMR::Cluster.VolumeSpecification": { + "AWS::ElasticLoadBalancing::LoadBalancer.Policies": { "additionalProperties": false, "properties": { - "Iops": { - "type": "number" + "Attributes": { + "items": { + "type": "object" + }, + "type": "array" }, - "SizeInGB": { - "type": "number" + "InstancePorts": { + "items": { + "type": "string" + }, + "type": "array" }, - "VolumeType": { + "LoadBalancerPorts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PolicyName": { + "type": "string" + }, + "PolicyType": { "type": "string" } }, "required": [ - "SizeInGB", - "VolumeType" + "Attributes", + "PolicyName", + "PolicyType" ], "type": "object" }, - "AWS::EMR::InstanceFleetConfig": { + "AWS::ElasticLoadBalancingV2::Listener": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -17845,40 +21265,42 @@ "Properties": { "additionalProperties": false, "properties": { - "ClusterId": { - "type": "string" - }, - "InstanceFleetType": { - "type": "string" - }, - "InstanceTypeConfigs": { + "Certificates": { "items": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceTypeConfig" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Certificate" }, "type": "array" }, - "LaunchSpecifications": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications" + "DefaultActions": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Action" + }, + "type": "array" }, - "Name": { + "LoadBalancerArn": { "type": "string" }, - "TargetOnDemandCapacity": { + "Port": { "type": "number" }, - "TargetSpotCapacity": { - "type": "number" + "Protocol": { + "type": "string" + }, + "SslPolicy": { + "type": "string" } }, "required": [ - "ClusterId", - "InstanceFleetType" + "DefaultActions", + "LoadBalancerArn", + "Port", + "Protocol" ], "type": "object" }, "Type": { "enum": [ - "AWS::EMR::InstanceFleetConfig" + "AWS::ElasticLoadBalancingV2::Listener" ], "type": "string" } @@ -17889,13 +21311,40 @@ ], "type": "object" }, - "AWS::EMR::InstanceFleetConfig.Configuration": { + "AWS::ElasticLoadBalancingV2::Listener.Action": { "additionalProperties": false, "properties": { - "Classification": { + "AuthenticateCognitoConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig" + }, + "AuthenticateOidcConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig" + }, + "FixedResponseConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig" + }, + "Order": { + "type": "number" + }, + "RedirectConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.RedirectConfig" + }, + "TargetGroupArn": { "type": "string" }, - "ConfigurationProperties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig": { + "additionalProperties": false, + "properties": { + "AuthenticationRequestExtraParams": { "additionalProperties": false, "patternProperties": { "^[a-zA-Z0-9]+$": { @@ -17904,126 +21353,213 @@ }, "type": "object" }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration" - }, - "type": "array" + "OnUnauthenticatedRequest": { + "type": "string" + }, + "Scope": { + "type": "string" + }, + "SessionCookieName": { + "type": "string" + }, + "SessionTimeout": { + "type": "number" + }, + "UserPoolArn": { + "type": "string" + }, + "UserPoolClientId": { + "type": "string" + }, + "UserPoolDomain": { + "type": "string" } }, + "required": [ + "UserPoolArn", + "UserPoolClientId", + "UserPoolDomain" + ], "type": "object" }, - "AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig": { + "AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig": { "additionalProperties": false, "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.VolumeSpecification" + "AuthenticationRequestExtraParams": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" }, - "VolumesPerInstance": { + "AuthorizationEndpoint": { + "type": "string" + }, + "ClientId": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + }, + "Issuer": { + "type": "string" + }, + "OnUnauthenticatedRequest": { + "type": "string" + }, + "Scope": { + "type": "string" + }, + "SessionCookieName": { + "type": "string" + }, + "SessionTimeout": { "type": "number" + }, + "TokenEndpoint": { + "type": "string" + }, + "UserInfoEndpoint": { + "type": "string" } }, "required": [ - "VolumeSpecification" + "AuthorizationEndpoint", + "ClientId", + "ClientSecret", + "Issuer", + "TokenEndpoint", + "UserInfoEndpoint" ], "type": "object" }, - "AWS::EMR::InstanceFleetConfig.EbsConfiguration": { + "AWS::ElasticLoadBalancingV2::Listener.Certificate": { "additionalProperties": false, "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig" - }, - "type": "array" - }, - "EbsOptimized": { - "type": "boolean" + "CertificateArn": { + "type": "string" } }, "type": "object" }, - "AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications": { + "AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig": { "additionalProperties": false, "properties": { - "SpotSpecification": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification" + "ContentType": { + "type": "string" + }, + "MessageBody": { + "type": "string" + }, + "StatusCode": { + "type": "string" } }, "required": [ - "SpotSpecification" + "StatusCode" ], "type": "object" }, - "AWS::EMR::InstanceFleetConfig.InstanceTypeConfig": { + "AWS::ElasticLoadBalancingV2::Listener.RedirectConfig": { "additionalProperties": false, "properties": { - "BidPrice": { + "Host": { "type": "string" }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration" - }, - "type": "array" + "Path": { + "type": "string" }, - "EbsConfiguration": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsConfiguration" + "Port": { + "type": "string" }, - "InstanceType": { + "Protocol": { "type": "string" }, - "WeightedCapacity": { - "type": "number" + "Query": { + "type": "string" + }, + "StatusCode": { + "type": "string" } }, "required": [ - "InstanceType" + "StatusCode" ], "type": "object" }, - "AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification": { + "AWS::ElasticLoadBalancingV2::ListenerCertificate": { "additionalProperties": false, "properties": { - "BlockDurationMinutes": { - "type": "number" - }, - "TimeoutAction": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "TimeoutDurationMinutes": { - "type": "number" + "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": { + "Certificates": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate" + }, + "type": "array" + }, + "ListenerArn": { + "type": "string" + } + }, + "required": [ + "Certificates", + "ListenerArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticLoadBalancingV2::ListenerCertificate" + ], + "type": "string" } }, "required": [ - "TimeoutAction", - "TimeoutDurationMinutes" + "Type", + "Properties" ], "type": "object" }, - "AWS::EMR::InstanceFleetConfig.VolumeSpecification": { + "AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate": { "additionalProperties": false, "properties": { - "Iops": { - "type": "number" - }, - "SizeInGB": { - "type": "number" - }, - "VolumeType": { + "CertificateArn": { "type": "string" } }, - "required": [ - "SizeInGB", - "VolumeType" - ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig": { + "AWS::ElasticLoadBalancingV2::ListenerRule": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18055,51 +21591,36 @@ "Properties": { "additionalProperties": false, "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { + "Actions": { "items": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.Action" }, "type": "array" }, - "EbsConfiguration": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsConfiguration" - }, - "InstanceCount": { - "type": "number" - }, - "InstanceRole": { - "type": "string" - }, - "InstanceType": { - "type": "string" - }, - "JobFlowId": { - "type": "string" + "Conditions": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition" + }, + "type": "array" }, - "Market": { + "ListenerArn": { "type": "string" }, - "Name": { - "type": "string" + "Priority": { + "type": "number" } }, "required": [ - "InstanceCount", - "InstanceRole", - "InstanceType", - "JobFlowId" + "Actions", + "Conditions", + "ListenerArn", + "Priority" ], "type": "object" }, "Type": { "enum": [ - "AWS::EMR::InstanceGroupConfig" + "AWS::ElasticLoadBalancingV2::ListenerRule" ], "type": "string" } @@ -18110,74 +21631,81 @@ ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.AutoScalingPolicy": { + "AWS::ElasticLoadBalancingV2::ListenerRule.Action": { "additionalProperties": false, "properties": { - "Constraints": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingConstraints" + "AuthenticateCognitoConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig" }, - "Rules": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingRule" - }, - "type": "array" + "AuthenticateOidcConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig" + }, + "FixedResponseConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig" + }, + "Order": { + "type": "number" + }, + "RedirectConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig" + }, + "TargetGroupArn": { + "type": "string" + }, + "Type": { + "type": "string" } }, "required": [ - "Constraints", - "Rules" + "Type" ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition": { + "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig": { "additionalProperties": false, "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.MetricDimension" + "AuthenticationRequestExtraParams": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } }, - "type": "array" + "type": "object" }, - "EvaluationPeriods": { - "type": "number" + "OnUnauthenticatedRequest": { + "type": "string" }, - "MetricName": { + "Scope": { "type": "string" }, - "Namespace": { + "SessionCookieName": { "type": "string" }, - "Period": { + "SessionTimeout": { "type": "number" }, - "Statistic": { + "UserPoolArn": { "type": "string" }, - "Threshold": { - "type": "number" + "UserPoolClientId": { + "type": "string" }, - "Unit": { + "UserPoolDomain": { "type": "string" } }, "required": [ - "ComparisonOperator", - "MetricName", - "Period", - "Threshold" + "UserPoolArn", + "UserPoolClientId", + "UserPoolDomain" ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.Configuration": { + "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig": { "additionalProperties": false, "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { + "AuthenticationRequestExtraParams": { "additionalProperties": false, "patternProperties": { "^[a-zA-Z0-9]+$": { @@ -18186,165 +21714,108 @@ }, "type": "object" }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.VolumeSpecification" + "AuthorizationEndpoint": { + "type": "string" }, - "VolumesPerInstance": { + "ClientId": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + }, + "Issuer": { + "type": "string" + }, + "OnUnauthenticatedRequest": { + "type": "string" + }, + "Scope": { + "type": "string" + }, + "SessionCookieName": { + "type": "string" + }, + "SessionTimeout": { "type": "number" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "AWS::EMR::InstanceGroupConfig.EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig" - }, - "type": "array" }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::EMR::InstanceGroupConfig.MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { + "TokenEndpoint": { "type": "string" }, - "Value": { + "UserInfoEndpoint": { "type": "string" } }, "required": [ - "Key", - "Value" + "AuthorizationEndpoint", + "ClientId", + "ClientSecret", + "Issuer", + "TokenEndpoint", + "UserInfoEndpoint" ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.ScalingAction": { + "AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig": { "additionalProperties": false, "properties": { - "Market": { + "ContentType": { "type": "string" }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "AWS::EMR::InstanceGroupConfig.ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "number" + "MessageBody": { + "type": "string" }, - "MinCapacity": { - "type": "number" + "StatusCode": { + "type": "string" } }, "required": [ - "MaxCapacity", - "MinCapacity" + "StatusCode" ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.ScalingRule": { + "AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig": { "additionalProperties": false, "properties": { - "Action": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingAction" + "Host": { + "type": "string" }, - "Description": { + "Path": { "type": "string" }, - "Name": { + "Port": { "type": "string" }, - "Trigger": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingTrigger" - } - }, - "required": [ - "Action", - "Name", - "Trigger" - ], - "type": "object" - }, - "AWS::EMR::InstanceGroupConfig.ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { + "Protocol": { "type": "string" }, - "CoolDown": { - "type": "number" + "Query": { + "type": "string" }, - "ScalingAdjustment": { - "type": "number" + "StatusCode": { + "type": "string" } }, "required": [ - "ScalingAdjustment" + "StatusCode" ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.VolumeSpecification": { + "AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition": { "additionalProperties": false, "properties": { - "Iops": { - "type": "number" - }, - "SizeInGB": { - "type": "number" - }, - "VolumeType": { + "Field": { "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "SizeInGB", - "VolumeType" - ], "type": "object" }, - "AWS::EMR::SecurityConfiguration": { + "AWS::ElasticLoadBalancingV2::LoadBalancer": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18376,32 +21847,92 @@ "Properties": { "additionalProperties": false, "properties": { + "IpAddressType": { + "type": "string" + }, + "LoadBalancerAttributes": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute" + }, + "type": "array" + }, "Name": { "type": "string" }, - "SecurityConfiguration": { - "type": "object" + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetMappings": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" } }, - "required": [ - "SecurityConfiguration" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EMR::SecurityConfiguration" + "AWS::ElasticLoadBalancingV2::LoadBalancer" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EMR::Step": { + "AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "AllocationId", + "SubnetId" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::TargetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18418,83 +21949,127 @@ "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - { + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "HealthCheckEnabled": { + "type": "boolean" + }, + "HealthCheckIntervalSeconds": { + "type": "number" + }, + "HealthCheckPath": { + "type": "string" + }, + "HealthCheckPort": { + "type": "string" + }, + "HealthCheckProtocol": { + "type": "string" + }, + "HealthCheckTimeoutSeconds": { + "type": "number" + }, + "HealthyThresholdCount": { + "type": "number" + }, + "Matcher": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.Matcher" + }, + "Name": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TargetGroupAttributes": { "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute" }, "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { + }, + "TargetType": { "type": "string" }, - "HadoopJarStep": { - "$ref": "#/definitions/AWS::EMR::Step.HadoopJarStepConfig" + "Targets": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription" + }, + "type": "array" }, - "JobFlowId": { - "type": "string" + "UnhealthyThresholdCount": { + "type": "number" }, - "Name": { + "VpcId": { "type": "string" } }, - "required": [ - "ActionOnFailure", - "HadoopJarStep", - "JobFlowId", - "Name" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EMR::Step" + "AWS::ElasticLoadBalancingV2::TargetGroup" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EMR::Step.HadoopJarStepConfig": { + "AWS::ElasticLoadBalancingV2::TargetGroup.Matcher": { "additionalProperties": false, "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Jar": { + "HttpCode": { + "type": "string" + } + }, + "required": [ + "HttpCode" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { "type": "string" }, - "MainClass": { + "Id": { "type": "string" }, - "StepProperties": { - "items": { - "$ref": "#/definitions/AWS::EMR::Step.KeyValue" - }, - "type": "array" + "Port": { + "type": "number" } }, "required": [ - "Jar" + "Id" ], "type": "object" }, - "AWS::EMR::Step.KeyValue": { + "AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute": { "additionalProperties": false, "properties": { "Key": { @@ -18506,7 +22081,7 @@ }, "type": "object" }, - "AWS::ElastiCache::CacheCluster": { + "AWS::Elasticsearch::Domain": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18538,71 +22113,38 @@ "Properties": { "additionalProperties": false, "properties": { - "AZMode": { - "type": "string" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "CacheNodeType": { - "type": "string" - }, - "CacheParameterGroupName": { - "type": "string" + "AccessPolicies": { + "type": "object" }, - "CacheSecurityGroupNames": { - "items": { - "type": "string" + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } }, - "type": "array" - }, - "CacheSubnetGroupName": { - "type": "string" - }, - "ClusterName": { - "type": "string" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" + "type": "object" }, - "NotificationTopicArn": { + "DomainName": { "type": "string" }, - "NumCacheNodes": { - "type": "number" - }, - "Port": { - "type": "number" - }, - "PreferredAvailabilityZone": { - "type": "string" + "EBSOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.EBSOptions" }, - "PreferredAvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" + "ElasticsearchClusterConfig": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.ElasticsearchClusterConfig" }, - "PreferredMaintenanceWindow": { + "ElasticsearchVersion": { "type": "string" }, - "SnapshotArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SnapshotName": { - "type": "string" + "EncryptionAtRestOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.EncryptionAtRestOptions" }, - "SnapshotRetentionLimit": { - "type": "number" + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.NodeToNodeEncryptionOptions" }, - "SnapshotWindow": { - "type": "string" + "SnapshotOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.SnapshotOptions" }, "Tags": { "items": { @@ -18610,34 +22152,115 @@ }, "type": "array" }, - "VpcSecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" + "VPCOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.VPCOptions" } }, - "required": [ - "CacheNodeType", - "Engine", - "NumCacheNodes" - ], "type": "object" }, "Type": { "enum": [ - "AWS::ElastiCache::CacheCluster" + "AWS::Elasticsearch::Domain" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::ElastiCache::ParameterGroup": { + "AWS::Elasticsearch::Domain.EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.ElasticsearchClusterConfig": { + "additionalProperties": false, + "properties": { + "DedicatedMasterCount": { + "type": "number" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Events::EventBusPolicy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18669,31 +22292,29 @@ "Properties": { "additionalProperties": false, "properties": { - "CacheParameterGroupFamily": { + "Action": { "type": "string" }, - "Description": { + "Condition": { + "$ref": "#/definitions/AWS::Events::EventBusPolicy.Condition" + }, + "Principal": { "type": "string" }, - "Properties": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" + "StatementId": { + "type": "string" } }, "required": [ - "CacheParameterGroupFamily", - "Description" + "Action", + "Principal", + "StatementId" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElastiCache::ParameterGroup" + "AWS::Events::EventBusPolicy" ], "type": "string" } @@ -18704,7 +22325,22 @@ ], "type": "object" }, - "AWS::ElastiCache::ReplicationGroup": { + "AWS::Events::EventBusPolicy.Condition": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Events::Rule": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18736,77 +22372,222 @@ "Properties": { "additionalProperties": false, "properties": { - "AtRestEncryptionEnabled": { - "type": "boolean" - }, - "AuthToken": { + "Description": { "type": "string" }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticFailoverEnabled": { - "type": "boolean" - }, - "CacheNodeType": { - "type": "string" + "EventPattern": { + "type": "object" }, - "CacheParameterGroupName": { + "Name": { "type": "string" }, - "CacheSecurityGroupNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "CacheSubnetGroupName": { + "RoleArn": { "type": "string" }, - "Engine": { + "ScheduleExpression": { "type": "string" }, - "EngineVersion": { + "State": { "type": "string" }, - "NodeGroupConfiguration": { + "Targets": { "items": { - "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration" + "$ref": "#/definitions/AWS::Events::Rule.Target" }, "type": "array" - }, - "NotificationTopicArn": { + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Events::Rule" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Events::Rule.EcsParameters": { + "additionalProperties": false, + "properties": { + "TaskCount": { + "type": "number" + }, + "TaskDefinitionArn": { + "type": "string" + } + }, + "required": [ + "TaskDefinitionArn" + ], + "type": "object" + }, + "AWS::Events::Rule.InputTransformer": { + "additionalProperties": false, + "properties": { + "InputPathsMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "InputTemplate": { + "type": "string" + } + }, + "required": [ + "InputTemplate" + ], + "type": "object" + }, + "AWS::Events::Rule.KinesisParameters": { + "additionalProperties": false, + "properties": { + "PartitionKeyPath": { + "type": "string" + } + }, + "required": [ + "PartitionKeyPath" + ], + "type": "object" + }, + "AWS::Events::Rule.RunCommandParameters": { + "additionalProperties": false, + "properties": { + "RunCommandTargets": { + "items": { + "$ref": "#/definitions/AWS::Events::Rule.RunCommandTarget" + }, + "type": "array" + } + }, + "required": [ + "RunCommandTargets" + ], + "type": "object" + }, + "AWS::Events::Rule.RunCommandTarget": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Key", + "Values" + ], + "type": "object" + }, + "AWS::Events::Rule.SqsParameters": { + "additionalProperties": false, + "properties": { + "MessageGroupId": { + "type": "string" + } + }, + "required": [ + "MessageGroupId" + ], + "type": "object" + }, + "AWS::Events::Rule.Target": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "EcsParameters": { + "$ref": "#/definitions/AWS::Events::Rule.EcsParameters" + }, + "Id": { + "type": "string" + }, + "Input": { + "type": "string" + }, + "InputPath": { + "type": "string" + }, + "InputTransformer": { + "$ref": "#/definitions/AWS::Events::Rule.InputTransformer" + }, + "KinesisParameters": { + "$ref": "#/definitions/AWS::Events::Rule.KinesisParameters" + }, + "RoleArn": { + "type": "string" + }, + "RunCommandParameters": { + "$ref": "#/definitions/AWS::Events::Rule.RunCommandParameters" + }, + "SqsParameters": { + "$ref": "#/definitions/AWS::Events::Rule.SqsParameters" + } + }, + "required": [ + "Arn", + "Id" + ], + "type": "object" + }, + "AWS::FSx::FileSystem": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - "NumCacheClusters": { - "type": "number" - }, - "NumNodeGroups": { - "type": "number" - }, - "Port": { - "type": "number" - }, - "PreferredCacheClusterAZs": { + { "items": { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, "type": "array" - }, - "PreferredMaintenanceWindow": { + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "BackupId": { "type": "string" }, - "PrimaryClusterId": { + "FileSystemType": { "type": "string" }, - "ReplicasPerNodeGroup": { - "type": "number" - }, - "ReplicationGroupDescription": { + "KmsKeyId": { "type": "string" }, - "ReplicationGroupId": { - "type": "string" + "LustreConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.LustreConfiguration" }, "SecurityGroupIds": { "items": { @@ -18814,77 +22595,98 @@ }, "type": "array" }, - "SnapshotArns": { + "StorageCapacity": { + "type": "number" + }, + "SubnetIds": { "items": { "type": "string" }, "type": "array" }, - "SnapshotName": { - "type": "string" - }, - "SnapshotRetentionLimit": { - "type": "number" - }, - "SnapshotWindow": { - "type": "string" - }, - "SnapshottingClusterId": { - "type": "string" - }, "Tags": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::FSx::FileSystem.TagEntry" }, "type": "array" }, - "TransitEncryptionEnabled": { - "type": "boolean" + "WindowsConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.WindowsConfiguration" } }, - "required": [ - "ReplicationGroupDescription" - ], "type": "object" }, "Type": { "enum": [ - "AWS::ElastiCache::ReplicationGroup" + "AWS::FSx::FileSystem" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration": { + "AWS::FSx::FileSystem.LustreConfiguration": { "additionalProperties": false, "properties": { - "NodeGroupId": { + "ExportPath": { "type": "string" }, - "PrimaryAvailabilityZone": { + "ImportPath": { "type": "string" }, - "ReplicaAvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" + "ImportedFileChunkSize": { + "type": "number" }, - "ReplicaCount": { + "WeeklyMaintenanceStartTime": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::FSx::FileSystem.TagEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::FSx::FileSystem.WindowsConfiguration": { + "additionalProperties": false, + "properties": { + "ActiveDirectoryId": { + "type": "string" + }, + "AutomaticBackupRetentionDays": { "type": "number" }, - "Slots": { + "CopyTagsToBackups": { + "type": "boolean" + }, + "DailyAutomaticBackupStartTime": { + "type": "string" + }, + "ThroughputCapacity": { + "type": "number" + }, + "WeeklyMaintenanceStartTime": { "type": "string" } }, "type": "object" }, - "AWS::ElastiCache::SecurityGroup": { + "AWS::GameLift::Alias": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18918,16 +22720,23 @@ "properties": { "Description": { "type": "string" + }, + "Name": { + "type": "string" + }, + "RoutingStrategy": { + "$ref": "#/definitions/AWS::GameLift::Alias.RoutingStrategy" } }, "required": [ - "Description" + "Name", + "RoutingStrategy" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElastiCache::SecurityGroup" + "AWS::GameLift::Alias" ], "type": "string" } @@ -18938,7 +22747,25 @@ ], "type": "object" }, - "AWS::ElastiCache::SecurityGroupIngress": { + "AWS::GameLift::Alias.RoutingStrategy": { + "additionalProperties": false, + "properties": { + "FleetId": { + "type": "string" + }, + "Message": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::GameLift::Build": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18970,36 +22797,51 @@ "Properties": { "additionalProperties": false, "properties": { - "CacheSecurityGroupName": { + "Name": { "type": "string" }, - "EC2SecurityGroupName": { - "type": "string" + "StorageLocation": { + "$ref": "#/definitions/AWS::GameLift::Build.S3Location" }, - "EC2SecurityGroupOwnerId": { + "Version": { "type": "string" } }, - "required": [ - "CacheSecurityGroupName", - "EC2SecurityGroupName" - ], "type": "object" }, "Type": { "enum": [ - "AWS::ElastiCache::SecurityGroupIngress" + "AWS::GameLift::Build" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::ElastiCache::SubnetGroup": { + "AWS::GameLift::Build.S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key", + "RoleArn" + ], + "type": "object" + }, + "AWS::GameLift::Fleet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19031,28 +22873,58 @@ "Properties": { "additionalProperties": false, "properties": { - "CacheSubnetGroupName": { + "BuildId": { "type": "string" }, "Description": { "type": "string" }, - "SubnetIds": { + "DesiredEC2Instances": { + "type": "number" + }, + "EC2InboundPermissions": { + "items": { + "$ref": "#/definitions/AWS::GameLift::Fleet.IpPermission" + }, + "type": "array" + }, + "EC2InstanceType": { + "type": "string" + }, + "LogPaths": { "items": { "type": "string" }, "type": "array" + }, + "MaxSize": { + "type": "number" + }, + "MinSize": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "ServerLaunchParameters": { + "type": "string" + }, + "ServerLaunchPath": { + "type": "string" } }, "required": [ - "Description", - "SubnetIds" + "BuildId", + "DesiredEC2Instances", + "EC2InstanceType", + "Name", + "ServerLaunchPath" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElastiCache::SubnetGroup" + "AWS::GameLift::Fleet" ], "type": "string" } @@ -19063,7 +22935,31 @@ ], "type": "object" }, - "AWS::ElasticBeanstalk::Application": { + "AWS::GameLift::Fleet.IpPermission": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "number" + }, + "IpRange": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "FromPort", + "IpRange", + "Protocol", + "ToPort" + ], + "type": "object" + }, + "AWS::Glue::Classifier": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19095,21 +22991,21 @@ "Properties": { "additionalProperties": false, "properties": { - "ApplicationName": { - "type": "string" + "GrokClassifier": { + "$ref": "#/definitions/AWS::Glue::Classifier.GrokClassifier" }, - "Description": { - "type": "string" + "JsonClassifier": { + "$ref": "#/definitions/AWS::Glue::Classifier.JsonClassifier" }, - "ResourceLifecycleConfig": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig" + "XMLClassifier": { + "$ref": "#/definitions/AWS::Glue::Classifier.XMLClassifier" } }, "type": "object" }, "Type": { "enum": [ - "AWS::ElasticBeanstalk::Application" + "AWS::Glue::Classifier" ], "type": "string" } @@ -19119,61 +23015,63 @@ ], "type": "object" }, - "AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig": { + "AWS::Glue::Classifier.GrokClassifier": { "additionalProperties": false, "properties": { - "ServiceRole": { + "Classification": { "type": "string" }, - "VersionLifecycleConfig": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig" - } - }, - "type": "object" - }, - "AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig": { - "additionalProperties": false, - "properties": { - "MaxAgeRule": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxAgeRule" + "CustomPatterns": { + "type": "string" }, - "MaxCountRule": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxCountRule" + "GrokPattern": { + "type": "string" + }, + "Name": { + "type": "string" } }, + "required": [ + "Classification", + "GrokPattern" + ], "type": "object" }, - "AWS::ElasticBeanstalk::Application.MaxAgeRule": { + "AWS::Glue::Classifier.JsonClassifier": { "additionalProperties": false, "properties": { - "DeleteSourceFromS3": { - "type": "boolean" - }, - "Enabled": { - "type": "boolean" + "JsonPath": { + "type": "string" }, - "MaxAgeInDays": { - "type": "number" + "Name": { + "type": "string" } }, + "required": [ + "JsonPath" + ], "type": "object" }, - "AWS::ElasticBeanstalk::Application.MaxCountRule": { + "AWS::Glue::Classifier.XMLClassifier": { "additionalProperties": false, "properties": { - "DeleteSourceFromS3": { - "type": "boolean" + "Classification": { + "type": "string" }, - "Enabled": { - "type": "boolean" + "Name": { + "type": "string" }, - "MaxCount": { - "type": "number" + "RowTag": { + "type": "string" } }, + "required": [ + "Classification", + "RowTag" + ], "type": "object" }, - "AWS::ElasticBeanstalk::ApplicationVersion": { + "AWS::Glue::Connection": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19205,25 +23103,22 @@ "Properties": { "additionalProperties": false, "properties": { - "ApplicationName": { - "type": "string" - }, - "Description": { + "CatalogId": { "type": "string" }, - "SourceBundle": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle" + "ConnectionInput": { + "$ref": "#/definitions/AWS::Glue::Connection.ConnectionInput" } }, "required": [ - "ApplicationName", - "SourceBundle" + "CatalogId", + "ConnectionInput" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticBeanstalk::ApplicationVersion" + "AWS::Glue::Connection" ], "type": "string" } @@ -19234,23 +23129,56 @@ ], "type": "object" }, - "AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle": { + "AWS::Glue::Connection.ConnectionInput": { "additionalProperties": false, "properties": { - "S3Bucket": { + "ConnectionProperties": { + "type": "object" + }, + "ConnectionType": { "type": "string" }, - "S3Key": { + "Description": { + "type": "string" + }, + "MatchCriteria": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { "type": "string" + }, + "PhysicalConnectionRequirements": { + "$ref": "#/definitions/AWS::Glue::Connection.PhysicalConnectionRequirements" } }, "required": [ - "S3Bucket", - "S3Key" + "ConnectionProperties", + "ConnectionType" ], "type": "object" }, - "AWS::ElasticBeanstalk::ConfigurationTemplate": { + "AWS::Glue::Connection.PhysicalConnectionRequirements": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "SecurityGroupIdList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19282,39 +23210,180 @@ "Properties": { "additionalProperties": false, "properties": { - "ApplicationName": { + "Classifiers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Configuration": { + "type": "string" + }, + "DatabaseName": { "type": "string" }, "Description": { "type": "string" }, - "EnvironmentId": { + "Name": { "type": "string" }, - "OptionSettings": { - "items": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting" - }, - "type": "array" + "Role": { + "type": "string" }, - "PlatformArn": { + "Schedule": { + "$ref": "#/definitions/AWS::Glue::Crawler.Schedule" + }, + "SchemaChangePolicy": { + "$ref": "#/definitions/AWS::Glue::Crawler.SchemaChangePolicy" + }, + "TablePrefix": { "type": "string" }, - "SolutionStackName": { + "Targets": { + "$ref": "#/definitions/AWS::Glue::Crawler.Targets" + } + }, + "required": [ + "DatabaseName", + "Role", + "Targets" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Crawler" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Crawler.JdbcTarget": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "type": "string" + }, + "Exclusions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.S3Target": { + "additionalProperties": false, + "properties": { + "Exclusions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.Schedule": { + "additionalProperties": false, + "properties": { + "ScheduleExpression": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.SchemaChangePolicy": { + "additionalProperties": false, + "properties": { + "DeleteBehavior": { + "type": "string" + }, + "UpdateBehavior": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.Targets": { + "additionalProperties": false, + "properties": { + "JdbcTargets": { + "items": { + "$ref": "#/definitions/AWS::Glue::Crawler.JdbcTarget" + }, + "type": "array" + }, + "S3Targets": { + "items": { + "$ref": "#/definitions/AWS::Glue::Crawler.S3Target" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Glue::Database": { + "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": { + "CatalogId": { "type": "string" }, - "SourceConfiguration": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration" + "DatabaseInput": { + "$ref": "#/definitions/AWS::Glue::Database.DatabaseInput" } }, "required": [ - "ApplicationName" + "CatalogId", + "DatabaseInput" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticBeanstalk::ConfigurationTemplate" + "AWS::Glue::Database" ], "type": "string" } @@ -19325,45 +23394,25 @@ ], "type": "object" }, - "AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting": { + "AWS::Glue::Database.DatabaseInput": { "additionalProperties": false, "properties": { - "Namespace": { - "type": "string" - }, - "OptionName": { + "Description": { "type": "string" }, - "ResourceName": { + "LocationUri": { "type": "string" }, - "Value": { - "type": "string" - } - }, - "required": [ - "Namespace", - "OptionName" - ], - "type": "object" - }, - "AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration": { - "additionalProperties": false, - "properties": { - "ApplicationName": { + "Name": { "type": "string" }, - "TemplateName": { - "type": "string" + "Parameters": { + "type": "object" } }, - "required": [ - "ApplicationName", - "TemplateName" - ], "type": "object" }, - "AWS::ElasticBeanstalk::Environment": { + "AWS::Glue::DevEndpoint": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19395,54 +23444,43 @@ "Properties": { "additionalProperties": false, "properties": { - "ApplicationName": { - "type": "string" - }, - "CNAMEPrefix": { + "EndpointName": { "type": "string" }, - "Description": { + "ExtraJarsS3Path": { "type": "string" }, - "EnvironmentName": { + "ExtraPythonLibsS3Path": { "type": "string" }, - "OptionSettings": { - "items": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.OptionSetting" - }, - "type": "array" + "NumberOfNodes": { + "type": "number" }, - "PlatformArn": { + "PublicKey": { "type": "string" }, - "SolutionStackName": { + "RoleArn": { "type": "string" }, - "Tags": { + "SecurityGroupIds": { "items": { - "$ref": "#/definitions/Tag" + "type": "string" }, "type": "array" }, - "TemplateName": { - "type": "string" - }, - "Tier": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.Tier" - }, - "VersionLabel": { + "SubnetId": { "type": "string" } }, "required": [ - "ApplicationName" + "PublicKey", + "RoleArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticBeanstalk::Environment" + "AWS::Glue::DevEndpoint" ], "type": "string" } @@ -19453,44 +23491,7 @@ ], "type": "object" }, - "AWS::ElasticBeanstalk::Environment.OptionSetting": { - "additionalProperties": false, - "properties": { - "Namespace": { - "type": "string" - }, - "OptionName": { - "type": "string" - }, - "ResourceName": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Namespace", - "OptionName" - ], - "type": "object" - }, - "AWS::ElasticBeanstalk::Environment.Tier": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer": { + "AWS::Glue::Job": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19522,90 +23523,46 @@ "Properties": { "additionalProperties": false, "properties": { - "AccessLoggingPolicy": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy" - }, - "AppCookieStickinessPolicy": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy" - }, - "type": "array" - }, - "AvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ConnectionDrainingPolicy": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy" - }, - "ConnectionSettings": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings" - }, - "CrossZone": { - "type": "boolean" - }, - "HealthCheck": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck" + "AllocatedCapacity": { + "type": "number" }, - "Instances": { - "items": { - "type": "string" - }, - "type": "array" + "Command": { + "$ref": "#/definitions/AWS::Glue::Job.JobCommand" }, - "LBCookieStickinessPolicy": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy" - }, - "type": "array" + "Connections": { + "$ref": "#/definitions/AWS::Glue::Job.ConnectionsList" }, - "Listeners": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Listeners" - }, - "type": "array" + "DefaultArguments": { + "type": "object" }, - "LoadBalancerName": { + "Description": { "type": "string" }, - "Policies": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Policies" - }, - "type": "array" + "ExecutionProperty": { + "$ref": "#/definitions/AWS::Glue::Job.ExecutionProperty" }, - "Scheme": { + "LogUri": { "type": "string" }, - "SecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" + "MaxRetries": { + "type": "number" }, - "Subnets": { - "items": { - "type": "string" - }, - "type": "array" + "Name": { + "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "Role": { + "type": "string" } }, "required": [ - "Listeners" + "Command", + "Role" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticLoadBalancing::LoadBalancer" + "AWS::Glue::Job" ], "type": "string" } @@ -19616,179 +23573,40 @@ ], "type": "object" }, - "AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy": { - "additionalProperties": false, - "properties": { - "EmitInterval": { - "type": "number" - }, - "Enabled": { - "type": "boolean" - }, - "S3BucketName": { - "type": "string" - }, - "S3BucketPrefix": { - "type": "string" - } - }, - "required": [ - "Enabled", - "S3BucketName" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy": { - "additionalProperties": false, - "properties": { - "CookieName": { - "type": "string" - }, - "PolicyName": { - "type": "string" - } - }, - "required": [ - "CookieName", - "PolicyName" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy": { + "AWS::Glue::Job.ConnectionsList": { "additionalProperties": false, "properties": { - "Enabled": { - "type": "boolean" - }, - "Timeout": { - "type": "number" + "Connections": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "Enabled" - ], "type": "object" }, - "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings": { + "AWS::Glue::Job.ExecutionProperty": { "additionalProperties": false, "properties": { - "IdleTimeout": { + "MaxConcurrentRuns": { "type": "number" } }, - "required": [ - "IdleTimeout" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck": { - "additionalProperties": false, - "properties": { - "HealthyThreshold": { - "type": "string" - }, - "Interval": { - "type": "string" - }, - "Target": { - "type": "string" - }, - "Timeout": { - "type": "string" - }, - "UnhealthyThreshold": { - "type": "string" - } - }, - "required": [ - "HealthyThreshold", - "Interval", - "Target", - "Timeout", - "UnhealthyThreshold" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy": { - "additionalProperties": false, - "properties": { - "CookieExpirationPeriod": { - "type": "string" - }, - "PolicyName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer.Listeners": { - "additionalProperties": false, - "properties": { - "InstancePort": { - "type": "string" - }, - "InstanceProtocol": { - "type": "string" - }, - "LoadBalancerPort": { - "type": "string" - }, - "PolicyNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Protocol": { - "type": "string" - }, - "SSLCertificateId": { - "type": "string" - } - }, - "required": [ - "InstancePort", - "LoadBalancerPort", - "Protocol" - ], "type": "object" }, - "AWS::ElasticLoadBalancing::LoadBalancer.Policies": { + "AWS::Glue::Job.JobCommand": { "additionalProperties": false, "properties": { - "Attributes": { - "items": { - "type": "object" - }, - "type": "array" - }, - "InstancePorts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LoadBalancerPorts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "PolicyName": { + "Name": { "type": "string" }, - "PolicyType": { + "ScriptLocation": { "type": "string" } }, - "required": [ - "Attributes", - "PolicyName", - "PolicyType" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener": { + "AWS::Glue::Partition": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19820,42 +23638,30 @@ "Properties": { "additionalProperties": false, "properties": { - "Certificates": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Certificate" - }, - "type": "array" - }, - "DefaultActions": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Action" - }, - "type": "array" - }, - "LoadBalancerArn": { + "CatalogId": { "type": "string" }, - "Port": { - "type": "number" - }, - "Protocol": { + "DatabaseName": { "type": "string" }, - "SslPolicy": { + "PartitionInput": { + "$ref": "#/definitions/AWS::Glue::Partition.PartitionInput" + }, + "TableName": { "type": "string" } }, "required": [ - "DefaultActions", - "LoadBalancerArn", - "Port", - "Protocol" + "CatalogId", + "DatabaseName", + "PartitionInput", + "TableName" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticLoadBalancingV2::Listener" + "AWS::Glue::Partition" ], "type": "string" } @@ -19866,25 +23672,13 @@ ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.Action": { + "AWS::Glue::Partition.Column": { "additionalProperties": false, "properties": { - "AuthenticateCognitoConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig" - }, - "AuthenticateOidcConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig" - }, - "FixedResponseConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig" - }, - "Order": { - "type": "number" - }, - "RedirectConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.RedirectConfig" + "Comment": { + "type": "string" }, - "TargetGroupArn": { + "Name": { "type": "string" }, "Type": { @@ -19892,159 +23686,134 @@ } }, "required": [ - "Type" + "Name" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig": { + "AWS::Glue::Partition.Order": { "additionalProperties": false, "properties": { - "AuthenticationRequestExtraParams": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "OnUnauthenticatedRequest": { - "type": "string" - }, - "Scope": { - "type": "string" - }, - "SessionCookieName": { + "Column": { "type": "string" }, - "SessionTimeout": { + "SortOrder": { "type": "number" - }, - "UserPoolArn": { - "type": "string" - }, - "UserPoolClientId": { - "type": "string" - }, - "UserPoolDomain": { - "type": "string" } }, "required": [ - "UserPoolArn", - "UserPoolClientId", - "UserPoolDomain" + "Column" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig": { + "AWS::Glue::Partition.PartitionInput": { "additionalProperties": false, "properties": { - "AuthenticationRequestExtraParams": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, + "Parameters": { "type": "object" }, - "AuthorizationEndpoint": { - "type": "string" - }, - "ClientId": { - "type": "string" - }, - "ClientSecret": { - "type": "string" - }, - "Issuer": { - "type": "string" - }, - "OnUnauthenticatedRequest": { - "type": "string" - }, - "Scope": { - "type": "string" - }, - "SessionCookieName": { - "type": "string" - }, - "SessionTimeout": { - "type": "number" - }, - "TokenEndpoint": { - "type": "string" + "StorageDescriptor": { + "$ref": "#/definitions/AWS::Glue::Partition.StorageDescriptor" }, - "UserInfoEndpoint": { - "type": "string" + "Values": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "AuthorizationEndpoint", - "ClientId", - "ClientSecret", - "Issuer", - "TokenEndpoint", - "UserInfoEndpoint" + "Values" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.Certificate": { + "AWS::Glue::Partition.SerdeInfo": { "additionalProperties": false, "properties": { - "CertificateArn": { + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "SerializationLibrary": { "type": "string" } }, "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig": { + "AWS::Glue::Partition.SkewedInfo": { "additionalProperties": false, "properties": { - "ContentType": { - "type": "string" + "SkewedColumnNames": { + "items": { + "type": "string" + }, + "type": "array" }, - "MessageBody": { - "type": "string" + "SkewedColumnValueLocationMaps": { + "type": "object" }, - "StatusCode": { - "type": "string" + "SkewedColumnValues": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "StatusCode" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.RedirectConfig": { + "AWS::Glue::Partition.StorageDescriptor": { "additionalProperties": false, "properties": { - "Host": { - "type": "string" + "BucketColumns": { + "items": { + "type": "string" + }, + "type": "array" }, - "Path": { - "type": "string" + "Columns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Partition.Column" + }, + "type": "array" }, - "Port": { - "type": "string" + "Compressed": { + "type": "boolean" }, - "Protocol": { + "InputFormat": { "type": "string" }, - "Query": { + "Location": { "type": "string" }, - "StatusCode": { + "NumberOfBuckets": { + "type": "number" + }, + "OutputFormat": { "type": "string" + }, + "Parameters": { + "type": "object" + }, + "SerdeInfo": { + "$ref": "#/definitions/AWS::Glue::Partition.SerdeInfo" + }, + "SkewedInfo": { + "$ref": "#/definitions/AWS::Glue::Partition.SkewedInfo" + }, + "SortColumns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Partition.Order" + }, + "type": "array" + }, + "StoredAsSubDirectories": { + "type": "boolean" } }, - "required": [ - "StatusCode" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerCertificate": { + "AWS::Glue::Table": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20076,25 +23845,26 @@ "Properties": { "additionalProperties": false, "properties": { - "Certificates": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate" - }, - "type": "array" + "CatalogId": { + "type": "string" }, - "ListenerArn": { + "DatabaseName": { "type": "string" + }, + "TableInput": { + "$ref": "#/definitions/AWS::Glue::Table.TableInput" } }, "required": [ - "Certificates", - "ListenerArn" + "CatalogId", + "DatabaseName", + "TableInput" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticLoadBalancingV2::ListenerCertificate" + "AWS::Glue::Table" ], "type": "string" } @@ -20105,272 +23875,167 @@ ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate": { - "additionalProperties": false, - "properties": { - "CertificateArn": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ElasticLoadBalancingV2::ListenerRule": { + "AWS::Glue::Table.Column": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Comment": { "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": { - "Actions": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.Action" - }, - "type": "array" - }, - "Conditions": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition" - }, - "type": "array" - }, - "ListenerArn": { - "type": "string" - }, - "Priority": { - "type": "number" - } - }, - "required": [ - "Actions", - "Conditions", - "ListenerArn", - "Priority" - ], - "type": "object" + "Name": { + "type": "string" }, "Type": { - "enum": [ - "AWS::ElasticLoadBalancingV2::ListenerRule" - ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Name" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerRule.Action": { + "AWS::Glue::Table.Order": { "additionalProperties": false, "properties": { - "AuthenticateCognitoConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig" - }, - "AuthenticateOidcConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig" - }, - "FixedResponseConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig" - }, - "Order": { - "type": "number" - }, - "RedirectConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig" - }, - "TargetGroupArn": { + "Column": { "type": "string" }, - "Type": { - "type": "string" + "SortOrder": { + "type": "number" } }, "required": [ - "Type" + "Column", + "SortOrder" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig": { + "AWS::Glue::Table.SerdeInfo": { "additionalProperties": false, "properties": { - "AuthenticationRequestExtraParams": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "OnUnauthenticatedRequest": { - "type": "string" - }, - "Scope": { - "type": "string" - }, - "SessionCookieName": { + "Name": { "type": "string" }, - "SessionTimeout": { - "type": "number" + "Parameters": { + "type": "object" }, - "UserPoolArn": { + "SerializationLibrary": { "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Table.SkewedInfo": { + "additionalProperties": false, + "properties": { + "SkewedColumnNames": { + "items": { + "type": "string" + }, + "type": "array" }, - "UserPoolClientId": { - "type": "string" + "SkewedColumnValueLocationMaps": { + "type": "object" }, - "UserPoolDomain": { - "type": "string" + "SkewedColumnValues": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "UserPoolArn", - "UserPoolClientId", - "UserPoolDomain" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig": { + "AWS::Glue::Table.StorageDescriptor": { "additionalProperties": false, "properties": { - "AuthenticationRequestExtraParams": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } + "BucketColumns": { + "items": { + "type": "string" }, - "type": "object" + "type": "array" }, - "AuthorizationEndpoint": { - "type": "string" + "Columns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Table.Column" + }, + "type": "array" }, - "ClientId": { - "type": "string" + "Compressed": { + "type": "boolean" }, - "ClientSecret": { + "InputFormat": { "type": "string" }, - "Issuer": { + "Location": { "type": "string" }, - "OnUnauthenticatedRequest": { - "type": "string" + "NumberOfBuckets": { + "type": "number" }, - "Scope": { + "OutputFormat": { "type": "string" }, - "SessionCookieName": { - "type": "string" + "Parameters": { + "type": "object" }, - "SessionTimeout": { - "type": "number" + "SerdeInfo": { + "$ref": "#/definitions/AWS::Glue::Table.SerdeInfo" }, - "TokenEndpoint": { - "type": "string" + "SkewedInfo": { + "$ref": "#/definitions/AWS::Glue::Table.SkewedInfo" }, - "UserInfoEndpoint": { - "type": "string" + "SortColumns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Table.Order" + }, + "type": "array" + }, + "StoredAsSubDirectories": { + "type": "boolean" } }, - "required": [ - "AuthorizationEndpoint", - "ClientId", - "ClientSecret", - "Issuer", - "TokenEndpoint", - "UserInfoEndpoint" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig": { + "AWS::Glue::Table.TableInput": { "additionalProperties": false, "properties": { - "ContentType": { + "Description": { "type": "string" }, - "MessageBody": { + "Name": { "type": "string" }, - "StatusCode": { - "type": "string" - } - }, - "required": [ - "StatusCode" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig": { - "additionalProperties": false, - "properties": { - "Host": { + "Owner": { "type": "string" }, - "Path": { - "type": "string" + "Parameters": { + "type": "object" }, - "Port": { - "type": "string" + "PartitionKeys": { + "items": { + "$ref": "#/definitions/AWS::Glue::Table.Column" + }, + "type": "array" }, - "Protocol": { - "type": "string" + "Retention": { + "type": "number" }, - "Query": { - "type": "string" + "StorageDescriptor": { + "$ref": "#/definitions/AWS::Glue::Table.StorageDescriptor" }, - "StatusCode": { + "TableType": { "type": "string" - } - }, - "required": [ - "StatusCode" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition": { - "additionalProperties": false, - "properties": { - "Field": { + }, + "ViewExpandedText": { "type": "string" }, - "Values": { - "items": { - "type": "string" - }, - "type": "array" + "ViewOriginalText": { + "type": "string" } }, "type": "object" }, - "AWS::ElasticLoadBalancingV2::LoadBalancer": { + "AWS::Glue::Trigger": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20402,92 +24067,147 @@ "Properties": { "additionalProperties": false, "properties": { - "IpAddressType": { - "type": "string" - }, - "LoadBalancerAttributes": { + "Actions": { "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute" + "$ref": "#/definitions/AWS::Glue::Trigger.Action" }, "type": "array" }, - "Name": { + "Description": { "type": "string" }, - "Scheme": { + "Name": { "type": "string" }, - "SecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SubnetMappings": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping" - }, - "type": "array" - }, - "Subnets": { - "items": { - "type": "string" - }, - "type": "array" + "Predicate": { + "$ref": "#/definitions/AWS::Glue::Trigger.Predicate" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "Schedule": { + "type": "string" }, "Type": { "type": "string" } }, + "required": [ + "Actions", + "Type" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticLoadBalancingV2::LoadBalancer" + "AWS::Glue::Trigger" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute": { + "AWS::Glue::Trigger.Action": { "additionalProperties": false, "properties": { - "Key": { + "Arguments": { + "type": "object" + }, + "JobName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Trigger.Condition": { + "additionalProperties": false, + "properties": { + "JobName": { "type": "string" }, - "Value": { + "LogicalOperator": { + "type": "string" + }, + "State": { "type": "string" } }, "type": "object" }, - "AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping": { + "AWS::Glue::Trigger.Predicate": { "additionalProperties": false, "properties": { - "AllocationId": { + "Conditions": { + "items": { + "$ref": "#/definitions/AWS::Glue::Trigger.Condition" + }, + "type": "array" + }, + "Logical": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GuardDuty::Detector": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "SubnetId": { + "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": { + "Enable": { + "type": "boolean" + }, + "FindingPublishingFrequency": { + "type": "string" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GuardDuty::Detector" + ], "type": "string" } }, "required": [ - "AllocationId", - "SubnetId" + "Type", + "Properties" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::TargetGroup": { + "AWS::GuardDuty::Filter": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20519,74 +24239,37 @@ "Properties": { "additionalProperties": false, "properties": { - "HealthCheckIntervalSeconds": { - "type": "number" - }, - "HealthCheckPath": { + "Action": { "type": "string" }, - "HealthCheckPort": { + "Description": { "type": "string" }, - "HealthCheckProtocol": { + "DetectorId": { "type": "string" }, - "HealthCheckTimeoutSeconds": { - "type": "number" - }, - "HealthyThresholdCount": { - "type": "number" - }, - "Matcher": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.Matcher" + "FindingCriteria": { + "$ref": "#/definitions/AWS::GuardDuty::Filter.FindingCriteria" }, "Name": { "type": "string" }, - "Port": { - "type": "number" - }, - "Protocol": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "TargetGroupAttributes": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute" - }, - "type": "array" - }, - "TargetType": { - "type": "string" - }, - "Targets": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription" - }, - "type": "array" - }, - "UnhealthyThresholdCount": { + "Rank": { "type": "number" - }, - "VpcId": { - "type": "string" } }, "required": [ - "Port", - "Protocol", - "VpcId" + "Action", + "Description", + "DetectorId", + "FindingCriteria", + "Rank" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticLoadBalancingV2::TargetGroup" + "AWS::GuardDuty::Filter" ], "type": "string" } @@ -20597,49 +24280,46 @@ ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::TargetGroup.Matcher": { - "additionalProperties": false, - "properties": { - "HttpCode": { - "type": "string" - } - }, - "required": [ - "HttpCode" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription": { + "AWS::GuardDuty::Filter.Condition": { "additionalProperties": false, "properties": { - "AvailabilityZone": { - "type": "string" + "Eq": { + "items": { + "type": "string" + }, + "type": "array" }, - "Id": { - "type": "string" + "Gte": { + "type": "number" }, - "Port": { + "Lt": { + "type": "number" + }, + "Lte": { "type": "number" + }, + "Neq": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "Id" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute": { + "AWS::GuardDuty::Filter.FindingCriteria": { "additionalProperties": false, "properties": { - "Key": { - "type": "string" + "Criterion": { + "type": "object" }, - "Value": { - "type": "string" + "ItemType": { + "$ref": "#/definitions/AWS::GuardDuty::Filter.Condition" } }, "type": "object" }, - "AWS::Elasticsearch::Domain": { + "AWS::GuardDuty::IPSet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20671,142 +24351,44 @@ "Properties": { "additionalProperties": false, "properties": { - "AccessPolicies": { - "type": "object" - }, - "AdvancedOptions": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" + "Activate": { + "type": "boolean" }, - "DomainName": { + "DetectorId": { "type": "string" }, - "EBSOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.EBSOptions" - }, - "ElasticsearchClusterConfig": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.ElasticsearchClusterConfig" - }, - "ElasticsearchVersion": { + "Format": { "type": "string" }, - "EncryptionAtRestOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.EncryptionAtRestOptions" - }, - "SnapshotOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.SnapshotOptions" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "Location": { + "type": "string" }, - "VPCOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.VPCOptions" + "Name": { + "type": "string" } }, + "required": [ + "Activate", + "DetectorId", + "Format", + "Location" + ], "type": "object" }, "Type": { "enum": [ - "AWS::Elasticsearch::Domain" + "AWS::GuardDuty::IPSet" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::Elasticsearch::Domain.EBSOptions": { - "additionalProperties": false, - "properties": { - "EBSEnabled": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "VolumeSize": { - "type": "number" - }, - "VolumeType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Elasticsearch::Domain.ElasticsearchClusterConfig": { - "additionalProperties": false, - "properties": { - "DedicatedMasterCount": { - "type": "number" - }, - "DedicatedMasterEnabled": { - "type": "boolean" - }, - "DedicatedMasterType": { - "type": "string" - }, - "InstanceCount": { - "type": "number" - }, - "InstanceType": { - "type": "string" - }, - "ZoneAwarenessEnabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::Elasticsearch::Domain.EncryptionAtRestOptions": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "KmsKeyId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Elasticsearch::Domain.SnapshotOptions": { - "additionalProperties": false, - "properties": { - "AutomatedSnapshotStartHour": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::Elasticsearch::Domain.VPCOptions": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Events::EventBusPolicy": { + "AWS::GuardDuty::Master": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20838,29 +24420,25 @@ "Properties": { "additionalProperties": false, "properties": { - "Action": { + "DetectorId": { "type": "string" }, - "Condition": { - "$ref": "#/definitions/AWS::Events::EventBusPolicy.Condition" - }, - "Principal": { + "InvitationId": { "type": "string" }, - "StatementId": { + "MasterId": { "type": "string" } }, "required": [ - "Action", - "Principal", - "StatementId" + "DetectorId", + "MasterId" ], "type": "object" }, "Type": { "enum": [ - "AWS::Events::EventBusPolicy" + "AWS::GuardDuty::Master" ], "type": "string" } @@ -20871,22 +24449,7 @@ ], "type": "object" }, - "AWS::Events::EventBusPolicy.Condition": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Events::Rule": { + "AWS::GuardDuty::Member": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20918,180 +24481,175 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "DetectorId": { "type": "string" }, - "EventPattern": { - "type": "object" + "DisableEmailNotification": { + "type": "boolean" }, - "Name": { + "Email": { "type": "string" }, - "RoleArn": { + "MemberId": { "type": "string" }, - "ScheduleExpression": { + "Message": { "type": "string" }, - "State": { + "Status": { "type": "string" - }, - "Targets": { - "items": { - "$ref": "#/definitions/AWS::Events::Rule.Target" - }, - "type": "array" } }, + "required": [ + "DetectorId", + "Email", + "MemberId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::Events::Rule" + "AWS::GuardDuty::Member" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::Events::Rule.EcsParameters": { + "AWS::GuardDuty::ThreatIntelSet": { "additionalProperties": false, "properties": { - "TaskCount": { - "type": "number" - }, - "TaskDefinitionArn": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" - } - }, - "required": [ - "TaskDefinitionArn" - ], - "type": "object" - }, - "AWS::Events::Rule.InputTransformer": { - "additionalProperties": false, - "properties": { - "InputPathsMap": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - }, + ] + }, + "Metadata": { "type": "object" }, - "InputTemplate": { - "type": "string" - } - }, - "required": [ - "InputTemplate" - ], - "type": "object" - }, - "AWS::Events::Rule.KinesisParameters": { - "additionalProperties": false, - "properties": { - "PartitionKeyPath": { - "type": "string" - } - }, - "required": [ - "PartitionKeyPath" - ], - "type": "object" - }, - "AWS::Events::Rule.RunCommandParameters": { - "additionalProperties": false, - "properties": { - "RunCommandTargets": { - "items": { - "$ref": "#/definitions/AWS::Events::Rule.RunCommandTarget" + "Properties": { + "additionalProperties": false, + "properties": { + "Activate": { + "type": "boolean" + }, + "DetectorId": { + "type": "string" + }, + "Format": { + "type": "string" + }, + "Location": { + "type": "string" + }, + "Name": { + "type": "string" + } }, - "type": "array" - } - }, - "required": [ - "RunCommandTargets" - ], - "type": "object" - }, - "AWS::Events::Rule.RunCommandTarget": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" + "required": [ + "Activate", + "DetectorId", + "Format", + "Location" + ], + "type": "object" }, - "Values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Key", - "Values" - ], - "type": "object" - }, - "AWS::Events::Rule.SqsParameters": { - "additionalProperties": false, - "properties": { - "MessageGroupId": { + "Type": { + "enum": [ + "AWS::GuardDuty::ThreatIntelSet" + ], "type": "string" } }, "required": [ - "MessageGroupId" + "Type", + "Properties" ], "type": "object" }, - "AWS::Events::Rule.Target": { + "AWS::IAM::AccessKey": { "additionalProperties": false, "properties": { - "Arn": { - "type": "string" - }, - "EcsParameters": { - "$ref": "#/definitions/AWS::Events::Rule.EcsParameters" - }, - "Id": { - "type": "string" - }, - "Input": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "InputPath": { - "type": "string" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "InputTransformer": { - "$ref": "#/definitions/AWS::Events::Rule.InputTransformer" + "Metadata": { + "type": "object" }, - "KinesisParameters": { - "$ref": "#/definitions/AWS::Events::Rule.KinesisParameters" + "Properties": { + "additionalProperties": false, + "properties": { + "Serial": { + "type": "number" + }, + "Status": { + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "required": [ + "UserName" + ], + "type": "object" }, - "RoleArn": { + "Type": { + "enum": [ + "AWS::IAM::AccessKey" + ], "type": "string" - }, - "RunCommandParameters": { - "$ref": "#/definitions/AWS::Events::Rule.RunCommandParameters" - }, - "SqsParameters": { - "$ref": "#/definitions/AWS::Events::Rule.SqsParameters" } }, "required": [ - "Arn", - "Id" + "Type", + "Properties" ], "type": "object" }, - "AWS::GameLift::Alias": { + "AWS::IAM::Group": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21123,54 +24681,56 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "GroupName": { "type": "string" }, - "Name": { + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { "type": "string" }, - "RoutingStrategy": { - "$ref": "#/definitions/AWS::GameLift::Alias.RoutingStrategy" + "Policies": { + "items": { + "$ref": "#/definitions/AWS::IAM::Group.Policy" + }, + "type": "array" } }, - "required": [ - "Name", - "RoutingStrategy" - ], "type": "object" }, "Type": { "enum": [ - "AWS::GameLift::Alias" + "AWS::IAM::Group" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::GameLift::Alias.RoutingStrategy": { + "AWS::IAM::Group.Policy": { "additionalProperties": false, "properties": { - "FleetId": { - "type": "string" - }, - "Message": { - "type": "string" + "PolicyDocument": { + "type": "object" }, - "Type": { + "PolicyName": { "type": "string" } }, "required": [ - "Type" + "PolicyDocument", + "PolicyName" ], "type": "object" }, - "AWS::GameLift::Build": { + "AWS::IAM::InstanceProfile": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21202,51 +24762,38 @@ "Properties": { "additionalProperties": false, "properties": { - "Name": { + "InstanceProfileName": { "type": "string" }, - "StorageLocation": { - "$ref": "#/definitions/AWS::GameLift::Build.S3Location" - }, - "Version": { + "Path": { "type": "string" + }, + "Roles": { + "items": { + "type": "string" + }, + "type": "array" } }, + "required": [ + "Roles" + ], "type": "object" }, "Type": { "enum": [ - "AWS::GameLift::Build" + "AWS::IAM::InstanceProfile" ], "type": "string" } }, "required": [ - "Type" - ], - "type": "object" - }, - "AWS::GameLift::Build.S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key", - "RoleArn" + "Type", + "Properties" ], "type": "object" }, - "AWS::GameLift::Fleet": { + "AWS::IAM::ManagedPolicy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21278,58 +24825,45 @@ "Properties": { "additionalProperties": false, "properties": { - "BuildId": { - "type": "string" - }, "Description": { "type": "string" }, - "DesiredEC2Instances": { - "type": "number" - }, - "EC2InboundPermissions": { + "Groups": { "items": { - "$ref": "#/definitions/AWS::GameLift::Fleet.IpPermission" + "type": "string" }, "type": "array" }, - "EC2InstanceType": { + "ManagedPolicyName": { "type": "string" }, - "LogPaths": { + "Path": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "Roles": { "items": { "type": "string" }, "type": "array" }, - "MaxSize": { - "type": "number" - }, - "MinSize": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "ServerLaunchParameters": { - "type": "string" - }, - "ServerLaunchPath": { - "type": "string" + "Users": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "BuildId", - "DesiredEC2Instances", - "EC2InstanceType", - "Name", - "ServerLaunchPath" + "PolicyDocument" ], "type": "object" }, "Type": { "enum": [ - "AWS::GameLift::Fleet" + "AWS::IAM::ManagedPolicy" ], "type": "string" } @@ -21340,31 +24874,7 @@ ], "type": "object" }, - "AWS::GameLift::Fleet.IpPermission": { - "additionalProperties": false, - "properties": { - "FromPort": { - "type": "number" - }, - "IpRange": { - "type": "string" - }, - "Protocol": { - "type": "string" - }, - "ToPort": { - "type": "number" - } - }, - "required": [ - "FromPort", - "IpRange", - "Protocol", - "ToPort" - ], - "type": "object" - }, - "AWS::Glue::Classifier": { + "AWS::IAM::Policy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21396,87 +24906,145 @@ "Properties": { "additionalProperties": false, "properties": { - "GrokClassifier": { - "$ref": "#/definitions/AWS::Glue::Classifier.GrokClassifier" + "Groups": { + "items": { + "type": "string" + }, + "type": "array" }, - "JsonClassifier": { - "$ref": "#/definitions/AWS::Glue::Classifier.JsonClassifier" + "PolicyDocument": { + "type": "object" }, - "XMLClassifier": { - "$ref": "#/definitions/AWS::Glue::Classifier.XMLClassifier" + "PolicyName": { + "type": "string" + }, + "Roles": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array" } }, + "required": [ + "PolicyDocument", + "PolicyName" + ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Classifier" + "AWS::IAM::Policy" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::Glue::Classifier.GrokClassifier": { + "AWS::IAM::Role": { "additionalProperties": false, "properties": { - "Classification": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "CustomPatterns": { - "type": "string" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "GrokPattern": { - "type": "string" + "Metadata": { + "type": "object" }, - "Name": { - "type": "string" - } - }, - "required": [ - "Classification", - "GrokPattern" - ], - "type": "object" - }, - "AWS::Glue::Classifier.JsonClassifier": { - "additionalProperties": false, - "properties": { - "JsonPath": { - "type": "string" + "Properties": { + "additionalProperties": false, + "properties": { + "AssumeRolePolicyDocument": { + "type": "object" + }, + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxSessionDuration": { + "type": "number" + }, + "Path": { + "type": "string" + }, + "PermissionsBoundary": { + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/AWS::IAM::Role.Policy" + }, + "type": "array" + }, + "RoleName": { + "type": "string" + } + }, + "required": [ + "AssumeRolePolicyDocument" + ], + "type": "object" }, - "Name": { + "Type": { + "enum": [ + "AWS::IAM::Role" + ], "type": "string" } }, "required": [ - "JsonPath" + "Type", + "Properties" ], "type": "object" }, - "AWS::Glue::Classifier.XMLClassifier": { + "AWS::IAM::Role.Policy": { "additionalProperties": false, "properties": { - "Classification": { - "type": "string" - }, - "Name": { - "type": "string" + "PolicyDocument": { + "type": "object" }, - "RowTag": { + "PolicyName": { "type": "string" } }, "required": [ - "Classification", - "RowTag" + "PolicyDocument", + "PolicyName" ], "type": "object" }, - "AWS::Glue::Connection": { + "AWS::IAM::ServiceLinkedRole": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21508,22 +25076,24 @@ "Properties": { "additionalProperties": false, "properties": { - "CatalogId": { + "AWSServiceName": { "type": "string" }, - "ConnectionInput": { - "$ref": "#/definitions/AWS::Glue::Connection.ConnectionInput" + "CustomSuffix": { + "type": "string" + }, + "Description": { + "type": "string" } }, "required": [ - "CatalogId", - "ConnectionInput" + "AWSServiceName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Connection" + "AWS::IAM::ServiceLinkedRole" ], "type": "string" } @@ -21534,56 +25104,7 @@ ], "type": "object" }, - "AWS::Glue::Connection.ConnectionInput": { - "additionalProperties": false, - "properties": { - "ConnectionProperties": { - "type": "object" - }, - "ConnectionType": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "MatchCriteria": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "PhysicalConnectionRequirements": { - "$ref": "#/definitions/AWS::Glue::Connection.PhysicalConnectionRequirements" - } - }, - "required": [ - "ConnectionProperties", - "ConnectionType" - ], - "type": "object" - }, - "AWS::Glue::Connection.PhysicalConnectionRequirements": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "type": "string" - }, - "SecurityGroupIdList": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SubnetId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Crawler": { + "AWS::IAM::User": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21615,133 +25136,144 @@ "Properties": { "additionalProperties": false, "properties": { - "Classifiers": { + "Groups": { "items": { "type": "string" }, "type": "array" }, - "Configuration": { - "type": "string" - }, - "DatabaseName": { - "type": "string" + "LoginProfile": { + "$ref": "#/definitions/AWS::IAM::User.LoginProfile" }, - "Description": { - "type": "string" + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" }, - "Name": { + "Path": { "type": "string" }, - "Role": { + "PermissionsBoundary": { "type": "string" }, - "Schedule": { - "$ref": "#/definitions/AWS::Glue::Crawler.Schedule" - }, - "SchemaChangePolicy": { - "$ref": "#/definitions/AWS::Glue::Crawler.SchemaChangePolicy" + "Policies": { + "items": { + "$ref": "#/definitions/AWS::IAM::User.Policy" + }, + "type": "array" }, - "TablePrefix": { + "UserName": { "type": "string" - }, - "Targets": { - "$ref": "#/definitions/AWS::Glue::Crawler.Targets" } }, - "required": [ - "DatabaseName", - "Role", - "Targets" - ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Crawler" + "AWS::IAM::User" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::Glue::Crawler.JdbcTarget": { + "AWS::IAM::User.LoginProfile": { "additionalProperties": false, "properties": { - "ConnectionName": { + "Password": { "type": "string" }, - "Exclusions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Path": { - "type": "string" + "PasswordResetRequired": { + "type": "boolean" } }, + "required": [ + "Password" + ], "type": "object" }, - "AWS::Glue::Crawler.S3Target": { + "AWS::IAM::User.Policy": { "additionalProperties": false, "properties": { - "Exclusions": { - "items": { - "type": "string" - }, - "type": "array" + "PolicyDocument": { + "type": "object" }, - "Path": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Crawler.Schedule": { - "additionalProperties": false, - "properties": { - "ScheduleExpression": { + "PolicyName": { "type": "string" } }, + "required": [ + "PolicyDocument", + "PolicyName" + ], "type": "object" }, - "AWS::Glue::Crawler.SchemaChangePolicy": { + "AWS::IAM::UserToGroupAddition": { "additionalProperties": false, "properties": { - "DeleteBehavior": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "UpdateBehavior": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Crawler.Targets": { - "additionalProperties": false, - "properties": { - "JdbcTargets": { - "items": { - "$ref": "#/definitions/AWS::Glue::Crawler.JdbcTarget" + "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": { + "GroupName": { + "type": "string" + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array" + } }, - "type": "array" + "required": [ + "GroupName", + "Users" + ], + "type": "object" }, - "S3Targets": { - "items": { - "$ref": "#/definitions/AWS::Glue::Crawler.S3Target" - }, - "type": "array" + "Type": { + "enum": [ + "AWS::IAM::UserToGroupAddition" + ], + "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::Glue::Database": { + "AWS::Inspector::AssessmentTarget": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21773,51 +25305,28 @@ "Properties": { "additionalProperties": false, "properties": { - "CatalogId": { + "AssessmentTargetName": { "type": "string" }, - "DatabaseInput": { - "$ref": "#/definitions/AWS::Glue::Database.DatabaseInput" + "ResourceGroupArn": { + "type": "string" } }, - "required": [ - "CatalogId", - "DatabaseInput" - ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Database" + "AWS::Inspector::AssessmentTarget" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::Glue::Database.DatabaseInput": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "type": "object" - } - }, - "type": "object" - }, - "AWS::Glue::DevEndpoint": { + "AWS::Inspector::AssessmentTemplate": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21849,43 +25358,38 @@ "Properties": { "additionalProperties": false, "properties": { - "EndpointName": { - "type": "string" - }, - "ExtraJarsS3Path": { + "AssessmentTargetArn": { "type": "string" }, - "ExtraPythonLibsS3Path": { + "AssessmentTemplateName": { "type": "string" }, - "NumberOfNodes": { + "DurationInSeconds": { "type": "number" }, - "PublicKey": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "SecurityGroupIds": { + "RulesPackageArns": { "items": { "type": "string" }, "type": "array" }, - "SubnetId": { - "type": "string" + "UserAttributesForFindings": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "PublicKey", - "RoleArn" + "AssessmentTargetArn", + "DurationInSeconds", + "RulesPackageArns" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::DevEndpoint" + "AWS::Inspector::AssessmentTemplate" ], "type": "string" } @@ -21896,7 +25400,7 @@ ], "type": "object" }, - "AWS::Glue::Job": { + "AWS::Inspector::ResourceGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21928,46 +25432,21 @@ "Properties": { "additionalProperties": false, "properties": { - "AllocatedCapacity": { - "type": "number" - }, - "Command": { - "$ref": "#/definitions/AWS::Glue::Job.JobCommand" - }, - "Connections": { - "$ref": "#/definitions/AWS::Glue::Job.ConnectionsList" - }, - "DefaultArguments": { - "type": "object" - }, - "Description": { - "type": "string" - }, - "ExecutionProperty": { - "$ref": "#/definitions/AWS::Glue::Job.ExecutionProperty" - }, - "LogUri": { - "type": "string" - }, - "MaxRetries": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "Role": { - "type": "string" + "ResourceGroupTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "Command", - "Role" + "ResourceGroupTags" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Job" + "AWS::Inspector::ResourceGroup" ], "type": "string" } @@ -21978,40 +25457,7 @@ ], "type": "object" }, - "AWS::Glue::Job.ConnectionsList": { - "additionalProperties": false, - "properties": { - "Connections": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Glue::Job.ExecutionProperty": { - "additionalProperties": false, - "properties": { - "MaxConcurrentRuns": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::Glue::Job.JobCommand": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptLocation": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Partition": { + "AWS::IoT1Click::Device": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22043,30 +25489,22 @@ "Properties": { "additionalProperties": false, "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { + "DeviceId": { "type": "string" }, - "PartitionInput": { - "$ref": "#/definitions/AWS::Glue::Partition.PartitionInput" - }, - "TableName": { - "type": "string" + "Enabled": { + "type": "boolean" } }, "required": [ - "CatalogId", - "DatabaseName", - "PartitionInput", - "TableName" + "DeviceId", + "Enabled" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Partition" + "AWS::IoT1Click::Device" ], "type": "string" } @@ -22077,148 +25515,7 @@ ], "type": "object" }, - "AWS::Glue::Partition.Column": { - "additionalProperties": false, - "properties": { - "Comment": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "AWS::Glue::Partition.Order": { - "additionalProperties": false, - "properties": { - "Column": { - "type": "string" - }, - "SortOrder": { - "type": "number" - } - }, - "required": [ - "Column" - ], - "type": "object" - }, - "AWS::Glue::Partition.PartitionInput": { - "additionalProperties": false, - "properties": { - "Parameters": { - "type": "object" - }, - "StorageDescriptor": { - "$ref": "#/definitions/AWS::Glue::Partition.StorageDescriptor" - }, - "Values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Values" - ], - "type": "object" - }, - "AWS::Glue::Partition.SerdeInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerializationLibrary": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Partition.SkewedInfo": { - "additionalProperties": false, - "properties": { - "SkewedColumnNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SkewedColumnValueLocationMaps": { - "type": "object" - }, - "SkewedColumnValues": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Glue::Partition.StorageDescriptor": { - "additionalProperties": false, - "properties": { - "BucketColumns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Columns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Partition.Column" - }, - "type": "array" - }, - "Compressed": { - "type": "boolean" - }, - "InputFormat": { - "type": "string" - }, - "Location": { - "type": "string" - }, - "NumberOfBuckets": { - "type": "number" - }, - "OutputFormat": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerdeInfo": { - "$ref": "#/definitions/AWS::Glue::Partition.SerdeInfo" - }, - "SkewedInfo": { - "$ref": "#/definitions/AWS::Glue::Partition.SkewedInfo" - }, - "SortColumns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Partition.Order" - }, - "type": "array" - }, - "StoredAsSubDirectories": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::Glue::Table": { + "AWS::IoT1Click::Placement": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22250,26 +25547,27 @@ "Properties": { "additionalProperties": false, "properties": { - "CatalogId": { - "type": "string" + "AssociatedDevices": { + "type": "object" }, - "DatabaseName": { + "Attributes": { + "type": "object" + }, + "PlacementName": { "type": "string" }, - "TableInput": { - "$ref": "#/definitions/AWS::Glue::Table.TableInput" + "ProjectName": { + "type": "string" } }, "required": [ - "CatalogId", - "DatabaseName", - "TableInput" + "ProjectName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Table" + "AWS::IoT1Click::Placement" ], "type": "string" } @@ -22280,167 +25578,7 @@ ], "type": "object" }, - "AWS::Glue::Table.Column": { - "additionalProperties": false, - "properties": { - "Comment": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "AWS::Glue::Table.Order": { - "additionalProperties": false, - "properties": { - "Column": { - "type": "string" - }, - "SortOrder": { - "type": "number" - } - }, - "required": [ - "Column", - "SortOrder" - ], - "type": "object" - }, - "AWS::Glue::Table.SerdeInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerializationLibrary": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Table.SkewedInfo": { - "additionalProperties": false, - "properties": { - "SkewedColumnNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SkewedColumnValueLocationMaps": { - "type": "object" - }, - "SkewedColumnValues": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Glue::Table.StorageDescriptor": { - "additionalProperties": false, - "properties": { - "BucketColumns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Columns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Table.Column" - }, - "type": "array" - }, - "Compressed": { - "type": "boolean" - }, - "InputFormat": { - "type": "string" - }, - "Location": { - "type": "string" - }, - "NumberOfBuckets": { - "type": "number" - }, - "OutputFormat": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerdeInfo": { - "$ref": "#/definitions/AWS::Glue::Table.SerdeInfo" - }, - "SkewedInfo": { - "$ref": "#/definitions/AWS::Glue::Table.SkewedInfo" - }, - "SortColumns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Table.Order" - }, - "type": "array" - }, - "StoredAsSubDirectories": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::Glue::Table.TableInput": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Owner": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "PartitionKeys": { - "items": { - "$ref": "#/definitions/AWS::Glue::Table.Column" - }, - "type": "array" - }, - "Retention": { - "type": "number" - }, - "StorageDescriptor": { - "$ref": "#/definitions/AWS::Glue::Table.StorageDescriptor" - }, - "TableType": { - "type": "string" - }, - "ViewExpandedText": { - "type": "string" - }, - "ViewOriginalText": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Trigger": { + "AWS::IoT1Click::Project": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22472,37 +25610,24 @@ "Properties": { "additionalProperties": false, "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/AWS::Glue::Trigger.Action" - }, - "type": "array" - }, "Description": { "type": "string" }, - "Name": { - "type": "string" - }, - "Predicate": { - "$ref": "#/definitions/AWS::Glue::Trigger.Predicate" - }, - "Schedule": { - "type": "string" + "PlacementTemplate": { + "$ref": "#/definitions/AWS::IoT1Click::Project.PlacementTemplate" }, - "Type": { + "ProjectName": { "type": "string" } }, "required": [ - "Actions", - "Type" + "PlacementTemplate" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Trigger" + "AWS::IoT1Click::Project" ], "type": "string" } @@ -22513,49 +25638,31 @@ ], "type": "object" }, - "AWS::Glue::Trigger.Action": { + "AWS::IoT1Click::Project.DeviceTemplate": { "additionalProperties": false, "properties": { - "Arguments": { + "CallbackOverrides": { "type": "object" }, - "JobName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Trigger.Condition": { - "additionalProperties": false, - "properties": { - "JobName": { - "type": "string" - }, - "LogicalOperator": { - "type": "string" - }, - "State": { + "DeviceType": { "type": "string" } }, "type": "object" }, - "AWS::Glue::Trigger.Predicate": { + "AWS::IoT1Click::Project.PlacementTemplate": { "additionalProperties": false, "properties": { - "Conditions": { - "items": { - "$ref": "#/definitions/AWS::Glue::Trigger.Condition" - }, - "type": "array" + "DefaultAttributes": { + "type": "object" }, - "Logical": { - "type": "string" + "DeviceTemplates": { + "type": "object" } }, "type": "object" }, - "AWS::GuardDuty::Detector": { + "AWS::IoT::Certificate": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22587,21 +25694,22 @@ "Properties": { "additionalProperties": false, "properties": { - "Enable": { - "type": "boolean" + "CertificateSigningRequest": { + "type": "string" }, - "FindingPublishingFrequency": { + "Status": { "type": "string" } }, "required": [ - "Enable" + "CertificateSigningRequest", + "Status" ], "type": "object" }, "Type": { "enum": [ - "AWS::GuardDuty::Detector" + "AWS::IoT::Certificate" ], "type": "string" } @@ -22612,7 +25720,7 @@ ], "type": "object" }, - "AWS::GuardDuty::Filter": { + "AWS::IoT::Policy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22644,37 +25752,21 @@ "Properties": { "additionalProperties": false, "properties": { - "Action": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "DetectorId": { - "type": "string" - }, - "FindingCriteria": { - "$ref": "#/definitions/AWS::GuardDuty::Filter.FindingCriteria" + "PolicyDocument": { + "type": "object" }, - "Name": { + "PolicyName": { "type": "string" - }, - "Rank": { - "type": "number" } }, "required": [ - "Action", - "Description", - "DetectorId", - "FindingCriteria", - "Rank" + "PolicyDocument" ], "type": "object" }, "Type": { "enum": [ - "AWS::GuardDuty::Filter" + "AWS::IoT::Policy" ], "type": "string" } @@ -22685,46 +25777,65 @@ ], "type": "object" }, - "AWS::GuardDuty::Filter.Condition": { + "AWS::IoT::PolicyPrincipalAttachment": { "additionalProperties": false, "properties": { - "Eq": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Gte": { - "type": "number" + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" }, - "Lt": { - "type": "number" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Lte": { - "type": "number" + "Metadata": { + "type": "object" }, - "Neq": { - "items": { - "type": "string" + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyName": { + "type": "string" + }, + "Principal": { + "type": "string" + } }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::GuardDuty::Filter.FindingCriteria": { - "additionalProperties": false, - "properties": { - "Criterion": { + "required": [ + "PolicyName", + "Principal" + ], "type": "object" }, - "ItemType": { - "$ref": "#/definitions/AWS::GuardDuty::Filter.Condition" + "Type": { + "enum": [ + "AWS::IoT::PolicyPrincipalAttachment" + ], + "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::GuardDuty::IPSet": { + "AWS::IoT::Thing": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22756,44 +25867,43 @@ "Properties": { "additionalProperties": false, "properties": { - "Activate": { - "type": "boolean" - }, - "DetectorId": { - "type": "string" - }, - "Format": { - "type": "string" - }, - "Location": { - "type": "string" + "AttributePayload": { + "$ref": "#/definitions/AWS::IoT::Thing.AttributePayload" }, - "Name": { + "ThingName": { "type": "string" } }, - "required": [ - "Activate", - "DetectorId", - "Format", - "Location" - ], "type": "object" }, "Type": { "enum": [ - "AWS::GuardDuty::IPSet" + "AWS::IoT::Thing" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::GuardDuty::Master": { + "AWS::IoT::Thing.AttributePayload": { + "additionalProperties": false, + "properties": { + "Attributes": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::IoT::ThingPrincipalAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22825,25 +25935,22 @@ "Properties": { "additionalProperties": false, "properties": { - "DetectorId": { - "type": "string" - }, - "InvitationId": { + "Principal": { "type": "string" }, - "MasterId": { + "ThingName": { "type": "string" } }, "required": [ - "DetectorId", - "MasterId" + "Principal", + "ThingName" ], "type": "object" }, "Type": { "enum": [ - "AWS::GuardDuty::Master" + "AWS::IoT::ThingPrincipalAttachment" ], "type": "string" } @@ -22854,7 +25961,7 @@ ], "type": "object" }, - "AWS::GuardDuty::Member": { + "AWS::IoT::TopicRule": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22886,256 +25993,414 @@ "Properties": { "additionalProperties": false, "properties": { - "DetectorId": { - "type": "string" - }, - "DisableEmailNotification": { - "type": "boolean" - }, - "Email": { - "type": "string" - }, - "MemberId": { - "type": "string" - }, - "Message": { + "RuleName": { "type": "string" }, - "Status": { - "type": "string" + "TopicRulePayload": { + "$ref": "#/definitions/AWS::IoT::TopicRule.TopicRulePayload" } }, "required": [ - "DetectorId", - "Email", - "MemberId" + "TopicRulePayload" ], "type": "object" }, "Type": { "enum": [ - "AWS::GuardDuty::Member" + "AWS::IoT::TopicRule" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.Action": { + "additionalProperties": false, + "properties": { + "CloudwatchAlarm": { + "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchAlarmAction" + }, + "CloudwatchMetric": { + "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchMetricAction" + }, + "DynamoDB": { + "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBAction" + }, + "DynamoDBv2": { + "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBv2Action" + }, + "Elasticsearch": { + "$ref": "#/definitions/AWS::IoT::TopicRule.ElasticsearchAction" + }, + "Firehose": { + "$ref": "#/definitions/AWS::IoT::TopicRule.FirehoseAction" + }, + "IotAnalytics": { + "$ref": "#/definitions/AWS::IoT::TopicRule.IotAnalyticsAction" + }, + "Kinesis": { + "$ref": "#/definitions/AWS::IoT::TopicRule.KinesisAction" + }, + "Lambda": { + "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction" + }, + "Republish": { + "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishAction" + }, + "S3": { + "$ref": "#/definitions/AWS::IoT::TopicRule.S3Action" + }, + "Sns": { + "$ref": "#/definitions/AWS::IoT::TopicRule.SnsAction" + }, + "Sqs": { + "$ref": "#/definitions/AWS::IoT::TopicRule.SqsAction" + }, + "StepFunctions": { + "$ref": "#/definitions/AWS::IoT::TopicRule.StepFunctionsAction" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRule.CloudwatchAlarmAction": { + "additionalProperties": false, + "properties": { + "AlarmName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StateReason": { + "type": "string" + }, + "StateValue": { + "type": "string" + } + }, + "required": [ + "AlarmName", + "RoleArn", + "StateReason", + "StateValue" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.CloudwatchMetricAction": { + "additionalProperties": false, + "properties": { + "MetricName": { + "type": "string" + }, + "MetricNamespace": { + "type": "string" + }, + "MetricTimestamp": { + "type": "string" + }, + "MetricUnit": { + "type": "string" + }, + "MetricValue": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "MetricName", + "MetricNamespace", + "MetricUnit", + "MetricValue", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.DynamoDBAction": { + "additionalProperties": false, + "properties": { + "HashKeyField": { + "type": "string" + }, + "HashKeyType": { + "type": "string" + }, + "HashKeyValue": { + "type": "string" + }, + "PayloadField": { + "type": "string" + }, + "RangeKeyField": { + "type": "string" + }, + "RangeKeyType": { + "type": "string" + }, + "RangeKeyValue": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "HashKeyField", + "HashKeyValue", + "RoleArn", + "TableName" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.DynamoDBv2Action": { + "additionalProperties": false, + "properties": { + "PutItem": { + "$ref": "#/definitions/AWS::IoT::TopicRule.PutItemInput" + }, + "RoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRule.ElasticsearchAction": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Index": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Endpoint", + "Id", + "Index", + "RoleArn", + "Type" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.FirehoseAction": { + "additionalProperties": false, + "properties": { + "DeliveryStreamName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Separator": { + "type": "string" + } + }, + "required": [ + "DeliveryStreamName", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.IotAnalyticsAction": { + "additionalProperties": false, + "properties": { + "ChannelName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "ChannelName", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.KinesisAction": { + "additionalProperties": false, + "properties": { + "PartitionKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StreamName": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "StreamName" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.LambdaAction": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRule.PutItemInput": { + "additionalProperties": false, + "properties": { + "TableName": { + "type": "string" + } + }, + "required": [ + "TableName" ], "type": "object" }, - "AWS::GuardDuty::ThreatIntelSet": { + "AWS::IoT::TopicRule.RepublishAction": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "RoleArn": { "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": { - "Activate": { - "type": "boolean" - }, - "DetectorId": { - "type": "string" - }, - "Format": { - "type": "string" - }, - "Location": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "Activate", - "DetectorId", - "Format", - "Location" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::GuardDuty::ThreatIntelSet" - ], + "Topic": { "type": "string" } }, "required": [ - "Type", - "Properties" + "RoleArn", + "Topic" ], "type": "object" }, - "AWS::IAM::AccessKey": { + "AWS::IoT::TopicRule.S3Action": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "BucketName": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Key": { + "type": "string" }, - "Metadata": { - "type": "object" + "RoleArn": { + "type": "string" + } + }, + "required": [ + "BucketName", + "Key", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.SnsAction": { + "additionalProperties": false, + "properties": { + "MessageFormat": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Serial": { - "type": "number" - }, - "Status": { - "type": "string" - }, - "UserName": { - "type": "string" - } - }, - "required": [ - "UserName" - ], - "type": "object" + "RoleArn": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::IAM::AccessKey" - ], + "TargetArn": { "type": "string" } }, "required": [ - "Type", - "Properties" + "RoleArn", + "TargetArn" ], "type": "object" }, - "AWS::IAM::Group": { + "AWS::IoT::TopicRule.SqsAction": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "QueueUrl": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "RoleArn": { + "type": "string" }, - "Metadata": { - "type": "object" + "UseBase64": { + "type": "boolean" + } + }, + "required": [ + "QueueUrl", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.StepFunctionsAction": { + "additionalProperties": false, + "properties": { + "ExecutionNamePrefix": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "GroupName": { - "type": "string" - }, - "ManagedPolicyArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Path": { - "type": "string" - }, - "Policies": { - "items": { - "$ref": "#/definitions/AWS::IAM::Group.Policy" - }, - "type": "array" - } - }, - "type": "object" + "RoleArn": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::IAM::Group" - ], + "StateMachineName": { "type": "string" } }, "required": [ - "Type" + "RoleArn", + "StateMachineName" ], "type": "object" }, - "AWS::IAM::Group.Policy": { + "AWS::IoT::TopicRule.TopicRulePayload": { "additionalProperties": false, "properties": { - "PolicyDocument": { - "type": "object" + "Actions": { + "items": { + "$ref": "#/definitions/AWS::IoT::TopicRule.Action" + }, + "type": "array" }, - "PolicyName": { + "AwsIotSqlVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "ErrorAction": { + "$ref": "#/definitions/AWS::IoT::TopicRule.Action" + }, + "RuleDisabled": { + "type": "boolean" + }, + "Sql": { "type": "string" } }, "required": [ - "PolicyDocument", - "PolicyName" + "Actions", + "RuleDisabled", + "Sql" ], "type": "object" }, - "AWS::IAM::InstanceProfile": { + "AWS::IoTAnalytics::Channel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23167,38 +26432,46 @@ "Properties": { "additionalProperties": false, "properties": { - "InstanceProfileName": { + "ChannelName": { "type": "string" }, - "Path": { - "type": "string" + "RetentionPeriod": { + "$ref": "#/definitions/AWS::IoTAnalytics::Channel.RetentionPeriod" }, - "Roles": { + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" } }, - "required": [ - "Roles" - ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::InstanceProfile" + "AWS::IoTAnalytics::Channel" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::IAM::ManagedPolicy": { + "AWS::IoTAnalytics::Channel.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "NumberOfDays": { + "type": "number" + }, + "Unlimited": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23230,45 +26503,39 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" - }, - "Groups": { + "Actions": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Action" }, "type": "array" }, - "ManagedPolicyName": { - "type": "string" - }, - "Path": { + "DatasetName": { "type": "string" }, - "PolicyDocument": { - "type": "object" + "RetentionPeriod": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.RetentionPeriod" }, - "Roles": { + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "Users": { + "Triggers": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Trigger" }, "type": "array" } }, "required": [ - "PolicyDocument" + "Actions" ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::ManagedPolicy" + "AWS::IoTAnalytics::Dataset" ], "type": "string" } @@ -23279,177 +26546,204 @@ ], "type": "object" }, - "AWS::IAM::Policy": { + "AWS::IoTAnalytics::Dataset.Action": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "ActionName": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "ContainerAction": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.ContainerAction" }, - "Metadata": { - "type": "object" + "QueryAction": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.QueryAction" + } + }, + "required": [ + "ActionName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.ContainerAction": { + "additionalProperties": false, + "properties": { + "ExecutionRoleArn": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Groups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "PolicyDocument": { - "type": "object" - }, - "PolicyName": { - "type": "string" - }, - "Roles": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Users": { - "items": { - "type": "string" - }, - "type": "array" - } + "Image": { + "type": "string" + }, + "ResourceConfiguration": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.ResourceConfiguration" + }, + "Variables": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Variable" }, - "required": [ - "PolicyDocument", - "PolicyName" - ], - "type": "object" + "type": "array" + } + }, + "required": [ + "ExecutionRoleArn", + "Image", + "ResourceConfiguration" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.DatasetContentVersionValue": { + "additionalProperties": false, + "properties": { + "DatasetName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.DeltaTime": { + "additionalProperties": false, + "properties": { + "OffsetSeconds": { + "type": "number" }, - "Type": { - "enum": [ - "AWS::IAM::Policy" - ], + "TimeExpression": { "type": "string" } }, "required": [ - "Type", - "Properties" + "OffsetSeconds", + "TimeExpression" ], "type": "object" }, - "AWS::IAM::Role": { + "AWS::IoTAnalytics::Dataset.Filter": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "DeltaTime": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DeltaTime" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.OutputFileUriValue": { + "additionalProperties": false, + "properties": { + "FileName": { "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.QueryAction": { + "additionalProperties": false, + "properties": { + "Filters": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Filter" + }, + "type": "array" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "SqlQuery": { + "type": "string" + } + }, + "required": [ + "SqlQuery" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.ResourceConfiguration": { + "additionalProperties": false, + "properties": { + "ComputeType": { + "type": "string" }, - "Metadata": { - "type": "object" + "VolumeSizeInGB": { + "type": "number" + } + }, + "required": [ + "ComputeType", + "VolumeSizeInGB" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "NumberOfDays": { + "type": "number" }, - "Properties": { - "additionalProperties": false, - "properties": { - "AssumeRolePolicyDocument": { - "type": "object" - }, - "ManagedPolicyArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MaxSessionDuration": { - "type": "number" - }, - "Path": { - "type": "string" - }, - "PermissionsBoundary": { - "type": "string" - }, - "Policies": { - "items": { - "$ref": "#/definitions/AWS::IAM::Role.Policy" - }, - "type": "array" - }, - "RoleName": { - "type": "string" - } - }, - "required": [ - "AssumeRolePolicyDocument" - ], - "type": "object" + "Unlimited": { + "type": "boolean" + } + }, + "required": [ + "NumberOfDays", + "Unlimited" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.Schedule": { + "additionalProperties": false, + "properties": { + "ScheduleExpression": { + "type": "string" + } + }, + "required": [ + "ScheduleExpression" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.Trigger": { + "additionalProperties": false, + "properties": { + "Schedule": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Schedule" }, - "Type": { - "enum": [ - "AWS::IAM::Role" - ], + "TriggeringDataset": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.TriggeringDataset" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.TriggeringDataset": { + "additionalProperties": false, + "properties": { + "DatasetName": { "type": "string" } }, "required": [ - "Type", - "Properties" + "DatasetName" ], "type": "object" }, - "AWS::IAM::Role.Policy": { + "AWS::IoTAnalytics::Dataset.Variable": { "additionalProperties": false, "properties": { - "PolicyDocument": { - "type": "object" + "DatasetContentVersionValue": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DatasetContentVersionValue" }, - "PolicyName": { + "DoubleValue": { + "type": "number" + }, + "OutputFileUriValue": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.OutputFileUriValue" + }, + "StringValue": { + "type": "string" + }, + "VariableName": { "type": "string" } }, "required": [ - "PolicyDocument", - "PolicyName" + "VariableName" ], "type": "object" }, - "AWS::IAM::ServiceLinkedRole": { + "AWS::IoTAnalytics::Datastore": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23481,35 +26775,46 @@ "Properties": { "additionalProperties": false, "properties": { - "AWSServiceName": { + "DatastoreName": { "type": "string" }, - "CustomSuffix": { - "type": "string" + "RetentionPeriod": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.RetentionPeriod" }, - "Description": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, - "required": [ - "AWSServiceName" - ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::ServiceLinkedRole" + "AWS::IoTAnalytics::Datastore" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::IAM::User": { + "AWS::IoTAnalytics::Datastore.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "NumberOfDays": { + "type": "number" + }, + "Unlimited": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23541,83 +26846,248 @@ "Properties": { "additionalProperties": false, "properties": { - "Groups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LoginProfile": { - "$ref": "#/definitions/AWS::IAM::User.LoginProfile" - }, - "ManagedPolicyArns": { + "PipelineActivities": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Activity" }, "type": "array" }, - "Path": { - "type": "string" - }, - "PermissionsBoundary": { + "PipelineName": { "type": "string" }, - "Policies": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::IAM::User.Policy" + "$ref": "#/definitions/Tag" }, "type": "array" - }, - "UserName": { - "type": "string" } }, + "required": [ + "PipelineActivities" + ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::User" + "AWS::IoTAnalytics::Pipeline" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::IAM::User.LoginProfile": { + "AWS::IoTAnalytics::Pipeline.Activity": { "additionalProperties": false, "properties": { - "Password": { - "type": "string" + "AddAttributes": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.AddAttributes" }, - "PasswordResetRequired": { - "type": "boolean" + "Channel": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Channel" + }, + "Datastore": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Datastore" + }, + "DeviceRegistryEnrich": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.DeviceRegistryEnrich" + }, + "DeviceShadowEnrich": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.DeviceShadowEnrich" + }, + "Filter": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Filter" + }, + "Lambda": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Lambda" + }, + "Math": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Math" + }, + "RemoveAttributes": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.RemoveAttributes" + }, + "SelectAttributes": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.SelectAttributes" } }, - "required": [ - "Password" - ], "type": "object" }, - "AWS::IAM::User.Policy": { + "AWS::IoTAnalytics::Pipeline.AddAttributes": { "additionalProperties": false, "properties": { - "PolicyDocument": { + "Attributes": { "type": "object" }, - "PolicyName": { + "Name": { + "type": "string" + }, + "Next": { "type": "string" } }, - "required": [ - "PolicyDocument", - "PolicyName" - ], "type": "object" }, - "AWS::IAM::UserToGroupAddition": { + "AWS::IoTAnalytics::Pipeline.Channel": { + "additionalProperties": false, + "properties": { + "ChannelName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Datastore": { + "additionalProperties": false, + "properties": { + "DatastoreName": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.DeviceRegistryEnrich": { + "additionalProperties": false, + "properties": { + "Attribute": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.DeviceShadowEnrich": { + "additionalProperties": false, + "properties": { + "Attribute": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Filter": { + "additionalProperties": false, + "properties": { + "Filter": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Lambda": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "type": "number" + }, + "LambdaName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Math": { + "additionalProperties": false, + "properties": { + "Attribute": { + "type": "string" + }, + "Math": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.RemoveAttributes": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.SelectAttributes": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::KMS::Alias": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23649,25 +27119,22 @@ "Properties": { "additionalProperties": false, "properties": { - "GroupName": { + "AliasName": { "type": "string" }, - "Users": { - "items": { - "type": "string" - }, - "type": "array" + "TargetKeyId": { + "type": "string" } }, "required": [ - "GroupName", - "Users" + "AliasName", + "TargetKeyId" ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::UserToGroupAddition" + "AWS::KMS::Alias" ], "type": "string" } @@ -23678,7 +27145,7 @@ ], "type": "object" }, - "AWS::Inspector::AssessmentTarget": { + "AWS::KMS::Key": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23710,21 +27177,39 @@ "Properties": { "additionalProperties": false, "properties": { - "AssessmentTargetName": { + "Description": { "type": "string" }, - "ResourceGroupArn": { + "EnableKeyRotation": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "KeyPolicy": { + "type": "object" + }, + "KeyUsage": { "type": "string" + }, + "PendingWindowInDays": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "ResourceGroupArn" + "KeyPolicy" ], "type": "object" }, "Type": { "enum": [ - "AWS::Inspector::AssessmentTarget" + "AWS::KMS::Key" ], "type": "string" } @@ -23735,7 +27220,7 @@ ], "type": "object" }, - "AWS::Inspector::AssessmentTemplate": { + "AWS::Kinesis::Stream": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23767,22 +27252,19 @@ "Properties": { "additionalProperties": false, "properties": { - "AssessmentTargetArn": { + "Name": { "type": "string" }, - "AssessmentTemplateName": { - "type": "string" + "RetentionPeriodHours": { + "type": "number" }, - "DurationInSeconds": { + "ShardCount": { "type": "number" }, - "RulesPackageArns": { - "items": { - "type": "string" - }, - "type": "array" + "StreamEncryption": { + "$ref": "#/definitions/AWS::Kinesis::Stream.StreamEncryption" }, - "UserAttributesForFindings": { + "Tags": { "items": { "$ref": "#/definitions/Tag" }, @@ -23790,15 +27272,13 @@ } }, "required": [ - "AssessmentTargetArn", - "DurationInSeconds", - "RulesPackageArns" + "ShardCount" ], "type": "object" }, "Type": { "enum": [ - "AWS::Inspector::AssessmentTemplate" + "AWS::Kinesis::Stream" ], "type": "string" } @@ -23809,7 +27289,23 @@ ], "type": "object" }, - "AWS::Inspector::ResourceGroup": { + "AWS::Kinesis::Stream.StreamEncryption": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "type": "string" + }, + "KeyId": { + "type": "string" + } + }, + "required": [ + "EncryptionType", + "KeyId" + ], + "type": "object" + }, + "AWS::Kinesis::StreamConsumer": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23841,21 +27337,22 @@ "Properties": { "additionalProperties": false, "properties": { - "ResourceGroupTags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "ConsumerName": { + "type": "string" + }, + "StreamARN": { + "type": "string" } }, "required": [ - "ResourceGroupTags" + "ConsumerName", + "StreamARN" ], "type": "object" }, "Type": { "enum": [ - "AWS::Inspector::ResourceGroup" + "AWS::Kinesis::StreamConsumer" ], "type": "string" } @@ -23866,7 +27363,7 @@ ], "type": "object" }, - "AWS::IoT1Click::Device": { + "AWS::KinesisAnalytics::Application": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23898,96 +27395,231 @@ "Properties": { "additionalProperties": false, "properties": { - "DeviceId": { + "ApplicationCode": { "type": "string" }, - "Enabled": { - "type": "boolean" + "ApplicationDescription": { + "type": "string" + }, + "ApplicationName": { + "type": "string" + }, + "Inputs": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.Input" + }, + "type": "array" } }, "required": [ - "DeviceId", - "Enabled" + "Inputs" ], "type": "object" }, - "Type": { - "enum": [ - "AWS::IoT1Click::Device" - ], + "Type": { + "enum": [ + "AWS::KinesisAnalytics::Application" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.CSVMappingParameters": { + "additionalProperties": false, + "properties": { + "RecordColumnDelimiter": { + "type": "string" + }, + "RecordRowDelimiter": { + "type": "string" + } + }, + "required": [ + "RecordColumnDelimiter", + "RecordRowDelimiter" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.Input": { + "additionalProperties": false, + "properties": { + "InputParallelism": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputParallelism" + }, + "InputProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputProcessingConfiguration" + }, + "InputSchema": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputSchema" + }, + "KinesisFirehoseInput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.KinesisFirehoseInput" + }, + "KinesisStreamsInput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.KinesisStreamsInput" + }, + "NamePrefix": { + "type": "string" + } + }, + "required": [ + "InputSchema", + "NamePrefix" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.InputLambdaProcessor": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.InputParallelism": { + "additionalProperties": false, + "properties": { + "Count": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisAnalytics::Application.InputProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "InputLambdaProcessor": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputLambdaProcessor" + } + }, + "type": "object" + }, + "AWS::KinesisAnalytics::Application.InputSchema": { + "additionalProperties": false, + "properties": { + "RecordColumns": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.RecordColumn" + }, + "type": "array" + }, + "RecordEncoding": { + "type": "string" + }, + "RecordFormat": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.RecordFormat" + } + }, + "required": [ + "RecordColumns", + "RecordFormat" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.JSONMappingParameters": { + "additionalProperties": false, + "properties": { + "RecordRowPath": { + "type": "string" + } + }, + "required": [ + "RecordRowPath" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.KinesisFirehoseInput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.KinesisStreamsInput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.MappingParameters": { + "additionalProperties": false, + "properties": { + "CSVMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.CSVMappingParameters" + }, + "JSONMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.JSONMappingParameters" + } + }, + "type": "object" + }, + "AWS::KinesisAnalytics::Application.RecordColumn": { + "additionalProperties": false, + "properties": { + "Mapping": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SqlType": { "type": "string" } }, "required": [ - "Type", - "Properties" + "Name", + "SqlType" ], "type": "object" }, - "AWS::IoT1Click::Placement": { + "AWS::KinesisAnalytics::Application.RecordFormat": { "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": { - "AssociatedDevices": { - "type": "object" - }, - "Attributes": { - "type": "object" - }, - "PlacementName": { - "type": "string" - }, - "ProjectName": { - "type": "string" - } - }, - "required": [ - "ProjectName" - ], - "type": "object" + "MappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.MappingParameters" }, - "Type": { - "enum": [ - "AWS::IoT1Click::Placement" - ], + "RecordFormatType": { "type": "string" } }, "required": [ - "Type", - "Properties" + "RecordFormatType" ], "type": "object" }, - "AWS::IoT1Click::Project": { + "AWS::KinesisAnalytics::ApplicationOutput": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -24019,24 +27651,22 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "ApplicationName": { "type": "string" }, - "PlacementTemplate": { - "$ref": "#/definitions/AWS::IoT1Click::Project.PlacementTemplate" - }, - "ProjectName": { - "type": "string" + "Output": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.Output" } }, "required": [ - "PlacementTemplate" + "ApplicationName", + "Output" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT1Click::Project" + "AWS::KinesisAnalytics::ApplicationOutput" ], "type": "string" } @@ -24047,146 +27677,88 @@ ], "type": "object" }, - "AWS::IoT1Click::Project.DeviceTemplate": { + "AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema": { "additionalProperties": false, "properties": { - "CallbackOverrides": { - "type": "object" - }, - "DeviceType": { + "RecordFormatType": { "type": "string" } }, "type": "object" }, - "AWS::IoT1Click::Project.PlacementTemplate": { + "AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput": { "additionalProperties": false, "properties": { - "DefaultAttributes": { - "type": "object" + "ResourceARN": { + "type": "string" }, - "DeviceTemplates": { - "type": "object" + "RoleARN": { + "type": "string" } }, + "required": [ + "ResourceARN", + "RoleARN" + ], "type": "object" }, - "AWS::IoT::Certificate": { + "AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "ResourceARN": { "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": { - "CertificateSigningRequest": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "required": [ - "CertificateSigningRequest", - "Status" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::IoT::Certificate" - ], + "RoleARN": { "type": "string" } }, "required": [ - "Type", - "Properties" + "ResourceARN", + "RoleARN" ], "type": "object" }, - "AWS::IoT::Policy": { + "AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "ResourceARN": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "RoleARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationOutput.Output": { + "additionalProperties": false, + "properties": { + "DestinationSchema": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema" }, - "Metadata": { - "type": "object" + "KinesisFirehoseOutput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput" }, - "Properties": { - "additionalProperties": false, - "properties": { - "PolicyDocument": { - "type": "object" - }, - "PolicyName": { - "type": "string" - } - }, - "required": [ - "PolicyDocument" - ], - "type": "object" + "KinesisStreamsOutput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput" }, - "Type": { - "enum": [ - "AWS::IoT::Policy" - ], + "LambdaOutput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput" + }, + "Name": { "type": "string" } }, "required": [ - "Type", - "Properties" + "DestinationSchema" ], "type": "object" }, - "AWS::IoT::PolicyPrincipalAttachment": { + "AWS::KinesisAnalytics::ApplicationReferenceDataSource": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -24218,22 +27790,22 @@ "Properties": { "additionalProperties": false, "properties": { - "PolicyName": { + "ApplicationName": { "type": "string" }, - "Principal": { - "type": "string" + "ReferenceDataSource": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource" } }, "required": [ - "PolicyName", - "Principal" + "ApplicationName", + "ReferenceDataSource" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT::PolicyPrincipalAttachment" + "AWS::KinesisAnalytics::ApplicationReferenceDataSource" ], "type": "string" } @@ -24244,133 +27816,141 @@ ], "type": "object" }, - "AWS::IoT::Thing": { + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "RecordColumnDelimiter": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "RecordRowDelimiter": { + "type": "string" + } + }, + "required": [ + "RecordColumnDelimiter", + "RecordRowDelimiter" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters": { + "additionalProperties": false, + "properties": { + "RecordRowPath": { + "type": "string" + } + }, + "required": [ + "RecordRowPath" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters": { + "additionalProperties": false, + "properties": { + "CSVMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters" }, - "Metadata": { - "type": "object" + "JSONMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters" + } + }, + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn": { + "additionalProperties": false, + "properties": { + "Mapping": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "AttributePayload": { - "$ref": "#/definitions/AWS::IoT::Thing.AttributePayload" - }, - "ThingName": { - "type": "string" - } - }, - "type": "object" + "Name": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::IoT::Thing" - ], + "SqlType": { "type": "string" } }, "required": [ - "Type" + "Name", + "SqlType" ], "type": "object" }, - "AWS::IoT::Thing.AttributePayload": { + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat": { "additionalProperties": false, "properties": { - "Attributes": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" + "MappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters" + }, + "RecordFormatType": { + "type": "string" } }, + "required": [ + "RecordFormatType" + ], "type": "object" }, - "AWS::IoT::ThingPrincipalAttachment": { + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "ReferenceSchema": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema" + }, + "S3ReferenceDataSource": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource" + }, + "TableName": { "type": "string" + } + }, + "required": [ + "ReferenceSchema" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema": { + "additionalProperties": false, + "properties": { + "RecordColumns": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn" + }, + "type": "array" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "RecordEncoding": { + "type": "string" }, - "Metadata": { - "type": "object" + "RecordFormat": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat" + } + }, + "required": [ + "RecordColumns", + "RecordFormat" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Principal": { - "type": "string" - }, - "ThingName": { - "type": "string" - } - }, - "required": [ - "Principal", - "ThingName" - ], - "type": "object" + "FileKey": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::IoT::ThingPrincipalAttachment" - ], + "ReferenceRoleARN": { "type": "string" } }, "required": [ - "Type", - "Properties" + "BucketARN", + "FileKey", + "ReferenceRoleARN" ], "type": "object" }, - "AWS::IoT::TopicRule": { + "AWS::KinesisAnalyticsV2::Application": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -24402,690 +27982,410 @@ "Properties": { "additionalProperties": false, "properties": { - "RuleName": { + "ApplicationConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ApplicationConfiguration" + }, + "ApplicationDescription": { "type": "string" }, - "TopicRulePayload": { - "$ref": "#/definitions/AWS::IoT::TopicRule.TopicRulePayload" - } - }, - "required": [ - "TopicRulePayload" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::IoT::TopicRule" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::IoT::TopicRule.Action": { - "additionalProperties": false, - "properties": { - "CloudwatchAlarm": { - "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchAlarmAction" - }, - "CloudwatchMetric": { - "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchMetricAction" - }, - "DynamoDB": { - "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBAction" - }, - "DynamoDBv2": { - "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBv2Action" - }, - "Elasticsearch": { - "$ref": "#/definitions/AWS::IoT::TopicRule.ElasticsearchAction" - }, - "Firehose": { - "$ref": "#/definitions/AWS::IoT::TopicRule.FirehoseAction" - }, - "IotAnalytics": { - "$ref": "#/definitions/AWS::IoT::TopicRule.IotAnalyticsAction" - }, - "Kinesis": { - "$ref": "#/definitions/AWS::IoT::TopicRule.KinesisAction" - }, - "Lambda": { - "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction" - }, - "Republish": { - "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishAction" - }, - "S3": { - "$ref": "#/definitions/AWS::IoT::TopicRule.S3Action" - }, - "Sns": { - "$ref": "#/definitions/AWS::IoT::TopicRule.SnsAction" - }, - "Sqs": { - "$ref": "#/definitions/AWS::IoT::TopicRule.SqsAction" + "ApplicationName": { + "type": "string" + }, + "RuntimeEnvironment": { + "type": "string" + }, + "ServiceExecutionRole": { + "type": "string" + } + }, + "required": [ + "RuntimeEnvironment", + "ServiceExecutionRole" + ], + "type": "object" }, - "StepFunctions": { - "$ref": "#/definitions/AWS::IoT::TopicRule.StepFunctionsAction" + "Type": { + "enum": [ + "AWS::KinesisAnalyticsV2::Application" + ], + "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::IoT::TopicRule.CloudwatchAlarmAction": { + "AWS::KinesisAnalyticsV2::Application.ApplicationCodeConfiguration": { "additionalProperties": false, "properties": { - "AlarmName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "StateReason": { - "type": "string" + "CodeContent": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CodeContent" }, - "StateValue": { + "CodeContentType": { "type": "string" } }, "required": [ - "AlarmName", - "RoleArn", - "StateReason", - "StateValue" + "CodeContent", + "CodeContentType" ], "type": "object" }, - "AWS::IoT::TopicRule.CloudwatchMetricAction": { + "AWS::KinesisAnalyticsV2::Application.ApplicationConfiguration": { "additionalProperties": false, "properties": { - "MetricName": { - "type": "string" + "ApplicationCodeConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ApplicationCodeConfiguration" }, - "MetricNamespace": { - "type": "string" - }, - "MetricTimestamp": { - "type": "string" + "ApplicationSnapshotConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ApplicationSnapshotConfiguration" }, - "MetricUnit": { - "type": "string" + "EnvironmentProperties": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.EnvironmentProperties" }, - "MetricValue": { - "type": "string" + "FlinkApplicationConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.FlinkApplicationConfiguration" }, - "RoleArn": { - "type": "string" + "SqlApplicationConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.ApplicationSnapshotConfiguration": { + "additionalProperties": false, + "properties": { + "SnapshotsEnabled": { + "type": "boolean" } }, "required": [ - "MetricName", - "MetricNamespace", - "MetricUnit", - "MetricValue", - "RoleArn" + "SnapshotsEnabled" ], "type": "object" }, - "AWS::IoT::TopicRule.DynamoDBAction": { + "AWS::KinesisAnalyticsV2::Application.CSVMappingParameters": { "additionalProperties": false, "properties": { - "HashKeyField": { - "type": "string" - }, - "HashKeyType": { - "type": "string" - }, - "HashKeyValue": { - "type": "string" - }, - "PayloadField": { - "type": "string" - }, - "RangeKeyField": { - "type": "string" - }, - "RangeKeyType": { - "type": "string" - }, - "RangeKeyValue": { - "type": "string" - }, - "RoleArn": { + "RecordColumnDelimiter": { "type": "string" }, - "TableName": { + "RecordRowDelimiter": { "type": "string" } }, "required": [ - "HashKeyField", - "HashKeyValue", - "RoleArn", - "TableName" + "RecordColumnDelimiter", + "RecordRowDelimiter" ], "type": "object" }, - "AWS::IoT::TopicRule.DynamoDBv2Action": { + "AWS::KinesisAnalyticsV2::Application.CheckpointConfiguration": { "additionalProperties": false, "properties": { - "PutItem": { - "$ref": "#/definitions/AWS::IoT::TopicRule.PutItemInput" + "CheckpointInterval": { + "type": "number" }, - "RoleArn": { + "CheckpointingEnabled": { + "type": "boolean" + }, + "ConfigurationType": { "type": "string" + }, + "MinPauseBetweenCheckpoints": { + "type": "number" } }, + "required": [ + "ConfigurationType" + ], "type": "object" }, - "AWS::IoT::TopicRule.ElasticsearchAction": { + "AWS::KinesisAnalyticsV2::Application.CodeContent": { "additionalProperties": false, "properties": { - "Endpoint": { - "type": "string" + "S3ContentLocation": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.S3ContentLocation" }, - "Id": { + "TextContent": { "type": "string" }, - "Index": { + "ZipFileContent": { "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.EnvironmentProperties": { + "additionalProperties": false, + "properties": { + "PropertyGroups": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.PropertyGroup" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.FlinkApplicationConfiguration": { + "additionalProperties": false, + "properties": { + "CheckpointConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CheckpointConfiguration" }, - "RoleArn": { - "type": "string" + "MonitoringConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.MonitoringConfiguration" }, - "Type": { - "type": "string" + "ParallelismConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ParallelismConfiguration" } }, - "required": [ - "Endpoint", - "Id", - "Index", - "RoleArn", - "Type" - ], "type": "object" }, - "AWS::IoT::TopicRule.FirehoseAction": { + "AWS::KinesisAnalyticsV2::Application.Input": { "additionalProperties": false, "properties": { - "DeliveryStreamName": { - "type": "string" + "InputParallelism": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputParallelism" }, - "RoleArn": { - "type": "string" + "InputProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputProcessingConfiguration" }, - "Separator": { + "InputSchema": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputSchema" + }, + "KinesisFirehoseInput": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.KinesisFirehoseInput" + }, + "KinesisStreamsInput": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.KinesisStreamsInput" + }, + "NamePrefix": { "type": "string" } }, "required": [ - "DeliveryStreamName", - "RoleArn" + "InputSchema", + "NamePrefix" ], "type": "object" }, - "AWS::IoT::TopicRule.IotAnalyticsAction": { + "AWS::KinesisAnalyticsV2::Application.InputLambdaProcessor": { "additionalProperties": false, "properties": { - "ChannelName": { - "type": "string" - }, - "RoleArn": { + "ResourceARN": { "type": "string" } }, "required": [ - "ChannelName", - "RoleArn" + "ResourceARN" ], "type": "object" }, - "AWS::IoT::TopicRule.KinesisAction": { + "AWS::KinesisAnalyticsV2::Application.InputParallelism": { "additionalProperties": false, "properties": { - "PartitionKey": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "StreamName": { - "type": "string" + "Count": { + "type": "number" } }, - "required": [ - "RoleArn", - "StreamName" - ], "type": "object" }, - "AWS::IoT::TopicRule.LambdaAction": { + "AWS::KinesisAnalyticsV2::Application.InputProcessingConfiguration": { "additionalProperties": false, "properties": { - "FunctionArn": { - "type": "string" + "InputLambdaProcessor": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputLambdaProcessor" } }, "type": "object" }, - "AWS::IoT::TopicRule.PutItemInput": { + "AWS::KinesisAnalyticsV2::Application.InputSchema": { "additionalProperties": false, "properties": { - "TableName": { + "RecordColumns": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.RecordColumn" + }, + "type": "array" + }, + "RecordEncoding": { "type": "string" + }, + "RecordFormat": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.RecordFormat" } }, "required": [ - "TableName" + "RecordColumns", + "RecordFormat" ], "type": "object" }, - "AWS::IoT::TopicRule.RepublishAction": { + "AWS::KinesisAnalyticsV2::Application.JSONMappingParameters": { "additionalProperties": false, "properties": { - "RoleArn": { - "type": "string" - }, - "Topic": { + "RecordRowPath": { "type": "string" } }, "required": [ - "RoleArn", - "Topic" + "RecordRowPath" ], "type": "object" }, - "AWS::IoT::TopicRule.S3Action": { + "AWS::KinesisAnalyticsV2::Application.KinesisFirehoseInput": { "additionalProperties": false, "properties": { - "BucketName": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "RoleArn": { + "ResourceARN": { "type": "string" } }, "required": [ - "BucketName", - "Key", - "RoleArn" + "ResourceARN" ], "type": "object" }, - "AWS::IoT::TopicRule.SnsAction": { + "AWS::KinesisAnalyticsV2::Application.KinesisStreamsInput": { "additionalProperties": false, "properties": { - "MessageFormat": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "TargetArn": { + "ResourceARN": { "type": "string" } }, "required": [ - "RoleArn", - "TargetArn" + "ResourceARN" ], "type": "object" }, - "AWS::IoT::TopicRule.SqsAction": { + "AWS::KinesisAnalyticsV2::Application.MappingParameters": { "additionalProperties": false, "properties": { - "QueueUrl": { - "type": "string" - }, - "RoleArn": { - "type": "string" + "CSVMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CSVMappingParameters" }, - "UseBase64": { - "type": "boolean" + "JSONMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.JSONMappingParameters" } }, - "required": [ - "QueueUrl", - "RoleArn" - ], "type": "object" }, - "AWS::IoT::TopicRule.StepFunctionsAction": { + "AWS::KinesisAnalyticsV2::Application.MonitoringConfiguration": { "additionalProperties": false, "properties": { - "ExecutionNamePrefix": { + "ConfigurationType": { "type": "string" }, - "RoleArn": { + "LogLevel": { "type": "string" }, - "StateMachineName": { + "MetricsLevel": { "type": "string" } }, "required": [ - "RoleArn", - "StateMachineName" + "ConfigurationType" ], "type": "object" }, - "AWS::IoT::TopicRule.TopicRulePayload": { + "AWS::KinesisAnalyticsV2::Application.ParallelismConfiguration": { "additionalProperties": false, "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/AWS::IoT::TopicRule.Action" - }, - "type": "array" - }, - "AwsIotSqlVersion": { - "type": "string" + "AutoScalingEnabled": { + "type": "boolean" }, - "Description": { + "ConfigurationType": { "type": "string" }, - "ErrorAction": { - "$ref": "#/definitions/AWS::IoT::TopicRule.Action" - }, - "RuleDisabled": { - "type": "boolean" + "Parallelism": { + "type": "number" }, - "Sql": { - "type": "string" + "ParallelismPerKPU": { + "type": "number" } }, "required": [ - "Actions", - "RuleDisabled", - "Sql" + "ConfigurationType" ], "type": "object" }, - "AWS::KMS::Alias": { + "AWS::KinesisAnalyticsV2::Application.PropertyGroup": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "PropertyGroupId": { "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": { - "AliasName": { - "type": "string" - }, - "TargetKeyId": { - "type": "string" - } - }, - "required": [ - "AliasName", - "TargetKeyId" - ], + "PropertyMap": { "type": "object" - }, - "Type": { - "enum": [ - "AWS::KMS::Alias" - ], - "type": "string" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::KMS::Key": { + "AWS::KinesisAnalyticsV2::Application.RecordColumn": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Mapping": { "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" - }, - "EnableKeyRotation": { - "type": "boolean" - }, - "Enabled": { - "type": "boolean" - }, - "KeyPolicy": { - "type": "object" - }, - "KeyUsage": { - "type": "string" - }, - "PendingWindowInDays": { - "type": "number" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "required": [ - "KeyPolicy" - ], - "type": "object" + "Name": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::KMS::Key" - ], + "SqlType": { "type": "string" } }, "required": [ - "Type", - "Properties" + "Name", + "SqlType" ], "type": "object" }, - "AWS::Kinesis::Stream": { + "AWS::KinesisAnalyticsV2::Application.RecordFormat": { "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": { - "Name": { - "type": "string" - }, - "RetentionPeriodHours": { - "type": "number" - }, - "ShardCount": { - "type": "number" - }, - "StreamEncryption": { - "$ref": "#/definitions/AWS::Kinesis::Stream.StreamEncryption" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "required": [ - "ShardCount" - ], - "type": "object" + "MappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.MappingParameters" }, - "Type": { - "enum": [ - "AWS::Kinesis::Stream" - ], + "RecordFormatType": { "type": "string" } }, "required": [ - "Type", - "Properties" + "RecordFormatType" ], "type": "object" }, - "AWS::Kinesis::Stream.StreamEncryption": { + "AWS::KinesisAnalyticsV2::Application.S3ContentLocation": { "additionalProperties": false, "properties": { - "EncryptionType": { + "BucketARN": { "type": "string" }, - "KeyId": { + "FileKey": { + "type": "string" + }, + "ObjectVersion": { "type": "string" } }, - "required": [ - "EncryptionType", - "KeyId" - ], "type": "object" }, - "AWS::Kinesis::StreamConsumer": { + "AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration": { "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": { - "ConsumerName": { - "type": "string" - }, - "StreamARN": { - "type": "string" - } + "Inputs": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.Input" }, - "required": [ - "ConsumerName", - "StreamARN" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Kinesis::StreamConsumer" - ], - "type": "string" + "type": "array" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::KinesisAnalytics::Application": { + "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -25117,30 +28417,22 @@ "Properties": { "additionalProperties": false, "properties": { - "ApplicationCode": { - "type": "string" - }, - "ApplicationDescription": { - "type": "string" - }, "ApplicationName": { "type": "string" }, - "Inputs": { - "items": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.Input" - }, - "type": "array" + "CloudWatchLoggingOption": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption.CloudWatchLoggingOption" } }, "required": [ - "Inputs" + "ApplicationName", + "CloudWatchLoggingOption" ], "type": "object" }, "Type": { "enum": [ - "AWS::KinesisAnalytics::Application" + "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption" ], "type": "string" } @@ -25151,197 +28443,19 @@ ], "type": "object" }, - "AWS::KinesisAnalytics::Application.CSVMappingParameters": { + "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption.CloudWatchLoggingOption": { "additionalProperties": false, "properties": { - "RecordColumnDelimiter": { - "type": "string" - }, - "RecordRowDelimiter": { - "type": "string" - } - }, - "required": [ - "RecordColumnDelimiter", - "RecordRowDelimiter" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.Input": { - "additionalProperties": false, - "properties": { - "InputParallelism": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputParallelism" - }, - "InputProcessingConfiguration": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputProcessingConfiguration" - }, - "InputSchema": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputSchema" - }, - "KinesisFirehoseInput": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.KinesisFirehoseInput" - }, - "KinesisStreamsInput": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.KinesisStreamsInput" - }, - "NamePrefix": { - "type": "string" - } - }, - "required": [ - "InputSchema", - "NamePrefix" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.InputLambdaProcessor": { - "additionalProperties": false, - "properties": { - "ResourceARN": { - "type": "string" - }, - "RoleARN": { - "type": "string" - } - }, - "required": [ - "ResourceARN", - "RoleARN" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.InputParallelism": { - "additionalProperties": false, - "properties": { - "Count": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::KinesisAnalytics::Application.InputProcessingConfiguration": { - "additionalProperties": false, - "properties": { - "InputLambdaProcessor": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputLambdaProcessor" - } - }, - "type": "object" - }, - "AWS::KinesisAnalytics::Application.InputSchema": { - "additionalProperties": false, - "properties": { - "RecordColumns": { - "items": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.RecordColumn" - }, - "type": "array" - }, - "RecordEncoding": { - "type": "string" - }, - "RecordFormat": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.RecordFormat" - } - }, - "required": [ - "RecordColumns", - "RecordFormat" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.JSONMappingParameters": { - "additionalProperties": false, - "properties": { - "RecordRowPath": { - "type": "string" - } - }, - "required": [ - "RecordRowPath" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.KinesisFirehoseInput": { - "additionalProperties": false, - "properties": { - "ResourceARN": { - "type": "string" - }, - "RoleARN": { - "type": "string" - } - }, - "required": [ - "ResourceARN", - "RoleARN" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.KinesisStreamsInput": { - "additionalProperties": false, - "properties": { - "ResourceARN": { - "type": "string" - }, - "RoleARN": { - "type": "string" - } - }, - "required": [ - "ResourceARN", - "RoleARN" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.MappingParameters": { - "additionalProperties": false, - "properties": { - "CSVMappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.CSVMappingParameters" - }, - "JSONMappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.JSONMappingParameters" - } - }, - "type": "object" - }, - "AWS::KinesisAnalytics::Application.RecordColumn": { - "additionalProperties": false, - "properties": { - "Mapping": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "SqlType": { - "type": "string" - } - }, - "required": [ - "Name", - "SqlType" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.RecordFormat": { - "additionalProperties": false, - "properties": { - "MappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.MappingParameters" - }, - "RecordFormatType": { + "LogStreamARN": { "type": "string" } }, "required": [ - "RecordFormatType" + "LogStreamARN" ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput": { + "AWS::KinesisAnalyticsV2::ApplicationOutput": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -25377,7 +28491,7 @@ "type": "string" }, "Output": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.Output" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.Output" } }, "required": [ @@ -25388,7 +28502,7 @@ }, "Type": { "enum": [ - "AWS::KinesisAnalytics::ApplicationOutput" + "AWS::KinesisAnalyticsV2::ApplicationOutput" ], "type": "string" } @@ -25399,7 +28513,7 @@ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema": { + "AWS::KinesisAnalyticsV2::ApplicationOutput.DestinationSchema": { "additionalProperties": false, "properties": { "RecordFormatType": { @@ -25408,68 +28522,56 @@ }, "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput": { + "AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisFirehoseOutput": { "additionalProperties": false, "properties": { "ResourceARN": { "type": "string" - }, - "RoleARN": { - "type": "string" } }, "required": [ - "ResourceARN", - "RoleARN" + "ResourceARN" ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput": { + "AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisStreamsOutput": { "additionalProperties": false, "properties": { "ResourceARN": { "type": "string" - }, - "RoleARN": { - "type": "string" } }, "required": [ - "ResourceARN", - "RoleARN" + "ResourceARN" ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput": { + "AWS::KinesisAnalyticsV2::ApplicationOutput.LambdaOutput": { "additionalProperties": false, "properties": { "ResourceARN": { "type": "string" - }, - "RoleARN": { - "type": "string" } }, "required": [ - "ResourceARN", - "RoleARN" + "ResourceARN" ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput.Output": { + "AWS::KinesisAnalyticsV2::ApplicationOutput.Output": { "additionalProperties": false, "properties": { "DestinationSchema": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.DestinationSchema" }, "KinesisFirehoseOutput": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisFirehoseOutput" }, "KinesisStreamsOutput": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisStreamsOutput" }, "LambdaOutput": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.LambdaOutput" }, "Name": { "type": "string" @@ -25480,7 +28582,7 @@ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -25516,7 +28618,7 @@ "type": "string" }, "ReferenceDataSource": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceDataSource" } }, "required": [ @@ -25527,7 +28629,7 @@ }, "Type": { "enum": [ - "AWS::KinesisAnalytics::ApplicationReferenceDataSource" + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource" ], "type": "string" } @@ -25538,7 +28640,7 @@ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.CSVMappingParameters": { "additionalProperties": false, "properties": { "RecordColumnDelimiter": { @@ -25554,7 +28656,7 @@ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.JSONMappingParameters": { "additionalProperties": false, "properties": { "RecordRowPath": { @@ -25566,19 +28668,19 @@ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.MappingParameters": { "additionalProperties": false, "properties": { "CSVMappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.CSVMappingParameters" }, "JSONMappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.JSONMappingParameters" } }, "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordColumn": { "additionalProperties": false, "properties": { "Mapping": { @@ -25597,11 +28699,11 @@ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordFormat": { "additionalProperties": false, "properties": { "MappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.MappingParameters" }, "RecordFormatType": { "type": "string" @@ -25612,14 +28714,14 @@ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceDataSource": { "additionalProperties": false, "properties": { "ReferenceSchema": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceSchema" }, "S3ReferenceDataSource": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.S3ReferenceDataSource" }, "TableName": { "type": "string" @@ -25630,12 +28732,12 @@ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceSchema": { "additionalProperties": false, "properties": { "RecordColumns": { "items": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordColumn" }, "type": "array" }, @@ -25643,7 +28745,7 @@ "type": "string" }, "RecordFormat": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordFormat" } }, "required": [ @@ -25652,7 +28754,7 @@ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.S3ReferenceDataSource": { "additionalProperties": false, "properties": { "BucketARN": { @@ -25660,15 +28762,11 @@ }, "FileKey": { "type": "string" - }, - "ReferenceRoleARN": { - "type": "string" } }, "required": [ "BucketARN", - "FileKey", - "ReferenceRoleARN" + "FileKey" ], "type": "object" }, @@ -26472,6 +29570,159 @@ ], "type": "object" }, + "AWS::Lambda::LayerVersion": { + "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": { + "CompatibleRuntimes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Content": { + "$ref": "#/definitions/AWS::Lambda::LayerVersion.Content" + }, + "Description": { + "type": "string" + }, + "LayerName": { + "type": "string" + }, + "LicenseInfo": { + "type": "string" + } + }, + "required": [ + "Content" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lambda::LayerVersion" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lambda::LayerVersion.Content": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + }, + "S3ObjectVersion": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::Lambda::LayerVersionPermission": { + "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": { + "Action": { + "type": "string" + }, + "LayerVersionArn": { + "type": "string" + }, + "OrganizationId": { + "type": "string" + }, + "Principal": { + "type": "string" + } + }, + "required": [ + "Action", + "LayerVersionArn", + "Principal" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lambda::LayerVersionPermission" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Lambda::Permission": { "additionalProperties": false, "properties": { @@ -28087,110 +31338,320 @@ "Properties": { "additionalProperties": false, "properties": { - "AgentVersion": { - "type": "string" - }, - "Attributes": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "ChefConfiguration": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.ChefConfiguration" - }, - "CloneAppIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ClonePermissions": { - "type": "boolean" - }, - "ConfigurationManager": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.StackConfigurationManager" - }, - "CustomCookbooksSource": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.Source" - }, - "CustomJson": { - "type": "object" - }, - "DefaultAvailabilityZone": { - "type": "string" - }, - "DefaultInstanceProfileArn": { - "type": "string" - }, - "DefaultOs": { - "type": "string" - }, - "DefaultRootDeviceType": { - "type": "string" - }, - "DefaultSshKeyName": { - "type": "string" - }, - "DefaultSubnetId": { - "type": "string" - }, - "EcsClusterArn": { + "AgentVersion": { + "type": "string" + }, + "Attributes": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "ChefConfiguration": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.ChefConfiguration" + }, + "CloneAppIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ClonePermissions": { + "type": "boolean" + }, + "ConfigurationManager": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.StackConfigurationManager" + }, + "CustomCookbooksSource": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.Source" + }, + "CustomJson": { + "type": "object" + }, + "DefaultAvailabilityZone": { + "type": "string" + }, + "DefaultInstanceProfileArn": { + "type": "string" + }, + "DefaultOs": { + "type": "string" + }, + "DefaultRootDeviceType": { + "type": "string" + }, + "DefaultSshKeyName": { + "type": "string" + }, + "DefaultSubnetId": { + "type": "string" + }, + "EcsClusterArn": { + "type": "string" + }, + "ElasticIps": { + "items": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.ElasticIp" + }, + "type": "array" + }, + "HostnameTheme": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RdsDbInstances": { + "items": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.RdsDbInstance" + }, + "type": "array" + }, + "ServiceRoleArn": { + "type": "string" + }, + "SourceStackId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UseCustomCookbooks": { + "type": "boolean" + }, + "UseOpsworksSecurityGroups": { + "type": "boolean" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "DefaultInstanceProfileArn", + "Name", + "ServiceRoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OpsWorks::Stack" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OpsWorks::Stack.ChefConfiguration": { + "additionalProperties": false, + "properties": { + "BerkshelfVersion": { + "type": "string" + }, + "ManageBerkshelf": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Stack.ElasticIp": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Ip" + ], + "type": "object" + }, + "AWS::OpsWorks::Stack.RdsDbInstance": { + "additionalProperties": false, + "properties": { + "DbPassword": { + "type": "string" + }, + "DbUser": { + "type": "string" + }, + "RdsDbInstanceArn": { + "type": "string" + } + }, + "required": [ + "DbPassword", + "DbUser", + "RdsDbInstanceArn" + ], + "type": "object" + }, + "AWS::OpsWorks::Stack.Source": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "Revision": { + "type": "string" + }, + "SshKey": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Stack.StackConfigurationManager": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpsWorks::UserProfile": { + "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": { + "AllowSelfManagement": { + "type": "boolean" + }, + "IamUserArn": { + "type": "string" + }, + "SshPublicKey": { + "type": "string" + }, + "SshUsername": { + "type": "string" + } + }, + "required": [ + "IamUserArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OpsWorks::UserProfile" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OpsWorks::Volume": { + "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": { + "Ec2VolumeId": { "type": "string" }, - "ElasticIps": { - "items": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.ElasticIp" - }, - "type": "array" - }, - "HostnameTheme": { + "MountPoint": { "type": "string" }, "Name": { "type": "string" }, - "RdsDbInstances": { - "items": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.RdsDbInstance" - }, - "type": "array" - }, - "ServiceRoleArn": { - "type": "string" - }, - "SourceStackId": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "UseCustomCookbooks": { - "type": "boolean" - }, - "UseOpsworksSecurityGroups": { - "type": "boolean" - }, - "VpcId": { + "StackId": { "type": "string" } }, "required": [ - "DefaultInstanceProfileArn", - "Name", - "ServiceRoleArn" + "Ec2VolumeId", + "StackId" ], "type": "object" }, "Type": { "enum": [ - "AWS::OpsWorks::Stack" + "AWS::OpsWorks::Volume" ], "type": "string" } @@ -28201,90 +31662,7 @@ ], "type": "object" }, - "AWS::OpsWorks::Stack.ChefConfiguration": { - "additionalProperties": false, - "properties": { - "BerkshelfVersion": { - "type": "string" - }, - "ManageBerkshelf": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::OpsWorks::Stack.ElasticIp": { - "additionalProperties": false, - "properties": { - "Ip": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "Ip" - ], - "type": "object" - }, - "AWS::OpsWorks::Stack.RdsDbInstance": { - "additionalProperties": false, - "properties": { - "DbPassword": { - "type": "string" - }, - "DbUser": { - "type": "string" - }, - "RdsDbInstanceArn": { - "type": "string" - } - }, - "required": [ - "DbPassword", - "DbUser", - "RdsDbInstanceArn" - ], - "type": "object" - }, - "AWS::OpsWorks::Stack.Source": { - "additionalProperties": false, - "properties": { - "Password": { - "type": "string" - }, - "Revision": { - "type": "string" - }, - "SshKey": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Url": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::OpsWorks::Stack.StackConfigurationManager": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::OpsWorks::UserProfile": { + "AWS::OpsWorksCM::Server": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -28316,27 +31694,77 @@ "Properties": { "additionalProperties": false, "properties": { - "AllowSelfManagement": { + "AssociatePublicIpAddress": { "type": "boolean" }, - "IamUserArn": { + "BackupId": { "type": "string" }, - "SshPublicKey": { + "BackupRetentionCount": { + "type": "number" + }, + "DisableAutomatedBackup": { + "type": "boolean" + }, + "Engine": { "type": "string" }, - "SshUsername": { + "EngineAttributes": { + "items": { + "$ref": "#/definitions/AWS::OpsWorksCM::Server.EngineAttribute" + }, + "type": "array" + }, + "EngineModel": { "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "InstanceProfileArn": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "KeyPair": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ServerName": { + "type": "string" + }, + "ServiceRoleArn": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "IamUserArn" + "InstanceProfileArn", + "InstanceType", + "ServiceRoleArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::OpsWorks::UserProfile" + "AWS::OpsWorksCM::Server" ], "type": "string" } @@ -28347,7 +31775,19 @@ ], "type": "object" }, - "AWS::OpsWorks::Volume": { + "AWS::OpsWorksCM::Server.EngineAttribute": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RAM::ResourceShare": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -28379,28 +31819,39 @@ "Properties": { "additionalProperties": false, "properties": { - "Ec2VolumeId": { - "type": "string" - }, - "MountPoint": { - "type": "string" + "AllowExternalPrincipals": { + "type": "boolean" }, "Name": { "type": "string" }, - "StackId": { - "type": "string" + "Principals": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ResourceArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "Ec2VolumeId", - "StackId" + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::OpsWorks::Volume" + "AWS::RAM::ResourceShare" ], "type": "string" } @@ -28515,6 +31966,9 @@ "SnapshotIdentifier": { "type": "string" }, + "SourceRegion": { + "type": "string" + }, "StorageEncrypted": { "type": "boolean" }, @@ -28820,6 +32274,9 @@ "Timezone": { "type": "string" }, + "UseDefaultProcessorFeatures": { + "type": "boolean" + }, "VPCSecurityGroups": { "items": { "type": "string" @@ -29759,31 +33216,517 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "Description": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::ClusterSubnetGroup" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::Fleet": { + "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": { + "Name": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::Fleet" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RoboMaker::Robot": { + "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": { + "Architecture": { + "type": "string" + }, + "Fleet": { + "type": "string" + }, + "GreengrassGroupId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "required": [ + "Architecture", + "GreengrassGroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::Robot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::RobotApplication": { + "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": { + "CurrentRevisionId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RobotSoftwareSuite": { + "$ref": "#/definitions/AWS::RoboMaker::RobotApplication.RobotSoftwareSuite" + }, + "Sources": { + "items": { + "$ref": "#/definitions/AWS::RoboMaker::RobotApplication.SourceConfig" + }, + "type": "array" + }, + "Tags": { + "type": "object" + } + }, + "required": [ + "RobotSoftwareSuite", + "Sources" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::RobotApplication" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::RobotApplication.RobotSoftwareSuite": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "Version" + ], + "type": "object" + }, + "AWS::RoboMaker::RobotApplication.SourceConfig": { + "additionalProperties": false, + "properties": { + "Architecture": { + "type": "string" + }, + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "Architecture", + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::RoboMaker::RobotApplicationVersion": { + "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": { + "Application": { + "type": "string" + }, + "CurrentRevisionId": { + "type": "string" + } + }, + "required": [ + "Application" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::RobotApplicationVersion" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication": { + "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": { + "CurrentRevisionId": { "type": "string" }, - "SubnetIds": { + "Name": { + "type": "string" + }, + "RenderingEngine": { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.RenderingEngine" + }, + "RobotSoftwareSuite": { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.RobotSoftwareSuite" + }, + "SimulationSoftwareSuite": { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.SimulationSoftwareSuite" + }, + "Sources": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.SourceConfig" }, "type": "array" }, "Tags": { + "type": "object" + } + }, + "required": [ + "RenderingEngine", + "RobotSoftwareSuite", + "SimulationSoftwareSuite", + "Sources" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::SimulationApplication" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.RenderingEngine": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "Version" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.RobotSoftwareSuite": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "Version" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.SimulationSoftwareSuite": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "Version" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.SourceConfig": { + "additionalProperties": false, + "properties": { + "Architecture": { + "type": "string" + }, + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "Architecture", + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplicationVersion": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { "items": { - "$ref": "#/definitions/Tag" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Application": { + "type": "string" + }, + "CurrentRevisionId": { + "type": "string" + } }, "required": [ - "Description", - "SubnetIds" + "Application" ], "type": "object" }, "Type": { "enum": [ - "AWS::Redshift::ClusterSubnetGroup" + "AWS::RoboMaker::SimulationApplicationVersion" ], "type": "string" } @@ -30546,6 +34489,67 @@ ], "type": "object" }, + "AWS::Route53Resolver::ResolverRuleAssociation": { + "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": { + "Name": { + "type": "string" + }, + "ResolverRuleId": { + "type": "string" + }, + "VPCId": { + "type": "string" + } + }, + "required": [ + "ResolverRuleId", + "VPCId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::ResolverRuleAssociation" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::S3::Bucket": { "additionalProperties": false, "properties": { @@ -32176,6 +36180,10 @@ "type": "string" } }, + "required": [ + "Protocol", + "TopicArn" + ], "type": "object" }, "Type": { @@ -32186,7 +36194,8 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -32736,6 +36745,12 @@ }, "StartDate": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ @@ -33455,6 +37470,9 @@ "AWS::SageMaker::EndpointConfig.ProductionVariant": { "additionalProperties": false, "properties": { + "AcceleratorType": { + "type": "string" + }, "InitialInstanceCount": { "type": "number" }, @@ -33512,6 +37530,12 @@ "Properties": { "additionalProperties": false, "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::Model.ContainerDefinition" + }, + "type": "array" + }, "ExecutionRoleArn": { "type": "string" }, @@ -33532,8 +37556,7 @@ } }, "required": [ - "ExecutionRoleArn", - "PrimaryContainer" + "ExecutionRoleArn" ], "type": "object" }, @@ -37108,6 +41131,9 @@ { "$ref": "#/definitions/AWS::AmazonMQ::Configuration" }, + { + "$ref": "#/definitions/AWS::AmazonMQ::ConfigurationAssociation" + }, { "$ref": "#/definitions/AWS::ApiGateway::Account" }, @@ -37165,6 +41191,33 @@ { "$ref": "#/definitions/AWS::ApiGateway::VpcLink" }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Api" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Authorizer" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Deployment" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Integration" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::IntegrationResponse" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Model" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Route" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::RouteResponse" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Stage" + }, { "$ref": "#/definitions/AWS::AppStream::DirectoryConfig" }, @@ -37381,6 +41434,18 @@ { "$ref": "#/definitions/AWS::DirectoryService::SimpleAD" }, + { + "$ref": "#/definitions/AWS::DocDB::DBCluster" + }, + { + "$ref": "#/definitions/AWS::DocDB::DBClusterParameterGroup" + }, + { + "$ref": "#/definitions/AWS::DocDB::DBInstance" + }, + { + "$ref": "#/definitions/AWS::DocDB::DBSubnetGroup" + }, { "$ref": "#/definitions/AWS::DynamoDB::Table" }, @@ -37624,6 +41689,9 @@ { "$ref": "#/definitions/AWS::Events::Rule" }, + { + "$ref": "#/definitions/AWS::FSx::FileSystem" + }, { "$ref": "#/definitions/AWS::GameLift::Alias" }, @@ -37741,6 +41809,18 @@ { "$ref": "#/definitions/AWS::IoT::TopicRule" }, + { + "$ref": "#/definitions/AWS::IoTAnalytics::Channel" + }, + { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset" + }, + { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore" + }, + { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline" + }, { "$ref": "#/definitions/AWS::KMS::Alias" }, @@ -37762,6 +41842,18 @@ { "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource" }, + { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application" + }, + { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption" + }, + { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput" + }, + { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource" + }, { "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream" }, @@ -37774,6 +41866,12 @@ { "$ref": "#/definitions/AWS::Lambda::Function" }, + { + "$ref": "#/definitions/AWS::Lambda::LayerVersion" + }, + { + "$ref": "#/definitions/AWS::Lambda::LayerVersionPermission" + }, { "$ref": "#/definitions/AWS::Lambda::Permission" }, @@ -37831,6 +41929,12 @@ { "$ref": "#/definitions/AWS::OpsWorks::Volume" }, + { + "$ref": "#/definitions/AWS::OpsWorksCM::Server" + }, + { + "$ref": "#/definitions/AWS::RAM::ResourceShare" + }, { "$ref": "#/definitions/AWS::RDS::DBCluster" }, @@ -37873,6 +41977,24 @@ { "$ref": "#/definitions/AWS::Redshift::ClusterSubnetGroup" }, + { + "$ref": "#/definitions/AWS::RoboMaker::Fleet" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::Robot" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::RobotApplication" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::RobotApplicationVersion" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplicationVersion" + }, { "$ref": "#/definitions/AWS::Route53::HealthCheck" }, @@ -37891,6 +42013,9 @@ { "$ref": "#/definitions/AWS::Route53Resolver::ResolverRule" }, + { + "$ref": "#/definitions/AWS::Route53Resolver::ResolverRuleAssociation" + }, { "$ref": "#/definitions/AWS::S3::Bucket" }, diff --git a/schema/sam.go b/schema/sam.go index 9bcd63e41a..decd916289 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -79,6 +79,12 @@ var SamSchema = `{ }, "type": "array" }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AmazonMQ::Broker.TagsEntry" + }, + "type": "array" + }, "Users": { "items": { "$ref": "#/definitions/AWS::AmazonMQ::Broker.User" @@ -159,6 +165,22 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::AmazonMQ::Broker.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::AmazonMQ::Broker.User": { "additionalProperties": false, "properties": { @@ -230,6 +252,12 @@ var SamSchema = `{ }, "Name": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AmazonMQ::Configuration.TagsEntry" + }, + "type": "array" } }, "required": [ @@ -253,6 +281,96 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::AmazonMQ::Configuration.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::AmazonMQ::ConfigurationAssociation": { + "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": { + "Broker": { + "type": "string" + }, + "Configuration": { + "$ref": "#/definitions/AWS::AmazonMQ::ConfigurationAssociation.ConfigurationId" + } + }, + "required": [ + "Broker", + "Configuration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AmazonMQ::ConfigurationAssociation" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AmazonMQ::ConfigurationAssociation.ConfigurationId": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Revision": { + "type": "number" + } + }, + "required": [ + "Id", + "Revision" + ], + "type": "object" + }, "AWS::ApiGateway::Account": { "additionalProperties": false, "properties": { @@ -355,6 +473,9 @@ var SamSchema = `{ "$ref": "#/definitions/AWS::ApiGateway::ApiKey.StageKey" }, "type": "array" + }, + "Value": { + "type": "string" } }, "type": "object" @@ -450,7 +571,8 @@ var SamSchema = `{ } }, "required": [ - "RestApiId" + "RestApiId", + "Type" ], "type": "object" }, @@ -2080,7 +2202,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AppStream::DirectoryConfig": { + "AWS::ApiGatewayV2::Api": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2112,29 +2234,120 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DirectoryName": { + "ApiKeySelectionExpression": { "type": "string" }, - "OrganizationalUnitDistinguishedNames": { + "Description": { + "type": "string" + }, + "DisableSchemaValidation": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "ProtocolType": { + "type": "string" + }, + "RouteSelectionExpression": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "ProtocolType", + "RouteSelectionExpression" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGatewayV2::Api" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::Authorizer": { + "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": { + "ApiId": { + "type": "string" }, - "ServiceAccountCredentials": { - "$ref": "#/definitions/AWS::AppStream::DirectoryConfig.ServiceAccountCredentials" + "AuthorizerCredentialsArn": { + "type": "string" + }, + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerType": { + "type": "string" + }, + "AuthorizerUri": { + "type": "string" + }, + "IdentitySource": { + "items": { + "type": "string" + }, + "type": "array" + }, + "IdentityValidationExpression": { + "type": "string" + }, + "Name": { + "type": "string" } }, "required": [ - "DirectoryName", - "OrganizationalUnitDistinguishedNames", - "ServiceAccountCredentials" + "ApiId", + "AuthorizerType", + "AuthorizerUri", + "IdentitySource", + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::DirectoryConfig" + "AWS::ApiGatewayV2::Authorizer" ], "type": "string" } @@ -2145,23 +2358,67 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AppStream::DirectoryConfig.ServiceAccountCredentials": { + "AWS::ApiGatewayV2::Deployment": { "additionalProperties": false, "properties": { - "AccountName": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "AccountPassword": { + "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": { + "ApiId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "StageName": { + "type": "string" + } + }, + "required": [ + "ApiId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGatewayV2::Deployment" + ], "type": "string" } }, "required": [ - "AccountName", - "AccountPassword" + "Type", + "Properties" ], "type": "object" }, - "AWS::AppStream::Fleet": { + "AWS::ApiGatewayV2::Integration": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2193,55 +2450,55 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ComputeCapacity": { - "$ref": "#/definitions/AWS::AppStream::Fleet.ComputeCapacity" - }, - "Description": { + "ApiId": { "type": "string" }, - "DisconnectTimeoutInSeconds": { - "type": "number" + "ConnectionType": { + "type": "string" }, - "DisplayName": { + "ContentHandlingStrategy": { "type": "string" }, - "DomainJoinInfo": { - "$ref": "#/definitions/AWS::AppStream::Fleet.DomainJoinInfo" + "CredentialsArn": { + "type": "string" }, - "EnableDefaultInternetAccess": { - "type": "boolean" + "Description": { + "type": "string" }, - "FleetType": { + "IntegrationMethod": { "type": "string" }, - "ImageArn": { + "IntegrationType": { "type": "string" }, - "ImageName": { + "IntegrationUri": { "type": "string" }, - "InstanceType": { + "PassthroughBehavior": { "type": "string" }, - "MaxUserDurationInSeconds": { - "type": "number" + "RequestParameters": { + "type": "object" }, - "Name": { + "RequestTemplates": { + "type": "object" + }, + "TemplateSelectionExpression": { "type": "string" }, - "VpcConfig": { - "$ref": "#/definitions/AWS::AppStream::Fleet.VpcConfig" + "TimeoutInMillis": { + "type": "number" } }, "required": [ - "ComputeCapacity", - "InstanceType" + "ApiId", + "IntegrationType" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::Fleet" + "AWS::ApiGatewayV2::Integration" ], "type": "string" } @@ -2252,49 +2509,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AppStream::Fleet.ComputeCapacity": { - "additionalProperties": false, - "properties": { - "DesiredInstances": { - "type": "number" - } - }, - "required": [ - "DesiredInstances" - ], - "type": "object" - }, - "AWS::AppStream::Fleet.DomainJoinInfo": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "type": "string" - }, - "OrganizationalUnitDistinguishedName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AppStream::Fleet.VpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::AppStream::ImageBuilder": { + "AWS::ApiGatewayV2::IntegrationResponse": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2326,45 +2541,38 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AppstreamAgentVersion": { + "ApiId": { "type": "string" }, - "Description": { + "ContentHandlingStrategy": { "type": "string" }, - "DisplayName": { + "IntegrationId": { "type": "string" }, - "DomainJoinInfo": { - "$ref": "#/definitions/AWS::AppStream::ImageBuilder.DomainJoinInfo" - }, - "EnableDefaultInternetAccess": { - "type": "boolean" - }, - "ImageArn": { + "IntegrationResponseKey": { "type": "string" }, - "ImageName": { - "type": "string" + "ResponseParameters": { + "type": "object" }, - "InstanceType": { - "type": "string" + "ResponseTemplates": { + "type": "object" }, - "Name": { + "TemplateSelectionExpression": { "type": "string" - }, - "VpcConfig": { - "$ref": "#/definitions/AWS::AppStream::ImageBuilder.VpcConfig" } }, "required": [ - "InstanceType" + "ApiId", + "IntegrationId", + "IntegrationResponseKey" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::ImageBuilder" + "AWS::ApiGatewayV2::IntegrationResponse" ], "type": "string" } @@ -2375,37 +2583,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AppStream::ImageBuilder.DomainJoinInfo": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "type": "string" - }, - "OrganizationalUnitDistinguishedName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AppStream::ImageBuilder.VpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::AppStream::Stack": { + "AWS::ApiGatewayV2::Model": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2437,113 +2615,43 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApplicationSettings": { - "$ref": "#/definitions/AWS::AppStream::Stack.ApplicationSettings" - }, - "AttributesToDelete": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DeleteStorageConnectors": { - "type": "boolean" - }, - "Description": { + "ApiId": { "type": "string" }, - "DisplayName": { + "ContentType": { "type": "string" }, - "FeedbackURL": { + "Description": { "type": "string" }, "Name": { "type": "string" }, - "RedirectURL": { - "type": "string" - }, - "StorageConnectors": { - "items": { - "$ref": "#/definitions/AWS::AppStream::Stack.StorageConnector" - }, - "type": "array" - }, - "UserSettings": { - "items": { - "$ref": "#/definitions/AWS::AppStream::Stack.UserSetting" - }, - "type": "array" + "Schema": { + "type": "object" } }, + "required": [ + "ApiId", + "Name", + "Schema" + ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::Stack" + "AWS::ApiGatewayV2::Model" ], "type": "string" } }, "required": [ - "Type" - ], - "type": "object" - }, - "AWS::AppStream::Stack.ApplicationSettings": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "SettingsGroup": { - "type": "string" - } - }, - "required": [ - "Enabled" - ], - "type": "object" - }, - "AWS::AppStream::Stack.StorageConnector": { - "additionalProperties": false, - "properties": { - "ConnectorType": { - "type": "string" - }, - "Domains": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ResourceIdentifier": { - "type": "string" - } - }, - "required": [ - "ConnectorType" - ], - "type": "object" - }, - "AWS::AppStream::Stack.UserSetting": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "Permission": { - "type": "string" - } - }, - "required": [ - "Action", - "Permission" + "Type", + "Properties" ], "type": "object" }, - "AWS::AppStream::StackFleetAssociation": { + "AWS::ApiGatewayV2::Route": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2575,22 +2683,55 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "FleetName": { + "ApiId": { "type": "string" }, - "StackName": { + "ApiKeyRequired": { + "type": "boolean" + }, + "AuthorizationScopes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AuthorizationType": { + "type": "string" + }, + "AuthorizerId": { + "type": "string" + }, + "ModelSelectionExpression": { + "type": "string" + }, + "OperationName": { + "type": "string" + }, + "RequestModels": { + "type": "object" + }, + "RequestParameters": { + "type": "object" + }, + "RouteKey": { + "type": "string" + }, + "RouteResponseSelectionExpression": { + "type": "string" + }, + "Target": { "type": "string" } }, "required": [ - "FleetName", - "StackName" + "ApiId", + "RouteKey" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::StackFleetAssociation" + "AWS::ApiGatewayV2::Route" ], "type": "string" } @@ -2601,7 +2742,19 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AppStream::StackUserAssociation": { + "AWS::ApiGatewayV2::Route.ParameterConstraints": { + "additionalProperties": false, + "properties": { + "Required": { + "type": "boolean" + } + }, + "required": [ + "Required" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::RouteResponse": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2633,29 +2786,35 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AuthenticationType": { + "ApiId": { "type": "string" }, - "SendEmailNotification": { - "type": "boolean" + "ModelSelectionExpression": { + "type": "string" }, - "StackName": { + "ResponseModels": { + "type": "object" + }, + "ResponseParameters": { + "type": "object" + }, + "RouteId": { "type": "string" }, - "UserName": { + "RouteResponseKey": { "type": "string" } }, "required": [ - "AuthenticationType", - "StackName", - "UserName" + "ApiId", + "RouteId", + "RouteResponseKey" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::StackUserAssociation" + "AWS::ApiGatewayV2::RouteResponse" ], "type": "string" } @@ -2666,7 +2825,19 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AppStream::User": { + "AWS::ApiGatewayV2::RouteResponse.ParameterConstraints": { + "additionalProperties": false, + "properties": { + "Required": { + "type": "boolean" + } + }, + "required": [ + "Required" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::Stage": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2698,31 +2869,44 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AuthenticationType": { + "AccessLogSettings": { + "$ref": "#/definitions/AWS::ApiGatewayV2::Stage.AccessLogSettings" + }, + "ApiId": { "type": "string" }, - "FirstName": { + "ClientCertificateId": { "type": "string" }, - "LastName": { + "DefaultRouteSettings": { + "$ref": "#/definitions/AWS::ApiGatewayV2::Stage.RouteSettings" + }, + "DeploymentId": { "type": "string" }, - "MessageAction": { + "Description": { "type": "string" }, - "UserName": { + "RouteSettings": { + "type": "object" + }, + "StageName": { "type": "string" + }, + "StageVariables": { + "type": "object" } }, "required": [ - "AuthenticationType", - "UserName" + "ApiId", + "DeploymentId", + "StageName" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::User" + "AWS::ApiGatewayV2::Stage" ], "type": "string" } @@ -2733,7 +2917,40 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AppSync::ApiKey": { + "AWS::ApiGatewayV2::Stage.AccessLogSettings": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "type": "string" + }, + "Format": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGatewayV2::Stage.RouteSettings": { + "additionalProperties": false, + "properties": { + "DataTraceEnabled": { + "type": "boolean" + }, + "DetailedMetricsEnabled": { + "type": "boolean" + }, + "LoggingLevel": { + "type": "string" + }, + "ThrottlingBurstLimit": { + "type": "number" + }, + "ThrottlingRateLimit": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AppStream::DirectoryConfig": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2765,24 +2982,29 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApiId": { + "DirectoryName": { "type": "string" }, - "Description": { - "type": "string" + "OrganizationalUnitDistinguishedNames": { + "items": { + "type": "string" + }, + "type": "array" }, - "Expires": { - "type": "number" + "ServiceAccountCredentials": { + "$ref": "#/definitions/AWS::AppStream::DirectoryConfig.ServiceAccountCredentials" } }, "required": [ - "ApiId" + "DirectoryName", + "OrganizationalUnitDistinguishedNames", + "ServiceAccountCredentials" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::ApiKey" + "AWS::AppStream::DirectoryConfig" ], "type": "string" } @@ -2793,7 +3015,23 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AppSync::DataSource": { + "AWS::AppStream::DirectoryConfig.ServiceAccountCredentials": { + "additionalProperties": false, + "properties": { + "AccountName": { + "type": "string" + }, + "AccountPassword": { + "type": "string" + } + }, + "required": [ + "AccountName", + "AccountPassword" + ], + "type": "object" + }, + "AWS::AppStream::Fleet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2825,47 +3063,55 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApiId": { - "type": "string" + "ComputeCapacity": { + "$ref": "#/definitions/AWS::AppStream::Fleet.ComputeCapacity" }, "Description": { "type": "string" }, - "DynamoDBConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.DynamoDBConfig" + "DisconnectTimeoutInSeconds": { + "type": "number" }, - "ElasticsearchConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.ElasticsearchConfig" + "DisplayName": { + "type": "string" }, - "HttpConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.HttpConfig" + "DomainJoinInfo": { + "$ref": "#/definitions/AWS::AppStream::Fleet.DomainJoinInfo" }, - "LambdaConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.LambdaConfig" + "EnableDefaultInternetAccess": { + "type": "boolean" }, - "Name": { + "FleetType": { "type": "string" }, - "RelationalDatabaseConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.RelationalDatabaseConfig" + "ImageArn": { + "type": "string" }, - "ServiceRoleArn": { + "ImageName": { "type": "string" }, - "Type": { + "InstanceType": { + "type": "string" + }, + "MaxUserDurationInSeconds": { + "type": "number" + }, + "Name": { "type": "string" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::AppStream::Fleet.VpcConfig" } }, "required": [ - "ApiId", - "Name", - "Type" + "ComputeCapacity", + "InstanceType" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::DataSource" + "AWS::AppStream::Fleet" ], "type": "string" } @@ -2876,145 +3122,57 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AppSync::DataSource.AuthorizationConfig": { + "AWS::AppStream::Fleet.ComputeCapacity": { "additionalProperties": false, "properties": { - "AuthorizationType": { - "type": "string" - }, - "AwsIamConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.AwsIamConfig" + "DesiredInstances": { + "type": "number" } }, "required": [ - "AuthorizationType" + "DesiredInstances" ], "type": "object" }, - "AWS::AppSync::DataSource.AwsIamConfig": { + "AWS::AppStream::Fleet.DomainJoinInfo": { "additionalProperties": false, "properties": { - "SigningRegion": { + "DirectoryName": { "type": "string" }, - "SigningServiceName": { + "OrganizationalUnitDistinguishedName": { "type": "string" } }, "type": "object" }, - "AWS::AppSync::DataSource.DynamoDBConfig": { + "AWS::AppStream::Fleet.VpcConfig": { "additionalProperties": false, "properties": { - "AwsRegion": { - "type": "string" - }, - "TableName": { - "type": "string" + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "UseCallerCredentials": { - "type": "boolean" + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "AwsRegion", - "TableName" - ], "type": "object" }, - "AWS::AppSync::DataSource.ElasticsearchConfig": { + "AWS::AppStream::ImageBuilder": { "additionalProperties": false, "properties": { - "AwsRegion": { - "type": "string" - }, - "Endpoint": { - "type": "string" - } - }, - "required": [ - "AwsRegion", - "Endpoint" - ], - "type": "object" - }, - "AWS::AppSync::DataSource.HttpConfig": { - "additionalProperties": false, - "properties": { - "AuthorizationConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.AuthorizationConfig" - }, - "Endpoint": { - "type": "string" - } - }, - "required": [ - "Endpoint" - ], - "type": "object" - }, - "AWS::AppSync::DataSource.LambdaConfig": { - "additionalProperties": false, - "properties": { - "LambdaFunctionArn": { - "type": "string" - } - }, - "required": [ - "LambdaFunctionArn" - ], - "type": "object" - }, - "AWS::AppSync::DataSource.RdsHttpEndpointConfig": { - "additionalProperties": false, - "properties": { - "AwsRegion": { - "type": "string" - }, - "AwsSecretStoreArn": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "DbClusterIdentifier": { - "type": "string" - }, - "Schema": { - "type": "string" - } - }, - "required": [ - "AwsRegion", - "AwsSecretStoreArn", - "DbClusterIdentifier" - ], - "type": "object" - }, - "AWS::AppSync::DataSource.RelationalDatabaseConfig": { - "additionalProperties": false, - "properties": { - "RdsHttpEndpointConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.RdsHttpEndpointConfig" - }, - "RelationalDatabaseSourceType": { - "type": "string" - } - }, - "required": [ - "RelationalDatabaseSourceType" - ], - "type": "object" - }, - "AWS::AppSync::FunctionConfiguration": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, "DependsOn": { @@ -3038,42 +3196,45 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApiId": { - "type": "string" - }, - "DataSourceName": { + "AppstreamAgentVersion": { "type": "string" }, "Description": { "type": "string" }, - "FunctionVersion": { + "DisplayName": { "type": "string" }, - "Name": { - "type": "string" + "DomainJoinInfo": { + "$ref": "#/definitions/AWS::AppStream::ImageBuilder.DomainJoinInfo" }, - "RequestMappingTemplate": { + "EnableDefaultInternetAccess": { + "type": "boolean" + }, + "ImageArn": { "type": "string" }, - "RequestMappingTemplateS3Location": { + "ImageName": { "type": "string" }, - "ResponseMappingTemplate": { + "InstanceType": { "type": "string" }, - "ResponseMappingTemplateS3Location": { + "Name": { "type": "string" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::AppStream::ImageBuilder.VpcConfig" } }, "required": [ - "ApiId" + "InstanceType" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::FunctionConfiguration" + "AWS::AppStream::ImageBuilder" ], "type": "string" } @@ -3084,7 +3245,37 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AppSync::GraphQLApi": { + "AWS::AppStream::ImageBuilder.DomainJoinInfo": { + "additionalProperties": false, + "properties": { + "DirectoryName": { + "type": "string" + }, + "OrganizationalUnitDistinguishedName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppStream::ImageBuilder.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::AppStream::Stack": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3116,90 +3307,113 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AuthenticationType": { + "ApplicationSettings": { + "$ref": "#/definitions/AWS::AppStream::Stack.ApplicationSettings" + }, + "AttributesToDelete": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DeleteStorageConnectors": { + "type": "boolean" + }, + "Description": { "type": "string" }, - "LogConfig": { - "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LogConfig" + "DisplayName": { + "type": "string" + }, + "FeedbackURL": { + "type": "string" }, "Name": { "type": "string" }, - "OpenIDConnectConfig": { - "$ref": "#/definitions/AWS::AppSync::GraphQLApi.OpenIDConnectConfig" + "RedirectURL": { + "type": "string" }, - "UserPoolConfig": { - "$ref": "#/definitions/AWS::AppSync::GraphQLApi.UserPoolConfig" + "StorageConnectors": { + "items": { + "$ref": "#/definitions/AWS::AppStream::Stack.StorageConnector" + }, + "type": "array" + }, + "UserSettings": { + "items": { + "$ref": "#/definitions/AWS::AppStream::Stack.UserSetting" + }, + "type": "array" } }, - "required": [ - "AuthenticationType", - "Name" - ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::GraphQLApi" + "AWS::AppStream::Stack" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::AppSync::GraphQLApi.LogConfig": { + "AWS::AppStream::Stack.ApplicationSettings": { "additionalProperties": false, "properties": { - "CloudWatchLogsRoleArn": { - "type": "string" + "Enabled": { + "type": "boolean" }, - "FieldLogLevel": { + "SettingsGroup": { "type": "string" } }, + "required": [ + "Enabled" + ], "type": "object" }, - "AWS::AppSync::GraphQLApi.OpenIDConnectConfig": { + "AWS::AppStream::Stack.StorageConnector": { "additionalProperties": false, "properties": { - "AuthTTL": { - "type": "number" - }, - "ClientId": { + "ConnectorType": { "type": "string" }, - "IatTTL": { - "type": "number" + "Domains": { + "items": { + "type": "string" + }, + "type": "array" }, - "Issuer": { + "ResourceIdentifier": { "type": "string" } }, + "required": [ + "ConnectorType" + ], "type": "object" }, - "AWS::AppSync::GraphQLApi.UserPoolConfig": { + "AWS::AppStream::Stack.UserSetting": { "additionalProperties": false, "properties": { - "AppIdClientRegex": { - "type": "string" - }, - "AwsRegion": { - "type": "string" - }, - "DefaultAction": { + "Action": { "type": "string" }, - "UserPoolId": { + "Permission": { "type": "string" } }, + "required": [ + "Action", + "Permission" + ], "type": "object" }, - "AWS::AppSync::GraphQLSchema": { + "AWS::AppStream::StackFleetAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3231,24 +3445,22 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApiId": { - "type": "string" - }, - "Definition": { + "FleetName": { "type": "string" }, - "DefinitionS3Location": { + "StackName": { "type": "string" } }, "required": [ - "ApiId" + "FleetName", + "StackName" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::GraphQLSchema" + "AWS::AppStream::StackFleetAssociation" ], "type": "string" } @@ -3259,7 +3471,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AppSync::Resolver": { + "AWS::AppStream::StackUserAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3291,47 +3503,29 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApiId": { - "type": "string" - }, - "DataSourceName": { - "type": "string" - }, - "FieldName": { - "type": "string" - }, - "Kind": { - "type": "string" - }, - "PipelineConfig": { - "$ref": "#/definitions/AWS::AppSync::Resolver.PipelineConfig" - }, - "RequestMappingTemplate": { - "type": "string" - }, - "RequestMappingTemplateS3Location": { + "AuthenticationType": { "type": "string" }, - "ResponseMappingTemplate": { - "type": "string" + "SendEmailNotification": { + "type": "boolean" }, - "ResponseMappingTemplateS3Location": { + "StackName": { "type": "string" }, - "TypeName": { + "UserName": { "type": "string" } }, "required": [ - "ApiId", - "FieldName", - "TypeName" + "AuthenticationType", + "StackName", + "UserName" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::Resolver" + "AWS::AppStream::StackUserAssociation" ], "type": "string" } @@ -3342,19 +3536,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AppSync::Resolver.PipelineConfig": { - "additionalProperties": false, - "properties": { - "Functions": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::ApplicationAutoScaling::ScalableTarget": { + "AWS::AppStream::User": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3386,44 +3568,31 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "MaxCapacity": { - "type": "number" - }, - "MinCapacity": { - "type": "number" - }, - "ResourceId": { + "AuthenticationType": { "type": "string" }, - "RoleARN": { + "FirstName": { "type": "string" }, - "ScalableDimension": { + "LastName": { "type": "string" }, - "ScheduledActions": { - "items": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction" - }, - "type": "array" + "MessageAction": { + "type": "string" }, - "ServiceNamespace": { + "UserName": { "type": "string" } }, "required": [ - "MaxCapacity", - "MinCapacity", - "ResourceId", - "RoleARN", - "ScalableDimension", - "ServiceNamespace" + "AuthenticationType", + "UserName" ], "type": "object" }, "Type": { "enum": [ - "AWS::ApplicationAutoScaling::ScalableTarget" + "AWS::AppStream::User" ], "type": "string" } @@ -3434,44 +3603,67 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "number" - }, - "MinCapacity": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction": { + "AWS::AppSync::ApiKey": { "additionalProperties": false, "properties": { - "EndTime": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "ScalableTargetAction": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Schedule": { - "type": "string" + "Metadata": { + "type": "object" }, - "ScheduledActionName": { - "type": "string" + "Properties": { + "additionalProperties": false, + "properties": { + "ApiId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Expires": { + "type": "number" + } + }, + "required": [ + "ApiId" + ], + "type": "object" }, - "StartTime": { + "Type": { + "enum": [ + "AWS::AppSync::ApiKey" + ], "type": "string" } }, "required": [ - "Schedule", - "ScheduledActionName" + "Type", + "Properties" ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy": { + "AWS::AppSync::DataSource": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3503,40 +3695,47 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "PolicyName": { + "ApiId": { "type": "string" }, - "PolicyType": { + "Description": { "type": "string" }, - "ResourceId": { - "type": "string" + "DynamoDBConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.DynamoDBConfig" }, - "ScalableDimension": { - "type": "string" + "ElasticsearchConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.ElasticsearchConfig" }, - "ScalingTargetId": { - "type": "string" + "HttpConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.HttpConfig" }, - "ServiceNamespace": { + "LambdaConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.LambdaConfig" + }, + "Name": { "type": "string" }, - "StepScalingPolicyConfiguration": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration" + "RelationalDatabaseConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.RelationalDatabaseConfig" }, - "TargetTrackingScalingPolicyConfiguration": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration" + "ServiceRoleArn": { + "type": "string" + }, + "Type": { + "type": "string" } }, "required": [ - "PolicyName", - "PolicyType" + "ApiId", + "Name", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::ApplicationAutoScaling::ScalingPolicy" + "AWS::AppSync::DataSource" ], "type": "string" } @@ -3547,136 +3746,137 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification": { + "AWS::AppSync::DataSource.AuthorizationConfig": { "additionalProperties": false, "properties": { - "Dimensions": { - "items": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension" - }, - "type": "array" - }, - "MetricName": { + "AuthorizationType": { "type": "string" }, - "Namespace": { + "AwsIamConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.AwsIamConfig" + } + }, + "required": [ + "AuthorizationType" + ], + "type": "object" + }, + "AWS::AppSync::DataSource.AwsIamConfig": { + "additionalProperties": false, + "properties": { + "SigningRegion": { "type": "string" }, - "Statistic": { + "SigningServiceName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::DataSource.DynamoDBConfig": { + "additionalProperties": false, + "properties": { + "AwsRegion": { "type": "string" }, - "Unit": { + "TableName": { "type": "string" + }, + "UseCallerCredentials": { + "type": "boolean" } }, "required": [ - "MetricName", - "Namespace", - "Statistic" + "AwsRegion", + "TableName" ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension": { + "AWS::AppSync::DataSource.ElasticsearchConfig": { "additionalProperties": false, "properties": { - "Name": { + "AwsRegion": { "type": "string" }, - "Value": { + "Endpoint": { "type": "string" } }, "required": [ - "Name", - "Value" + "AwsRegion", + "Endpoint" ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification": { + "AWS::AppSync::DataSource.HttpConfig": { "additionalProperties": false, "properties": { - "PredefinedMetricType": { - "type": "string" + "AuthorizationConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.AuthorizationConfig" }, - "ResourceLabel": { + "Endpoint": { "type": "string" } }, "required": [ - "PredefinedMetricType" + "Endpoint" ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment": { + "AWS::AppSync::DataSource.LambdaConfig": { "additionalProperties": false, "properties": { - "MetricIntervalLowerBound": { - "type": "number" - }, - "MetricIntervalUpperBound": { - "type": "number" - }, - "ScalingAdjustment": { - "type": "number" + "LambdaFunctionArn": { + "type": "string" } }, "required": [ - "ScalingAdjustment" + "LambdaFunctionArn" ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration": { + "AWS::AppSync::DataSource.RdsHttpEndpointConfig": { "additionalProperties": false, "properties": { - "AdjustmentType": { + "AwsRegion": { "type": "string" }, - "Cooldown": { - "type": "number" + "AwsSecretStoreArn": { + "type": "string" }, - "MetricAggregationType": { + "DatabaseName": { "type": "string" }, - "MinAdjustmentMagnitude": { - "type": "number" + "DbClusterIdentifier": { + "type": "string" }, - "StepAdjustments": { - "items": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment" - }, - "type": "array" + "Schema": { + "type": "string" } }, + "required": [ + "AwsRegion", + "AwsSecretStoreArn", + "DbClusterIdentifier" + ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration": { + "AWS::AppSync::DataSource.RelationalDatabaseConfig": { "additionalProperties": false, "properties": { - "CustomizedMetricSpecification": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification" - }, - "DisableScaleIn": { - "type": "boolean" - }, - "PredefinedMetricSpecification": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification" - }, - "ScaleInCooldown": { - "type": "number" - }, - "ScaleOutCooldown": { - "type": "number" + "RdsHttpEndpointConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.RdsHttpEndpointConfig" }, - "TargetValue": { - "type": "number" + "RelationalDatabaseSourceType": { + "type": "string" } }, "required": [ - "TargetValue" + "RelationalDatabaseSourceType" ], "type": "object" }, - "AWS::Athena::NamedQuery": { + "AWS::AppSync::FunctionConfiguration": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3708,28 +3908,42 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Database": { + "ApiId": { + "type": "string" + }, + "DataSourceName": { "type": "string" }, "Description": { "type": "string" }, + "FunctionVersion": { + "type": "string" + }, "Name": { "type": "string" }, - "QueryString": { + "RequestMappingTemplate": { + "type": "string" + }, + "RequestMappingTemplateS3Location": { + "type": "string" + }, + "ResponseMappingTemplate": { + "type": "string" + }, + "ResponseMappingTemplateS3Location": { "type": "string" } }, "required": [ - "Database", - "QueryString" + "ApiId" ], "type": "object" }, "Type": { "enum": [ - "AWS::Athena::NamedQuery" + "AWS::AppSync::FunctionConfiguration" ], "type": "string" } @@ -3740,12 +3954,9 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AutoScaling::AutoScalingGroup": { + "AWS::AppSync::GraphQLApi": { "additionalProperties": false, "properties": { - "CreationPolicy": { - "type": "object" - }, "DeletionPolicy": { "enum": [ "Delete", @@ -3775,114 +3986,33 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AutoScalingGroupName": { - "type": "string" - }, - "AvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Cooldown": { - "type": "string" - }, - "DesiredCapacity": { - "type": "string" - }, - "HealthCheckGracePeriod": { - "type": "number" - }, - "HealthCheckType": { - "type": "string" - }, - "InstanceId": { - "type": "string" - }, - "LaunchConfigurationName": { - "type": "string" - }, - "LaunchTemplate": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" - }, - "LifecycleHookSpecificationList": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification" - }, - "type": "array" - }, - "LoadBalancerNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MaxSize": { - "type": "string" - }, - "MetricsCollection": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MetricsCollection" - }, - "type": "array" - }, - "MinSize": { + "AuthenticationType": { "type": "string" }, - "MixedInstancesPolicy": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy" - }, - "NotificationConfigurations": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration" - }, - "type": "array" - }, - "PlacementGroup": { - "type": "string" + "LogConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LogConfig" }, - "ServiceLinkedRoleARN": { + "Name": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.TagProperty" - }, - "type": "array" - }, - "TargetGroupARNs": { - "items": { - "type": "string" - }, - "type": "array" - }, - "TerminationPolicies": { - "items": { - "type": "string" - }, - "type": "array" + "OpenIDConnectConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.OpenIDConnectConfig" }, - "VPCZoneIdentifier": { - "items": { - "type": "string" - }, - "type": "array" + "UserPoolConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.UserPoolConfig" } }, "required": [ - "MaxSize", - "MinSize" + "AuthenticationType", + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScaling::AutoScalingGroup" + "AWS::AppSync::GraphQLApi" ], "type": "string" - }, - "UpdatePolicy": { - "type": "object" } }, "required": [ @@ -3891,178 +4021,55 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AutoScaling::AutoScalingGroup.InstancesDistribution": { - "additionalProperties": false, - "properties": { - "OnDemandAllocationStrategy": { - "type": "string" - }, - "OnDemandBaseCapacity": { - "type": "number" - }, - "OnDemandPercentageAboveBaseCapacity": { - "type": "number" - }, - "SpotAllocationStrategy": { - "type": "string" - }, - "SpotInstancePools": { - "type": "number" - }, - "SpotMaxPrice": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.LaunchTemplate": { - "additionalProperties": false, - "properties": { - "LaunchTemplateSpecification": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" - }, - "Overrides": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides" - }, - "type": "array" - } - }, - "required": [ - "LaunchTemplateSpecification" - ], - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification": { + "AWS::AppSync::GraphQLApi.LogConfig": { "additionalProperties": false, "properties": { - "LaunchTemplateId": { - "type": "string" - }, - "LaunchTemplateName": { + "CloudWatchLogsRoleArn": { "type": "string" }, - "Version": { + "FieldLogLevel": { "type": "string" } }, - "required": [ - "Version" - ], "type": "object" }, - "AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification": { + "AWS::AppSync::GraphQLApi.OpenIDConnectConfig": { "additionalProperties": false, "properties": { - "DefaultResult": { - "type": "string" - }, - "HeartbeatTimeout": { + "AuthTTL": { "type": "number" }, - "LifecycleHookName": { - "type": "string" - }, - "LifecycleTransition": { - "type": "string" - }, - "NotificationMetadata": { + "ClientId": { "type": "string" }, - "NotificationTargetARN": { - "type": "string" + "IatTTL": { + "type": "number" }, - "RoleARN": { + "Issuer": { "type": "string" } }, - "required": [ - "LifecycleHookName", - "LifecycleTransition" - ], "type": "object" }, - "AWS::AutoScaling::AutoScalingGroup.MetricsCollection": { + "AWS::AppSync::GraphQLApi.UserPoolConfig": { "additionalProperties": false, "properties": { - "Granularity": { + "AppIdClientRegex": { "type": "string" }, - "Metrics": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Granularity" - ], - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy": { - "additionalProperties": false, - "properties": { - "InstancesDistribution": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.InstancesDistribution" - }, - "LaunchTemplate": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplate" - } - }, - "required": [ - "LaunchTemplate" - ], - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration": { - "additionalProperties": false, - "properties": { - "NotificationTypes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "TopicARN": { - "type": "string" - } - }, - "required": [ - "TopicARN" - ], - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.TagProperty": { - "additionalProperties": false, - "properties": { - "Key": { + "AwsRegion": { "type": "string" }, - "PropagateAtLaunch": { - "type": "boolean" + "DefaultAction": { + "type": "string" }, - "Value": { + "UserPoolId": { "type": "string" } }, - "required": [ - "Key", - "PropagateAtLaunch", - "Value" - ], "type": "object" }, - "AWS::AutoScaling::LaunchConfiguration": { + "AWS::AppSync::GraphQLSchema": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -4094,79 +4101,24 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AssociatePublicIpAddress": { - "type": "boolean" - }, - "BlockDeviceMappings": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping" - }, - "type": "array" - }, - "ClassicLinkVPCId": { - "type": "string" - }, - "ClassicLinkVPCSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EbsOptimized": { - "type": "boolean" - }, - "IamInstanceProfile": { - "type": "string" - }, - "ImageId": { - "type": "string" - }, - "InstanceId": { - "type": "string" - }, - "InstanceMonitoring": { - "type": "boolean" - }, - "InstanceType": { - "type": "string" - }, - "KernelId": { - "type": "string" - }, - "KeyName": { - "type": "string" - }, - "LaunchConfigurationName": { - "type": "string" - }, - "PlacementTenancy": { - "type": "string" - }, - "RamDiskId": { + "ApiId": { "type": "string" }, - "SecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SpotPrice": { + "Definition": { "type": "string" }, - "UserData": { + "DefinitionS3Location": { "type": "string" } }, "required": [ - "ImageId", - "InstanceType" + "ApiId" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScaling::LaunchConfiguration" + "AWS::AppSync::GraphQLSchema" ], "type": "string" } @@ -4177,52 +4129,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AutoScaling::LaunchConfiguration.BlockDevice": { - "additionalProperties": false, - "properties": { - "DeleteOnTermination": { - "type": "boolean" - }, - "Encrypted": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "SnapshotId": { - "type": "string" - }, - "VolumeSize": { - "type": "number" - }, - "VolumeType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping": { - "additionalProperties": false, - "properties": { - "DeviceName": { - "type": "string" - }, - "Ebs": { - "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDevice" - }, - "NoDevice": { - "type": "boolean" - }, - "VirtualName": { - "type": "string" - } - }, - "required": [ - "DeviceName" - ], - "type": "object" - }, - "AWS::AutoScaling::LifecycleHook": { + "AWS::AppSync::Resolver": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -4254,40 +4161,47 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AutoScalingGroupName": { + "ApiId": { "type": "string" }, - "DefaultResult": { + "DataSourceName": { "type": "string" }, - "HeartbeatTimeout": { - "type": "number" + "FieldName": { + "type": "string" }, - "LifecycleHookName": { + "Kind": { "type": "string" }, - "LifecycleTransition": { + "PipelineConfig": { + "$ref": "#/definitions/AWS::AppSync::Resolver.PipelineConfig" + }, + "RequestMappingTemplate": { "type": "string" }, - "NotificationMetadata": { + "RequestMappingTemplateS3Location": { "type": "string" }, - "NotificationTargetARN": { + "ResponseMappingTemplate": { "type": "string" }, - "RoleARN": { + "ResponseMappingTemplateS3Location": { + "type": "string" + }, + "TypeName": { "type": "string" } }, "required": [ - "AutoScalingGroupName", - "LifecycleTransition" + "ApiId", + "FieldName", + "TypeName" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScaling::LifecycleHook" + "AWS::AppSync::Resolver" ], "type": "string" } @@ -4298,7 +4212,19 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy": { + "AWS::AppSync::Resolver.PipelineConfig": { + "additionalProperties": false, + "properties": { + "Functions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalableTarget": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -4330,48 +4256,157 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AdjustmentType": { - "type": "string" - }, - "AutoScalingGroupName": { - "type": "string" - }, - "Cooldown": { - "type": "string" + "MaxCapacity": { + "type": "number" }, - "EstimatedInstanceWarmup": { + "MinCapacity": { "type": "number" }, - "MetricAggregationType": { + "ResourceId": { "type": "string" }, - "MinAdjustmentMagnitude": { - "type": "number" + "RoleARN": { + "type": "string" }, - "PolicyType": { + "ScalableDimension": { "type": "string" }, - "ScalingAdjustment": { - "type": "number" + "ScheduledActions": { + "items": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction" + }, + "type": "array" }, - "StepAdjustments": { + "ServiceNamespace": { + "type": "string" + } + }, + "required": [ + "MaxCapacity", + "MinCapacity", + "ResourceId", + "RoleARN", + "ScalableDimension", + "ServiceNamespace" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApplicationAutoScaling::ScalableTarget" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction": { + "additionalProperties": false, + "properties": { + "EndTime": { + "type": "string" + }, + "ScalableTargetAction": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction" + }, + "Schedule": { + "type": "string" + }, + "ScheduledActionName": { + "type": "string" + }, + "StartTime": { + "type": "string" + } + }, + "required": [ + "Schedule", + "ScheduledActionName" + ], + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { "items": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.StepAdjustment" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyName": { + "type": "string" }, - "TargetTrackingConfiguration": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration" + "PolicyType": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "ScalableDimension": { + "type": "string" + }, + "ScalingTargetId": { + "type": "string" + }, + "ServiceNamespace": { + "type": "string" + }, + "StepScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration" } }, "required": [ - "AutoScalingGroupName" + "PolicyName", + "PolicyType" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScaling::ScalingPolicy" + "AWS::ApplicationAutoScaling::ScalingPolicy" ], "type": "string" } @@ -4382,12 +4417,12 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification": { + "AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification": { "additionalProperties": false, "properties": { "Dimensions": { "items": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDimension" + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension" }, "type": "array" }, @@ -4411,7 +4446,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy.MetricDimension": { + "AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension": { "additionalProperties": false, "properties": { "Name": { @@ -4427,7 +4462,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification": { + "AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification": { "additionalProperties": false, "properties": { "PredefinedMetricType": { @@ -4442,7 +4477,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy.StepAdjustment": { + "AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment": { "additionalProperties": false, "properties": { "MetricIntervalLowerBound": { @@ -4460,17 +4495,47 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration": { + "AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "Cooldown": { + "type": "number" + }, + "MetricAggregationType": { + "type": "string" + }, + "MinAdjustmentMagnitude": { + "type": "number" + }, + "StepAdjustments": { + "items": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration": { "additionalProperties": false, "properties": { "CustomizedMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification" + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification" }, "DisableScaleIn": { "type": "boolean" }, "PredefinedMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification" + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification" + }, + "ScaleInCooldown": { + "type": "number" + }, + "ScaleOutCooldown": { + "type": "number" }, "TargetValue": { "type": "number" @@ -4481,7 +4546,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AutoScaling::ScheduledAction": { + "AWS::Athena::NamedQuery": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -4513,36 +4578,28 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AutoScalingGroupName": { + "Database": { "type": "string" }, - "DesiredCapacity": { - "type": "number" - }, - "EndTime": { + "Description": { "type": "string" }, - "MaxSize": { - "type": "number" - }, - "MinSize": { - "type": "number" - }, - "Recurrence": { + "Name": { "type": "string" }, - "StartTime": { + "QueryString": { "type": "string" } }, "required": [ - "AutoScalingGroupName" + "Database", + "QueryString" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScaling::ScheduledAction" + "AWS::Athena::NamedQuery" ], "type": "string" } @@ -4553,9 +4610,12 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan": { + "AWS::AutoScaling::AutoScalingGroup": { "additionalProperties": false, "properties": { + "CreationPolicy": { + "type": "object" + }, "DeletionPolicy": { "enum": [ "Delete", @@ -4585,27 +4645,114 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApplicationSource": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ApplicationSource" + "AutoScalingGroupName": { + "type": "string" }, - "ScalingInstructions": { + "AvailabilityZones": { "items": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction" + "type": "string" + }, + "type": "array" + }, + "Cooldown": { + "type": "string" + }, + "DesiredCapacity": { + "type": "string" + }, + "HealthCheckGracePeriod": { + "type": "number" + }, + "HealthCheckType": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "LaunchConfigurationName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" + }, + "LifecycleHookSpecificationList": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification" + }, + "type": "array" + }, + "LoadBalancerNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxSize": { + "type": "string" + }, + "MetricsCollection": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MetricsCollection" + }, + "type": "array" + }, + "MinSize": { + "type": "string" + }, + "MixedInstancesPolicy": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy" + }, + "NotificationConfigurations": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration" + }, + "type": "array" + }, + "PlacementGroup": { + "type": "string" + }, + "ServiceLinkedRoleARN": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.TagProperty" + }, + "type": "array" + }, + "TargetGroupARNs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TerminationPolicies": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VPCZoneIdentifier": { + "items": { + "type": "string" }, "type": "array" } }, "required": [ - "ApplicationSource", - "ScalingInstructions" + "MaxSize", + "MinSize" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScalingPlans::ScalingPlan" + "AWS::AutoScaling::AutoScalingGroup" ], "type": "string" + }, + "UpdatePolicy": { + "type": "object" } }, "required": [ @@ -4614,191 +4761,113 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.ApplicationSource": { + "AWS::AutoScaling::AutoScalingGroup.InstancesDistribution": { "additionalProperties": false, "properties": { - "CloudFormationStackARN": { + "OnDemandAllocationStrategy": { "type": "string" }, - "TagFilters": { - "items": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TagFilter" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification": { - "additionalProperties": false, - "properties": { - "Dimensions": { - "items": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension" - }, - "type": "array" + "OnDemandBaseCapacity": { + "type": "number" }, - "MetricName": { - "type": "string" + "OnDemandPercentageAboveBaseCapacity": { + "type": "number" }, - "Namespace": { + "SpotAllocationStrategy": { "type": "string" }, - "Statistic": { - "type": "string" + "SpotInstancePools": { + "type": "number" }, - "Unit": { + "SpotMaxPrice": { "type": "string" } }, - "required": [ - "MetricName", - "Namespace", - "Statistic" - ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification": { + "AWS::AutoScaling::AutoScalingGroup.LaunchTemplate": { "additionalProperties": false, "properties": { - "Dimensions": { + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" + }, + "Overrides": { "items": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension" + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides" }, "type": "array" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Statistic": { - "type": "string" - }, - "Unit": { - "type": "string" } }, "required": [ - "MetricName", - "Namespace", - "Statistic" + "LaunchTemplateSpecification" ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.MetricDimension": { + "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides": { "additionalProperties": false, "properties": { - "Name": { - "type": "string" - }, - "Value": { + "InstanceType": { "type": "string" } }, - "required": [ - "Name", - "Value" - ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification": { + "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification": { "additionalProperties": false, "properties": { - "PredefinedLoadMetricType": { + "LaunchTemplateId": { "type": "string" }, - "ResourceLabel": { - "type": "string" - } - }, - "required": [ - "PredefinedLoadMetricType" - ], - "type": "object" - }, - "AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification": { - "additionalProperties": false, - "properties": { - "PredefinedScalingMetricType": { + "LaunchTemplateName": { "type": "string" }, - "ResourceLabel": { + "Version": { "type": "string" } }, "required": [ - "PredefinedScalingMetricType" + "Version" ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction": { + "AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification": { "additionalProperties": false, "properties": { - "CustomizedLoadMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification" - }, - "DisableDynamicScaling": { - "type": "boolean" - }, - "MaxCapacity": { - "type": "number" - }, - "MinCapacity": { - "type": "number" - }, - "PredefinedLoadMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification" - }, - "PredictiveScalingMaxCapacityBehavior": { + "DefaultResult": { "type": "string" }, - "PredictiveScalingMaxCapacityBuffer": { + "HeartbeatTimeout": { "type": "number" }, - "PredictiveScalingMode": { + "LifecycleHookName": { "type": "string" }, - "ResourceId": { + "LifecycleTransition": { "type": "string" }, - "ScalableDimension": { + "NotificationMetadata": { "type": "string" }, - "ScalingPolicyUpdateBehavior": { + "NotificationTargetARN": { "type": "string" }, - "ScheduledActionBufferTime": { - "type": "number" - }, - "ServiceNamespace": { + "RoleARN": { "type": "string" - }, - "TargetTrackingConfigurations": { - "items": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration" - }, - "type": "array" } }, "required": [ - "MaxCapacity", - "MinCapacity", - "ResourceId", - "ScalableDimension", - "ServiceNamespace", - "TargetTrackingConfigurations" + "LifecycleHookName", + "LifecycleTransition" ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.TagFilter": { + "AWS::AutoScaling::AutoScalingGroup.MetricsCollection": { "additionalProperties": false, "properties": { - "Key": { + "Granularity": { "type": "string" }, - "Values": { + "Metrics": { "items": { "type": "string" }, @@ -4806,49 +4875,72 @@ var SamSchema = `{ } }, "required": [ - "Key" + "Granularity" ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration": { + "AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy": { "additionalProperties": false, "properties": { - "CustomizedScalingMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification" - }, - "DisableScaleIn": { - "type": "boolean" - }, - "EstimatedInstanceWarmup": { - "type": "number" - }, - "PredefinedScalingMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification" - }, - "ScaleInCooldown": { - "type": "number" + "InstancesDistribution": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.InstancesDistribution" }, - "ScaleOutCooldown": { - "type": "number" + "LaunchTemplate": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplate" + } + }, + "required": [ + "LaunchTemplate" + ], + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration": { + "additionalProperties": false, + "properties": { + "NotificationTypes": { + "items": { + "type": "string" + }, + "type": "array" }, - "TargetValue": { - "type": "number" + "TopicARN": { + "type": "string" } }, "required": [ - "TargetValue" + "TopicARN" ], "type": "object" }, - "AWS::Batch::ComputeEnvironment": { + "AWS::AutoScaling::AutoScalingGroup.TagProperty": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Key": { + "type": "string" + }, + "PropagateAtLaunch": { + "type": "boolean" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "PropagateAtLaunch", + "Value" + ], + "type": "object" + }, + "AWS::AutoScaling::LaunchConfiguration": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, "DependsOn": { @@ -4872,31 +4964,79 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ComputeEnvironmentName": { + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping" + }, + "type": "array" + }, + "ClassicLinkVPCId": { "type": "string" }, - "ComputeResources": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.ComputeResources" + "ClassicLinkVPCSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" }, - "ServiceRole": { + "EbsOptimized": { + "type": "boolean" + }, + "IamInstanceProfile": { "type": "string" }, - "State": { + "ImageId": { "type": "string" }, - "Type": { + "InstanceId": { + "type": "string" + }, + "InstanceMonitoring": { + "type": "boolean" + }, + "InstanceType": { + "type": "string" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchConfigurationName": { + "type": "string" + }, + "PlacementTenancy": { + "type": "string" + }, + "RamDiskId": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SpotPrice": { + "type": "string" + }, + "UserData": { "type": "string" } }, "required": [ - "ServiceRole", - "Type" + "ImageId", + "InstanceType" ], "type": "object" }, "Type": { "enum": [ - "AWS::Batch::ComputeEnvironment" + "AWS::AutoScaling::LaunchConfiguration" ], "type": "string" } @@ -4907,91 +5047,128 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Batch::ComputeEnvironment.ComputeResources": { + "AWS::AutoScaling::LaunchConfiguration.BlockDevice": { "additionalProperties": false, "properties": { - "BidPercentage": { - "type": "number" - }, - "DesiredvCpus": { - "type": "number" + "DeleteOnTermination": { + "type": "boolean" }, - "Ec2KeyPair": { - "type": "string" + "Encrypted": { + "type": "boolean" }, - "ImageId": { - "type": "string" + "Iops": { + "type": "number" }, - "InstanceRole": { + "SnapshotId": { "type": "string" }, - "InstanceTypes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LaunchTemplate": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification" - }, - "MaxvCpus": { - "type": "number" - }, - "MinvCpus": { + "VolumeSize": { "type": "number" }, - "PlacementGroup": { + "VolumeType": { "type": "string" - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SpotIamFleetRole": { + } + }, + "type": "object" + }, + "AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { "type": "string" }, - "Subnets": { - "items": { - "type": "string" - }, - "type": "array" + "Ebs": { + "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDevice" }, - "Tags": { - "type": "object" + "NoDevice": { + "type": "boolean" }, - "Type": { + "VirtualName": { "type": "string" } }, "required": [ - "InstanceRole", - "InstanceTypes", - "MaxvCpus", - "MinvCpus", - "SecurityGroupIds", - "Subnets", - "Type" + "DeviceName" ], "type": "object" }, - "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": { + "AWS::AutoScaling::LifecycleHook": { "additionalProperties": false, "properties": { - "LaunchTemplateId": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "LaunchTemplateName": { - "type": "string" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Version": { + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AutoScalingGroupName": { + "type": "string" + }, + "DefaultResult": { + "type": "string" + }, + "HeartbeatTimeout": { + "type": "number" + }, + "LifecycleHookName": { + "type": "string" + }, + "LifecycleTransition": { + "type": "string" + }, + "NotificationMetadata": { + "type": "string" + }, + "NotificationTargetARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "AutoScalingGroupName", + "LifecycleTransition" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AutoScaling::LifecycleHook" + ], "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::Batch::JobDefinition": { + "AWS::AutoScaling::ScalingPolicy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -5023,36 +5200,48 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ContainerProperties": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties" + "AdjustmentType": { + "type": "string" }, - "JobDefinitionName": { + "AutoScalingGroupName": { "type": "string" }, - "NodeProperties": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeProperties" + "Cooldown": { + "type": "string" }, - "Parameters": { - "type": "object" + "EstimatedInstanceWarmup": { + "type": "number" }, - "RetryStrategy": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.RetryStrategy" + "MetricAggregationType": { + "type": "string" }, - "Timeout": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.Timeout" + "MinAdjustmentMagnitude": { + "type": "number" }, - "Type": { + "PolicyType": { "type": "string" + }, + "ScalingAdjustment": { + "type": "number" + }, + "StepAdjustments": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.StepAdjustment" + }, + "type": "array" + }, + "TargetTrackingConfiguration": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration" } }, "required": [ - "Type" + "AutoScalingGroupName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Batch::JobDefinition" + "AWS::AutoScaling::ScalingPolicy" ], "type": "string" } @@ -5063,72 +5252,36 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Batch::JobDefinition.ContainerProperties": { + "AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification": { "additionalProperties": false, "properties": { - "Command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Environment": { + "Dimensions": { "items": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.Environment" + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDimension" }, "type": "array" }, - "Image": { + "MetricName": { "type": "string" }, - "InstanceType": { + "Namespace": { "type": "string" }, - "JobRoleArn": { + "Statistic": { "type": "string" }, - "Memory": { - "type": "number" - }, - "MountPoints": { - "items": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.MountPoints" - }, - "type": "array" - }, - "Privileged": { - "type": "boolean" - }, - "ReadonlyRootFilesystem": { - "type": "boolean" - }, - "Ulimits": { - "items": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.Ulimit" - }, - "type": "array" - }, - "User": { + "Unit": { "type": "string" - }, - "Vcpus": { - "type": "number" - }, - "Volumes": { - "items": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.Volumes" - }, - "type": "array" } }, "required": [ - "Image", - "Memory", - "Vcpus" + "MetricName", + "Namespace", + "Statistic" ], "type": "object" }, - "AWS::Batch::JobDefinition.Environment": { + "AWS::AutoScaling::ScalingPolicy.MetricDimension": { "additionalProperties": false, "properties": { "Name": { @@ -5138,121 +5291,67 @@ var SamSchema = `{ "type": "string" } }, + "required": [ + "Name", + "Value" + ], "type": "object" }, - "AWS::Batch::JobDefinition.MountPoints": { + "AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification": { "additionalProperties": false, "properties": { - "ContainerPath": { + "PredefinedMetricType": { "type": "string" }, - "ReadOnly": { - "type": "boolean" - }, - "SourceVolume": { + "ResourceLabel": { "type": "string" } }, + "required": [ + "PredefinedMetricType" + ], "type": "object" }, - "AWS::Batch::JobDefinition.NodeProperties": { + "AWS::AutoScaling::ScalingPolicy.StepAdjustment": { "additionalProperties": false, "properties": { - "MainNode": { + "MetricIntervalLowerBound": { "type": "number" }, - "NodeRangeProperties": { - "items": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeRangeProperty" - }, - "type": "array" + "MetricIntervalUpperBound": { + "type": "number" }, - "NumNodes": { + "ScalingAdjustment": { "type": "number" } }, "required": [ - "MainNode", - "NodeRangeProperties", - "NumNodes" + "ScalingAdjustment" ], "type": "object" }, - "AWS::Batch::JobDefinition.NodeRangeProperty": { + "AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration": { "additionalProperties": false, "properties": { - "Container": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties" + "CustomizedMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification" }, - "TargetNodes": { - "type": "string" - } - }, - "required": [ - "TargetNodes" - ], - "type": "object" - }, - "AWS::Batch::JobDefinition.RetryStrategy": { - "additionalProperties": false, - "properties": { - "Attempts": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::Batch::JobDefinition.Timeout": { - "additionalProperties": false, - "properties": { - "AttemptDurationSeconds": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::Batch::JobDefinition.Ulimit": { - "additionalProperties": false, - "properties": { - "HardLimit": { - "type": "number" + "DisableScaleIn": { + "type": "boolean" }, - "Name": { - "type": "string" + "PredefinedMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification" }, - "SoftLimit": { + "TargetValue": { "type": "number" } }, "required": [ - "HardLimit", - "Name", - "SoftLimit" + "TargetValue" ], "type": "object" }, - "AWS::Batch::JobDefinition.Volumes": { - "additionalProperties": false, - "properties": { - "Host": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.VolumesHost" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Batch::JobDefinition.VolumesHost": { - "additionalProperties": false, - "properties": { - "SourcePath": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Batch::JobQueue": { + "AWS::AutoScaling::ScheduledAction": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -5284,31 +5383,36 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ComputeEnvironmentOrder": { - "items": { - "$ref": "#/definitions/AWS::Batch::JobQueue.ComputeEnvironmentOrder" - }, - "type": "array" + "AutoScalingGroupName": { + "type": "string" }, - "JobQueueName": { + "DesiredCapacity": { + "type": "number" + }, + "EndTime": { "type": "string" }, - "Priority": { + "MaxSize": { "type": "number" }, - "State": { + "MinSize": { + "type": "number" + }, + "Recurrence": { + "type": "string" + }, + "StartTime": { "type": "string" } }, "required": [ - "ComputeEnvironmentOrder", - "Priority" + "AutoScalingGroupName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Batch::JobQueue" + "AWS::AutoScaling::ScheduledAction" ], "type": "string" } @@ -5319,23 +5423,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Batch::JobQueue.ComputeEnvironmentOrder": { - "additionalProperties": false, - "properties": { - "ComputeEnvironment": { - "type": "string" - }, - "Order": { - "type": "number" - } - }, - "required": [ - "ComputeEnvironment", - "Order" - ], - "type": "object" - }, - "AWS::Budgets::Budget": { + "AWS::AutoScalingPlans::ScalingPlan": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -5367,24 +5455,25 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Budget": { - "$ref": "#/definitions/AWS::Budgets::Budget.BudgetData" + "ApplicationSource": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ApplicationSource" }, - "NotificationsWithSubscribers": { + "ScalingInstructions": { "items": { - "$ref": "#/definitions/AWS::Budgets::Budget.NotificationWithSubscribers" + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction" }, "type": "array" } }, "required": [ - "Budget" + "ApplicationSource", + "ScalingInstructions" ], "type": "object" }, "Type": { "enum": [ - "AWS::Budgets::Budget" + "AWS::AutoScalingPlans::ScalingPlan" ], "type": "string" } @@ -5395,254 +5484,233 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Budgets::Budget.BudgetData": { + "AWS::AutoScalingPlans::ScalingPlan.ApplicationSource": { "additionalProperties": false, "properties": { - "BudgetLimit": { - "$ref": "#/definitions/AWS::Budgets::Budget.Spend" - }, - "BudgetName": { - "type": "string" - }, - "BudgetType": { + "CloudFormationStackARN": { "type": "string" }, - "CostFilters": { - "type": "object" - }, - "CostTypes": { - "$ref": "#/definitions/AWS::Budgets::Budget.CostTypes" - }, - "TimePeriod": { - "$ref": "#/definitions/AWS::Budgets::Budget.TimePeriod" - }, - "TimeUnit": { - "type": "string" + "TagFilters": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TagFilter" + }, + "type": "array" } }, - "required": [ - "BudgetType", - "TimeUnit" - ], "type": "object" }, - "AWS::Budgets::Budget.CostTypes": { + "AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification": { "additionalProperties": false, "properties": { - "IncludeCredit": { - "type": "boolean" - }, - "IncludeDiscount": { - "type": "boolean" - }, - "IncludeOtherSubscription": { - "type": "boolean" - }, - "IncludeRecurring": { - "type": "boolean" - }, - "IncludeRefund": { - "type": "boolean" - }, - "IncludeSubscription": { - "type": "boolean" - }, - "IncludeSupport": { - "type": "boolean" + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension" + }, + "type": "array" }, - "IncludeTax": { - "type": "boolean" + "MetricName": { + "type": "string" }, - "IncludeUpfront": { - "type": "boolean" + "Namespace": { + "type": "string" }, - "UseAmortized": { - "type": "boolean" + "Statistic": { + "type": "string" }, - "UseBlended": { - "type": "boolean" + "Unit": { + "type": "string" } }, + "required": [ + "MetricName", + "Namespace", + "Statistic" + ], "type": "object" }, - "AWS::Budgets::Budget.Notification": { + "AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification": { "additionalProperties": false, "properties": { - "ComparisonOperator": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension" + }, + "type": "array" + }, + "MetricName": { "type": "string" }, - "NotificationType": { + "Namespace": { "type": "string" }, - "Threshold": { - "type": "number" + "Statistic": { + "type": "string" }, - "ThresholdType": { + "Unit": { "type": "string" } }, "required": [ - "ComparisonOperator", - "NotificationType", - "Threshold" + "MetricName", + "Namespace", + "Statistic" ], "type": "object" }, - "AWS::Budgets::Budget.NotificationWithSubscribers": { + "AWS::AutoScalingPlans::ScalingPlan.MetricDimension": { "additionalProperties": false, "properties": { - "Notification": { - "$ref": "#/definitions/AWS::Budgets::Budget.Notification" + "Name": { + "type": "string" }, - "Subscribers": { - "items": { - "$ref": "#/definitions/AWS::Budgets::Budget.Subscriber" - }, - "type": "array" + "Value": { + "type": "string" } }, "required": [ - "Notification", - "Subscribers" + "Name", + "Value" ], "type": "object" }, - "AWS::Budgets::Budget.Spend": { + "AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification": { "additionalProperties": false, "properties": { - "Amount": { - "type": "number" + "PredefinedLoadMetricType": { + "type": "string" }, - "Unit": { + "ResourceLabel": { "type": "string" } }, "required": [ - "Amount", - "Unit" + "PredefinedLoadMetricType" ], "type": "object" }, - "AWS::Budgets::Budget.Subscriber": { + "AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification": { "additionalProperties": false, "properties": { - "Address": { + "PredefinedScalingMetricType": { "type": "string" }, - "SubscriptionType": { + "ResourceLabel": { "type": "string" } }, "required": [ - "Address", - "SubscriptionType" + "PredefinedScalingMetricType" ], "type": "object" }, - "AWS::Budgets::Budget.TimePeriod": { + "AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction": { "additionalProperties": false, "properties": { - "End": { + "CustomizedLoadMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification" + }, + "DisableDynamicScaling": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + }, + "PredefinedLoadMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification" + }, + "PredictiveScalingMaxCapacityBehavior": { "type": "string" }, - "Start": { + "PredictiveScalingMaxCapacityBuffer": { + "type": "number" + }, + "PredictiveScalingMode": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "ScalableDimension": { + "type": "string" + }, + "ScalingPolicyUpdateBehavior": { + "type": "string" + }, + "ScheduledActionBufferTime": { + "type": "number" + }, + "ServiceNamespace": { "type": "string" + }, + "TargetTrackingConfigurations": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration" + }, + "type": "array" } }, + "required": [ + "MaxCapacity", + "MinCapacity", + "ResourceId", + "ScalableDimension", + "ServiceNamespace", + "TargetTrackingConfigurations" + ], "type": "object" }, - "AWS::CertificateManager::Certificate": { + "AWS::AutoScalingPlans::ScalingPlan.TagFilter": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Key": { "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": { - "DomainName": { - "type": "string" - }, - "DomainValidationOptions": { - "items": { - "$ref": "#/definitions/AWS::CertificateManager::Certificate.DomainValidationOption" - }, - "type": "array" - }, - "SubjectAlternativeNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "ValidationMethod": { - "type": "string" - } + "Values": { + "items": { + "type": "string" }, - "required": [ - "DomainName" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::CertificateManager::Certificate" - ], - "type": "string" + "type": "array" } }, "required": [ - "Type", - "Properties" + "Key" ], "type": "object" }, - "AWS::CertificateManager::Certificate.DomainValidationOption": { + "AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration": { "additionalProperties": false, "properties": { - "DomainName": { - "type": "string" + "CustomizedScalingMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification" }, - "ValidationDomain": { - "type": "string" + "DisableScaleIn": { + "type": "boolean" + }, + "EstimatedInstanceWarmup": { + "type": "number" + }, + "PredefinedScalingMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification" + }, + "ScaleInCooldown": { + "type": "number" + }, + "ScaleOutCooldown": { + "type": "number" + }, + "TargetValue": { + "type": "number" } }, "required": [ - "DomainName", - "ValidationDomain" + "TargetValue" ], "type": "object" }, - "AWS::Cloud9::EnvironmentEC2": { + "AWS::Batch::ComputeEnvironment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -5674,39 +5742,31 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AutomaticStopTimeMinutes": { - "type": "number" - }, - "Description": { + "ComputeEnvironmentName": { "type": "string" }, - "InstanceType": { - "type": "string" + "ComputeResources": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.ComputeResources" }, - "Name": { + "ServiceRole": { "type": "string" }, - "OwnerArn": { + "State": { "type": "string" }, - "Repositories": { - "items": { - "$ref": "#/definitions/AWS::Cloud9::EnvironmentEC2.Repository" - }, - "type": "array" - }, - "SubnetId": { + "Type": { "type": "string" } }, "required": [ - "InstanceType" + "ServiceRole", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::Cloud9::EnvironmentEC2" + "AWS::Batch::ComputeEnvironment" ], "type": "string" } @@ -5717,144 +5777,91 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Cloud9::EnvironmentEC2.Repository": { + "AWS::Batch::ComputeEnvironment.ComputeResources": { "additionalProperties": false, "properties": { - "PathComponent": { + "BidPercentage": { + "type": "number" + }, + "DesiredvCpus": { + "type": "number" + }, + "Ec2KeyPair": { "type": "string" }, - "RepositoryUrl": { + "ImageId": { "type": "string" - } - }, - "required": [ - "PathComponent", - "RepositoryUrl" - ], - "type": "object" - }, - "AWS::CloudFormation::CustomResource": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + }, + "InstanceRole": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "InstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" }, - "Metadata": { - "type": "object" + "LaunchTemplate": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification" }, - "Properties": { - "additionalProperties": false, - "properties": { - "ServiceToken": { - "type": "string" - } + "MaxvCpus": { + "type": "number" + }, + "MinvCpus": { + "type": "number" + }, + "PlacementGroup": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" }, - "required": [ - "ServiceToken" - ], + "type": "array" + }, + "SpotIamFleetRole": { + "type": "string" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { "type": "object" }, "Type": { - "enum": [ - "AWS::CloudFormation::CustomResource" - ], "type": "string" } }, "required": [ - "Type", - "Properties" + "InstanceRole", + "InstanceTypes", + "MaxvCpus", + "MinvCpus", + "SecurityGroupIds", + "Subnets", + "Type" ], "type": "object" }, - "AWS::CloudFormation::Macro": { + "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "LaunchTemplateId": { "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" - }, - "FunctionName": { - "type": "string" - }, - "LogGroupName": { - "type": "string" - }, - "LogRoleARN": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "FunctionName", - "Name" - ], - "type": "object" + "LaunchTemplateName": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::CloudFormation::Macro" - ], + "Version": { "type": "string" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::CloudFormation::Stack": { + "AWS::Batch::JobDefinition": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -5886,42 +5893,36 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "NotificationARNs": { - "items": { - "type": "string" - }, - "type": "array" + "ContainerProperties": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties" + }, + "JobDefinitionName": { + "type": "string" + }, + "NodeProperties": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeProperties" }, "Parameters": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, "type": "object" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "RetryStrategy": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.RetryStrategy" }, - "TemplateURL": { - "type": "string" + "Timeout": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Timeout" }, - "TimeoutInMinutes": { - "type": "number" + "Type": { + "type": "string" } }, "required": [ - "TemplateURL" + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudFormation::Stack" + "AWS::Batch::JobDefinition" ], "type": "string" } @@ -5932,112 +5933,196 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::CloudFormation::WaitCondition": { + "AWS::Batch::JobDefinition.ContainerProperties": { "additionalProperties": false, "properties": { - "CreationPolicy": { - "type": "object" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Command": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Environment": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Environment" + }, + "type": "array" + }, + "Image": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "InstanceType": { + "type": "string" }, - "Metadata": { - "type": "object" + "JobRoleArn": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Count": { - "type": "number" - }, - "Handle": { - "type": "string" - }, - "Timeout": { - "type": "string" - } + "Memory": { + "type": "number" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.MountPoints" }, - "type": "object" + "type": "array" }, - "Type": { - "enum": [ - "AWS::CloudFormation::WaitCondition" - ], + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Ulimit" + }, + "type": "array" + }, + "User": { "type": "string" + }, + "Vcpus": { + "type": "number" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Volumes" + }, + "type": "array" } }, "required": [ - "Type" + "Image", + "Memory", + "Vcpus" ], "type": "object" }, - "AWS::CloudFormation::WaitConditionHandle": { + "AWS::Batch::JobDefinition.Environment": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Name": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.MountPoints": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" }, - "Metadata": { - "type": "object" + "ReadOnly": { + "type": "boolean" }, - "Properties": { - "additionalProperties": false, - "properties": {}, - "type": "object" + "SourceVolume": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.NodeProperties": { + "additionalProperties": false, + "properties": { + "MainNode": { + "type": "number" }, - "Type": { - "enum": [ - "AWS::CloudFormation::WaitConditionHandle" - ], + "NodeRangeProperties": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeRangeProperty" + }, + "type": "array" + }, + "NumNodes": { + "type": "number" + } + }, + "required": [ + "MainNode", + "NodeRangeProperties", + "NumNodes" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.NodeRangeProperty": { + "additionalProperties": false, + "properties": { + "Container": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties" + }, + "TargetNodes": { "type": "string" } }, "required": [ - "Type" + "TargetNodes" ], "type": "object" }, - "AWS::CloudFront::CloudFrontOriginAccessIdentity": { + "AWS::Batch::JobDefinition.RetryStrategy": { + "additionalProperties": false, + "properties": { + "Attempts": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.Timeout": { + "additionalProperties": false, + "properties": { + "AttemptDurationSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "SoftLimit": { + "type": "number" + } + }, + "required": [ + "HardLimit", + "Name", + "SoftLimit" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.Volumes": { + "additionalProperties": false, + "properties": { + "Host": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.VolumesHost" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.VolumesHost": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobQueue": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -6069,18 +6154,31 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CloudFrontOriginAccessIdentityConfig": { - "$ref": "#/definitions/AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig" + "ComputeEnvironmentOrder": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobQueue.ComputeEnvironmentOrder" + }, + "type": "array" + }, + "JobQueueName": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "State": { + "type": "string" } }, "required": [ - "CloudFrontOriginAccessIdentityConfig" + "ComputeEnvironmentOrder", + "Priority" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudFront::CloudFrontOriginAccessIdentity" + "AWS::Batch::JobQueue" ], "type": "string" } @@ -6091,19 +6189,23 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig": { + "AWS::Batch::JobQueue.ComputeEnvironmentOrder": { "additionalProperties": false, "properties": { - "Comment": { + "ComputeEnvironment": { "type": "string" + }, + "Order": { + "type": "number" } }, "required": [ - "Comment" + "ComputeEnvironment", + "Order" ], "type": "object" }, - "AWS::CloudFront::Distribution": { + "AWS::Budgets::Budget": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -6135,24 +6237,24 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DistributionConfig": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.DistributionConfig" + "Budget": { + "$ref": "#/definitions/AWS::Budgets::Budget.BudgetData" }, - "Tags": { + "NotificationsWithSubscribers": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::Budgets::Budget.NotificationWithSubscribers" }, "type": "array" } }, "required": [ - "DistributionConfig" + "Budget" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudFront::Distribution" + "AWS::Budgets::Budget" ], "type": "string" } @@ -6163,443 +6265,172 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::CloudFront::Distribution.CacheBehavior": { + "AWS::Budgets::Budget.BudgetData": { "additionalProperties": false, "properties": { - "AllowedMethods": { - "items": { - "type": "string" - }, - "type": "array" + "BudgetLimit": { + "$ref": "#/definitions/AWS::Budgets::Budget.Spend" }, - "CachedMethods": { - "items": { - "type": "string" - }, - "type": "array" + "BudgetName": { + "type": "string" }, - "Compress": { - "type": "boolean" + "BudgetType": { + "type": "string" }, - "DefaultTTL": { - "type": "number" + "CostFilters": { + "type": "object" }, - "FieldLevelEncryptionId": { + "CostTypes": { + "$ref": "#/definitions/AWS::Budgets::Budget.CostTypes" + }, + "TimePeriod": { + "$ref": "#/definitions/AWS::Budgets::Budget.TimePeriod" + }, + "TimeUnit": { "type": "string" + } + }, + "required": [ + "BudgetType", + "TimeUnit" + ], + "type": "object" + }, + "AWS::Budgets::Budget.CostTypes": { + "additionalProperties": false, + "properties": { + "IncludeCredit": { + "type": "boolean" }, - "ForwardedValues": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues" + "IncludeDiscount": { + "type": "boolean" }, - "LambdaFunctionAssociations": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation" - }, - "type": "array" + "IncludeOtherSubscription": { + "type": "boolean" }, - "MaxTTL": { - "type": "number" + "IncludeRecurring": { + "type": "boolean" }, - "MinTTL": { - "type": "number" + "IncludeRefund": { + "type": "boolean" }, - "PathPattern": { - "type": "string" + "IncludeSubscription": { + "type": "boolean" }, - "SmoothStreaming": { + "IncludeSupport": { "type": "boolean" }, - "TargetOriginId": { + "IncludeTax": { + "type": "boolean" + }, + "IncludeUpfront": { + "type": "boolean" + }, + "UseAmortized": { + "type": "boolean" + }, + "UseBlended": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Budgets::Budget.Notification": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { "type": "string" }, - "TrustedSigners": { - "items": { - "type": "string" - }, - "type": "array" + "NotificationType": { + "type": "string" }, - "ViewerProtocolPolicy": { + "Threshold": { + "type": "number" + }, + "ThresholdType": { "type": "string" } }, "required": [ - "ForwardedValues", - "PathPattern", - "TargetOriginId", - "ViewerProtocolPolicy" + "ComparisonOperator", + "NotificationType", + "Threshold" ], "type": "object" }, - "AWS::CloudFront::Distribution.Cookies": { + "AWS::Budgets::Budget.NotificationWithSubscribers": { "additionalProperties": false, "properties": { - "Forward": { - "type": "string" + "Notification": { + "$ref": "#/definitions/AWS::Budgets::Budget.Notification" }, - "WhitelistedNames": { + "Subscribers": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::Budgets::Budget.Subscriber" }, "type": "array" } }, "required": [ - "Forward" + "Notification", + "Subscribers" ], "type": "object" }, - "AWS::CloudFront::Distribution.CustomErrorResponse": { + "AWS::Budgets::Budget.Spend": { "additionalProperties": false, "properties": { - "ErrorCachingMinTTL": { - "type": "number" - }, - "ErrorCode": { - "type": "number" - }, - "ResponseCode": { + "Amount": { "type": "number" }, - "ResponsePagePath": { + "Unit": { "type": "string" } }, "required": [ - "ErrorCode" + "Amount", + "Unit" ], "type": "object" }, - "AWS::CloudFront::Distribution.CustomOriginConfig": { + "AWS::Budgets::Budget.Subscriber": { "additionalProperties": false, "properties": { - "HTTPPort": { - "type": "number" - }, - "HTTPSPort": { - "type": "number" - }, - "OriginKeepaliveTimeout": { - "type": "number" - }, - "OriginProtocolPolicy": { + "Address": { "type": "string" }, - "OriginReadTimeout": { - "type": "number" - }, - "OriginSSLProtocols": { - "items": { - "type": "string" - }, - "type": "array" + "SubscriptionType": { + "type": "string" } }, "required": [ - "OriginProtocolPolicy" + "Address", + "SubscriptionType" ], "type": "object" }, - "AWS::CloudFront::Distribution.DefaultCacheBehavior": { + "AWS::Budgets::Budget.TimePeriod": { "additionalProperties": false, "properties": { - "AllowedMethods": { - "items": { - "type": "string" - }, - "type": "array" - }, - "CachedMethods": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Compress": { - "type": "boolean" - }, - "DefaultTTL": { - "type": "number" - }, - "FieldLevelEncryptionId": { - "type": "string" - }, - "ForwardedValues": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues" - }, - "LambdaFunctionAssociations": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation" - }, - "type": "array" - }, - "MaxTTL": { - "type": "number" - }, - "MinTTL": { - "type": "number" - }, - "SmoothStreaming": { - "type": "boolean" - }, - "TargetOriginId": { + "End": { "type": "string" }, - "TrustedSigners": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ViewerProtocolPolicy": { + "Start": { "type": "string" } }, - "required": [ - "ForwardedValues", - "TargetOriginId", - "ViewerProtocolPolicy" - ], "type": "object" }, - "AWS::CloudFront::Distribution.DistributionConfig": { + "AWS::CertificateManager::Certificate": { "additionalProperties": false, "properties": { - "Aliases": { - "items": { - "type": "string" - }, - "type": "array" - }, - "CacheBehaviors": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.CacheBehavior" - }, - "type": "array" - }, - "Comment": { - "type": "string" - }, - "CustomErrorResponses": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomErrorResponse" - }, - "type": "array" - }, - "DefaultCacheBehavior": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.DefaultCacheBehavior" - }, - "DefaultRootObject": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "HttpVersion": { - "type": "string" - }, - "IPV6Enabled": { - "type": "boolean" - }, - "Logging": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.Logging" - }, - "Origins": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.Origin" - }, - "type": "array" - }, - "PriceClass": { - "type": "string" - }, - "Restrictions": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.Restrictions" - }, - "ViewerCertificate": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.ViewerCertificate" - }, - "WebACLId": { - "type": "string" - } - }, - "required": [ - "Enabled" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.ForwardedValues": { - "additionalProperties": false, - "properties": { - "Cookies": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.Cookies" - }, - "Headers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "QueryString": { - "type": "boolean" - }, - "QueryStringCacheKeys": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "QueryString" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.GeoRestriction": { - "additionalProperties": false, - "properties": { - "Locations": { - "items": { - "type": "string" - }, - "type": "array" - }, - "RestrictionType": { - "type": "string" - } - }, - "required": [ - "RestrictionType" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.LambdaFunctionAssociation": { - "additionalProperties": false, - "properties": { - "EventType": { - "type": "string" - }, - "LambdaFunctionARN": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CloudFront::Distribution.Logging": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "IncludeCookies": { - "type": "boolean" - }, - "Prefix": { - "type": "string" - } - }, - "required": [ - "Bucket" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.Origin": { - "additionalProperties": false, - "properties": { - "CustomOriginConfig": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomOriginConfig" - }, - "DomainName": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "OriginCustomHeaders": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginCustomHeader" - }, - "type": "array" - }, - "OriginPath": { - "type": "string" - }, - "S3OriginConfig": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.S3OriginConfig" - } - }, - "required": [ - "DomainName", - "Id" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.OriginCustomHeader": { - "additionalProperties": false, - "properties": { - "HeaderName": { - "type": "string" - }, - "HeaderValue": { - "type": "string" - } - }, - "required": [ - "HeaderName", - "HeaderValue" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.Restrictions": { - "additionalProperties": false, - "properties": { - "GeoRestriction": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.GeoRestriction" - } - }, - "required": [ - "GeoRestriction" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.S3OriginConfig": { - "additionalProperties": false, - "properties": { - "OriginAccessIdentity": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CloudFront::Distribution.ViewerCertificate": { - "additionalProperties": false, - "properties": { - "AcmCertificateArn": { - "type": "string" - }, - "CloudFrontDefaultCertificate": { - "type": "boolean" - }, - "IamCertificateId": { - "type": "string" - }, - "MinimumProtocolVersion": { - "type": "string" - }, - "SslSupportMethod": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CloudFront::StreamingDistribution": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" }, "DependsOn": { "anyOf": [ @@ -6622,25 +6453,39 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "StreamingDistributionConfig": { - "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig" + "DomainName": { + "type": "string" + }, + "DomainValidationOptions": { + "items": { + "$ref": "#/definitions/AWS::CertificateManager::Certificate.DomainValidationOption" + }, + "type": "array" + }, + "SubjectAlternativeNames": { + "items": { + "type": "string" + }, + "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "ValidationMethod": { + "type": "string" } }, "required": [ - "StreamingDistributionConfig", - "Tags" + "DomainName" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudFront::StreamingDistribution" + "AWS::CertificateManager::Certificate" ], "type": "string" } @@ -6651,97 +6496,23 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::CloudFront::StreamingDistribution.Logging": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "Prefix": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Enabled", - "Prefix" - ], - "type": "object" - }, - "AWS::CloudFront::StreamingDistribution.S3Origin": { + "AWS::CertificateManager::Certificate.DomainValidationOption": { "additionalProperties": false, "properties": { "DomainName": { "type": "string" }, - "OriginAccessIdentity": { + "ValidationDomain": { "type": "string" } }, "required": [ "DomainName", - "OriginAccessIdentity" - ], - "type": "object" - }, - "AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig": { - "additionalProperties": false, - "properties": { - "Aliases": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Comment": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "Logging": { - "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.Logging" - }, - "PriceClass": { - "type": "string" - }, - "S3Origin": { - "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.S3Origin" - }, - "TrustedSigners": { - "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.TrustedSigners" - } - }, - "required": [ - "Comment", - "Enabled", - "S3Origin", - "TrustedSigners" - ], - "type": "object" - }, - "AWS::CloudFront::StreamingDistribution.TrustedSigners": { - "additionalProperties": false, - "properties": { - "AwsAccountNumbers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Enabled": { - "type": "boolean" - } - }, - "required": [ - "Enabled" + "ValidationDomain" ], "type": "object" }, - "AWS::CloudTrail::Trail": { + "AWS::Cloud9::EnvironmentEC2": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -6773,61 +6544,39 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CloudWatchLogsLogGroupArn": { - "type": "string" - }, - "CloudWatchLogsRoleArn": { - "type": "string" - }, - "EnableLogFileValidation": { - "type": "boolean" - }, - "EventSelectors": { - "items": { - "$ref": "#/definitions/AWS::CloudTrail::Trail.EventSelector" - }, - "type": "array" - }, - "IncludeGlobalServiceEvents": { - "type": "boolean" - }, - "IsLogging": { - "type": "boolean" - }, - "IsMultiRegionTrail": { - "type": "boolean" + "AutomaticStopTimeMinutes": { + "type": "number" }, - "KMSKeyId": { + "Description": { "type": "string" }, - "S3BucketName": { + "InstanceType": { "type": "string" }, - "S3KeyPrefix": { + "Name": { "type": "string" }, - "SnsTopicName": { + "OwnerArn": { "type": "string" }, - "Tags": { + "Repositories": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::Cloud9::EnvironmentEC2.Repository" }, "type": "array" }, - "TrailName": { + "SubnetId": { "type": "string" } }, "required": [ - "IsLogging", - "S3BucketName" + "InstanceType" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudTrail::Trail" + "AWS::Cloud9::EnvironmentEC2" ], "type": "string" } @@ -6838,43 +6587,23 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::CloudTrail::Trail.DataResource": { + "AWS::Cloud9::EnvironmentEC2.Repository": { "additionalProperties": false, "properties": { - "Type": { + "PathComponent": { "type": "string" }, - "Values": { - "items": { - "type": "string" - }, - "type": "array" + "RepositoryUrl": { + "type": "string" } }, "required": [ - "Type" + "PathComponent", + "RepositoryUrl" ], "type": "object" }, - "AWS::CloudTrail::Trail.EventSelector": { - "additionalProperties": false, - "properties": { - "DataResources": { - "items": { - "$ref": "#/definitions/AWS::CloudTrail::Trail.DataResource" - }, - "type": "array" - }, - "IncludeManagementEvents": { - "type": "boolean" - }, - "ReadWriteType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CloudWatch::Alarm": { + "AWS::CloudFormation::CustomResource": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -6906,86 +6635,18 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ActionsEnabled": { - "type": "boolean" - }, - "AlarmActions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AlarmDescription": { - "type": "string" - }, - "AlarmName": { - "type": "string" - }, - "ComparisonOperator": { - "type": "string" - }, - "DatapointsToAlarm": { - "type": "number" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/AWS::CloudWatch::Alarm.Dimension" - }, - "type": "array" - }, - "EvaluateLowSampleCountPercentile": { - "type": "string" - }, - "EvaluationPeriods": { - "type": "number" - }, - "ExtendedStatistic": { - "type": "string" - }, - "InsufficientDataActions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "OKActions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Period": { - "type": "number" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "TreatMissingData": { - "type": "string" - }, - "Unit": { + "ServiceToken": { "type": "string" } }, "required": [ - "ComparisonOperator", - "EvaluationPeriods", - "Threshold" + "ServiceToken" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudWatch::Alarm" + "AWS::CloudFormation::CustomResource" ], "type": "string" } @@ -6996,23 +6657,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::CloudWatch::Alarm.Dimension": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Name", - "Value" - ], - "type": "object" - }, - "AWS::CloudWatch::Dashboard": { + "AWS::CloudFormation::Macro": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -7044,21 +6689,31 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DashboardBody": { + "Description": { "type": "string" }, - "DashboardName": { + "FunctionName": { "type": "string" - } - }, + }, + "LogGroupName": { + "type": "string" + }, + "LogRoleARN": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, "required": [ - "DashboardBody" + "FunctionName", + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudWatch::Dashboard" + "AWS::CloudFormation::Macro" ], "type": "string" } @@ -7069,7 +6724,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::CodeBuild::Project": { + "AWS::CloudFormation::Stack": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -7101,50 +6756,20 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Artifacts": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts" - }, - "BadgeEnabled": { - "type": "boolean" - }, - "Cache": { - "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectCache" - }, - "Description": { - "type": "string" - }, - "EncryptionKey": { - "type": "string" - }, - "Environment": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Environment" - }, - "LogsConfig": { - "$ref": "#/definitions/AWS::CodeBuild::Project.LogsConfig" - }, - "Name": { - "type": "string" - }, - "QueuedTimeoutInMinutes": { - "type": "number" - }, - "SecondaryArtifacts": { + "NotificationARNs": { "items": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts" + "type": "string" }, "type": "array" }, - "SecondarySources": { - "items": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Source" + "Parameters": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } }, - "type": "array" - }, - "ServiceRole": { - "type": "string" - }, - "Source": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Source" + "type": "object" }, "Tags": { "items": { @@ -7152,27 +6777,21 @@ var SamSchema = `{ }, "type": "array" }, + "TemplateURL": { + "type": "string" + }, "TimeoutInMinutes": { "type": "number" - }, - "Triggers": { - "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectTriggers" - }, - "VpcConfig": { - "$ref": "#/definitions/AWS::CodeBuild::Project.VpcConfig" } }, "required": [ - "Artifacts", - "Environment", - "ServiceRole", - "Source" + "TemplateURL" ], "type": "object" }, "Type": { "enum": [ - "AWS::CodeBuild::Project" + "AWS::CloudFormation::Stack" ], "type": "string" } @@ -7183,234 +6802,12 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::CodeBuild::Project.Artifacts": { - "additionalProperties": false, - "properties": { - "ArtifactIdentifier": { - "type": "string" - }, - "EncryptionDisabled": { - "type": "boolean" - }, - "Location": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "NamespaceType": { - "type": "string" - }, - "OverrideArtifactName": { - "type": "boolean" - }, - "Packaging": { - "type": "string" - }, - "Path": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.CloudWatchLogsConfig": { - "additionalProperties": false, - "properties": { - "GroupName": { - "type": "string" - }, - "Status": { - "type": "string" - }, - "StreamName": { - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.Environment": { - "additionalProperties": false, - "properties": { - "Certificate": { - "type": "string" - }, - "ComputeType": { - "type": "string" - }, - "EnvironmentVariables": { - "items": { - "$ref": "#/definitions/AWS::CodeBuild::Project.EnvironmentVariable" - }, - "type": "array" - }, - "Image": { - "type": "string" - }, - "PrivilegedMode": { - "type": "boolean" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "ComputeType", - "Image", - "Type" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.EnvironmentVariable": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Name", - "Value" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.LogsConfig": { - "additionalProperties": false, - "properties": { - "CloudWatchLogs": { - "$ref": "#/definitions/AWS::CodeBuild::Project.CloudWatchLogsConfig" - }, - "S3Logs": { - "$ref": "#/definitions/AWS::CodeBuild::Project.S3LogsConfig" - } - }, - "type": "object" - }, - "AWS::CodeBuild::Project.ProjectCache": { - "additionalProperties": false, - "properties": { - "Location": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.ProjectTriggers": { - "additionalProperties": false, - "properties": { - "Webhook": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::CodeBuild::Project.S3LogsConfig": { - "additionalProperties": false, - "properties": { - "Location": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.Source": { - "additionalProperties": false, - "properties": { - "Auth": { - "$ref": "#/definitions/AWS::CodeBuild::Project.SourceAuth" - }, - "BuildSpec": { - "type": "string" - }, - "GitCloneDepth": { - "type": "number" - }, - "InsecureSsl": { - "type": "boolean" - }, - "Location": { - "type": "string" - }, - "ReportBuildStatus": { - "type": "boolean" - }, - "SourceIdentifier": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.SourceAuth": { - "additionalProperties": false, - "properties": { - "Resource": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.VpcConfig": { + "AWS::CloudFormation::WaitCondition": { "additionalProperties": false, "properties": { - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Subnets": { - "items": { - "type": "string" - }, - "type": "array" + "CreationPolicy": { + "type": "object" }, - "VpcId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CodeCommit::Repository": { - "additionalProperties": false, - "properties": { "DeletionPolicy": { "enum": [ "Delete", @@ -7440,65 +6837,31 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "RepositoryDescription": { - "type": "string" + "Count": { + "type": "number" }, - "RepositoryName": { + "Handle": { "type": "string" }, - "Triggers": { - "items": { - "$ref": "#/definitions/AWS::CodeCommit::Repository.RepositoryTrigger" - }, - "type": "array" + "Timeout": { + "type": "string" } }, - "required": [ - "RepositoryName" - ], "type": "object" }, "Type": { "enum": [ - "AWS::CodeCommit::Repository" + "AWS::CloudFormation::WaitCondition" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::CodeCommit::Repository.RepositoryTrigger": { - "additionalProperties": false, - "properties": { - "Branches": { - "items": { - "type": "string" - }, - "type": "array" - }, - "CustomData": { - "type": "string" - }, - "DestinationArn": { - "type": "string" - }, - "Events": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CodeDeploy::Application": { + "AWS::CloudFormation::WaitConditionHandle": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -7529,19 +6892,12 @@ var SamSchema = `{ }, "Properties": { "additionalProperties": false, - "properties": { - "ApplicationName": { - "type": "string" - }, - "ComputePlatform": { - "type": "string" - } - }, + "properties": {}, "type": "object" }, "Type": { "enum": [ - "AWS::CodeDeploy::Application" + "AWS::CloudFormation::WaitConditionHandle" ], "type": "string" } @@ -7551,7 +6907,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::CodeDeploy::DeploymentConfig": { + "AWS::CloudFront::CloudFrontOriginAccessIdentity": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -7583,44 +6939,41 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DeploymentConfigName": { - "type": "string" - }, - "MinimumHealthyHosts": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts" + "CloudFrontOriginAccessIdentityConfig": { + "$ref": "#/definitions/AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig" } }, + "required": [ + "CloudFrontOriginAccessIdentityConfig" + ], "type": "object" }, "Type": { "enum": [ - "AWS::CodeDeploy::DeploymentConfig" + "AWS::CloudFront::CloudFrontOriginAccessIdentity" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts": { + "AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig": { "additionalProperties": false, "properties": { - "Type": { + "Comment": { "type": "string" - }, - "Value": { - "type": "number" } }, "required": [ - "Type", - "Value" + "Comment" ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup": { + "AWS::CloudFront::Distribution": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -7652,73 +7005,24 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Deployment": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.DeploymentStyle" - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter" - }, - "type": "array" - }, - "Ec2TagSet": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSet" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter" - }, - "type": "array" - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet" - }, - "ServiceRoleArn": { - "type": "string" + "DistributionConfig": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.DistributionConfig" }, - "TriggerConfigurations": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TriggerConfig" + "$ref": "#/definitions/Tag" }, "type": "array" } }, "required": [ - "ApplicationName", - "ServiceRoleArn" + "DistributionConfig" ], "type": "object" }, "Type": { "enum": [ - "AWS::CodeDeploy::DeploymentGroup" + "AWS::CloudFront::Distribution" ], "type": "string" } @@ -7729,267 +7033,434 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration": { + "AWS::CloudFront::Distribution.CacheBehavior": { "additionalProperties": false, "properties": { - "Alarms": { + "AllowedMethods": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Alarm" + "type": "string" }, "type": "array" }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { + "CachedMethods": { "items": { "type": "string" }, "type": "array" - } - }, - "type": "object" - }, - "AWS::CodeDeploy::DeploymentGroup.Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" }, - "IgnoreApplicationStopFailures": { + "Compress": { "type": "boolean" }, - "Revision": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "AWS::CodeDeploy::DeploymentGroup.DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "type": "string" + "DefaultTTL": { + "type": "number" }, - "DeploymentType": { + "FieldLevelEncryptionId": { "type": "string" - } - }, - "type": "object" - }, - "AWS::CodeDeploy::DeploymentGroup.EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { + }, + "ForwardedValues": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues" + }, + "LambdaFunctionAssociations": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation" + }, + "type": "array" + }, + "MaxTTL": { + "type": "number" + }, + "MinTTL": { + "type": "number" + }, + "PathPattern": { "type": "string" }, - "Type": { + "SmoothStreaming": { + "type": "boolean" + }, + "TargetOriginId": { "type": "string" }, - "Value": { + "TrustedSigners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ViewerProtocolPolicy": { "type": "string" } }, + "required": [ + "ForwardedValues", + "PathPattern", + "TargetOriginId", + "ViewerProtocolPolicy" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.EC2TagSet": { + "AWS::CloudFront::Distribution.Cookies": { "additionalProperties": false, "properties": { - "Ec2TagSetList": { + "Forward": { + "type": "string" + }, + "WhitelistedNames": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject" + "type": "string" }, "type": "array" } }, + "required": [ + "Forward" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject": { + "AWS::CloudFront::Distribution.CustomErrorResponse": { "additionalProperties": false, "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter" - }, - "type": "array" + "ErrorCachingMinTTL": { + "type": "number" + }, + "ErrorCode": { + "type": "number" + }, + "ResponseCode": { + "type": "number" + }, + "ResponsePagePath": { + "type": "string" } }, + "required": [ + "ErrorCode" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.ELBInfo": { + "AWS::CloudFront::Distribution.CustomOriginConfig": { "additionalProperties": false, "properties": { - "Name": { + "HTTPPort": { + "type": "number" + }, + "HTTPSPort": { + "type": "number" + }, + "OriginKeepaliveTimeout": { + "type": "number" + }, + "OriginProtocolPolicy": { "type": "string" + }, + "OriginReadTimeout": { + "type": "number" + }, + "OriginSSLProtocols": { + "items": { + "type": "string" + }, + "type": "array" } }, + "required": [ + "OriginProtocolPolicy" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.GitHubLocation": { + "AWS::CloudFront::Distribution.DefaultCacheBehavior": { "additionalProperties": false, "properties": { - "CommitId": { + "AllowedMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CachedMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Compress": { + "type": "boolean" + }, + "DefaultTTL": { + "type": "number" + }, + "FieldLevelEncryptionId": { "type": "string" }, - "Repository": { + "ForwardedValues": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues" + }, + "LambdaFunctionAssociations": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation" + }, + "type": "array" + }, + "MaxTTL": { + "type": "number" + }, + "MinTTL": { + "type": "number" + }, + "SmoothStreaming": { + "type": "boolean" + }, + "TargetOriginId": { + "type": "string" + }, + "TrustedSigners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ViewerProtocolPolicy": { "type": "string" } }, "required": [ - "CommitId", - "Repository" + "ForwardedValues", + "TargetOriginId", + "ViewerProtocolPolicy" ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo": { + "AWS::CloudFront::Distribution.DistributionConfig": { "additionalProperties": false, "properties": { - "ElbInfoList": { + "Aliases": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.ELBInfo" + "type": "string" }, "type": "array" }, - "TargetGroupInfoList": { + "CacheBehaviors": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo" + "$ref": "#/definitions/AWS::CloudFront::Distribution.CacheBehavior" + }, + "type": "array" + }, + "Comment": { + "type": "string" + }, + "CustomErrorResponses": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomErrorResponse" + }, + "type": "array" + }, + "DefaultCacheBehavior": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.DefaultCacheBehavior" + }, + "DefaultRootObject": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "HttpVersion": { + "type": "string" + }, + "IPV6Enabled": { + "type": "boolean" + }, + "Logging": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Logging" + }, + "Origins": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Origin" }, "type": "array" + }, + "PriceClass": { + "type": "string" + }, + "Restrictions": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Restrictions" + }, + "ViewerCertificate": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.ViewerCertificate" + }, + "WebACLId": { + "type": "string" } }, + "required": [ + "Enabled" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet": { + "AWS::CloudFront::Distribution.ForwardedValues": { "additionalProperties": false, "properties": { - "OnPremisesTagSetList": { + "Cookies": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Cookies" + }, + "Headers": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject" + "type": "string" + }, + "type": "array" + }, + "QueryString": { + "type": "boolean" + }, + "QueryStringCacheKeys": { + "items": { + "type": "string" }, "type": "array" } }, + "required": [ + "QueryString" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject": { + "AWS::CloudFront::Distribution.GeoRestriction": { "additionalProperties": false, "properties": { - "OnPremisesTagGroup": { + "Locations": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter" + "type": "string" }, "type": "array" + }, + "RestrictionType": { + "type": "string" } }, + "required": [ + "RestrictionType" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.RevisionLocation": { + "AWS::CloudFront::Distribution.LambdaFunctionAssociation": { "additionalProperties": false, "properties": { - "GitHubLocation": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.GitHubLocation" - }, - "RevisionType": { + "EventType": { "type": "string" }, - "S3Location": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.S3Location" + "LambdaFunctionARN": { + "type": "string" } }, "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.S3Location": { + "AWS::CloudFront::Distribution.Logging": { "additionalProperties": false, "properties": { "Bucket": { "type": "string" }, - "BundleType": { + "IncludeCookies": { + "type": "boolean" + }, + "Prefix": { "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.Origin": { + "additionalProperties": false, + "properties": { + "CustomOriginConfig": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomOriginConfig" }, - "ETag": { + "DomainName": { "type": "string" }, - "Key": { + "Id": { "type": "string" }, - "Version": { + "OriginCustomHeaders": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginCustomHeader" + }, + "type": "array" + }, + "OriginPath": { "type": "string" + }, + "S3OriginConfig": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.S3OriginConfig" } }, "required": [ - "Bucket", - "Key" + "DomainName", + "Id" ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.TagFilter": { + "AWS::CloudFront::Distribution.OriginCustomHeader": { "additionalProperties": false, "properties": { - "Key": { - "type": "string" - }, - "Type": { + "HeaderName": { "type": "string" }, - "Value": { + "HeaderValue": { "type": "string" } }, + "required": [ + "HeaderName", + "HeaderValue" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.Restrictions": { + "additionalProperties": false, + "properties": { + "GeoRestriction": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.GeoRestriction" + } + }, + "required": [ + "GeoRestriction" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo": { + "AWS::CloudFront::Distribution.S3OriginConfig": { "additionalProperties": false, "properties": { - "Name": { + "OriginAccessIdentity": { "type": "string" } }, "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.TriggerConfig": { + "AWS::CloudFront::Distribution.ViewerCertificate": { "additionalProperties": false, "properties": { - "TriggerEvents": { - "items": { - "type": "string" - }, - "type": "array" + "AcmCertificateArn": { + "type": "string" }, - "TriggerName": { + "CloudFrontDefaultCertificate": { + "type": "boolean" + }, + "IamCertificateId": { "type": "string" }, - "TriggerTargetArn": { + "MinimumProtocolVersion": { + "type": "string" + }, + "SslSupportMethod": { "type": "string" } }, "type": "object" }, - "AWS::CodePipeline::CustomActionType": { + "AWS::CloudFront::StreamingDistribution": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -8021,42 +7492,25 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Category": { - "type": "string" + "StreamingDistributionConfig": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig" }, - "ConfigurationProperties": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ConfigurationProperties" + "$ref": "#/definitions/Tag" }, "type": "array" - }, - "InputArtifactDetails": { - "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails" - }, - "OutputArtifactDetails": { - "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails" - }, - "Provider": { - "type": "string" - }, - "Settings": { - "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.Settings" - }, - "Version": { - "type": "string" } }, "required": [ - "Category", - "InputArtifactDetails", - "OutputArtifactDetails", - "Provider" + "StreamingDistributionConfig", + "Tags" ], "type": "object" }, "Type": { "enum": [ - "AWS::CodePipeline::CustomActionType" + "AWS::CloudFront::StreamingDistribution" ], "type": "string" } @@ -8067,74 +7521,97 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::CodePipeline::CustomActionType.ArtifactDetails": { + "AWS::CloudFront::StreamingDistribution.Logging": { "additionalProperties": false, "properties": { - "MaximumCount": { - "type": "number" + "Bucket": { + "type": "string" }, - "MinimumCount": { - "type": "number" + "Enabled": { + "type": "boolean" + }, + "Prefix": { + "type": "string" } }, "required": [ - "MaximumCount", - "MinimumCount" + "Bucket", + "Enabled", + "Prefix" ], "type": "object" }, - "AWS::CodePipeline::CustomActionType.ConfigurationProperties": { + "AWS::CloudFront::StreamingDistribution.S3Origin": { "additionalProperties": false, "properties": { - "Description": { + "DomainName": { "type": "string" }, - "Key": { - "type": "boolean" - }, - "Name": { + "OriginAccessIdentity": { "type": "string" + } + }, + "required": [ + "DomainName", + "OriginAccessIdentity" + ], + "type": "object" + }, + "AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig": { + "additionalProperties": false, + "properties": { + "Aliases": { + "items": { + "type": "string" + }, + "type": "array" }, - "Queryable": { - "type": "boolean" + "Comment": { + "type": "string" }, - "Required": { + "Enabled": { "type": "boolean" }, - "Secret": { - "type": "boolean" + "Logging": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.Logging" }, - "Type": { + "PriceClass": { "type": "string" + }, + "S3Origin": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.S3Origin" + }, + "TrustedSigners": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.TrustedSigners" } }, "required": [ - "Key", - "Name", - "Required", - "Secret" + "Comment", + "Enabled", + "S3Origin", + "TrustedSigners" ], "type": "object" }, - "AWS::CodePipeline::CustomActionType.Settings": { + "AWS::CloudFront::StreamingDistribution.TrustedSigners": { "additionalProperties": false, "properties": { - "EntityUrlTemplate": { - "type": "string" - }, - "ExecutionUrlTemplate": { - "type": "string" - }, - "RevisionUrlTemplate": { - "type": "string" + "AwsAccountNumbers": { + "items": { + "type": "string" + }, + "type": "array" }, - "ThirdPartyConfigurationUrl": { - "type": "string" + "Enabled": { + "type": "boolean" } }, + "required": [ + "Enabled" + ], "type": "object" }, - "AWS::CodePipeline::Pipeline": { + "AWS::CloudTrail::Trail": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -8166,46 +7643,61 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ArtifactStore": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore" + "CloudWatchLogsLogGroupArn": { + "type": "string" }, - "ArtifactStores": { - "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStoreMap" - }, - "type": "array" + "CloudWatchLogsRoleArn": { + "type": "string" }, - "DisableInboundStageTransitions": { + "EnableLogFileValidation": { + "type": "boolean" + }, + "EventSelectors": { "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageTransition" + "$ref": "#/definitions/AWS::CloudTrail::Trail.EventSelector" }, "type": "array" }, - "Name": { - "type": "string" + "IncludeGlobalServiceEvents": { + "type": "boolean" }, - "RestartExecutionOnUpdate": { + "IsLogging": { "type": "boolean" }, - "RoleArn": { + "IsMultiRegionTrail": { + "type": "boolean" + }, + "KMSKeyId": { "type": "string" }, - "Stages": { + "S3BucketName": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + }, + "SnsTopicName": { + "type": "string" + }, + "Tags": { "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageDeclaration" + "$ref": "#/definitions/Tag" }, "type": "array" + }, + "TrailName": { + "type": "string" } }, "required": [ - "RoleArn", - "Stages" + "IsLogging", + "S3BucketName" ], "type": "object" }, "Type": { "enum": [ - "AWS::CodePipeline::Pipeline" + "AWS::CloudTrail::Trail" ], "type": "string" } @@ -8216,203 +7708,252 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::CodePipeline::Pipeline.ActionDeclaration": { + "AWS::CloudTrail::Trail.DataResource": { "additionalProperties": false, "properties": { - "ActionTypeId": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionTypeId" - }, - "Configuration": { - "type": "object" - }, - "InputArtifacts": { - "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.InputArtifact" - }, - "type": "array" - }, - "Name": { + "Type": { "type": "string" }, - "OutputArtifacts": { + "Values": { "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.OutputArtifact" + "type": "string" }, "type": "array" - }, - "Region": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "RunOrder": { - "type": "number" } }, "required": [ - "ActionTypeId", - "Name" + "Type" ], "type": "object" }, - "AWS::CodePipeline::Pipeline.ActionTypeId": { + "AWS::CloudTrail::Trail.EventSelector": { "additionalProperties": false, "properties": { - "Category": { - "type": "string" - }, - "Owner": { - "type": "string" + "DataResources": { + "items": { + "$ref": "#/definitions/AWS::CloudTrail::Trail.DataResource" + }, + "type": "array" }, - "Provider": { - "type": "string" + "IncludeManagementEvents": { + "type": "boolean" }, - "Version": { + "ReadWriteType": { "type": "string" } }, - "required": [ - "Category", - "Owner", - "Provider", - "Version" - ], "type": "object" }, - "AWS::CodePipeline::Pipeline.ArtifactStore": { + "AWS::CloudWatch::Alarm": { "additionalProperties": false, "properties": { - "EncryptionKey": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.EncryptionKey" - }, - "Location": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "Type": { - "type": "string" - } - }, - "required": [ - "Location", - "Type" - ], - "type": "object" - }, - "AWS::CodePipeline::Pipeline.ArtifactStoreMap": { - "additionalProperties": false, - "properties": { - "ArtifactStore": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Region": { + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ActionsEnabled": { + "type": "boolean" + }, + "AlarmActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AlarmDescription": { + "type": "string" + }, + "AlarmName": { + "type": "string" + }, + "ComparisonOperator": { + "type": "string" + }, + "DatapointsToAlarm": { + "type": "number" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.Dimension" + }, + "type": "array" + }, + "EvaluateLowSampleCountPercentile": { + "type": "string" + }, + "EvaluationPeriods": { + "type": "number" + }, + "ExtendedStatistic": { + "type": "string" + }, + "InsufficientDataActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MetricName": { + "type": "string" + }, + "Metrics": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.MetricDataQuery" + }, + "type": "array" + }, + "Namespace": { + "type": "string" + }, + "OKActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Period": { + "type": "number" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "TreatMissingData": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "EvaluationPeriods", + "Threshold" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudWatch::Alarm" + ], "type": "string" } }, "required": [ - "ArtifactStore", - "Region" + "Type", + "Properties" ], "type": "object" }, - "AWS::CodePipeline::Pipeline.BlockerDeclaration": { + "AWS::CloudWatch::Alarm.Dimension": { "additionalProperties": false, "properties": { "Name": { "type": "string" }, - "Type": { + "Value": { "type": "string" } }, "required": [ "Name", - "Type" + "Value" ], "type": "object" }, - "AWS::CodePipeline::Pipeline.EncryptionKey": { + "AWS::CloudWatch::Alarm.Metric": { "additionalProperties": false, "properties": { - "Id": { - "type": "string" + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.Dimension" + }, + "type": "array" }, - "Type": { + "MetricName": { "type": "string" - } - }, - "required": [ - "Id", - "Type" - ], - "type": "object" - }, - "AWS::CodePipeline::Pipeline.InputArtifact": { - "additionalProperties": false, - "properties": { - "Name": { + }, + "Namespace": { "type": "string" } }, - "required": [ - "Name" - ], "type": "object" }, - "AWS::CodePipeline::Pipeline.OutputArtifact": { + "AWS::CloudWatch::Alarm.MetricDataQuery": { "additionalProperties": false, "properties": { - "Name": { + "Expression": { "type": "string" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "AWS::CodePipeline::Pipeline.StageDeclaration": { - "additionalProperties": false, - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionDeclaration" - }, - "type": "array" }, - "Blockers": { - "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.BlockerDeclaration" - }, - "type": "array" + "Id": { + "type": "string" }, - "Name": { + "Label": { "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.MetricStat" + }, + "ReturnData": { + "type": "boolean" } }, "required": [ - "Actions", - "Name" + "Id" ], "type": "object" }, - "AWS::CodePipeline::Pipeline.StageTransition": { + "AWS::CloudWatch::Alarm.MetricStat": { "additionalProperties": false, "properties": { - "Reason": { + "Metric": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.Metric" + }, + "Period": { + "type": "number" + }, + "Stat": { "type": "string" }, - "StageName": { + "Unit": { "type": "string" } }, "required": [ - "Reason", - "StageName" + "Metric", + "Period", + "Stat" ], "type": "object" }, - "AWS::CodePipeline::Webhook": { + "AWS::CloudWatch::Dashboard": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -8444,47 +7985,21 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Authentication": { - "type": "string" - }, - "AuthenticationConfiguration": { - "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookAuthConfiguration" - }, - "Filters": { - "items": { - "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookFilterRule" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "RegisterWithThirdParty": { - "type": "boolean" - }, - "TargetAction": { + "DashboardBody": { "type": "string" }, - "TargetPipeline": { + "DashboardName": { "type": "string" - }, - "TargetPipelineVersion": { - "type": "number" } }, "required": [ - "Authentication", - "AuthenticationConfiguration", - "Filters", - "TargetAction", - "TargetPipeline", - "TargetPipelineVersion" + "DashboardBody" ], "type": "object" }, "Type": { "enum": [ - "AWS::CodePipeline::Webhook" + "AWS::CloudWatch::Dashboard" ], "type": "string" } @@ -8495,34 +8010,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::CodePipeline::Webhook.WebhookAuthConfiguration": { - "additionalProperties": false, - "properties": { - "AllowedIPRange": { - "type": "string" - }, - "SecretToken": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CodePipeline::Webhook.WebhookFilterRule": { - "additionalProperties": false, - "properties": { - "JsonPath": { - "type": "string" - }, - "MatchEquals": { - "type": "string" - } - }, - "required": [ - "JsonPath" - ], - "type": "object" - }, - "AWS::Cognito::IdentityPool": { + "AWS::CodeBuild::Project": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -8554,54 +8042,78 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AllowUnauthenticatedIdentities": { - "type": "boolean" + "Artifacts": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts" }, - "CognitoEvents": { - "type": "object" + "BadgeEnabled": { + "type": "boolean" }, - "CognitoIdentityProviders": { - "items": { - "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoIdentityProvider" - }, - "type": "array" + "Cache": { + "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectCache" }, - "CognitoStreams": { - "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoStreams" + "Description": { + "type": "string" }, - "DeveloperProviderName": { + "EncryptionKey": { "type": "string" }, - "IdentityPoolName": { + "Environment": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Environment" + }, + "LogsConfig": { + "$ref": "#/definitions/AWS::CodeBuild::Project.LogsConfig" + }, + "Name": { "type": "string" }, - "OpenIdConnectProviderARNs": { + "QueuedTimeoutInMinutes": { + "type": "number" + }, + "SecondaryArtifacts": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts" }, "type": "array" }, - "PushSync": { - "$ref": "#/definitions/AWS::Cognito::IdentityPool.PushSync" + "SecondarySources": { + "items": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Source" + }, + "type": "array" }, - "SamlProviderARNs": { + "ServiceRole": { + "type": "string" + }, + "Source": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Source" + }, + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "SupportedLoginProviders": { - "type": "object" + "TimeoutInMinutes": { + "type": "number" + }, + "Triggers": { + "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectTriggers" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::CodeBuild::Project.VpcConfig" } }, "required": [ - "AllowUnauthenticatedIdentities" + "Artifacts", + "Environment", + "ServiceRole", + "Source" ], "type": "object" }, "Type": { "enum": [ - "AWS::Cognito::IdentityPool" + "AWS::CodeBuild::Project" ], "type": "string" } @@ -8612,121 +8124,105 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Cognito::IdentityPool.CognitoIdentityProvider": { + "AWS::CodeBuild::Project.Artifacts": { "additionalProperties": false, "properties": { - "ClientId": { + "ArtifactIdentifier": { "type": "string" }, - "ProviderName": { + "EncryptionDisabled": { + "type": "boolean" + }, + "Location": { "type": "string" }, - "ServerSideTokenCheck": { + "Name": { + "type": "string" + }, + "NamespaceType": { + "type": "string" + }, + "OverrideArtifactName": { "type": "boolean" + }, + "Packaging": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "Type": { + "type": "string" } }, + "required": [ + "Type" + ], "type": "object" }, - "AWS::Cognito::IdentityPool.CognitoStreams": { + "AWS::CodeBuild::Project.CloudWatchLogsConfig": { "additionalProperties": false, "properties": { - "RoleArn": { + "GroupName": { "type": "string" }, - "StreamName": { + "Status": { "type": "string" }, - "StreamingStatus": { + "StreamName": { "type": "string" } }, + "required": [ + "Status" + ], "type": "object" }, - "AWS::Cognito::IdentityPool.PushSync": { + "AWS::CodeBuild::Project.Environment": { "additionalProperties": false, "properties": { - "ApplicationArns": { + "Certificate": { + "type": "string" + }, + "ComputeType": { + "type": "string" + }, + "EnvironmentVariables": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::CodeBuild::Project.EnvironmentVariable" }, "type": "array" }, - "RoleArn": { + "Image": { + "type": "string" + }, + "ImagePullCredentialsType": { + "type": "string" + }, + "PrivilegedMode": { + "type": "boolean" + }, + "RegistryCredential": { + "$ref": "#/definitions/AWS::CodeBuild::Project.RegistryCredential" + }, + "Type": { "type": "string" } }, + "required": [ + "ComputeType", + "Image", + "Type" + ], "type": "object" }, - "AWS::Cognito::IdentityPoolRoleAttachment": { + "AWS::CodeBuild::Project.EnvironmentVariable": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Name": { "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": { - "IdentityPoolId": { - "type": "string" - }, - "RoleMappings": { - "type": "object" - }, - "Roles": { - "type": "object" - } - }, - "required": [ - "IdentityPoolId" - ], - "type": "object" - }, "Type": { - "enum": [ - "AWS::Cognito::IdentityPoolRoleAttachment" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::Cognito::IdentityPoolRoleAttachment.MappingRule": { - "additionalProperties": false, - "properties": { - "Claim": { - "type": "string" - }, - "MatchType": { - "type": "string" - }, - "RoleARN": { "type": "string" }, "Value": { @@ -8734,148 +8230,41 @@ var SamSchema = `{ } }, "required": [ - "Claim", - "MatchType", - "RoleARN", + "Name", "Value" ], "type": "object" }, - "AWS::Cognito::IdentityPoolRoleAttachment.RoleMapping": { + "AWS::CodeBuild::Project.FilterGroup": { "additionalProperties": false, - "properties": { - "AmbiguousRoleResolution": { - "type": "string" - }, - "RulesConfiguration": { - "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], + "properties": {}, "type": "object" }, - "AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType": { + "AWS::CodeBuild::Project.LogsConfig": { "additionalProperties": false, "properties": { - "Rules": { - "items": { - "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.MappingRule" - }, - "type": "array" + "CloudWatchLogs": { + "$ref": "#/definitions/AWS::CodeBuild::Project.CloudWatchLogsConfig" + }, + "S3Logs": { + "$ref": "#/definitions/AWS::CodeBuild::Project.S3LogsConfig" } }, - "required": [ - "Rules" - ], "type": "object" }, - "AWS::Cognito::UserPool": { + "AWS::CodeBuild::Project.ProjectCache": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Location": { "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": { - "AdminCreateUserConfig": { - "$ref": "#/definitions/AWS::Cognito::UserPool.AdminCreateUserConfig" - }, - "AliasAttributes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AutoVerifiedAttributes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DeviceConfiguration": { - "$ref": "#/definitions/AWS::Cognito::UserPool.DeviceConfiguration" - }, - "EmailConfiguration": { - "$ref": "#/definitions/AWS::Cognito::UserPool.EmailConfiguration" - }, - "EmailVerificationMessage": { - "type": "string" - }, - "EmailVerificationSubject": { - "type": "string" - }, - "LambdaConfig": { - "$ref": "#/definitions/AWS::Cognito::UserPool.LambdaConfig" - }, - "MfaConfiguration": { - "type": "string" - }, - "Policies": { - "$ref": "#/definitions/AWS::Cognito::UserPool.Policies" - }, - "Schema": { - "items": { - "$ref": "#/definitions/AWS::Cognito::UserPool.SchemaAttribute" - }, - "type": "array" - }, - "SmsAuthenticationMessage": { - "type": "string" - }, - "SmsConfiguration": { - "$ref": "#/definitions/AWS::Cognito::UserPool.SmsConfiguration" - }, - "SmsVerificationMessage": { - "type": "string" - }, - "UserPoolName": { - "type": "string" - }, - "UserPoolTags": { - "type": "object" - }, - "UsernameAttributes": { - "items": { - "type": "string" - }, - "type": "array" - } + "Modes": { + "items": { + "type": "string" }, - "type": "object" + "type": "array" }, "Type": { - "enum": [ - "AWS::Cognito::UserPool" - ], "type": "string" } }, @@ -8884,184 +8273,141 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Cognito::UserPool.AdminCreateUserConfig": { - "additionalProperties": false, - "properties": { - "AllowAdminCreateUserOnly": { - "type": "boolean" - }, - "InviteMessageTemplate": { - "$ref": "#/definitions/AWS::Cognito::UserPool.InviteMessageTemplate" - }, - "UnusedAccountValidityDays": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::Cognito::UserPool.DeviceConfiguration": { + "AWS::CodeBuild::Project.ProjectTriggers": { "additionalProperties": false, "properties": { - "ChallengeRequiredOnNewDevice": { - "type": "boolean" + "FilterGroups": { + "items": { + "$ref": "#/definitions/AWS::CodeBuild::Project.FilterGroup" + }, + "type": "array" }, - "DeviceOnlyRememberedOnUserPrompt": { + "Webhook": { "type": "boolean" } }, "type": "object" }, - "AWS::Cognito::UserPool.EmailConfiguration": { + "AWS::CodeBuild::Project.RegistryCredential": { "additionalProperties": false, "properties": { - "ReplyToEmailAddress": { + "Credential": { "type": "string" }, - "SourceArn": { + "CredentialProvider": { "type": "string" } }, + "required": [ + "Credential", + "CredentialProvider" + ], "type": "object" }, - "AWS::Cognito::UserPool.InviteMessageTemplate": { + "AWS::CodeBuild::Project.S3LogsConfig": { "additionalProperties": false, "properties": { - "EmailMessage": { - "type": "string" - }, - "EmailSubject": { + "Location": { "type": "string" }, - "SMSMessage": { + "Status": { "type": "string" } }, + "required": [ + "Status" + ], "type": "object" }, - "AWS::Cognito::UserPool.LambdaConfig": { + "AWS::CodeBuild::Project.Source": { "additionalProperties": false, "properties": { - "CreateAuthChallenge": { - "type": "string" + "Auth": { + "$ref": "#/definitions/AWS::CodeBuild::Project.SourceAuth" }, - "CustomMessage": { + "BuildSpec": { "type": "string" }, - "DefineAuthChallenge": { - "type": "string" + "GitCloneDepth": { + "type": "number" }, - "PostAuthentication": { - "type": "string" + "InsecureSsl": { + "type": "boolean" }, - "PostConfirmation": { + "Location": { "type": "string" }, - "PreAuthentication": { - "type": "string" + "ReportBuildStatus": { + "type": "boolean" }, - "PreSignUp": { + "SourceIdentifier": { "type": "string" }, - "VerifyAuthChallengeResponse": { + "Type": { "type": "string" } }, + "required": [ + "Type" + ], "type": "object" }, - "AWS::Cognito::UserPool.NumberAttributeConstraints": { + "AWS::CodeBuild::Project.SourceAuth": { "additionalProperties": false, "properties": { - "MaxValue": { + "Resource": { "type": "string" }, - "MinValue": { + "Type": { "type": "string" } }, + "required": [ + "Type" + ], "type": "object" }, - "AWS::Cognito::UserPool.PasswordPolicy": { - "additionalProperties": false, - "properties": { - "MinimumLength": { - "type": "number" - }, - "RequireLowercase": { - "type": "boolean" - }, - "RequireNumbers": { - "type": "boolean" - }, - "RequireSymbols": { - "type": "boolean" - }, - "RequireUppercase": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::Cognito::UserPool.Policies": { - "additionalProperties": false, - "properties": { - "PasswordPolicy": { - "$ref": "#/definitions/AWS::Cognito::UserPool.PasswordPolicy" - } - }, - "type": "object" - }, - "AWS::Cognito::UserPool.SchemaAttribute": { + "AWS::CodeBuild::Project.VpcConfig": { "additionalProperties": false, "properties": { - "AttributeDataType": { - "type": "string" - }, - "DeveloperOnlyAttribute": { - "type": "boolean" + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "Mutable": { - "type": "boolean" + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" }, - "Name": { + "VpcId": { "type": "string" - }, - "NumberAttributeConstraints": { - "$ref": "#/definitions/AWS::Cognito::UserPool.NumberAttributeConstraints" - }, - "Required": { - "type": "boolean" - }, - "StringAttributeConstraints": { - "$ref": "#/definitions/AWS::Cognito::UserPool.StringAttributeConstraints" } }, "type": "object" }, - "AWS::Cognito::UserPool.SmsConfiguration": { + "AWS::CodeBuild::Project.WebhookFilter": { "additionalProperties": false, "properties": { - "ExternalId": { - "type": "string" + "ExcludeMatchedPattern": { + "type": "boolean" }, - "SnsCallerArn": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Cognito::UserPool.StringAttributeConstraints": { - "additionalProperties": false, - "properties": { - "MaxLength": { + "Pattern": { "type": "string" }, - "MinLength": { + "Type": { "type": "string" } }, + "required": [ + "Pattern", + "Type" + ], "type": "object" }, - "AWS::Cognito::UserPoolClient": { + "AWS::CodeCommit::Repository": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9093,45 +8439,27 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ClientName": { + "RepositoryDescription": { "type": "string" }, - "ExplicitAuthFlows": { - "items": { - "type": "string" - }, - "type": "array" - }, - "GenerateSecret": { - "type": "boolean" - }, - "ReadAttributes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "RefreshTokenValidity": { - "type": "number" - }, - "UserPoolId": { + "RepositoryName": { "type": "string" }, - "WriteAttributes": { + "Triggers": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::CodeCommit::Repository.RepositoryTrigger" }, "type": "array" } }, "required": [ - "UserPoolId" + "RepositoryName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Cognito::UserPoolClient" + "AWS::CodeCommit::Repository" ], "type": "string" } @@ -9142,7 +8470,34 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Cognito::UserPoolGroup": { + "AWS::CodeCommit::Repository.RepositoryTrigger": { + "additionalProperties": false, + "properties": { + "Branches": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CustomData": { + "type": "string" + }, + "DestinationArn": { + "type": "string" + }, + "Events": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::Application": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9174,41 +8529,28 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" - }, - "GroupName": { - "type": "string" - }, - "Precedence": { - "type": "number" - }, - "RoleArn": { + "ApplicationName": { "type": "string" }, - "UserPoolId": { + "ComputePlatform": { "type": "string" } }, - "required": [ - "UserPoolId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::Cognito::UserPoolGroup" + "AWS::CodeDeploy::Application" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::Cognito::UserPoolUser": { + "AWS::CodeDeploy::DeploymentConfig": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9240,68 +8582,44 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DesiredDeliveryMediums": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ForceAliasCreation": { - "type": "boolean" - }, - "MessageAction": { - "type": "string" - }, - "UserAttributes": { - "items": { - "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType" - }, - "type": "array" - }, - "UserPoolId": { - "type": "string" - }, - "Username": { + "DeploymentConfigName": { "type": "string" }, - "ValidationData": { - "items": { - "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType" - }, - "type": "array" + "MinimumHealthyHosts": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts" } }, - "required": [ - "UserPoolId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::Cognito::UserPoolUser" + "AWS::CodeDeploy::DeploymentConfig" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::Cognito::UserPoolUser.AttributeType": { + "AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts": { "additionalProperties": false, "properties": { - "Name": { + "Type": { "type": "string" }, "Value": { - "type": "string" + "type": "number" } }, + "required": [ + "Type", + "Value" + ], "type": "object" }, - "AWS::Cognito::UserPoolUserToGroupAttachment": { + "AWS::CodeDeploy::DeploymentGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9333,84 +8651,73 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "GroupName": { + "AlarmConfiguration": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration" + }, + "ApplicationName": { "type": "string" }, - "UserPoolId": { + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration" + }, + "AutoScalingGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Deployment": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Deployment" + }, + "DeploymentConfigName": { "type": "string" }, - "Username": { - "type": "string" - } - }, - "required": [ - "GroupName", - "UserPoolId", - "Username" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Cognito::UserPoolUserToGroupAttachment" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::Config::AggregationAuthorization": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", + "DeploymentGroupName": { "type": "string" }, - { + "DeploymentStyle": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.DeploymentStyle" + }, + "Ec2TagFilters": { "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter" }, "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "AuthorizedAccountId": { - "type": "string" }, - "AuthorizedAwsRegion": { + "Ec2TagSet": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSet" + }, + "LoadBalancerInfo": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo" + }, + "OnPremisesInstanceTagFilters": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter" + }, + "type": "array" + }, + "OnPremisesTagSet": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet" + }, + "ServiceRoleArn": { "type": "string" + }, + "TriggerConfigurations": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TriggerConfig" + }, + "type": "array" } }, "required": [ - "AuthorizedAccountId", - "AuthorizedAwsRegion" + "ApplicationName", + "ServiceRoleArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::Config::AggregationAuthorization" + "AWS::CodeDeploy::DeploymentGroup" ], "type": "string" } @@ -9421,138 +8728,267 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Config::ConfigRule": { + "AWS::CodeDeploy::DeploymentGroup.Alarm": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Name": { "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Alarm" + }, + "type": "array" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Enabled": { + "type": "boolean" }, - "Metadata": { - "type": "object" + "IgnorePollAlarmFailure": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" }, - "Properties": { - "additionalProperties": false, - "properties": { - "ConfigRuleName": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "InputParameters": { - "type": "object" - }, - "MaximumExecutionFrequency": { - "type": "string" - }, - "Scope": { - "$ref": "#/definitions/AWS::Config::ConfigRule.Scope" - }, - "Source": { - "$ref": "#/definitions/AWS::Config::ConfigRule.Source" - } + "Events": { + "items": { + "type": "string" }, - "required": [ - "Source" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Config::ConfigRule" - ], + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.Deployment": { + "additionalProperties": false, + "properties": { + "Description": { "type": "string" + }, + "IgnoreApplicationStopFailures": { + "type": "boolean" + }, + "Revision": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.RevisionLocation" } }, "required": [ - "Type", - "Properties" + "Revision" ], "type": "object" }, - "AWS::Config::ConfigRule.Scope": { + "AWS::CodeDeploy::DeploymentGroup.DeploymentStyle": { "additionalProperties": false, "properties": { - "ComplianceResourceId": { + "DeploymentOption": { "type": "string" }, - "ComplianceResourceTypes": { + "DeploymentType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.EC2TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.EC2TagSet": { + "additionalProperties": false, + "properties": { + "Ec2TagSetList": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject" }, "type": "array" - }, - "TagKey": { + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject": { + "additionalProperties": false, + "properties": { + "Ec2TagGroup": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.ELBInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.GitHubLocation": { + "additionalProperties": false, + "properties": { + "CommitId": { "type": "string" }, - "TagValue": { + "Repository": { "type": "string" } }, + "required": [ + "CommitId", + "Repository" + ], "type": "object" }, - "AWS::Config::ConfigRule.Source": { + "AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo": { "additionalProperties": false, "properties": { - "Owner": { - "type": "string" + "ElbInfoList": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.ELBInfo" + }, + "type": "array" }, - "SourceDetails": { + "TargetGroupInfoList": { "items": { - "$ref": "#/definitions/AWS::Config::ConfigRule.SourceDetail" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet": { + "additionalProperties": false, + "properties": { + "OnPremisesTagSetList": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject": { + "additionalProperties": false, + "properties": { + "OnPremisesTagGroup": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter" }, "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.RevisionLocation": { + "additionalProperties": false, + "properties": { + "GitHubLocation": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.GitHubLocation" }, - "SourceIdentifier": { + "RevisionType": { "type": "string" + }, + "S3Location": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.S3Location" } }, - "required": [ - "Owner", - "SourceIdentifier" - ], "type": "object" }, - "AWS::Config::ConfigRule.SourceDetail": { + "AWS::CodeDeploy::DeploymentGroup.S3Location": { "additionalProperties": false, "properties": { - "EventSource": { + "Bucket": { "type": "string" }, - "MaximumExecutionFrequency": { + "BundleType": { "type": "string" }, - "MessageType": { + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { "type": "string" } }, "required": [ - "EventSource", - "MessageType" + "Bucket", + "Key" ], "type": "object" }, - "AWS::Config::ConfigurationAggregator": { + "AWS::CodeDeploy::DeploymentGroup.TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerEvents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TriggerName": { + "type": "string" + }, + "TriggerTargetArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodePipeline::CustomActionType": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9584,27 +9020,42 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AccountAggregationSources": { + "Category": { + "type": "string" + }, + "ConfigurationProperties": { "items": { - "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.AccountAggregationSource" + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ConfigurationProperties" }, "type": "array" }, - "ConfigurationAggregatorName": { + "InputArtifactDetails": { + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails" + }, + "OutputArtifactDetails": { + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails" + }, + "Provider": { "type": "string" }, - "OrganizationAggregationSource": { - "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.OrganizationAggregationSource" + "Settings": { + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.Settings" + }, + "Version": { + "type": "string" } }, "required": [ - "ConfigurationAggregatorName" + "Category", + "InputArtifactDetails", + "OutputArtifactDetails", + "Provider" ], "type": "object" }, "Type": { "enum": [ - "AWS::Config::ConfigurationAggregator" + "AWS::CodePipeline::CustomActionType" ], "type": "string" } @@ -9615,52 +9066,74 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Config::ConfigurationAggregator.AccountAggregationSource": { + "AWS::CodePipeline::CustomActionType.ArtifactDetails": { "additionalProperties": false, "properties": { - "AccountIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AllAwsRegions": { - "type": "boolean" + "MaximumCount": { + "type": "number" }, - "AwsRegions": { - "items": { - "type": "string" - }, - "type": "array" + "MinimumCount": { + "type": "number" } }, "required": [ - "AccountIds" + "MaximumCount", + "MinimumCount" ], "type": "object" }, - "AWS::Config::ConfigurationAggregator.OrganizationAggregationSource": { + "AWS::CodePipeline::CustomActionType.ConfigurationProperties": { "additionalProperties": false, "properties": { - "AllAwsRegions": { + "Description": { + "type": "string" + }, + "Key": { "type": "boolean" }, - "AwsRegions": { - "items": { - "type": "string" - }, - "type": "array" + "Name": { + "type": "string" }, - "RoleArn": { + "Queryable": { + "type": "boolean" + }, + "Required": { + "type": "boolean" + }, + "Secret": { + "type": "boolean" + }, + "Type": { "type": "string" } }, "required": [ - "RoleArn" + "Key", + "Name", + "Required", + "Secret" ], "type": "object" }, - "AWS::Config::ConfigurationRecorder": { + "AWS::CodePipeline::CustomActionType.Settings": { + "additionalProperties": false, + "properties": { + "EntityUrlTemplate": { + "type": "string" + }, + "ExecutionUrlTemplate": { + "type": "string" + }, + "RevisionUrlTemplate": { + "type": "string" + }, + "ThirdPartyConfigurationUrl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodePipeline::Pipeline": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9692,24 +9165,46 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "ArtifactStore": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore" + }, + "ArtifactStores": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStoreMap" + }, + "type": "array" + }, + "DisableInboundStageTransitions": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageTransition" + }, + "type": "array" + }, "Name": { "type": "string" }, - "RecordingGroup": { - "$ref": "#/definitions/AWS::Config::ConfigurationRecorder.RecordingGroup" + "RestartExecutionOnUpdate": { + "type": "boolean" }, - "RoleARN": { + "RoleArn": { "type": "string" + }, + "Stages": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageDeclaration" + }, + "type": "array" } }, "required": [ - "RoleARN" + "RoleArn", + "Stages" ], "type": "object" }, "Type": { "enum": [ - "AWS::Config::ConfigurationRecorder" + "AWS::CodePipeline::Pipeline" ], "type": "string" } @@ -9720,28 +9215,206 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Config::ConfigurationRecorder.RecordingGroup": { + "AWS::CodePipeline::Pipeline.ActionDeclaration": { "additionalProperties": false, "properties": { - "AllSupported": { - "type": "boolean" + "ActionTypeId": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionTypeId" }, - "IncludeGlobalResourceTypes": { - "type": "boolean" + "Configuration": { + "type": "object" }, - "ResourceTypes": { + "InputArtifacts": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.InputArtifact" }, "type": "array" - } - }, - "type": "object" - }, - "AWS::Config::DeliveryChannel": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { + }, + "Name": { + "type": "string" + }, + "OutputArtifacts": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.OutputArtifact" + }, + "type": "array" + }, + "Region": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "RunOrder": { + "type": "number" + } + }, + "required": [ + "ActionTypeId", + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.ActionTypeId": { + "additionalProperties": false, + "properties": { + "Category": { + "type": "string" + }, + "Owner": { + "type": "string" + }, + "Provider": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Category", + "Owner", + "Provider", + "Version" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.ArtifactStore": { + "additionalProperties": false, + "properties": { + "EncryptionKey": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.EncryptionKey" + }, + "Location": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Location", + "Type" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.ArtifactStoreMap": { + "additionalProperties": false, + "properties": { + "ArtifactStore": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "ArtifactStore", + "Region" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.BlockerDeclaration": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.EncryptionKey": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Id", + "Type" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.InputArtifact": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.OutputArtifact": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.StageDeclaration": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionDeclaration" + }, + "type": "array" + }, + "Blockers": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.BlockerDeclaration" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Actions", + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.StageTransition": { + "additionalProperties": false, + "properties": { + "Reason": { + "type": "string" + }, + "StageName": { + "type": "string" + } + }, + "required": [ + "Reason", + "StageName" + ], + "type": "object" + }, + "AWS::CodePipeline::Webhook": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { "enum": [ "Delete", "Retain", @@ -9770,30 +9443,47 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ConfigSnapshotDeliveryProperties": { - "$ref": "#/definitions/AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties" + "Authentication": { + "type": "string" + }, + "AuthenticationConfiguration": { + "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookAuthConfiguration" + }, + "Filters": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookFilterRule" + }, + "type": "array" }, "Name": { "type": "string" }, - "S3BucketName": { - "type": "string" + "RegisterWithThirdParty": { + "type": "boolean" }, - "S3KeyPrefix": { + "TargetAction": { "type": "string" }, - "SnsTopicARN": { + "TargetPipeline": { "type": "string" + }, + "TargetPipelineVersion": { + "type": "number" } }, "required": [ - "S3BucketName" + "Authentication", + "AuthenticationConfiguration", + "Filters", + "TargetAction", + "TargetPipeline", + "TargetPipelineVersion" ], "type": "object" }, "Type": { "enum": [ - "AWS::Config::DeliveryChannel" + "AWS::CodePipeline::Webhook" ], "type": "string" } @@ -9804,16 +9494,34 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties": { + "AWS::CodePipeline::Webhook.WebhookAuthConfiguration": { "additionalProperties": false, "properties": { - "DeliveryFrequency": { + "AllowedIPRange": { + "type": "string" + }, + "SecretToken": { "type": "string" } }, "type": "object" }, - "AWS::DAX::Cluster": { + "AWS::CodePipeline::Webhook.WebhookFilterRule": { + "additionalProperties": false, + "properties": { + "JsonPath": { + "type": "string" + }, + "MatchEquals": { + "type": "string" + } + }, + "required": [ + "JsonPath" + ], + "type": "object" + }, + "AWS::Cognito::IdentityPool": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9845,62 +9553,54 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AvailabilityZones": { + "AllowUnauthenticatedIdentities": { + "type": "boolean" + }, + "CognitoEvents": { + "type": "object" + }, + "CognitoIdentityProviders": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoIdentityProvider" }, "type": "array" }, - "ClusterName": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IAMRoleARN": { - "type": "string" - }, - "NodeType": { - "type": "string" - }, - "NotificationTopicARN": { - "type": "string" + "CognitoStreams": { + "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoStreams" }, - "ParameterGroupName": { + "DeveloperProviderName": { "type": "string" }, - "PreferredMaintenanceWindow": { + "IdentityPoolName": { "type": "string" }, - "ReplicationFactor": { - "type": "number" + "OpenIdConnectProviderARNs": { + "items": { + "type": "string" + }, + "type": "array" }, - "SSESpecification": { - "$ref": "#/definitions/AWS::DAX::Cluster.SSESpecification" + "PushSync": { + "$ref": "#/definitions/AWS::Cognito::IdentityPool.PushSync" }, - "SecurityGroupIds": { + "SamlProviderARNs": { "items": { "type": "string" }, "type": "array" }, - "SubnetGroupName": { - "type": "string" - }, - "Tags": { + "SupportedLoginProviders": { "type": "object" } }, "required": [ - "IAMRoleARN", - "NodeType", - "ReplicationFactor" + "AllowUnauthenticatedIdentities" ], "type": "object" }, "Type": { "enum": [ - "AWS::DAX::Cluster" + "AWS::Cognito::IdentityPool" ], "type": "string" } @@ -9911,72 +9611,52 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::DAX::Cluster.SSESpecification": { + "AWS::Cognito::IdentityPool.CognitoIdentityProvider": { "additionalProperties": false, "properties": { - "SSEEnabled": { + "ClientId": { + "type": "string" + }, + "ProviderName": { + "type": "string" + }, + "ServerSideTokenCheck": { "type": "boolean" } }, "type": "object" }, - "AWS::DAX::ParameterGroup": { + "AWS::Cognito::IdentityPool.CognitoStreams": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "RoleArn": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" + "StreamName": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "ParameterGroupName": { - "type": "string" - }, - "ParameterNameValues": { - "type": "object" - } + "StreamingStatus": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::IdentityPool.PushSync": { + "additionalProperties": false, + "properties": { + "ApplicationArns": { + "items": { + "type": "string" }, - "type": "object" + "type": "array" }, - "Type": { - "enum": [ - "AWS::DAX::ParameterGroup" - ], + "RoleArn": { "type": "string" } }, - "required": [ - "Type" - ], "type": "object" }, - "AWS::DAX::SubnetGroup": { + "AWS::Cognito::IdentityPoolRoleAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10008,27 +9688,24 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "IdentityPoolId": { "type": "string" }, - "SubnetGroupName": { - "type": "string" + "RoleMappings": { + "type": "object" }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" + "Roles": { + "type": "object" } }, "required": [ - "SubnetIds" + "IdentityPoolId" ], "type": "object" }, "Type": { "enum": [ - "AWS::DAX::SubnetGroup" + "AWS::Cognito::IdentityPoolRoleAttachment" ], "type": "string" } @@ -10039,7 +9716,64 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::DLM::LifecyclePolicy": { + "AWS::Cognito::IdentityPoolRoleAttachment.MappingRule": { + "additionalProperties": false, + "properties": { + "Claim": { + "type": "string" + }, + "MatchType": { + "type": "string" + }, + "RoleARN": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Claim", + "MatchType", + "RoleARN", + "Value" + ], + "type": "object" + }, + "AWS::Cognito::IdentityPoolRoleAttachment.RoleMapping": { + "additionalProperties": false, + "properties": { + "AmbiguousRoleResolution": { + "type": "string" + }, + "RulesConfiguration": { + "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.MappingRule" + }, + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::Cognito::UserPool": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10071,24 +9805,75 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "AdminCreateUserConfig": { + "$ref": "#/definitions/AWS::Cognito::UserPool.AdminCreateUserConfig" + }, + "AliasAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AutoVerifiedAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DeviceConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPool.DeviceConfiguration" + }, + "EmailConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPool.EmailConfiguration" + }, + "EmailVerificationMessage": { "type": "string" }, - "ExecutionRoleArn": { + "EmailVerificationSubject": { "type": "string" }, - "PolicyDetails": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.PolicyDetails" + "LambdaConfig": { + "$ref": "#/definitions/AWS::Cognito::UserPool.LambdaConfig" }, - "State": { + "MfaConfiguration": { + "type": "string" + }, + "Policies": { + "$ref": "#/definitions/AWS::Cognito::UserPool.Policies" + }, + "Schema": { + "items": { + "$ref": "#/definitions/AWS::Cognito::UserPool.SchemaAttribute" + }, + "type": "array" + }, + "SmsAuthenticationMessage": { + "type": "string" + }, + "SmsConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPool.SmsConfiguration" + }, + "SmsVerificationMessage": { "type": "string" + }, + "UserPoolName": { + "type": "string" + }, + "UserPoolTags": { + "type": "object" + }, + "UsernameAttributes": { + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, "Type": { "enum": [ - "AWS::DLM::LifecyclePolicy" + "AWS::Cognito::UserPool" ], "type": "string" } @@ -10098,89 +9883,184 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::DLM::LifecyclePolicy.CreateRule": { + "AWS::Cognito::UserPool.AdminCreateUserConfig": { "additionalProperties": false, "properties": { - "Interval": { + "AllowAdminCreateUserOnly": { + "type": "boolean" + }, + "InviteMessageTemplate": { + "$ref": "#/definitions/AWS::Cognito::UserPool.InviteMessageTemplate" + }, + "UnusedAccountValidityDays": { "type": "number" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.DeviceConfiguration": { + "additionalProperties": false, + "properties": { + "ChallengeRequiredOnNewDevice": { + "type": "boolean" }, - "IntervalUnit": { + "DeviceOnlyRememberedOnUserPrompt": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.EmailConfiguration": { + "additionalProperties": false, + "properties": { + "ReplyToEmailAddress": { "type": "string" }, - "Times": { - "items": { - "type": "string" - }, - "type": "array" + "SourceArn": { + "type": "string" } }, - "required": [ - "Interval", - "IntervalUnit" - ], "type": "object" }, - "AWS::DLM::LifecyclePolicy.PolicyDetails": { + "AWS::Cognito::UserPool.InviteMessageTemplate": { "additionalProperties": false, "properties": { - "ResourceTypes": { - "items": { - "type": "string" - }, - "type": "array" + "EmailMessage": { + "type": "string" }, - "Schedules": { - "items": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Schedule" - }, - "type": "array" + "EmailSubject": { + "type": "string" }, - "TargetTags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "SMSMessage": { + "type": "string" } }, "type": "object" }, - "AWS::DLM::LifecyclePolicy.RetainRule": { + "AWS::Cognito::UserPool.LambdaConfig": { "additionalProperties": false, "properties": { - "Count": { + "CreateAuthChallenge": { + "type": "string" + }, + "CustomMessage": { + "type": "string" + }, + "DefineAuthChallenge": { + "type": "string" + }, + "PostAuthentication": { + "type": "string" + }, + "PostConfirmation": { + "type": "string" + }, + "PreAuthentication": { + "type": "string" + }, + "PreSignUp": { + "type": "string" + }, + "VerifyAuthChallengeResponse": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.NumberAttributeConstraints": { + "additionalProperties": false, + "properties": { + "MaxValue": { + "type": "string" + }, + "MinValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.PasswordPolicy": { + "additionalProperties": false, + "properties": { + "MinimumLength": { "type": "number" + }, + "RequireLowercase": { + "type": "boolean" + }, + "RequireNumbers": { + "type": "boolean" + }, + "RequireSymbols": { + "type": "boolean" + }, + "RequireUppercase": { + "type": "boolean" } }, - "required": [ - "Count" - ], "type": "object" }, - "AWS::DLM::LifecyclePolicy.Schedule": { + "AWS::Cognito::UserPool.Policies": { "additionalProperties": false, "properties": { - "CopyTags": { + "PasswordPolicy": { + "$ref": "#/definitions/AWS::Cognito::UserPool.PasswordPolicy" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.SchemaAttribute": { + "additionalProperties": false, + "properties": { + "AttributeDataType": { + "type": "string" + }, + "DeveloperOnlyAttribute": { "type": "boolean" }, - "CreateRule": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CreateRule" + "Mutable": { + "type": "boolean" }, "Name": { "type": "string" }, - "RetainRule": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.RetainRule" + "NumberAttributeConstraints": { + "$ref": "#/definitions/AWS::Cognito::UserPool.NumberAttributeConstraints" }, - "TagsToAdd": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "Required": { + "type": "boolean" + }, + "StringAttributeConstraints": { + "$ref": "#/definitions/AWS::Cognito::UserPool.StringAttributeConstraints" } }, "type": "object" }, - "AWS::DMS::Certificate": { + "AWS::Cognito::UserPool.SmsConfiguration": { + "additionalProperties": false, + "properties": { + "ExternalId": { + "type": "string" + }, + "SnsCallerArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.StringAttributeConstraints": { + "additionalProperties": false, + "properties": { + "MaxLength": { + "type": "string" + }, + "MinLength": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPoolClient": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10212,31 +10092,56 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CertificateIdentifier": { + "ClientName": { "type": "string" }, - "CertificatePem": { - "type": "string" + "ExplicitAuthFlows": { + "items": { + "type": "string" + }, + "type": "array" }, - "CertificateWallet": { + "GenerateSecret": { + "type": "boolean" + }, + "ReadAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RefreshTokenValidity": { + "type": "number" + }, + "UserPoolId": { "type": "string" + }, + "WriteAttributes": { + "items": { + "type": "string" + }, + "type": "array" } }, + "required": [ + "UserPoolId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::Certificate" + "AWS::Cognito::UserPoolClient" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::DMS::Endpoint": { + "AWS::Cognito::UserPoolGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10268,67 +10173,30 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CertificateArn": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "DynamoDbSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.DynamoDbSettings" - }, - "EndpointIdentifier": { - "type": "string" - }, - "EndpointType": { - "type": "string" - }, - "EngineName": { - "type": "string" - }, - "ExtraConnectionAttributes": { - "type": "string" - }, - "KmsKeyId": { + "Description": { "type": "string" }, - "MongoDbSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.MongoDbSettings" - }, - "Password": { + "GroupName": { "type": "string" }, - "Port": { + "Precedence": { "type": "number" }, - "S3Settings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.S3Settings" - }, - "ServerName": { - "type": "string" - }, - "SslMode": { + "RoleArn": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Username": { + "UserPoolId": { "type": "string" } }, "required": [ - "EndpointType", - "EngineName" + "UserPoolId" ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::Endpoint" + "AWS::Cognito::UserPoolGroup" ], "type": "string" } @@ -10339,82 +10207,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::DMS::Endpoint.DynamoDbSettings": { - "additionalProperties": false, - "properties": { - "ServiceAccessRoleArn": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::DMS::Endpoint.MongoDbSettings": { - "additionalProperties": false, - "properties": { - "AuthMechanism": { - "type": "string" - }, - "AuthSource": { - "type": "string" - }, - "AuthType": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "DocsToInvestigate": { - "type": "string" - }, - "ExtractDocId": { - "type": "string" - }, - "NestingLevel": { - "type": "string" - }, - "Password": { - "type": "string" - }, - "Port": { - "type": "number" - }, - "ServerName": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::DMS::Endpoint.S3Settings": { - "additionalProperties": false, - "properties": { - "BucketFolder": { - "type": "string" - }, - "BucketName": { - "type": "string" - }, - "CompressionType": { - "type": "string" - }, - "CsvDelimiter": { - "type": "string" - }, - "CsvRowDelimiter": { - "type": "string" - }, - "ExternalTableDefinition": { - "type": "string" - }, - "ServiceAccessRoleArn": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::DMS::EventSubscription": { + "AWS::Cognito::UserPoolUser": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10446,45 +10239,45 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Enabled": { - "type": "boolean" - }, - "EventCategories": { + "DesiredDeliveryMediums": { "items": { "type": "string" }, "type": "array" }, - "SnsTopicArn": { + "ForceAliasCreation": { + "type": "boolean" + }, + "MessageAction": { "type": "string" }, - "SourceIds": { + "UserAttributes": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType" }, "type": "array" }, - "SourceType": { + "UserPoolId": { "type": "string" }, - "SubscriptionName": { + "Username": { "type": "string" }, - "Tags": { + "ValidationData": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType" }, "type": "array" } }, "required": [ - "SnsTopicArn" + "UserPoolId" ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::EventSubscription" + "AWS::Cognito::UserPoolUser" ], "type": "string" } @@ -10495,7 +10288,19 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::DMS::ReplicationInstance": { + "AWS::Cognito::UserPoolUser.AttributeType": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPoolUserToGroupAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10527,63 +10332,26 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AllocatedStorage": { - "type": "number" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AvailabilityZone": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "KmsKeyId": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicationInstanceClass": { + "GroupName": { "type": "string" }, - "ReplicationInstanceIdentifier": { + "UserPoolId": { "type": "string" }, - "ReplicationSubnetGroupIdentifier": { + "Username": { "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VpcSecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" } }, "required": [ - "ReplicationInstanceClass" + "GroupName", + "UserPoolId", + "Username" ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::ReplicationInstance" + "AWS::Cognito::UserPoolUserToGroupAttachment" ], "type": "string" } @@ -10594,7 +10362,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::DMS::ReplicationSubnetGroup": { + "AWS::Config::AggregationAuthorization": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10626,34 +10394,22 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ReplicationSubnetGroupDescription": { + "AuthorizedAccountId": { "type": "string" }, - "ReplicationSubnetGroupIdentifier": { + "AuthorizedAwsRegion": { "type": "string" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" } }, "required": [ - "ReplicationSubnetGroupDescription", - "SubnetIds" + "AuthorizedAccountId", + "AuthorizedAwsRegion" ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::ReplicationSubnetGroup" + "AWS::Config::AggregationAuthorization" ], "type": "string" } @@ -10664,7 +10420,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::DMS::ReplicationTask": { + "AWS::Config::ConfigRule": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10696,49 +10452,33 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CdcStartTime": { - "type": "number" - }, - "MigrationType": { - "type": "string" - }, - "ReplicationInstanceArn": { - "type": "string" - }, - "ReplicationTaskIdentifier": { + "ConfigRuleName": { "type": "string" }, - "ReplicationTaskSettings": { + "Description": { "type": "string" }, - "SourceEndpointArn": { - "type": "string" + "InputParameters": { + "type": "object" }, - "TableMappings": { + "MaximumExecutionFrequency": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "Scope": { + "$ref": "#/definitions/AWS::Config::ConfigRule.Scope" }, - "TargetEndpointArn": { - "type": "string" + "Source": { + "$ref": "#/definitions/AWS::Config::ConfigRule.Source" } }, "required": [ - "MigrationType", - "ReplicationInstanceArn", - "SourceEndpointArn", - "TableMappings", - "TargetEndpointArn" + "Source" ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::ReplicationTask" + "AWS::Config::ConfigRule" ], "type": "string" } @@ -10749,14 +10489,76 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::DataPipeline::Pipeline": { + "AWS::Config::ConfigRule.Scope": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" + "ComplianceResourceId": { + "type": "string" + }, + "ComplianceResourceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TagKey": { + "type": "string" + }, + "TagValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Config::ConfigRule.Source": { + "additionalProperties": false, + "properties": { + "Owner": { + "type": "string" + }, + "SourceDetails": { + "items": { + "$ref": "#/definitions/AWS::Config::ConfigRule.SourceDetail" + }, + "type": "array" + }, + "SourceIdentifier": { + "type": "string" + } + }, + "required": [ + "Owner", + "SourceIdentifier" + ], + "type": "object" + }, + "AWS::Config::ConfigRule.SourceDetail": { + "additionalProperties": false, + "properties": { + "EventSource": { + "type": "string" + }, + "MaximumExecutionFrequency": { + "type": "string" + }, + "MessageType": { + "type": "string" + } + }, + "required": [ + "EventSource", + "MessageType" + ], + "type": "object" + }, + "AWS::Config::ConfigurationAggregator": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], "type": "string" }, @@ -10781,49 +10583,27 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Activate": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "ParameterObjects": { - "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterObject" - }, - "type": "array" - }, - "ParameterValues": { + "AccountAggregationSources": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterValue" + "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.AccountAggregationSource" }, "type": "array" }, - "PipelineObjects": { - "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineObject" - }, - "type": "array" + "ConfigurationAggregatorName": { + "type": "string" }, - "PipelineTags": { - "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineTag" - }, - "type": "array" + "OrganizationAggregationSource": { + "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.OrganizationAggregationSource" } }, "required": [ - "Name", - "ParameterObjects" + "ConfigurationAggregatorName" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataPipeline::Pipeline" + "AWS::Config::ConfigurationAggregator" ], "type": "string" } @@ -10834,115 +10614,52 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::DataPipeline::Pipeline.Field": { + "AWS::Config::ConfigurationAggregator.AccountAggregationSource": { "additionalProperties": false, "properties": { - "Key": { - "type": "string" - }, - "RefValue": { - "type": "string" + "AccountIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.ParameterAttribute": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" + "AllAwsRegions": { + "type": "boolean" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Key", - "StringValue" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.ParameterObject": { - "additionalProperties": false, - "properties": { - "Attributes": { + "AwsRegions": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterAttribute" + "type": "string" }, "type": "array" - }, - "Id": { - "type": "string" } }, "required": [ - "Attributes", - "Id" + "AccountIds" ], "type": "object" }, - "AWS::DataPipeline::Pipeline.ParameterValue": { + "AWS::Config::ConfigurationAggregator.OrganizationAggregationSource": { "additionalProperties": false, "properties": { - "Id": { - "type": "string" + "AllAwsRegions": { + "type": "boolean" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Id", - "StringValue" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.PipelineObject": { - "additionalProperties": false, - "properties": { - "Fields": { + "AwsRegions": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.Field" + "type": "string" }, "type": "array" }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "Fields", - "Id", - "Name" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.PipelineTag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { + "RoleArn": { "type": "string" } }, "required": [ - "Key", - "Value" + "RoleArn" ], "type": "object" }, - "AWS::DirectoryService::MicrosoftAD": { + "AWS::Config::ConfigurationRecorder": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10974,38 +10691,24 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CreateAlias": { - "type": "boolean" - }, - "Edition": { - "type": "string" - }, - "EnableSso": { - "type": "boolean" - }, "Name": { "type": "string" }, - "Password": { - "type": "string" + "RecordingGroup": { + "$ref": "#/definitions/AWS::Config::ConfigurationRecorder.RecordingGroup" }, - "ShortName": { + "RoleARN": { "type": "string" - }, - "VpcSettings": { - "$ref": "#/definitions/AWS::DirectoryService::MicrosoftAD.VpcSettings" } }, "required": [ - "Name", - "Password", - "VpcSettings" + "RoleARN" ], "type": "object" }, "Type": { "enum": [ - "AWS::DirectoryService::MicrosoftAD" + "AWS::Config::ConfigurationRecorder" ], "type": "string" } @@ -11016,26 +10719,25 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::DirectoryService::MicrosoftAD.VpcSettings": { + "AWS::Config::ConfigurationRecorder.RecordingGroup": { "additionalProperties": false, "properties": { - "SubnetIds": { + "AllSupported": { + "type": "boolean" + }, + "IncludeGlobalResourceTypes": { + "type": "boolean" + }, + "ResourceTypes": { "items": { "type": "string" }, "type": "array" - }, - "VpcId": { - "type": "string" } }, - "required": [ - "SubnetIds", - "VpcId" - ], "type": "object" }, - "AWS::DirectoryService::SimpleAD": { + "AWS::Config::DeliveryChannel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11067,42 +10769,30 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CreateAlias": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "EnableSso": { - "type": "boolean" + "ConfigSnapshotDeliveryProperties": { + "$ref": "#/definitions/AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties" }, "Name": { "type": "string" }, - "Password": { + "S3BucketName": { "type": "string" }, - "ShortName": { + "S3KeyPrefix": { "type": "string" }, - "Size": { + "SnsTopicARN": { "type": "string" - }, - "VpcSettings": { - "$ref": "#/definitions/AWS::DirectoryService::SimpleAD.VpcSettings" } }, "required": [ - "Name", - "Password", - "Size", - "VpcSettings" + "S3BucketName" ], "type": "object" }, "Type": { "enum": [ - "AWS::DirectoryService::SimpleAD" + "AWS::Config::DeliveryChannel" ], "type": "string" } @@ -11113,26 +10803,16 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::DirectoryService::SimpleAD.VpcSettings": { + "AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties": { "additionalProperties": false, "properties": { - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "VpcId": { + "DeliveryFrequency": { "type": "string" } }, - "required": [ - "SubnetIds", - "VpcId" - ], "type": "object" }, - "AWS::DynamoDB::Table": { + "AWS::DAX::Cluster": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11164,66 +10844,62 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AttributeDefinitions": { + "AvailabilityZones": { "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.AttributeDefinition" + "type": "string" }, "type": "array" }, - "BillingMode": { + "ClusterName": { "type": "string" }, - "GlobalSecondaryIndexes": { - "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.GlobalSecondaryIndex" - }, - "type": "array" + "Description": { + "type": "string" }, - "KeySchema": { - "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" - }, - "type": "array" + "IAMRoleARN": { + "type": "string" }, - "LocalSecondaryIndexes": { - "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.LocalSecondaryIndex" - }, - "type": "array" + "NodeType": { + "type": "string" }, - "PointInTimeRecoverySpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.PointInTimeRecoverySpecification" + "NotificationTopicARN": { + "type": "string" }, - "ProvisionedThroughput": { - "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput" + "ParameterGroupName": { + "type": "string" }, - "SSESpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.SSESpecification" + "PreferredMaintenanceWindow": { + "type": "string" }, - "StreamSpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.StreamSpecification" + "ReplicationFactor": { + "type": "number" }, - "TableName": { - "type": "string" + "SSESpecification": { + "$ref": "#/definitions/AWS::DAX::Cluster.SSESpecification" }, - "Tags": { + "SecurityGroupIds": { "items": { - "$ref": "#/definitions/Tag" + "type": "string" }, "type": "array" }, - "TimeToLiveSpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.TimeToLiveSpecification" + "SubnetGroupName": { + "type": "string" + }, + "Tags": { + "type": "object" } }, "required": [ - "KeySchema" + "IAMRoleARN", + "NodeType", + "ReplicationFactor" ], "type": "object" }, "Type": { "enum": [ - "AWS::DynamoDB::Table" + "AWS::DAX::Cluster" ], "type": "string" } @@ -11234,168 +10910,16 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::DynamoDB::Table.AttributeDefinition": { - "additionalProperties": false, - "properties": { - "AttributeName": { - "type": "string" - }, - "AttributeType": { - "type": "string" - } - }, - "required": [ - "AttributeName", - "AttributeType" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.GlobalSecondaryIndex": { - "additionalProperties": false, - "properties": { - "IndexName": { - "type": "string" - }, - "KeySchema": { - "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" - }, - "type": "array" - }, - "Projection": { - "$ref": "#/definitions/AWS::DynamoDB::Table.Projection" - }, - "ProvisionedThroughput": { - "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput" - } - }, - "required": [ - "IndexName", - "KeySchema", - "Projection" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.KeySchema": { - "additionalProperties": false, - "properties": { - "AttributeName": { - "type": "string" - }, - "KeyType": { - "type": "string" - } - }, - "required": [ - "AttributeName", - "KeyType" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.LocalSecondaryIndex": { - "additionalProperties": false, - "properties": { - "IndexName": { - "type": "string" - }, - "KeySchema": { - "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" - }, - "type": "array" - }, - "Projection": { - "$ref": "#/definitions/AWS::DynamoDB::Table.Projection" - } - }, - "required": [ - "IndexName", - "KeySchema", - "Projection" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.PointInTimeRecoverySpecification": { - "additionalProperties": false, - "properties": { - "PointInTimeRecoveryEnabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::DynamoDB::Table.Projection": { - "additionalProperties": false, - "properties": { - "NonKeyAttributes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ProjectionType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::DynamoDB::Table.ProvisionedThroughput": { - "additionalProperties": false, - "properties": { - "ReadCapacityUnits": { - "type": "number" - }, - "WriteCapacityUnits": { - "type": "number" - } - }, - "required": [ - "ReadCapacityUnits", - "WriteCapacityUnits" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.SSESpecification": { + "AWS::DAX::Cluster.SSESpecification": { "additionalProperties": false, "properties": { "SSEEnabled": { "type": "boolean" } }, - "required": [ - "SSEEnabled" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.StreamSpecification": { - "additionalProperties": false, - "properties": { - "StreamViewType": { - "type": "string" - } - }, - "required": [ - "StreamViewType" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.TimeToLiveSpecification": { - "additionalProperties": false, - "properties": { - "AttributeName": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - } - }, - "required": [ - "AttributeName", - "Enabled" - ], "type": "object" }, - "AWS::EC2::CustomerGateway": { + "AWS::DAX::ParameterGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11427,43 +10951,31 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "BgpAsn": { - "type": "number" - }, - "IpAddress": { + "Description": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { + "ParameterGroupName": { "type": "string" + }, + "ParameterNameValues": { + "type": "object" } }, - "required": [ - "BgpAsn", - "IpAddress", - "Type" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::CustomerGateway" + "AWS::DAX::ParameterGroup" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::DHCPOptions": { + "AWS::DAX::SubnetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11495,52 +11007,38 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DomainName": { + "Description": { "type": "string" }, - "DomainNameServers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "NetbiosNameServers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "NetbiosNodeType": { - "type": "number" + "SubnetGroupName": { + "type": "string" }, - "NtpServers": { + "SubnetIds": { "items": { "type": "string" }, "type": "array" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" } }, + "required": [ + "SubnetIds" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::DHCPOptions" + "AWS::DAX::SubnetGroup" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::EC2Fleet": { + "AWS::DLM::LifecyclePolicy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11572,192 +11070,116 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ExcessCapacityTerminationPolicy": { + "Description": { "type": "string" }, - "LaunchTemplateConfigs": { - "items": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest" - }, - "type": "array" - }, - "OnDemandOptions": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.OnDemandOptionsRequest" - }, - "ReplaceUnhealthyInstances": { - "type": "boolean" - }, - "SpotOptions": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.SpotOptionsRequest" - }, - "TagSpecifications": { - "items": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.TagSpecification" - }, - "type": "array" - }, - "TargetCapacitySpecification": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest" - }, - "TerminateInstancesWithExpiration": { - "type": "boolean" - }, - "Type": { + "ExecutionRoleArn": { "type": "string" }, - "ValidFrom": { - "type": "number" + "PolicyDetails": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.PolicyDetails" }, - "ValidUntil": { - "type": "number" + "State": { + "type": "string" } }, - "required": [ - "LaunchTemplateConfigs", - "TargetCapacitySpecification" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::EC2Fleet" + "AWS::DLM::LifecyclePolicy" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest": { - "additionalProperties": false, - "properties": { - "LaunchTemplateSpecification": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest" - }, - "Overrides": { - "items": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest": { + "AWS::DLM::LifecyclePolicy.CreateRule": { "additionalProperties": false, "properties": { - "AvailabilityZone": { - "type": "string" - }, - "InstanceType": { - "type": "string" - }, - "MaxPrice": { - "type": "string" - }, - "Priority": { + "Interval": { "type": "number" }, - "SubnetId": { + "IntervalUnit": { "type": "string" }, - "WeightedCapacity": { - "type": "number" + "Times": { + "items": { + "type": "string" + }, + "type": "array" } }, + "required": [ + "Interval", + "IntervalUnit" + ], "type": "object" }, - "AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest": { + "AWS::DLM::LifecyclePolicy.PolicyDetails": { "additionalProperties": false, "properties": { - "LaunchTemplateId": { - "type": "string" + "ResourceTypes": { + "items": { + "type": "string" + }, + "type": "array" }, - "LaunchTemplateName": { - "type": "string" + "Schedules": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Schedule" + }, + "type": "array" }, - "Version": { - "type": "string" + "TargetTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "type": "object" }, - "AWS::EC2::EC2Fleet.OnDemandOptionsRequest": { + "AWS::DLM::LifecyclePolicy.RetainRule": { "additionalProperties": false, "properties": { - "AllocationStrategy": { - "type": "string" + "Count": { + "type": "number" } }, + "required": [ + "Count" + ], "type": "object" }, - "AWS::EC2::EC2Fleet.SpotOptionsRequest": { + "AWS::DLM::LifecyclePolicy.Schedule": { "additionalProperties": false, "properties": { - "AllocationStrategy": { - "type": "string" + "CopyTags": { + "type": "boolean" }, - "InstanceInterruptionBehavior": { - "type": "string" + "CreateRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CreateRule" }, - "InstancePoolsToUseCount": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::EC2::EC2Fleet.TagRequest": { - "additionalProperties": false, - "properties": { - "Key": { + "Name": { "type": "string" }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::EC2Fleet.TagSpecification": { - "additionalProperties": false, - "properties": { - "ResourceType": { - "type": "string" + "RetainRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.RetainRule" }, - "Tags": { + "TagsToAdd": { "items": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.TagRequest" + "$ref": "#/definitions/Tag" }, "type": "array" } }, "type": "object" }, - "AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest": { - "additionalProperties": false, - "properties": { - "DefaultTargetCapacityType": { - "type": "string" - }, - "OnDemandTargetCapacity": { - "type": "number" - }, - "SpotTargetCapacity": { - "type": "number" - }, - "TotalTargetCapacity": { - "type": "number" - } - }, - "required": [ - "TotalTargetCapacity" - ], - "type": "object" - }, - "AWS::EC2::EIP": { + "AWS::DMS::Certificate": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11789,13 +11211,13 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Domain": { + "CertificateIdentifier": { "type": "string" }, - "InstanceId": { + "CertificatePem": { "type": "string" }, - "PublicIpv4Pool": { + "CertificateWallet": { "type": "string" } }, @@ -11803,7 +11225,7 @@ var SamSchema = `{ }, "Type": { "enum": [ - "AWS::EC2::EIP" + "AWS::DMS::Certificate" ], "type": "string" } @@ -11813,7 +11235,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::EIPAssociation": { + "AWS::DMS::Endpoint": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11845,37 +11267,192 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AllocationId": { + "CertificateArn": { "type": "string" }, - "EIP": { + "DatabaseName": { "type": "string" }, - "InstanceId": { + "DynamoDbSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.DynamoDbSettings" + }, + "ElasticsearchSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.ElasticsearchSettings" + }, + "EndpointIdentifier": { "type": "string" }, - "NetworkInterfaceId": { + "EndpointType": { "type": "string" }, - "PrivateIpAddress": { + "EngineName": { + "type": "string" + }, + "ExtraConnectionAttributes": { + "type": "string" + }, + "KinesisSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.KinesisSettings" + }, + "KmsKeyId": { + "type": "string" + }, + "MongoDbSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.MongoDbSettings" + }, + "Password": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "S3Settings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.S3Settings" + }, + "ServerName": { + "type": "string" + }, + "SslMode": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Username": { "type": "string" } }, + "required": [ + "EndpointType", + "EngineName" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::EIPAssociation" + "AWS::DMS::Endpoint" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::EgressOnlyInternetGateway": { + "AWS::DMS::Endpoint.DynamoDbSettings": { + "additionalProperties": false, + "properties": { + "ServiceAccessRoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.ElasticsearchSettings": { + "additionalProperties": false, + "properties": { + "EndpointUri": { + "type": "string" + }, + "ErrorRetryDuration": { + "type": "number" + }, + "FullLoadErrorPercentage": { + "type": "number" + }, + "ServiceAccessRoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.KinesisSettings": { + "additionalProperties": false, + "properties": { + "MessageFormat": { + "type": "string" + }, + "ServiceAccessRoleArn": { + "type": "string" + }, + "StreamArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.MongoDbSettings": { + "additionalProperties": false, + "properties": { + "AuthMechanism": { + "type": "string" + }, + "AuthSource": { + "type": "string" + }, + "AuthType": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DocsToInvestigate": { + "type": "string" + }, + "ExtractDocId": { + "type": "string" + }, + "NestingLevel": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "ServerName": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.S3Settings": { + "additionalProperties": false, + "properties": { + "BucketFolder": { + "type": "string" + }, + "BucketName": { + "type": "string" + }, + "CompressionType": { + "type": "string" + }, + "CsvDelimiter": { + "type": "string" + }, + "CsvRowDelimiter": { + "type": "string" + }, + "ExternalTableDefinition": { + "type": "string" + }, + "ServiceAccessRoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::EventSubscription": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11907,18 +11484,45 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "VpcId": { + "Enabled": { + "type": "boolean" + }, + "EventCategories": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnsTopicArn": { + "type": "string" + }, + "SourceIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceType": { "type": "string" + }, + "SubscriptionName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "VpcId" + "SnsTopicArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::EgressOnlyInternetGateway" + "AWS::DMS::EventSubscription" ], "type": "string" } @@ -11929,7 +11533,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::FlowLog": { + "AWS::DMS::ReplicationInstance": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11961,38 +11565,63 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DeliverLogsPermissionArn": { + "AllocatedStorage": { + "type": "number" + }, + "AllowMajorVersionUpgrade": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZone": { "type": "string" }, - "LogDestination": { + "EngineVersion": { "type": "string" }, - "LogDestinationType": { + "KmsKeyId": { "type": "string" }, - "LogGroupName": { + "MultiAZ": { + "type": "boolean" + }, + "PreferredMaintenanceWindow": { "type": "string" }, - "ResourceId": { + "PubliclyAccessible": { + "type": "boolean" + }, + "ReplicationInstanceClass": { "type": "string" }, - "ResourceType": { + "ReplicationInstanceIdentifier": { "type": "string" }, - "TrafficType": { + "ReplicationSubnetGroupIdentifier": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "ResourceId", - "ResourceType", - "TrafficType" + "ReplicationInstanceClass" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::FlowLog" + "AWS::DMS::ReplicationInstance" ], "type": "string" } @@ -12003,7 +11632,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::Host": { + "AWS::DMS::ReplicationSubnetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -12035,25 +11664,34 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AutoPlacement": { + "ReplicationSubnetGroupDescription": { "type": "string" }, - "AvailabilityZone": { + "ReplicationSubnetGroupIdentifier": { "type": "string" }, - "InstanceType": { - "type": "string" - } - }, - "required": [ - "AvailabilityZone", - "InstanceType" - ], + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ReplicationSubnetGroupDescription", + "SubnetIds" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Host" + "AWS::DMS::ReplicationSubnetGroup" ], "type": "string" } @@ -12064,12 +11702,9 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::Instance": { + "AWS::DMS::ReplicationTask": { "additionalProperties": false, "properties": { - "CreationPolicy": { - "type": "object" - }, "DeletionPolicy": { "enum": [ "Delete", @@ -12099,405 +11734,253 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AdditionalInfo": { - "type": "string" - }, - "Affinity": { - "type": "string" + "CdcStartTime": { + "type": "number" }, - "AvailabilityZone": { + "MigrationType": { "type": "string" }, - "BlockDeviceMappings": { - "items": { - "$ref": "#/definitions/AWS::EC2::Instance.BlockDeviceMapping" - }, - "type": "array" - }, - "CreditSpecification": { - "$ref": "#/definitions/AWS::EC2::Instance.CreditSpecification" - }, - "DisableApiTermination": { - "type": "boolean" - }, - "EbsOptimized": { - "type": "boolean" - }, - "ElasticGpuSpecifications": { - "items": { - "$ref": "#/definitions/AWS::EC2::Instance.ElasticGpuSpecification" - }, - "type": "array" - }, - "ElasticInferenceAccelerators": { - "items": { - "$ref": "#/definitions/AWS::EC2::Instance.ElasticInferenceAccelerator" - }, - "type": "array" - }, - "HostId": { + "ReplicationInstanceArn": { "type": "string" }, - "IamInstanceProfile": { + "ReplicationTaskIdentifier": { "type": "string" }, - "ImageId": { + "ReplicationTaskSettings": { "type": "string" }, - "InstanceInitiatedShutdownBehavior": { + "SourceEndpointArn": { "type": "string" }, - "InstanceType": { + "TableMappings": { "type": "string" }, - "Ipv6AddressCount": { - "type": "number" - }, - "Ipv6Addresses": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "KernelId": { + "TargetEndpointArn": { "type": "string" - }, - "KeyName": { + } + }, + "required": [ + "MigrationType", + "ReplicationInstanceArn", + "SourceEndpointArn", + "TableMappings", + "TargetEndpointArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DMS::ReplicationTask" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - "LaunchTemplate": { - "$ref": "#/definitions/AWS::EC2::Instance.LaunchTemplateSpecification" - }, - "LicenseSpecifications": { + { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.LicenseSpecification" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" - }, - "Monitoring": { + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Activate": { "type": "boolean" }, - "NetworkInterfaces": { - "items": { - "$ref": "#/definitions/AWS::EC2::Instance.NetworkInterface" - }, - "type": "array" - }, - "PlacementGroupName": { - "type": "string" - }, - "PrivateIpAddress": { + "Description": { "type": "string" }, - "RamdiskId": { + "Name": { "type": "string" }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SecurityGroups": { + "ParameterObjects": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterObject" }, "type": "array" }, - "SourceDestCheck": { - "type": "boolean" - }, - "SsmAssociations": { + "ParameterValues": { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.SsmAssociation" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterValue" }, "type": "array" }, - "SubnetId": { - "type": "string" - }, - "Tags": { + "PipelineObjects": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineObject" }, "type": "array" }, - "Tenancy": { - "type": "string" - }, - "UserData": { - "type": "string" - }, - "Volumes": { + "PipelineTags": { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.Volume" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineTag" }, "type": "array" } }, + "required": [ + "Name", + "ParameterObjects" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Instance" + "AWS::DataPipeline::Pipeline" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::Instance.AssociationParameter": { + "AWS::DataPipeline::Pipeline.Field": { "additionalProperties": false, "properties": { "Key": { "type": "string" }, - "Value": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "AWS::EC2::Instance.BlockDeviceMapping": { - "additionalProperties": false, - "properties": { - "DeviceName": { - "type": "string" - }, - "Ebs": { - "$ref": "#/definitions/AWS::EC2::Instance.Ebs" - }, - "NoDevice": { - "$ref": "#/definitions/AWS::EC2::Instance.NoDevice" - }, - "VirtualName": { - "type": "string" - } - }, - "required": [ - "DeviceName" - ], - "type": "object" - }, - "AWS::EC2::Instance.CreditSpecification": { - "additionalProperties": false, - "properties": { - "CPUCredits": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::Instance.Ebs": { - "additionalProperties": false, - "properties": { - "DeleteOnTermination": { - "type": "boolean" - }, - "Encrypted": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "SnapshotId": { + "RefValue": { "type": "string" }, - "VolumeSize": { - "type": "number" - }, - "VolumeType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::Instance.ElasticGpuSpecification": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::EC2::Instance.ElasticInferenceAccelerator": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::EC2::Instance.InstanceIpv6Address": { - "additionalProperties": false, - "properties": { - "Ipv6Address": { + "StringValue": { "type": "string" } }, "required": [ - "Ipv6Address" + "Key" ], "type": "object" }, - "AWS::EC2::Instance.LaunchTemplateSpecification": { + "AWS::DataPipeline::Pipeline.ParameterAttribute": { "additionalProperties": false, "properties": { - "LaunchTemplateId": { - "type": "string" - }, - "LaunchTemplateName": { + "Key": { "type": "string" }, - "Version": { - "type": "string" - } - }, - "required": [ - "Version" - ], - "type": "object" - }, - "AWS::EC2::Instance.LicenseSpecification": { - "additionalProperties": false, - "properties": { - "LicenseConfigurationArn": { + "StringValue": { "type": "string" } }, "required": [ - "LicenseConfigurationArn" + "Key", + "StringValue" ], "type": "object" }, - "AWS::EC2::Instance.NetworkInterface": { + "AWS::DataPipeline::Pipeline.ParameterObject": { "additionalProperties": false, "properties": { - "AssociatePublicIpAddress": { - "type": "boolean" - }, - "DeleteOnTermination": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "DeviceIndex": { - "type": "string" - }, - "GroupSet": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Ipv6AddressCount": { - "type": "number" - }, - "Ipv6Addresses": { - "items": { - "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address" - }, - "type": "array" - }, - "NetworkInterfaceId": { - "type": "string" - }, - "PrivateIpAddress": { - "type": "string" - }, - "PrivateIpAddresses": { + "Attributes": { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.PrivateIpAddressSpecification" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterAttribute" }, "type": "array" }, - "SecondaryPrivateIpAddressCount": { - "type": "number" - }, - "SubnetId": { + "Id": { "type": "string" } }, "required": [ - "DeviceIndex" + "Attributes", + "Id" ], "type": "object" }, - "AWS::EC2::Instance.NoDevice": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "AWS::EC2::Instance.PrivateIpAddressSpecification": { + "AWS::DataPipeline::Pipeline.ParameterValue": { "additionalProperties": false, "properties": { - "Primary": { - "type": "boolean" + "Id": { + "type": "string" }, - "PrivateIpAddress": { + "StringValue": { "type": "string" } }, "required": [ - "Primary", - "PrivateIpAddress" + "Id", + "StringValue" ], "type": "object" }, - "AWS::EC2::Instance.SsmAssociation": { + "AWS::DataPipeline::Pipeline.PipelineObject": { "additionalProperties": false, "properties": { - "AssociationParameters": { + "Fields": { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.AssociationParameter" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.Field" }, "type": "array" }, - "DocumentName": { + "Id": { + "type": "string" + }, + "Name": { "type": "string" } }, "required": [ - "DocumentName" + "Fields", + "Id", + "Name" ], "type": "object" }, - "AWS::EC2::Instance.Volume": { + "AWS::DataPipeline::Pipeline.PipelineTag": { "additionalProperties": false, "properties": { - "Device": { + "Key": { "type": "string" }, - "VolumeId": { + "Value": { "type": "string" } }, "required": [ - "Device", - "VolumeId" + "Key", + "Value" ], "type": "object" }, - "AWS::EC2::InternetGateway": { + "AWS::DirectoryService::MicrosoftAD": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -12529,28 +12012,68 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "CreateAlias": { + "type": "boolean" + }, + "Edition": { + "type": "string" + }, + "EnableSso": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/AWS::DirectoryService::MicrosoftAD.VpcSettings" } }, + "required": [ + "Name", + "Password", + "VpcSettings" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::InternetGateway" + "AWS::DirectoryService::MicrosoftAD" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::LaunchTemplate": { + "AWS::DirectoryService::MicrosoftAD.VpcSettings": { + "additionalProperties": false, + "properties": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "SubnetIds", + "VpcId" + ], + "type": "object" + }, + "AWS::DirectoryService::SimpleAD": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -12582,331 +12105,72 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "LaunchTemplateData": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateData" + "CreateAlias": { + "type": "boolean" }, - "LaunchTemplateName": { + "Description": { + "type": "string" + }, + "EnableSso": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { "type": "string" + }, + "Size": { + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/AWS::DirectoryService::SimpleAD.VpcSettings" } }, + "required": [ + "Name", + "Password", + "Size", + "VpcSettings" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::LaunchTemplate" + "AWS::DirectoryService::SimpleAD" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::LaunchTemplate.BlockDeviceMapping": { + "AWS::DirectoryService::SimpleAD.VpcSettings": { "additionalProperties": false, "properties": { - "DeviceName": { - "type": "string" + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "Ebs": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ebs" - }, - "NoDevice": { - "type": "string" - }, - "VirtualName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.CreditSpecification": { - "additionalProperties": false, - "properties": { - "CpuCredits": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.Ebs": { - "additionalProperties": false, - "properties": { - "DeleteOnTermination": { - "type": "boolean" - }, - "Encrypted": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "KmsKeyId": { - "type": "string" - }, - "SnapshotId": { - "type": "string" - }, - "VolumeSize": { - "type": "number" - }, - "VolumeType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.ElasticGpuSpecification": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.IamInstanceProfile": { - "additionalProperties": false, - "properties": { - "Arn": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.InstanceMarketOptions": { - "additionalProperties": false, - "properties": { - "MarketType": { - "type": "string" - }, - "SpotOptions": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.SpotOptions" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.Ipv6Add": { - "additionalProperties": false, - "properties": { - "Ipv6Address": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.LaunchTemplateData": { - "additionalProperties": false, - "properties": { - "BlockDeviceMappings": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.BlockDeviceMapping" - }, - "type": "array" - }, - "CreditSpecification": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CreditSpecification" - }, - "DisableApiTermination": { - "type": "boolean" - }, - "EbsOptimized": { - "type": "boolean" - }, - "ElasticGpuSpecifications": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.ElasticGpuSpecification" - }, - "type": "array" - }, - "IamInstanceProfile": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.IamInstanceProfile" - }, - "ImageId": { - "type": "string" - }, - "InstanceInitiatedShutdownBehavior": { - "type": "string" - }, - "InstanceMarketOptions": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.InstanceMarketOptions" - }, - "InstanceType": { - "type": "string" - }, - "KernelId": { - "type": "string" - }, - "KeyName": { - "type": "string" - }, - "Monitoring": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Monitoring" - }, - "NetworkInterfaces": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.NetworkInterface" - }, - "type": "array" - }, - "Placement": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Placement" - }, - "RamDiskId": { - "type": "string" - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "TagSpecifications": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.TagSpecification" - }, - "type": "array" - }, - "UserData": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.Monitoring": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.NetworkInterface": { - "additionalProperties": false, - "properties": { - "AssociatePublicIpAddress": { - "type": "boolean" - }, - "DeleteOnTermination": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "DeviceIndex": { - "type": "number" - }, - "Groups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Ipv6AddressCount": { - "type": "number" - }, - "Ipv6Addresses": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ipv6Add" - }, - "type": "array" - }, - "NetworkInterfaceId": { - "type": "string" - }, - "PrivateIpAddress": { - "type": "string" - }, - "PrivateIpAddresses": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.PrivateIpAdd" - }, - "type": "array" - }, - "SecondaryPrivateIpAddressCount": { - "type": "number" - }, - "SubnetId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.Placement": { - "additionalProperties": false, - "properties": { - "Affinity": { - "type": "string" - }, - "AvailabilityZone": { - "type": "string" - }, - "GroupName": { - "type": "string" - }, - "HostId": { - "type": "string" - }, - "Tenancy": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.PrivateIpAdd": { - "additionalProperties": false, - "properties": { - "Primary": { - "type": "boolean" - }, - "PrivateIpAddress": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.SpotOptions": { - "additionalProperties": false, - "properties": { - "InstanceInterruptionBehavior": { - "type": "string" - }, - "MaxPrice": { - "type": "string" - }, - "SpotInstanceType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.TagSpecification": { - "additionalProperties": false, - "properties": { - "ResourceType": { + "VpcId": { "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" } }, + "required": [ + "SubnetIds", + "VpcId" + ], "type": "object" }, - "AWS::EC2::NatGateway": { + "AWS::DocDB::DBCluster": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -12938,39 +12202,79 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AllocationId": { + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BackupRetentionPeriod": { + "type": "number" + }, + "DBClusterIdentifier": { "type": "string" }, - "SubnetId": { + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUsername": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "SnapshotIdentifier": { "type": "string" }, + "StorageEncrypted": { + "type": "boolean" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "AllocationId", - "SubnetId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::NatGateway" + "AWS::DocDB::DBCluster" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::NetworkAcl": { + "AWS::DocDB::DBClusterParameterGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13002,24 +12306,35 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "VpcId": { - "type": "string" } }, "required": [ - "VpcId" + "Description", + "Family", + "Parameters" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::NetworkAcl" + "AWS::DocDB::DBClusterParameterGroup" ], "type": "string" } @@ -13030,7 +12345,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::NetworkAclEntry": { + "AWS::DocDB::DBInstance": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13062,46 +12377,40 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CidrBlock": { - "type": "string" - }, - "Egress": { + "AutoMinorVersionUpgrade": { "type": "boolean" }, - "Icmp": { - "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.Icmp" - }, - "Ipv6CidrBlock": { + "AvailabilityZone": { "type": "string" }, - "NetworkAclId": { + "DBClusterIdentifier": { "type": "string" }, - "PortRange": { - "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.PortRange" + "DBInstanceClass": { + "type": "string" }, - "Protocol": { - "type": "number" + "DBInstanceIdentifier": { + "type": "string" }, - "RuleAction": { + "PreferredMaintenanceWindow": { "type": "string" }, - "RuleNumber": { - "type": "number" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "CidrBlock", - "NetworkAclId", - "Protocol", - "RuleAction", - "RuleNumber" + "DBClusterIdentifier", + "DBInstanceClass" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::NetworkAclEntry" + "AWS::DocDB::DBInstance" ], "type": "string" } @@ -13112,31 +12421,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::NetworkAclEntry.Icmp": { - "additionalProperties": false, - "properties": { - "Code": { - "type": "number" - }, - "Type": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::EC2::NetworkAclEntry.PortRange": { - "additionalProperties": false, - "properties": { - "From": { - "type": "number" - }, - "To": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::EC2::NetworkInterface": { + "AWS::DocDB::DBSubnetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13168,42 +12453,18 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" - }, - "GroupSet": { - "items": { - "type": "string" - }, - "type": "array" - }, - "InterfaceType": { + "DBSubnetGroupDescription": { "type": "string" }, - "Ipv6AddressCount": { - "type": "number" - }, - "Ipv6Addresses": { - "$ref": "#/definitions/AWS::EC2::NetworkInterface.InstanceIpv6Address" - }, - "PrivateIpAddress": { + "DBSubnetGroupName": { "type": "string" }, - "PrivateIpAddresses": { + "SubnetIds": { "items": { - "$ref": "#/definitions/AWS::EC2::NetworkInterface.PrivateIpAddressSpecification" + "type": "string" }, "type": "array" }, - "SecondaryPrivateIpAddressCount": { - "type": "number" - }, - "SourceDestCheck": { - "type": "boolean" - }, - "SubnetId": { - "type": "string" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -13212,13 +12473,14 @@ var SamSchema = `{ } }, "required": [ - "SubnetId" + "DBSubnetGroupDescription", + "SubnetIds" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::NetworkInterface" + "AWS::DocDB::DBSubnetGroup" ], "type": "string" } @@ -13229,35 +12491,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::NetworkInterface.InstanceIpv6Address": { - "additionalProperties": false, - "properties": { - "Ipv6Address": { - "type": "string" - } - }, - "required": [ - "Ipv6Address" - ], - "type": "object" - }, - "AWS::EC2::NetworkInterface.PrivateIpAddressSpecification": { - "additionalProperties": false, - "properties": { - "Primary": { - "type": "boolean" - }, - "PrivateIpAddress": { - "type": "string" - } - }, - "required": [ - "Primary", - "PrivateIpAddress" - ], - "type": "object" - }, - "AWS::EC2::NetworkInterfaceAttachment": { + "AWS::DynamoDB::Table": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13289,29 +12523,66 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DeleteOnTermination": { - "type": "boolean" + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.AttributeDefinition" + }, + "type": "array" }, - "DeviceIndex": { + "BillingMode": { "type": "string" }, - "InstanceId": { - "type": "string" + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.GlobalSecondaryIndex" + }, + "type": "array" }, - "NetworkInterfaceId": { + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" + }, + "type": "array" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.LocalSecondaryIndex" + }, + "type": "array" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput" + }, + "SSESpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.SSESpecification" + }, + "StreamSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.StreamSpecification" + }, + "TableName": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.TimeToLiveSpecification" } }, "required": [ - "DeviceIndex", - "InstanceId", - "NetworkInterfaceId" + "KeySchema" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::NetworkInterfaceAttachment" + "AWS::DynamoDB::Table" ], "type": "string" } @@ -13322,119 +12593,168 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::NetworkInterfacePermission": { + "AWS::DynamoDB::Table.AttributeDefinition": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "AttributeName": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "AwsAccountId": { - "type": "string" - }, - "NetworkInterfaceId": { - "type": "string" - }, - "Permission": { - "type": "string" - } + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" }, - "required": [ - "AwsAccountId", - "NetworkInterfaceId", - "Permission" - ], - "type": "object" + "type": "array" }, - "Type": { - "enum": [ - "AWS::EC2::NetworkInterfacePermission" - ], - "type": "string" + "Projection": { + "$ref": "#/definitions/AWS::DynamoDB::Table.Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput" } }, "required": [ - "Type", - "Properties" + "IndexName", + "KeySchema", + "Projection" ], "type": "object" }, - "AWS::EC2::PlacementGroup": { + "AWS::DynamoDB::Table.KeySchema": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "AttributeName": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "KeyType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "KeyType" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" }, - "Metadata": { - "type": "object" + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" + }, + "type": "array" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Strategy": { - "type": "string" - } + "Projection": { + "$ref": "#/definitions/AWS::DynamoDB::Table.Projection" + } + }, + "required": [ + "IndexName", + "KeySchema", + "Projection" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::DynamoDB::Table.Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" }, - "type": "object" + "type": "array" }, - "Type": { - "enum": [ - "AWS::EC2::PlacementGroup" - ], + "ProjectionType": { "type": "string" } }, + "type": "object" + }, + "AWS::DynamoDB::Table.ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "number" + }, + "WriteCapacityUnits": { + "type": "number" + } + }, "required": [ - "Type" + "ReadCapacityUnits", + "WriteCapacityUnits" ], "type": "object" }, - "AWS::EC2::Route": { + "AWS::DynamoDB::Table.SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "AttributeName", + "Enabled" + ], + "type": "object" + }, + "AWS::EC2::CustomerGateway": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13466,42 +12786,32 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DestinationCidrBlock": { - "type": "string" - }, - "DestinationIpv6CidrBlock": { - "type": "string" - }, - "EgressOnlyInternetGatewayId": { - "type": "string" - }, - "GatewayId": { - "type": "string" - }, - "InstanceId": { - "type": "string" - }, - "NatGatewayId": { - "type": "string" + "BgpAsn": { + "type": "number" }, - "NetworkInterfaceId": { + "IpAddress": { "type": "string" }, - "RouteTableId": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "VpcPeeringConnectionId": { + "Type": { "type": "string" } }, "required": [ - "RouteTableId" + "BgpAsn", + "IpAddress", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Route" + "AWS::EC2::CustomerGateway" ], "type": "string" } @@ -13512,7 +12822,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::RouteTable": { + "AWS::EC2::DHCPOptions": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13544,35 +12854,52 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "DomainName": { + "type": "string" + }, + "DomainNameServers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "NetbiosNameServers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "NetbiosNodeType": { + "type": "number" + }, + "NtpServers": { + "items": { + "type": "string" + }, + "type": "array" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "VpcId": { - "type": "string" } }, - "required": [ - "VpcId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::RouteTable" + "AWS::EC2::DHCPOptions" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::SecurityGroup": { + "AWS::EC2::EC2Fleet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13604,42 +12931,55 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "GroupDescription": { - "type": "string" - }, - "GroupName": { + "ExcessCapacityTerminationPolicy": { "type": "string" }, - "SecurityGroupEgress": { + "LaunchTemplateConfigs": { "items": { - "$ref": "#/definitions/AWS::EC2::SecurityGroup.Egress" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest" }, "type": "array" }, - "SecurityGroupIngress": { - "items": { - "$ref": "#/definitions/AWS::EC2::SecurityGroup.Ingress" - }, - "type": "array" + "OnDemandOptions": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.OnDemandOptionsRequest" }, - "Tags": { + "ReplaceUnhealthyInstances": { + "type": "boolean" + }, + "SpotOptions": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.SpotOptionsRequest" + }, + "TagSpecifications": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TagSpecification" }, "type": "array" }, - "VpcId": { + "TargetCapacitySpecification": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest" + }, + "TerminateInstancesWithExpiration": { + "type": "boolean" + }, + "Type": { + "type": "string" + }, + "ValidFrom": { + "type": "string" + }, + "ValidUntil": { "type": "string" } }, "required": [ - "GroupDescription" + "LaunchTemplateConfigs", + "TargetCapacitySpecification" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SecurityGroup" + "AWS::EC2::EC2Fleet" ], "type": "string" } @@ -13650,79 +12990,133 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::SecurityGroup.Egress": { + "AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest": { "additionalProperties": false, "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest" }, - "Description": { + "Overrides": { + "items": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { "type": "string" }, - "DestinationPrefixListId": { + "InstanceType": { "type": "string" }, - "DestinationSecurityGroupId": { + "MaxPrice": { "type": "string" }, - "FromPort": { + "Priority": { "type": "number" }, - "IpProtocol": { + "SubnetId": { "type": "string" }, - "ToPort": { + "WeightedCapacity": { "type": "number" } }, - "required": [ - "IpProtocol" - ], "type": "object" }, - "AWS::EC2::SecurityGroup.Ingress": { + "AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest": { "additionalProperties": false, "properties": { - "CidrIp": { + "LaunchTemplateId": { "type": "string" }, - "CidrIpv6": { + "LaunchTemplateName": { "type": "string" }, - "Description": { + "Version": { "type": "string" - }, - "FromPort": { - "type": "number" - }, - "IpProtocol": { + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.OnDemandOptionsRequest": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.SpotOptionsRequest": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { "type": "string" }, - "SourcePrefixListId": { + "InstanceInterruptionBehavior": { "type": "string" }, - "SourceSecurityGroupId": { + "InstancePoolsToUseCount": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.TagRequest": { + "additionalProperties": false, + "properties": { + "Key": { "type": "string" }, - "SourceSecurityGroupName": { + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { "type": "string" }, - "SourceSecurityGroupOwnerId": { + "Tags": { + "items": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TagRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest": { + "additionalProperties": false, + "properties": { + "DefaultTargetCapacityType": { "type": "string" }, - "ToPort": { + "OnDemandTargetCapacity": { + "type": "number" + }, + "SpotTargetCapacity": { + "type": "number" + }, + "TotalTargetCapacity": { "type": "number" } }, "required": [ - "IpProtocol" + "TotalTargetCapacity" ], "type": "object" }, - "AWS::EC2::SecurityGroupEgress": { + "AWS::EC2::EIP": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13754,43 +13148,136 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { + "Domain": { "type": "string" }, - "Description": { + "InstanceId": { "type": "string" }, - "DestinationPrefixListId": { + "PublicIpv4Pool": { "type": "string" - }, - "DestinationSecurityGroupId": { + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::EIP" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::EIPAssociation": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - "FromPort": { - "type": "number" + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" }, - "GroupId": { + "EIP": { "type": "string" }, - "IpProtocol": { + "InstanceId": { "type": "string" }, - "ToPort": { - "type": "number" + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::EIPAssociation" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::EgressOnlyInternetGateway": { + "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": { + "VpcId": { + "type": "string" } }, "required": [ - "GroupId", - "IpProtocol" + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SecurityGroupEgress" + "AWS::EC2::EgressOnlyInternetGateway" ], "type": "string" } @@ -13801,7 +13288,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::SecurityGroupIngress": { + "AWS::EC2::FlowLog": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13833,51 +13320,38 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "FromPort": { - "type": "number" - }, - "GroupId": { + "DeliverLogsPermissionArn": { "type": "string" }, - "GroupName": { + "LogDestination": { "type": "string" }, - "IpProtocol": { + "LogDestinationType": { "type": "string" }, - "SourcePrefixListId": { + "LogGroupName": { "type": "string" }, - "SourceSecurityGroupId": { + "ResourceId": { "type": "string" }, - "SourceSecurityGroupName": { + "ResourceType": { "type": "string" }, - "SourceSecurityGroupOwnerId": { + "TrafficType": { "type": "string" - }, - "ToPort": { - "type": "number" } }, "required": [ - "IpProtocol" + "ResourceId", + "ResourceType", + "TrafficType" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SecurityGroupIngress" + "AWS::EC2::FlowLog" ], "type": "string" } @@ -13888,7 +13362,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::SpotFleet": { + "AWS::EC2::Host": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13920,18 +13394,25 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "SpotFleetRequestConfigData": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetRequestConfigData" + "AutoPlacement": { + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "InstanceType": { + "type": "string" } }, "required": [ - "SpotFleetRequestConfigData" + "AvailabilityZone", + "InstanceType" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SpotFleet" + "AWS::EC2::Host" ], "type": "string" } @@ -13942,55 +13423,241 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::SpotFleet.BlockDeviceMapping": { + "AWS::EC2::Instance": { "additionalProperties": false, "properties": { - "DeviceName": { + "CreationPolicy": { + "type": "object" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "Ebs": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.EbsBlockDevice" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "NoDevice": { - "type": "string" + "Metadata": { + "type": "object" }, - "VirtualName": { + "Properties": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.BlockDeviceMapping" + }, + "type": "array" + }, + "CreditSpecification": { + "$ref": "#/definitions/AWS::EC2::Instance.CreditSpecification" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.ElasticGpuSpecification" + }, + "type": "array" + }, + "ElasticInferenceAccelerators": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.ElasticInferenceAccelerator" + }, + "type": "array" + }, + "HostId": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Ipv6AddressCount": { + "type": "number" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address" + }, + "type": "array" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::EC2::Instance.LaunchTemplateSpecification" + }, + "LicenseSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.LicenseSpecification" + }, + "type": "array" + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.NetworkInterface" + }, + "type": "array" + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.SsmAssociation" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Tenancy": { + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.Volume" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::Instance" + ], "type": "string" } }, "required": [ - "DeviceName" + "Type" ], "type": "object" }, - "AWS::EC2::SpotFleet.ClassicLoadBalancer": { + "AWS::EC2::Instance.AssociationParameter": { "additionalProperties": false, "properties": { - "Name": { + "Key": { "type": "string" + }, + "Value": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "Name" + "Key", + "Value" ], "type": "object" }, - "AWS::EC2::SpotFleet.ClassicLoadBalancersConfig": { + "AWS::EC2::Instance.BlockDeviceMapping": { "additionalProperties": false, "properties": { - "ClassicLoadBalancers": { - "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancer" - }, - "type": "array" + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/AWS::EC2::Instance.Ebs" + }, + "NoDevice": { + "$ref": "#/definitions/AWS::EC2::Instance.NoDevice" + }, + "VirtualName": { + "type": "string" } }, "required": [ - "ClassicLoadBalancers" + "DeviceName" ], "type": "object" }, - "AWS::EC2::SpotFleet.EbsBlockDevice": { + "AWS::EC2::Instance.CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::Instance.Ebs": { "additionalProperties": false, "properties": { "DeleteOnTermination": { @@ -14014,58 +13681,73 @@ var SamSchema = `{ }, "type": "object" }, - "AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification": { + "AWS::EC2::Instance.ElasticGpuSpecification": { "additionalProperties": false, "properties": { - "LaunchTemplateId": { - "type": "string" - }, - "LaunchTemplateName": { + "Type": { "type": "string" - }, - "Version": { + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::Instance.ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Type": { "type": "string" } }, "required": [ - "Version" + "Type" ], "type": "object" }, - "AWS::EC2::SpotFleet.GroupIdentifier": { + "AWS::EC2::Instance.InstanceIpv6Address": { "additionalProperties": false, "properties": { - "GroupId": { + "Ipv6Address": { "type": "string" } }, "required": [ - "GroupId" + "Ipv6Address" ], "type": "object" }, - "AWS::EC2::SpotFleet.IamInstanceProfileSpecification": { + "AWS::EC2::Instance.LaunchTemplateSpecification": { "additionalProperties": false, "properties": { - "Arn": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { "type": "string" } }, + "required": [ + "Version" + ], "type": "object" }, - "AWS::EC2::SpotFleet.InstanceIpv6Address": { + "AWS::EC2::Instance.LicenseSpecification": { "additionalProperties": false, "properties": { - "Ipv6Address": { + "LicenseConfigurationArn": { "type": "string" } }, "required": [ - "Ipv6Address" + "LicenseConfigurationArn" ], "type": "object" }, - "AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification": { + "AWS::EC2::Instance.NetworkInterface": { "additionalProperties": false, "properties": { "AssociatePublicIpAddress": { @@ -14078,9 +13760,9 @@ var SamSchema = `{ "type": "string" }, "DeviceIndex": { - "type": "number" + "type": "string" }, - "Groups": { + "GroupSet": { "items": { "type": "string" }, @@ -14091,16 +13773,19 @@ var SamSchema = `{ }, "Ipv6Addresses": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceIpv6Address" + "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address" }, "type": "array" }, "NetworkInterfaceId": { "type": "string" }, + "PrivateIpAddress": { + "type": "string" + }, "PrivateIpAddresses": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.PrivateIpAddressSpecification" + "$ref": "#/definitions/AWS::EC2::Instance.PrivateIpAddressSpecification" }, "type": "array" }, @@ -14111,57 +13796,17 @@ var SamSchema = `{ "type": "string" } }, + "required": [ + "DeviceIndex" + ], "type": "object" }, - "AWS::EC2::SpotFleet.LaunchTemplateConfig": { - "additionalProperties": false, - "properties": { - "LaunchTemplateSpecification": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification" - }, - "Overrides": { - "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateOverrides" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::EC2::SpotFleet.LaunchTemplateOverrides": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "type": "string" - }, - "InstanceType": { - "type": "string" - }, - "SpotPrice": { - "type": "string" - }, - "SubnetId": { - "type": "string" - }, - "WeightedCapacity": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::EC2::SpotFleet.LoadBalancersConfig": { + "AWS::EC2::Instance.NoDevice": { "additionalProperties": false, - "properties": { - "ClassicLoadBalancersConfig": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancersConfig" - }, - "TargetGroupsConfig": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroupsConfig" - } - }, + "properties": {}, "type": "object" }, - "AWS::EC2::SpotFleet.PrivateIpAddressSpecification": { + "AWS::EC2::Instance.PrivateIpAddressSpecification": { "additionalProperties": false, "properties": { "Primary": { @@ -14172,28 +13817,345 @@ var SamSchema = `{ } }, "required": [ + "Primary", "PrivateIpAddress" ], "type": "object" }, - "AWS::EC2::SpotFleet.SpotFleetLaunchSpecification": { + "AWS::EC2::Instance.SsmAssociation": { "additionalProperties": false, "properties": { - "BlockDeviceMappings": { + "AssociationParameters": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.BlockDeviceMapping" + "$ref": "#/definitions/AWS::EC2::Instance.AssociationParameter" + }, + "type": "array" + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "AWS::EC2::Instance.Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "Device", + "VolumeId" + ], + "type": "object" + }, + "AWS::EC2::InternetGateway": { + "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": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::InternetGateway" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::LaunchTemplate": { + "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": { + "LaunchTemplateData": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateData" + }, + "LaunchTemplateName": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::LaunchTemplate" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::LaunchTemplate.BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ebs" + }, + "NoDevice": { + "type": "string" + }, + "VirtualName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CapacityReservationPreference": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CapacityReservationSpecification": { + "additionalProperties": false, + "properties": { + "CapacityReservationPreference": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CapacityReservationPreference" + }, + "CapacityReservationTarget": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CapacityReservationTarget" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CapacityReservationTarget": { + "additionalProperties": false, + "properties": { + "CapacityReservationId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "number" + }, + "ThreadsPerCore": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CreditSpecification": { + "additionalProperties": false, + "properties": { + "CpuCredits": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.IamInstanceProfile": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.InstanceMarketOptions": { + "additionalProperties": false, + "properties": { + "MarketType": { + "type": "string" + }, + "SpotOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.SpotOptions" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Ipv6Add": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.LaunchTemplateData": { + "additionalProperties": false, + "properties": { + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.BlockDeviceMapping" }, "type": "array" }, + "CapacityReservationSpecification": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CapacityReservationSpecification" + }, + "CpuOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CpuOptions" + }, + "CreditSpecification": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CreditSpecification" + }, + "DisableApiTermination": { + "type": "boolean" + }, "EbsOptimized": { "type": "boolean" }, + "ElasticGpuSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.ElasticGpuSpecification" + }, + "type": "array" + }, + "ElasticInferenceAccelerators": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateElasticInferenceAccelerator" + }, + "type": "array" + }, + "HibernationOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.HibernationOptions" + }, "IamInstanceProfile": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.IamInstanceProfileSpecification" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.IamInstanceProfile" }, "ImageId": { "type": "string" }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceMarketOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.InstanceMarketOptions" + }, "InstanceType": { "type": "string" }, @@ -14203,53 +14165,70 @@ var SamSchema = `{ "KeyName": { "type": "string" }, + "LicenseSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LicenseSpecification" + }, + "type": "array" + }, "Monitoring": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetMonitoring" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Monitoring" }, "NetworkInterfaces": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.NetworkInterface" }, "type": "array" }, "Placement": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotPlacement" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Placement" }, - "RamdiskId": { + "RamDiskId": { "type": "string" }, - "SecurityGroups": { + "SecurityGroupIds": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.GroupIdentifier" + "type": "string" }, "type": "array" }, - "SpotPrice": { - "type": "string" - }, - "SubnetId": { - "type": "string" + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" }, "TagSpecifications": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetTagSpecification" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.TagSpecification" }, "type": "array" }, "UserData": { "type": "string" - }, - "WeightedCapacity": { - "type": "number" } }, - "required": [ - "ImageId", - "InstanceType" - ], "type": "object" }, - "AWS::EC2::SpotFleet.SpotFleetMonitoring": { + "AWS::EC2::LaunchTemplate.LaunchTemplateElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Monitoring": { "additionalProperties": false, "properties": { "Enabled": { @@ -14258,122 +14237,121 @@ var SamSchema = `{ }, "type": "object" }, - "AWS::EC2::SpotFleet.SpotFleetRequestConfigData": { + "AWS::EC2::LaunchTemplate.NetworkInterface": { "additionalProperties": false, "properties": { - "AllocationStrategy": { - "type": "string" + "AssociatePublicIpAddress": { + "type": "boolean" }, - "ExcessCapacityTerminationPolicy": { - "type": "string" + "DeleteOnTermination": { + "type": "boolean" }, - "IamFleetRole": { + "Description": { "type": "string" }, - "InstanceInterruptionBehavior": { - "type": "string" + "DeviceIndex": { + "type": "number" }, - "LaunchSpecifications": { + "Groups": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetLaunchSpecification" + "type": "string" }, "type": "array" }, - "LaunchTemplateConfigs": { + "Ipv6AddressCount": { + "type": "number" + }, + "Ipv6Addresses": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateConfig" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ipv6Add" }, "type": "array" }, - "LoadBalancersConfig": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.LoadBalancersConfig" - }, - "ReplaceUnhealthyInstances": { - "type": "boolean" + "NetworkInterfaceId": { + "type": "string" }, - "SpotPrice": { + "PrivateIpAddress": { "type": "string" }, - "TargetCapacity": { + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.PrivateIpAdd" + }, + "type": "array" + }, + "SecondaryPrivateIpAddressCount": { "type": "number" }, - "TerminateInstancesWithExpiration": { - "type": "boolean" + "SubnetId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Placement": { + "additionalProperties": false, + "properties": { + "Affinity": { + "type": "string" }, - "Type": { + "AvailabilityZone": { "type": "string" }, - "ValidFrom": { + "GroupName": { "type": "string" }, - "ValidUntil": { + "HostId": { + "type": "string" + }, + "Tenancy": { "type": "string" } }, - "required": [ - "IamFleetRole", - "TargetCapacity" - ], "type": "object" }, - "AWS::EC2::SpotFleet.SpotFleetTagSpecification": { + "AWS::EC2::LaunchTemplate.PrivateIpAdd": { "additionalProperties": false, "properties": { - "ResourceType": { - "type": "string" + "Primary": { + "type": "boolean" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "PrivateIpAddress": { + "type": "string" } }, "type": "object" }, - "AWS::EC2::SpotFleet.SpotPlacement": { + "AWS::EC2::LaunchTemplate.SpotOptions": { "additionalProperties": false, "properties": { - "AvailabilityZone": { + "InstanceInterruptionBehavior": { "type": "string" }, - "GroupName": { + "MaxPrice": { "type": "string" }, - "Tenancy": { + "SpotInstanceType": { "type": "string" } }, "type": "object" }, - "AWS::EC2::SpotFleet.TargetGroup": { + "AWS::EC2::LaunchTemplate.TagSpecification": { "additionalProperties": false, "properties": { - "Arn": { + "ResourceType": { "type": "string" - } - }, - "required": [ - "Arn" - ], - "type": "object" - }, - "AWS::EC2::SpotFleet.TargetGroupsConfig": { - "additionalProperties": false, - "properties": { - "TargetGroups": { + }, + "Tags": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroup" + "$ref": "#/definitions/Tag" }, "type": "array" } }, - "required": [ - "TargetGroups" - ], "type": "object" }, - "AWS::EC2::Subnet": { + "AWS::EC2::NatGateway": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14405,40 +14383,28 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AssignIpv6AddressOnCreation": { - "type": "boolean" - }, - "AvailabilityZone": { - "type": "string" - }, - "CidrBlock": { + "AllocationId": { "type": "string" }, - "Ipv6CidrBlock": { + "SubnetId": { "type": "string" }, - "MapPublicIpOnLaunch": { - "type": "boolean" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "VpcId": { - "type": "string" } }, "required": [ - "CidrBlock", - "VpcId" + "AllocationId", + "SubnetId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Subnet" + "AWS::EC2::NatGateway" ], "type": "string" } @@ -14449,7 +14415,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::SubnetCidrBlock": { + "AWS::EC2::NetworkAcl": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14481,22 +14447,24 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Ipv6CidrBlock": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "SubnetId": { + "VpcId": { "type": "string" } }, "required": [ - "Ipv6CidrBlock", - "SubnetId" + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SubnetCidrBlock" + "AWS::EC2::NetworkAcl" ], "type": "string" } @@ -14507,7 +14475,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::SubnetNetworkAclAssociation": { + "AWS::EC2::NetworkAclEntry": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14539,22 +14507,46 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "NetworkAclId": { + "CidrBlock": { "type": "string" }, - "SubnetId": { - "type": "string" - } + "Egress": { + "type": "boolean" + }, + "Icmp": { + "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.Icmp" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "NetworkAclId": { + "type": "string" + }, + "PortRange": { + "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.PortRange" + }, + "Protocol": { + "type": "number" + }, + "RuleAction": { + "type": "string" + }, + "RuleNumber": { + "type": "number" + } }, "required": [ + "CidrBlock", "NetworkAclId", - "SubnetId" + "Protocol", + "RuleAction", + "RuleNumber" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SubnetNetworkAclAssociation" + "AWS::EC2::NetworkAclEntry" ], "type": "string" } @@ -14565,65 +14557,31 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::SubnetRouteTableAssociation": { + "AWS::EC2::NetworkAclEntry.Icmp": { "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": { - "RouteTableId": { - "type": "string" - }, - "SubnetId": { - "type": "string" - } - }, - "required": [ - "RouteTableId", - "SubnetId" - ], - "type": "object" + "Code": { + "type": "number" }, "Type": { - "enum": [ - "AWS::EC2::SubnetRouteTableAssociation" - ], - "type": "string" + "type": "number" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::EC2::TransitGateway": { + "AWS::EC2::NetworkAclEntry.PortRange": { + "additionalProperties": false, + "properties": { + "From": { + "type": "number" + }, + "To": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInterface": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14655,22 +14613,40 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AmazonSideAsn": { - "type": "number" - }, - "AutoAcceptSharedAttachments": { + "Description": { "type": "string" }, - "DefaultRouteTableAssociation": { - "type": "string" + "GroupSet": { + "items": { + "type": "string" + }, + "type": "array" }, - "DefaultRouteTablePropagation": { + "InterfaceType": { "type": "string" }, - "Description": { + "Ipv6AddressCount": { + "type": "number" + }, + "Ipv6Addresses": { + "$ref": "#/definitions/AWS::EC2::NetworkInterface.InstanceIpv6Address" + }, + "PrivateIpAddress": { "type": "string" }, - "DnsSupport": { + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInterface.PrivateIpAddressSpecification" + }, + "type": "array" + }, + "SecondaryPrivateIpAddressCount": { + "type": "number" + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SubnetId": { "type": "string" }, "Tags": { @@ -14678,26 +14654,55 @@ var SamSchema = `{ "$ref": "#/definitions/Tag" }, "type": "array" - }, - "VpnEcmpSupport": { - "type": "string" } }, + "required": [ + "SubnetId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGateway" + "AWS::EC2::NetworkInterface" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::TransitGatewayAttachment": { + "AWS::EC2::NetworkInterface.InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "AWS::EC2::NetworkInterface.PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "Primary", + "PrivateIpAddress" + ], + "type": "object" + }, + "AWS::EC2::NetworkInterfaceAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14729,35 +14734,29 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" + "DeleteOnTermination": { + "type": "boolean" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "DeviceIndex": { + "type": "string" }, - "TransitGatewayId": { + "InstanceId": { "type": "string" }, - "VpcId": { + "NetworkInterfaceId": { "type": "string" } }, "required": [ - "SubnetIds", - "TransitGatewayId", - "VpcId" + "DeviceIndex", + "InstanceId", + "NetworkInterfaceId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayAttachment" + "AWS::EC2::NetworkInterfaceAttachment" ], "type": "string" } @@ -14768,7 +14767,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::TransitGatewayRoute": { + "AWS::EC2::NetworkInterfacePermission": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14800,27 +14799,26 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Blackhole": { - "type": "boolean" - }, - "DestinationCidrBlock": { + "AwsAccountId": { "type": "string" }, - "TransitGatewayAttachmentId": { + "NetworkInterfaceId": { "type": "string" }, - "TransitGatewayRouteTableId": { + "Permission": { "type": "string" } }, "required": [ - "TransitGatewayRouteTableId" + "AwsAccountId", + "NetworkInterfaceId", + "Permission" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRoute" + "AWS::EC2::NetworkInterfacePermission" ], "type": "string" } @@ -14831,7 +14829,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::TransitGatewayRouteTable": { + "AWS::EC2::PlacementGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14863,35 +14861,25 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "TransitGatewayId": { + "Strategy": { "type": "string" } }, - "required": [ - "TransitGatewayId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRouteTable" + "AWS::EC2::PlacementGroup" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::TransitGatewayRouteTableAssociation": { + "AWS::EC2::Route": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14923,22 +14911,42 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "TransitGatewayAttachmentId": { + "DestinationCidrBlock": { "type": "string" }, - "TransitGatewayRouteTableId": { + "DestinationIpv6CidrBlock": { + "type": "string" + }, + "EgressOnlyInternetGatewayId": { + "type": "string" + }, + "GatewayId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "NatGatewayId": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "RouteTableId": { + "type": "string" + }, + "VpcPeeringConnectionId": { "type": "string" } }, "required": [ - "TransitGatewayAttachmentId", - "TransitGatewayRouteTableId" + "RouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRouteTableAssociation" + "AWS::EC2::Route" ], "type": "string" } @@ -14949,7 +14957,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::TransitGatewayRouteTablePropagation": { + "AWS::EC2::RouteTable": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14981,22 +14989,24 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "TransitGatewayAttachmentId": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "TransitGatewayRouteTableId": { + "VpcId": { "type": "string" } }, "required": [ - "TransitGatewayAttachmentId", - "TransitGatewayRouteTableId" + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRouteTablePropagation" + "AWS::EC2::RouteTable" ], "type": "string" } @@ -15007,7 +15017,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::TrunkInterfaceAssociation": { + "AWS::EC2::SecurityGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15039,28 +15049,42 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "BranchInterfaceId": { + "GroupDescription": { "type": "string" }, - "GREKey": { - "type": "number" - }, - "TrunkInterfaceId": { + "GroupName": { "type": "string" }, - "VLANId": { - "type": "number" + "SecurityGroupEgress": { + "items": { + "$ref": "#/definitions/AWS::EC2::SecurityGroup.Egress" + }, + "type": "array" + }, + "SecurityGroupIngress": { + "items": { + "$ref": "#/definitions/AWS::EC2::SecurityGroup.Ingress" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { + "type": "string" } }, "required": [ - "BranchInterfaceId", - "TrunkInterfaceId" + "GroupDescription" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TrunkInterfaceAssociation" + "AWS::EC2::SecurityGroup" ], "type": "string" } @@ -15071,7 +15095,79 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VPC": { + "AWS::EC2::SecurityGroup.Egress": { + "additionalProperties": false, + "properties": { + "CidrIp": { + "type": "string" + }, + "CidrIpv6": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DestinationPrefixListId": { + "type": "string" + }, + "DestinationSecurityGroupId": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "IpProtocol": { + "type": "string" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "IpProtocol" + ], + "type": "object" + }, + "AWS::EC2::SecurityGroup.Ingress": { + "additionalProperties": false, + "properties": { + "CidrIp": { + "type": "string" + }, + "CidrIpv6": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "IpProtocol": { + "type": "string" + }, + "SourcePrefixListId": { + "type": "string" + }, + "SourceSecurityGroupId": { + "type": "string" + }, + "SourceSecurityGroupName": { + "type": "string" + }, + "SourceSecurityGroupOwnerId": { + "type": "string" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "IpProtocol" + ], + "type": "object" + }, + "AWS::EC2::SecurityGroupEgress": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15103,33 +15199,43 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CidrBlock": { + "CidrIp": { "type": "string" }, - "EnableDnsHostnames": { - "type": "boolean" + "CidrIpv6": { + "type": "string" }, - "EnableDnsSupport": { - "type": "boolean" + "Description": { + "type": "string" }, - "InstanceTenancy": { + "DestinationPrefixListId": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "DestinationSecurityGroupId": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "GroupId": { + "type": "string" + }, + "IpProtocol": { + "type": "string" + }, + "ToPort": { + "type": "number" } }, "required": [ - "CidrBlock" + "GroupId", + "IpProtocol" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPC" + "AWS::EC2::SecurityGroupEgress" ], "type": "string" } @@ -15140,7 +15246,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCCidrBlock": { + "AWS::EC2::SecurityGroupIngress": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15172,24 +15278,51 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AmazonProvidedIpv6CidrBlock": { - "type": "boolean" + "CidrIp": { + "type": "string" }, - "CidrBlock": { + "CidrIpv6": { "type": "string" }, - "VpcId": { + "Description": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "GroupId": { + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "IpProtocol": { + "type": "string" + }, + "SourcePrefixListId": { + "type": "string" + }, + "SourceSecurityGroupId": { + "type": "string" + }, + "SourceSecurityGroupName": { + "type": "string" + }, + "SourceSecurityGroupOwnerId": { "type": "string" + }, + "ToPort": { + "type": "number" } }, "required": [ - "VpcId" + "IpProtocol" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCCidrBlock" + "AWS::EC2::SecurityGroupIngress" ], "type": "string" } @@ -15200,7 +15333,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCDHCPOptionsAssociation": { + "AWS::EC2::SpotFleet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15232,22 +15365,18 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DhcpOptionsId": { - "type": "string" - }, - "VpcId": { - "type": "string" + "SpotFleetRequestConfigData": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetRequestConfigData" } }, "required": [ - "DhcpOptionsId", - "VpcId" + "SpotFleetRequestConfigData" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCDHCPOptionsAssociation" + "AWS::EC2::SpotFleet" ], "type": "string" } @@ -15258,92 +15387,438 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCEndpoint": { + "AWS::EC2::SpotFleet.BlockDeviceMapping": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "DeviceName": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Ebs": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.EbsBlockDevice" }, - "Metadata": { - "type": "object" + "NoDevice": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "PolicyDocument": { - "type": "object" - }, - "PrivateDnsEnabled": { - "type": "boolean" - }, - "RouteTableIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ServiceName": { - "type": "string" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "VPCEndpointType": { - "type": "string" - }, - "VpcId": { - "type": "string" - } + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.ClassicLoadBalancer": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.ClassicLoadBalancersConfig": { + "additionalProperties": false, + "properties": { + "ClassicLoadBalancers": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancer" }, - "required": [ - "ServiceName", - "VpcId" - ], - "type": "object" + "type": "array" + } + }, + "required": [ + "ClassicLoadBalancers" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.EbsBlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Version" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.GroupIdentifier": { + "additionalProperties": false, + "properties": { + "GroupId": { + "type": "string" + } + }, + "required": [ + "GroupId" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.IamInstanceProfileSpecification": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification": { + "additionalProperties": false, + "properties": { + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "number" + }, + "Groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Ipv6AddressCount": { + "type": "number" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceIpv6Address" + }, + "type": "array" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.PrivateIpAddressSpecification" + }, + "type": "array" + }, + "SecondaryPrivateIpAddressCount": { + "type": "number" + }, + "SubnetId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.LaunchTemplateConfig": { + "additionalProperties": false, + "properties": { + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification" + }, + "Overrides": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateOverrides" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.LaunchTemplateOverrides": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "SpotPrice": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.LoadBalancersConfig": { + "additionalProperties": false, + "properties": { + "ClassicLoadBalancersConfig": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancersConfig" + }, + "TargetGroupsConfig": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroupsConfig" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotFleetLaunchSpecification": { + "additionalProperties": false, + "properties": { + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.BlockDeviceMapping" + }, + "type": "array" + }, + "EbsOptimized": { + "type": "boolean" + }, + "IamInstanceProfile": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.IamInstanceProfileSpecification" + }, + "ImageId": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "Monitoring": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetMonitoring" + }, + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification" + }, + "type": "array" + }, + "Placement": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotPlacement" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.GroupIdentifier" + }, + "type": "array" + }, + "SpotPrice": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetTagSpecification" + }, + "type": "array" + }, + "UserData": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "required": [ + "ImageId", + "InstanceType" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotFleetMonitoring": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotFleetRequestConfigData": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "ExcessCapacityTerminationPolicy": { + "type": "string" + }, + "IamFleetRole": { + "type": "string" + }, + "InstanceInterruptionBehavior": { + "type": "string" + }, + "LaunchSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetLaunchSpecification" + }, + "type": "array" + }, + "LaunchTemplateConfigs": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateConfig" + }, + "type": "array" + }, + "LoadBalancersConfig": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.LoadBalancersConfig" + }, + "ReplaceUnhealthyInstances": { + "type": "boolean" + }, + "SpotPrice": { + "type": "string" + }, + "TargetCapacity": { + "type": "number" + }, + "TerminateInstancesWithExpiration": { + "type": "boolean" }, "Type": { - "enum": [ - "AWS::EC2::VPCEndpoint" - ], + "type": "string" + }, + "ValidFrom": { + "type": "string" + }, + "ValidUntil": { "type": "string" } }, "required": [ - "Type", - "Properties" + "IamFleetRole", + "TargetCapacity" ], "type": "object" }, - "AWS::EC2::VPCEndpointConnectionNotification": { + "AWS::EC2::SpotFleet.SpotFleetTagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotPlacement": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "Tenancy": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.TargetGroup": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.TargetGroupsConfig": { + "additionalProperties": false, + "properties": { + "TargetGroups": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroup" + }, + "type": "array" + } + }, + "required": [ + "TargetGroups" + ], + "type": "object" + }, + "AWS::EC2::Subnet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15375,31 +15850,40 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ConnectionEvents": { - "items": { - "type": "string" - }, - "type": "array" + "AssignIpv6AddressOnCreation": { + "type": "boolean" }, - "ConnectionNotificationArn": { + "AvailabilityZone": { "type": "string" }, - "ServiceId": { + "CidrBlock": { "type": "string" }, - "VPCEndpointId": { + "Ipv6CidrBlock": { + "type": "string" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { "type": "string" } }, "required": [ - "ConnectionEvents", - "ConnectionNotificationArn" + "CidrBlock", + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpointConnectionNotification" + "AWS::EC2::Subnet" ], "type": "string" } @@ -15410,7 +15894,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCEndpointServicePermissions": { + "AWS::EC2::SubnetCidrBlock": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15442,24 +15926,22 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AllowedPrincipals": { - "items": { - "type": "string" - }, - "type": "array" + "Ipv6CidrBlock": { + "type": "string" }, - "ServiceId": { + "SubnetId": { "type": "string" } }, "required": [ - "ServiceId" + "Ipv6CidrBlock", + "SubnetId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpointServicePermissions" + "AWS::EC2::SubnetCidrBlock" ], "type": "string" } @@ -15470,7 +15952,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCGatewayAttachment": { + "AWS::EC2::SubnetNetworkAclAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15502,24 +15984,22 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "InternetGatewayId": { + "NetworkAclId": { "type": "string" }, - "VpcId": { - "type": "string" - }, - "VpnGatewayId": { + "SubnetId": { "type": "string" } }, "required": [ - "VpcId" + "NetworkAclId", + "SubnetId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCGatewayAttachment" + "AWS::EC2::SubnetNetworkAclAssociation" ], "type": "string" } @@ -15530,7 +16010,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCPeeringConnection": { + "AWS::EC2::SubnetRouteTableAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15562,37 +16042,22 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "PeerOwnerId": { - "type": "string" - }, - "PeerRegion": { - "type": "string" - }, - "PeerRoleArn": { - "type": "string" - }, - "PeerVpcId": { + "RouteTableId": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VpcId": { + "SubnetId": { "type": "string" } }, "required": [ - "PeerVpcId", - "VpcId" + "RouteTableId", + "SubnetId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCPeeringConnection" + "AWS::EC2::SubnetRouteTableAssociation" ], "type": "string" } @@ -15603,7 +16068,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VPNConnection": { + "AWS::EC2::TransitGateway": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15635,64 +16100,49 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CustomerGatewayId": { + "AmazonSideAsn": { + "type": "number" + }, + "AutoAcceptSharedAttachments": { "type": "string" }, - "StaticRoutesOnly": { - "type": "boolean" + "DefaultRouteTableAssociation": { + "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "DefaultRouteTablePropagation": { + "type": "string" }, - "Type": { + "Description": { "type": "string" }, - "VpnGatewayId": { + "DnsSupport": { "type": "string" }, - "VpnTunnelOptionsSpecifications": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification" + "$ref": "#/definitions/Tag" }, "type": "array" + }, + "VpnEcmpSupport": { + "type": "string" } }, - "required": [ - "CustomerGatewayId", - "Type", - "VpnGatewayId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNConnection" + "AWS::EC2::TransitGateway" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification": { - "additionalProperties": false, - "properties": { - "PreSharedKey": { - "type": "string" - }, - "TunnelInsideCidr": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::VPNConnectionRoute": { + "AWS::EC2::TransitGatewayAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15724,22 +16174,35 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DestinationCidrBlock": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitGatewayId": { "type": "string" }, - "VpnConnectionId": { + "VpcId": { "type": "string" } }, "required": [ - "DestinationCidrBlock", - "VpnConnectionId" + "SubnetIds", + "TransitGatewayId", + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNConnectionRoute" + "AWS::EC2::TransitGatewayAttachment" ], "type": "string" } @@ -15750,7 +16213,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VPNGateway": { + "AWS::EC2::TransitGatewayRoute": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15782,27 +16245,27 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AmazonSideAsn": { - "type": "number" + "Blackhole": { + "type": "boolean" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "DestinationCidrBlock": { + "type": "string" }, - "Type": { + "TransitGatewayAttachmentId": { + "type": "string" + }, + "TransitGatewayRouteTableId": { "type": "string" } }, "required": [ - "Type" + "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNGateway" + "AWS::EC2::TransitGatewayRoute" ], "type": "string" } @@ -15813,7 +16276,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VPNGatewayRoutePropagation": { + "AWS::EC2::TransitGatewayRouteTable": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15845,25 +16308,24 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "RouteTableIds": { + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "VpnGatewayId": { + "TransitGatewayId": { "type": "string" } }, "required": [ - "RouteTableIds", - "VpnGatewayId" + "TransitGatewayId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNGatewayRoutePropagation" + "AWS::EC2::TransitGatewayRouteTable" ], "type": "string" } @@ -15874,7 +16336,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::Volume": { + "AWS::EC2::TransitGatewayRouteTableAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15906,45 +16368,22 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AutoEnableIO": { - "type": "boolean" - }, - "AvailabilityZone": { - "type": "string" - }, - "Encrypted": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "KmsKeyId": { - "type": "string" - }, - "Size": { - "type": "number" - }, - "SnapshotId": { + "TransitGatewayAttachmentId": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VolumeType": { + "TransitGatewayRouteTableId": { "type": "string" } }, "required": [ - "AvailabilityZone" + "TransitGatewayAttachmentId", + "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Volume" + "AWS::EC2::TransitGatewayRouteTableAssociation" ], "type": "string" } @@ -15955,7 +16394,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VolumeAttachment": { + "AWS::EC2::TransitGatewayRouteTablePropagation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15987,26 +16426,22 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Device": { - "type": "string" - }, - "InstanceId": { + "TransitGatewayAttachmentId": { "type": "string" }, - "VolumeId": { + "TransitGatewayRouteTableId": { "type": "string" } }, "required": [ - "Device", - "InstanceId", - "VolumeId" + "TransitGatewayAttachmentId", + "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VolumeAttachment" + "AWS::EC2::TransitGatewayRouteTablePropagation" ], "type": "string" } @@ -16017,7 +16452,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::ECR::Repository": { + "AWS::EC2::TrunkInterfaceAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -16049,43 +16484,39 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "LifecyclePolicy": { - "$ref": "#/definitions/AWS::ECR::Repository.LifecyclePolicy" + "BranchInterfaceId": { + "type": "string" }, - "RepositoryName": { + "GREKey": { + "type": "number" + }, + "TrunkInterfaceId": { "type": "string" }, - "RepositoryPolicyText": { - "type": "object" + "VLANId": { + "type": "number" } }, + "required": [ + "BranchInterfaceId", + "TrunkInterfaceId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ECR::Repository" + "AWS::EC2::TrunkInterfaceAssociation" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECR::Repository.LifecyclePolicy": { - "additionalProperties": false, - "properties": { - "LifecyclePolicyText": { - "type": "string" - }, - "RegistryId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::Cluster": { + "AWS::EC2::VPC": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -16117,25 +16548,44 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ClusterName": { + "CidrBlock": { + "type": "string" + }, + "EnableDnsHostnames": { + "type": "boolean" + }, + "EnableDnsSupport": { + "type": "boolean" + }, + "InstanceTenancy": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, + "required": [ + "CidrBlock" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ECS::Cluster" + "AWS::EC2::VPC" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::Service": { + "AWS::EC2::VPCCidrBlock": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -16167,72 +16617,167 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Cluster": { - "type": "string" + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" }, - "DeploymentConfiguration": { - "$ref": "#/definitions/AWS::ECS::Service.DeploymentConfiguration" + "CidrBlock": { + "type": "string" }, - "DesiredCount": { - "type": "number" + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCCidrBlock" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPCDHCPOptionsAssociation": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, - "HealthCheckGracePeriodSeconds": { - "type": "number" + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DhcpOptionsId": { + "type": "string" }, - "LaunchType": { + "VpcId": { + "type": "string" + } + }, + "required": [ + "DhcpOptionsId", + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCDHCPOptionsAssociation" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPCEndpoint": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - "LoadBalancers": { + { "items": { - "$ref": "#/definitions/AWS::ECS::Service.LoadBalancer" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" }, - "NetworkConfiguration": { - "$ref": "#/definitions/AWS::ECS::Service.NetworkConfiguration" + "PrivateDnsEnabled": { + "type": "boolean" }, - "PlacementConstraints": { + "RouteTableIds": { "items": { - "$ref": "#/definitions/AWS::ECS::Service.PlacementConstraint" + "type": "string" }, "type": "array" }, - "PlacementStrategies": { + "SecurityGroupIds": { "items": { - "$ref": "#/definitions/AWS::ECS::Service.PlacementStrategy" + "type": "string" }, "type": "array" }, - "PlatformVersion": { - "type": "string" - }, - "Role": { - "type": "string" - }, - "SchedulingStrategy": { - "type": "string" - }, "ServiceName": { "type": "string" }, - "ServiceRegistries": { + "SubnetIds": { "items": { - "$ref": "#/definitions/AWS::ECS::Service.ServiceRegistry" + "type": "string" }, "type": "array" }, - "TaskDefinition": { + "VpcEndpointType": { + "type": "string" + }, + "VpcId": { "type": "string" } }, "required": [ - "TaskDefinition" + "ServiceName", + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::ECS::Service" + "AWS::EC2::VPCEndpoint" ], "type": "string" } @@ -16243,121 +16788,267 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::ECS::Service.AwsVpcConfiguration": { + "AWS::EC2::VPCEndpointConnectionNotification": { "additionalProperties": false, "properties": { - "AssignPublicIp": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "SecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Subnets": { - "items": { - "type": "string" + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ConnectionEvents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ConnectionNotificationArn": { + "type": "string" + }, + "ServiceId": { + "type": "string" + }, + "VPCEndpointId": { + "type": "string" + } }, - "type": "array" + "required": [ + "ConnectionEvents", + "ConnectionNotificationArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCEndpointConnectionNotification" + ], + "type": "string" } }, "required": [ - "Subnets" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::Service.DeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "MaximumPercent": { - "type": "number" - }, - "MinimumHealthyPercent": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ECS::Service.LoadBalancer": { + "AWS::EC2::VPCEndpointServicePermissions": { "additionalProperties": false, "properties": { - "ContainerName": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "ContainerPort": { - "type": "number" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "LoadBalancerName": { - "type": "string" + "Metadata": { + "type": "object" }, - "TargetGroupArn": { - "type": "string" - } - }, - "required": [ - "ContainerPort" - ], - "type": "object" - }, - "AWS::ECS::Service.NetworkConfiguration": { - "additionalProperties": false, - "properties": { - "AwsvpcConfiguration": { - "$ref": "#/definitions/AWS::ECS::Service.AwsVpcConfiguration" - } - }, - "type": "object" - }, - "AWS::ECS::Service.PlacementConstraint": { - "additionalProperties": false, - "properties": { - "Expression": { - "type": "string" + "Properties": { + "additionalProperties": false, + "properties": { + "AllowedPrincipals": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ServiceId": { + "type": "string" + } + }, + "required": [ + "ServiceId" + ], + "type": "object" }, "Type": { + "enum": [ + "AWS::EC2::VPCEndpointServicePermissions" + ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::Service.PlacementStrategy": { + "AWS::EC2::VPCGatewayAttachment": { "additionalProperties": false, "properties": { - "Field": { + "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": { + "InternetGatewayId": { + "type": "string" + }, + "VpcId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + } + }, + "required": [ + "VpcId" + ], + "type": "object" + }, "Type": { + "enum": [ + "AWS::EC2::VPCGatewayAttachment" + ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::Service.ServiceRegistry": { + "AWS::EC2::VPCPeeringConnection": { "additionalProperties": false, "properties": { - "ContainerName": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "ContainerPort": { - "type": "number" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Port": { - "type": "number" + "Metadata": { + "type": "object" }, - "RegistryArn": { + "Properties": { + "additionalProperties": false, + "properties": { + "PeerOwnerId": { + "type": "string" + }, + "PeerRegion": { + "type": "string" + }, + "PeerRoleArn": { + "type": "string" + }, + "PeerVpcId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "PeerVpcId", + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCPeeringConnection" + ], "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::ECS::TaskDefinition": { + "AWS::EC2::VPNConnection": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -16389,502 +17080,122 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ContainerDefinitions": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.ContainerDefinition" - }, - "type": "array" - }, - "Cpu": { - "type": "string" - }, - "ExecutionRoleArn": { - "type": "string" - }, - "Family": { - "type": "string" - }, - "Memory": { + "CustomerGatewayId": { "type": "string" }, - "NetworkMode": { - "type": "string" + "StaticRoutesOnly": { + "type": "boolean" }, - "PlacementConstraints": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "RequiresCompatibilities": { - "items": { - "type": "string" - }, - "type": "array" + "Type": { + "type": "string" }, - "TaskRoleArn": { + "VpnGatewayId": { "type": "string" }, - "Volumes": { + "VpnTunnelOptionsSpecifications": { "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.Volume" + "$ref": "#/definitions/AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification" }, "type": "array" } }, + "required": [ + "CustomerGatewayId", + "Type", + "VpnGatewayId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ECS::TaskDefinition" + "AWS::EC2::VPNConnection" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::TaskDefinition.ContainerDefinition": { + "AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification": { "additionalProperties": false, "properties": { - "Command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Cpu": { - "type": "number" + "PreSharedKey": { + "type": "string" }, - "DisableNetworking": { - "type": "boolean" + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::VPNConnectionRoute": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" }, - "DnsSearchDomains": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DnsServers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DockerLabels": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - }, - "type": "object" - }, - "DockerSecurityOptions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EntryPoint": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Environment": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.KeyValuePair" - }, - "type": "array" - }, - "Essential": { - "type": "boolean" - }, - "ExtraHosts": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostEntry" - }, - "type": "array" - }, - "HealthCheck": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.HealthCheck" - }, - "Hostname": { - "type": "string" - }, - "Image": { - "type": "string" - }, - "Links": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LinuxParameters": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.LinuxParameters" - }, - "LogConfiguration": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.LogConfiguration" - }, - "Memory": { - "type": "number" - }, - "MemoryReservation": { - "type": "number" - }, - "MountPoints": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.MountPoint" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "PortMappings": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.PortMapping" - }, - "type": "array" - }, - "Privileged": { - "type": "boolean" - }, - "ReadonlyRootFilesystem": { - "type": "boolean" - }, - "RepositoryCredentials": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.RepositoryCredentials" - }, - "Ulimits": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.Ulimit" - }, - "type": "array" - }, - "User": { - "type": "string" - }, - "VolumesFrom": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.VolumeFrom" - }, - "type": "array" - }, - "WorkingDirectory": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.Device": { - "additionalProperties": false, - "properties": { - "ContainerPath": { - "type": "string" - }, - "HostPath": { - "type": "string" - }, - "Permissions": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "HostPath" - ], - "type": "object" - }, - "AWS::ECS::TaskDefinition.DockerVolumeConfiguration": { - "additionalProperties": false, - "properties": { - "Autoprovision": { - "type": "boolean" - }, - "Driver": { - "type": "string" + ] }, - "DriverOpts": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, + "Metadata": { "type": "object" }, - "Labels": { + "Properties": { "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { + "properties": { + "DestinationCidrBlock": { "type": "string" - } - }, - "type": "object" - }, - "Scope": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.HealthCheck": { - "additionalProperties": false, - "properties": { - "Command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Interval": { - "type": "number" - }, - "Retries": { - "type": "number" - }, - "StartPeriod": { - "type": "number" - }, - "Timeout": { - "type": "number" - } - }, - "required": [ - "Command" - ], - "type": "object" - }, - "AWS::ECS::TaskDefinition.HostEntry": { - "additionalProperties": false, - "properties": { - "Hostname": { - "type": "string" - }, - "IpAddress": { - "type": "string" - } - }, - "required": [ - "Hostname", - "IpAddress" - ], - "type": "object" - }, - "AWS::ECS::TaskDefinition.HostVolumeProperties": { - "additionalProperties": false, - "properties": { - "SourcePath": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.KernelCapabilities": { - "additionalProperties": false, - "properties": { - "Add": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Drop": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.KeyValuePair": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.LinuxParameters": { - "additionalProperties": false, - "properties": { - "Capabilities": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.KernelCapabilities" - }, - "Devices": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.Device" - }, - "type": "array" - }, - "InitProcessEnabled": { - "type": "boolean" - }, - "SharedMemorySize": { - "type": "number" - }, - "Tmpfs": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.Tmpfs" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.LogConfiguration": { - "additionalProperties": false, - "properties": { - "LogDriver": { - "type": "string" - }, - "Options": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { + }, + "VpnConnectionId": { "type": "string" } }, + "required": [ + "DestinationCidrBlock", + "VpnConnectionId" + ], "type": "object" - } - }, - "required": [ - "LogDriver" - ], - "type": "object" - }, - "AWS::ECS::TaskDefinition.MountPoint": { - "additionalProperties": false, - "properties": { - "ContainerPath": { - "type": "string" - }, - "ReadOnly": { - "type": "boolean" - }, - "SourceVolume": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.PortMapping": { - "additionalProperties": false, - "properties": { - "ContainerPort": { - "type": "number" - }, - "HostPort": { - "type": "number" - }, - "Protocol": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.RepositoryCredentials": { - "additionalProperties": false, - "properties": { - "CredentialsParameter": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint": { - "additionalProperties": false, - "properties": { - "Expression": { - "type": "string" }, "Type": { + "enum": [ + "AWS::EC2::VPNConnectionRoute" + ], "type": "string" } }, "required": [ - "Type" - ], - "type": "object" - }, - "AWS::ECS::TaskDefinition.Tmpfs": { - "additionalProperties": false, - "properties": { - "ContainerPath": { - "type": "string" - }, - "MountOptions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Size": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.Ulimit": { - "additionalProperties": false, - "properties": { - "HardLimit": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "SoftLimit": { - "type": "number" - } - }, - "required": [ - "HardLimit", - "Name", - "SoftLimit" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::TaskDefinition.Volume": { - "additionalProperties": false, - "properties": { - "DockerVolumeConfiguration": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.DockerVolumeConfiguration" - }, - "Host": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostVolumeProperties" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.VolumeFrom": { - "additionalProperties": false, - "properties": { - "ReadOnly": { - "type": "boolean" - }, - "SourceContainer": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EFS::FileSystem": { + "AWS::EC2::VPNGateway": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -16916,59 +17227,38 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Encrypted": { - "type": "boolean" + "AmazonSideAsn": { + "type": "number" }, - "FileSystemTags": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::EFS::FileSystem.ElasticFileSystemTag" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "KmsKeyId": { - "type": "string" - }, - "PerformanceMode": { - "type": "string" - }, - "ProvisionedThroughputInMibps": { - "type": "number" - }, - "ThroughputMode": { + "Type": { "type": "string" } }, + "required": [ + "Type" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EFS::FileSystem" + "AWS::EC2::VPNGateway" ], "type": "string" } }, "required": [ - "Type" - ], - "type": "object" - }, - "AWS::EFS::FileSystem.ElasticFileSystemTag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Key", - "Value" + "Type", + "Properties" ], "type": "object" }, - "AWS::EFS::MountTarget": { + "AWS::EC2::VPNGatewayRoutePropagation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -17000,32 +17290,25 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "FileSystemId": { - "type": "string" - }, - "IpAddress": { - "type": "string" - }, - "SecurityGroups": { + "RouteTableIds": { "items": { "type": "string" }, "type": "array" }, - "SubnetId": { + "VpnGatewayId": { "type": "string" } }, "required": [ - "FileSystemId", - "SecurityGroups", - "SubnetId" + "RouteTableIds", + "VpnGatewayId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EFS::MountTarget" + "AWS::EC2::VPNGatewayRoutePropagation" ], "type": "string" } @@ -17036,7 +17319,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EKS::Cluster": { + "AWS::EC2::Volume": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -17068,28 +17351,45 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Name": { + "AutoEnableIO": { + "type": "boolean" + }, + "AvailabilityZone": { "type": "string" }, - "ResourcesVpcConfig": { - "$ref": "#/definitions/AWS::EKS::Cluster.ResourcesVpcConfig" + "Encrypted": { + "type": "boolean" }, - "RoleArn": { - "type": "string" + "Iops": { + "type": "number" }, - "Version": { + "KmsKeyId": { "type": "string" - } - }, - "required": [ - "ResourcesVpcConfig", - "RoleArn" + }, + "Size": { + "type": "number" + }, + "SnapshotId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "AvailabilityZone" ], "type": "object" }, "Type": { "enum": [ - "AWS::EKS::Cluster" + "AWS::EC2::Volume" ], "type": "string" } @@ -17100,28 +17400,69 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EKS::Cluster.ResourcesVpcConfig": { + "AWS::EC2::VolumeAttachment": { "additionalProperties": false, "properties": { - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" }, - "SubnetIds": { - "items": { - "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": { + "Device": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } }, - "type": "array" + "required": [ + "Device", + "InstanceId", + "VolumeId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VolumeAttachment" + ], + "type": "string" } }, "required": [ - "SubnetIds" + "Type", + "Properties" ], "type": "object" }, - "AWS::EMR::Cluster": { + "AWS::ECR::Repository": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -17153,90 +17494,190 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AdditionalInfo": { - "type": "object" + "LifecyclePolicy": { + "$ref": "#/definitions/AWS::ECR::Repository.LifecyclePolicy" }, - "Applications": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.Application" - }, - "type": "array" + "RepositoryName": { + "type": "string" }, - "AutoScalingRole": { + "RepositoryPolicyText": { + "type": "object" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECR::Repository" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECR::Repository.LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "type": "string" + }, + "RegistryId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::Cluster": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - "BootstrapActions": { + { "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.BootstrapActionConfig" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECS::Cluster" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECS::Service": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, - "Configurations": { + { "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" - }, - "CustomAmiId": { + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Cluster": { "type": "string" }, - "EbsRootVolumeSize": { + "DeploymentConfiguration": { + "$ref": "#/definitions/AWS::ECS::Service.DeploymentConfiguration" + }, + "DesiredCount": { "type": "number" }, - "Instances": { - "$ref": "#/definitions/AWS::EMR::Cluster.JobFlowInstancesConfig" + "HealthCheckGracePeriodSeconds": { + "type": "number" }, - "JobFlowRole": { + "LaunchType": { "type": "string" }, - "KerberosAttributes": { - "$ref": "#/definitions/AWS::EMR::Cluster.KerberosAttributes" + "LoadBalancers": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.LoadBalancer" + }, + "type": "array" }, - "LogUri": { - "type": "string" + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::ECS::Service.NetworkConfiguration" }, - "Name": { - "type": "string" + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.PlacementConstraint" + }, + "type": "array" }, - "ReleaseLabel": { - "type": "string" + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.PlacementStrategy" + }, + "type": "array" }, - "ScaleDownBehavior": { + "PlatformVersion": { "type": "string" }, - "SecurityConfiguration": { + "Role": { "type": "string" }, - "ServiceRole": { + "SchedulingStrategy": { "type": "string" }, - "Steps": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.StepConfig" - }, - "type": "array" + "ServiceName": { + "type": "string" }, - "Tags": { + "ServiceRegistries": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::ECS::Service.ServiceRegistry" }, "type": "array" }, - "VisibleToAllUsers": { - "type": "boolean" + "TaskDefinition": { + "type": "string" } }, "required": [ - "Instances", - "JobFlowRole", - "Name", - "ServiceRole" + "TaskDefinition" ], "type": "object" }, "Type": { "enum": [ - "AWS::EMR::Cluster" + "AWS::ECS::Service" ], "type": "string" } @@ -17247,576 +17688,4137 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EMR::Cluster.Application": { + "AWS::ECS::Service.AwsVpcConfiguration": { "additionalProperties": false, "properties": { - "AdditionalInfo": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" + "AssignPublicIp": { + "type": "string" }, - "Args": { + "SecurityGroups": { "items": { "type": "string" }, "type": "array" }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EMR::Cluster.AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScalingConstraints" - }, - "Rules": { + "Subnets": { "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScalingRule" + "type": "string" }, "type": "array" } }, "required": [ - "Constraints", - "Rules" + "Subnets" ], "type": "object" }, - "AWS::EMR::Cluster.BootstrapActionConfig": { + "AWS::ECS::Service.DeploymentConfiguration": { "additionalProperties": false, "properties": { - "Name": { - "type": "string" + "MaximumPercent": { + "type": "number" }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScriptBootstrapActionConfig" + "MinimumHealthyPercent": { + "type": "number" } }, - "required": [ - "Name", - "ScriptBootstrapAction" - ], "type": "object" }, - "AWS::EMR::Cluster.CloudWatchAlarmDefinition": { + "AWS::ECS::Service.LoadBalancer": { "additionalProperties": false, "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.MetricDimension" - }, - "type": "array" - }, - "EvaluationPeriods": { - "type": "number" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { + "ContainerName": { "type": "string" }, - "Period": { + "ContainerPort": { "type": "number" }, - "Statistic": { + "LoadBalancerName": { "type": "string" }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "ComparisonOperator", - "MetricName", - "Period", - "Threshold" - ], - "type": "object" - }, - "AWS::EMR::Cluster.Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { + "TargetGroupArn": { "type": "string" - }, - "ConfigurationProperties": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::EMR::Cluster.EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/AWS::EMR::Cluster.VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "number" } }, "required": [ - "VolumeSpecification" + "ContainerPort" ], "type": "object" }, - "AWS::EMR::Cluster.EbsConfiguration": { + "AWS::ECS::Service.NetworkConfiguration": { "additionalProperties": false, "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.EbsBlockDeviceConfig" - }, - "type": "array" - }, - "EbsOptimized": { - "type": "boolean" + "AwsvpcConfiguration": { + "$ref": "#/definitions/AWS::ECS::Service.AwsVpcConfiguration" } }, "type": "object" }, - "AWS::EMR::Cluster.HadoopJarStepConfig": { + "AWS::ECS::Service.PlacementConstraint": { "additionalProperties": false, "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Jar": { + "Expression": { "type": "string" }, - "MainClass": { + "Type": { "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.KeyValue" - }, - "type": "array" } }, "required": [ - "Jar" + "Type" ], "type": "object" }, - "AWS::EMR::Cluster.InstanceFleetConfig": { + "AWS::ECS::Service.PlacementStrategy": { "additionalProperties": false, "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceTypeConfig" - }, - "type": "array" - }, - "LaunchSpecifications": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications" - }, - "Name": { + "Field": { "type": "string" }, - "TargetOnDemandCapacity": { - "type": "number" - }, - "TargetSpotCapacity": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "SpotSpecification": { - "$ref": "#/definitions/AWS::EMR::Cluster.SpotProvisioningSpecification" + "Type": { + "type": "string" } }, "required": [ - "SpotSpecification" + "Type" ], "type": "object" }, - "AWS::EMR::Cluster.InstanceGroupConfig": { + "AWS::ECS::Service.ServiceRegistry": { "additionalProperties": false, "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AWS::EMR::Cluster.AutoScalingPolicy" - }, - "BidPrice": { + "ContainerName": { "type": "string" }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" - }, - "type": "array" - }, - "EbsConfiguration": { - "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration" - }, - "InstanceCount": { + "ContainerPort": { "type": "number" }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" + "Port": { + "type": "number" }, - "Name": { + "RegistryArn": { "type": "string" } }, - "required": [ - "InstanceCount", - "InstanceType" - ], "type": "object" }, - "AWS::EMR::Cluster.InstanceTypeConfig": { + "AWS::ECS::TaskDefinition": { "additionalProperties": false, "properties": { - "BidPrice": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" - }, - "type": "array" - }, - "EbsConfiguration": { - "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration" - }, - "InstanceType": { + "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": { + "ContainerDefinitions": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.ContainerDefinition" + }, + "type": "array" + }, + "Cpu": { + "type": "string" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Memory": { + "type": "string" + }, + "NetworkMode": { + "type": "string" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint" + }, + "type": "array" + }, + "RequiresCompatibilities": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TaskRoleArn": { + "type": "string" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Volume" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECS::TaskDefinition" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.ContainerDefinition": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Cpu": { + "type": "number" + }, + "DisableNetworking": { + "type": "boolean" + }, + "DnsSearchDomains": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DnsServers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DockerLabels": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "DockerSecurityOptions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EntryPoint": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Environment": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.KeyValuePair" + }, + "type": "array" + }, + "Essential": { + "type": "boolean" + }, + "ExtraHosts": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostEntry" + }, + "type": "array" + }, + "HealthCheck": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.HealthCheck" + }, + "Hostname": { + "type": "string" + }, + "Image": { + "type": "string" + }, + "Links": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LinuxParameters": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.LogConfiguration" + }, + "Memory": { + "type": "number" + }, + "MemoryReservation": { + "type": "number" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.MountPoint" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "PortMappings": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.PortMapping" + }, + "type": "array" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.RepositoryCredentials" + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Ulimit" + }, + "type": "array" + }, + "User": { + "type": "string" + }, + "VolumesFrom": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.VolumeFrom" + }, + "type": "array" + }, + "WorkingDirectory": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.Device": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "HostPath": { + "type": "string" + }, + "Permissions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "HostPath" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.DockerVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Autoprovision": { + "type": "boolean" + }, + "Driver": { + "type": "string" + }, + "DriverOpts": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Labels": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Scope": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.HealthCheck": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Interval": { + "type": "number" + }, + "Retries": { + "type": "number" + }, + "StartPeriod": { + "type": "number" + }, + "Timeout": { + "type": "number" + } + }, + "required": [ + "Command" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.HostEntry": { + "additionalProperties": false, + "properties": { + "Hostname": { + "type": "string" + }, + "IpAddress": { + "type": "string" + } + }, + "required": [ + "Hostname", + "IpAddress" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.HostVolumeProperties": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.KernelCapabilities": { + "additionalProperties": false, + "properties": { + "Add": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Drop": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.KeyValuePair": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.LinuxParameters": { + "additionalProperties": false, + "properties": { + "Capabilities": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.KernelCapabilities" + }, + "Devices": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Device" + }, + "type": "array" + }, + "InitProcessEnabled": { + "type": "boolean" + }, + "SharedMemorySize": { + "type": "number" + }, + "Tmpfs": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Tmpfs" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "LogDriver" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.MountPoint": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "ReadOnly": { + "type": "boolean" + }, + "SourceVolume": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.PortMapping": { + "additionalProperties": false, + "properties": { + "ContainerPort": { + "type": "number" + }, + "HostPort": { + "type": "number" + }, + "Protocol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.RepositoryCredentials": { + "additionalProperties": false, + "properties": { + "CredentialsParameter": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.Tmpfs": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "MountOptions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Size": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "SoftLimit": { + "type": "number" + } + }, + "required": [ + "HardLimit", + "Name", + "SoftLimit" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.Volume": { + "additionalProperties": false, + "properties": { + "DockerVolumeConfiguration": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.DockerVolumeConfiguration" + }, + "Host": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostVolumeProperties" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.VolumeFrom": { + "additionalProperties": false, + "properties": { + "ReadOnly": { + "type": "boolean" + }, + "SourceContainer": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EFS::FileSystem": { + "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": { + "Encrypted": { + "type": "boolean" + }, + "FileSystemTags": { + "items": { + "$ref": "#/definitions/AWS::EFS::FileSystem.ElasticFileSystemTag" + }, + "type": "array" + }, + "KmsKeyId": { + "type": "string" + }, + "PerformanceMode": { + "type": "string" + }, + "ProvisionedThroughputInMibps": { + "type": "number" + }, + "ThroughputMode": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EFS::FileSystem" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EFS::FileSystem.ElasticFileSystemTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EFS::MountTarget": { + "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": { + "FileSystemId": { + "type": "string" + }, + "IpAddress": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "FileSystemId", + "SecurityGroups", + "SubnetId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EFS::MountTarget" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EKS::Cluster": { + "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": { + "Name": { + "type": "string" + }, + "ResourcesVpcConfig": { + "$ref": "#/definitions/AWS::EKS::Cluster.ResourcesVpcConfig" + }, + "RoleArn": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "ResourcesVpcConfig", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EKS::Cluster" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EKS::Cluster.ResourcesVpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SubnetIds" + ], + "type": "object" + }, + "AWS::EMR::Cluster": { + "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": { + "AdditionalInfo": { + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Application" + }, + "type": "array" + }, + "AutoScalingRole": { + "type": "string" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.BootstrapActionConfig" + }, + "type": "array" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "type": "array" + }, + "CustomAmiId": { + "type": "string" + }, + "EbsRootVolumeSize": { + "type": "number" + }, + "Instances": { + "$ref": "#/definitions/AWS::EMR::Cluster.JobFlowInstancesConfig" + }, + "JobFlowRole": { + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/AWS::EMR::Cluster.KerberosAttributes" + }, + "LogUri": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ReleaseLabel": { + "type": "string" + }, + "ScaleDownBehavior": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "Steps": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.StepConfig" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VisibleToAllUsers": { + "type": "boolean" + } + }, + "required": [ + "Instances", + "JobFlowRole", + "Name", + "ServiceRole" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::Cluster" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::Cluster.Application": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingRule" + }, + "type": "array" + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AWS::EMR::Cluster.BootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScriptBootstrapActionConfig" + } + }, + "required": [ + "Name", + "ScriptBootstrapAction" + ], + "type": "object" + }, + "AWS::EMR::Cluster.CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.MetricDimension" + }, + "type": "array" + }, + "EvaluationPeriods": { + "type": "number" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "number" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "MetricName", + "Period", + "Threshold" + ], + "type": "object" + }, + "AWS::EMR::Cluster.Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/AWS::EMR::Cluster.VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "number" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "AWS::EMR::Cluster.EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.EbsBlockDeviceConfig" + }, + "type": "array" + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.KeyValue" + }, + "type": "array" + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "AWS::EMR::Cluster.InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceTypeConfig" + }, + "type": "array" + }, + "LaunchSpecifications": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "number" + }, + "TargetSpotCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "SpotSpecification": { + "$ref": "#/definitions/AWS::EMR::Cluster.SpotProvisioningSpecification" + } + }, + "required": [ + "SpotSpecification" + ], + "type": "object" + }, + "AWS::EMR::Cluster.InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AWS::EMR::Cluster.AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "type": "array" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration" + }, + "InstanceCount": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "AWS::EMR::Cluster.InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "type": "array" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration" + }, + "InstanceType": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "AWS::EMR::Cluster.JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + }, + "Ec2KeyName": { + "type": "string" + }, + "Ec2SubnetId": { + "type": "string" + }, + "EmrManagedMasterSecurityGroup": { + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "type": "string" + }, + "HadoopVersion": { + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + }, + "Placement": { + "$ref": "#/definitions/AWS::EMR::Cluster.PlacementType" + }, + "ServiceAccessSecurityGroup": { + "type": "string" + }, + "TerminationProtected": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "type": "string" + }, + "ADDomainJoinUser": { + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "type": "string" + }, + "KdcAdminPassword": { + "type": "string" + }, + "Realm": { + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "AWS::EMR::Cluster.KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EMR::Cluster.PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::EMR::Cluster.SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "required": [ + "MaxCapacity", + "MinCapacity" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingTrigger" + } + }, + "required": [ + "Action", + "Name", + "Trigger" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/AWS::EMR::Cluster.CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "AWS::EMR::Cluster.SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "number" + }, + "ScalingAdjustment": { + "type": "number" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "AWS::EMR::Cluster.SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "BlockDurationMinutes": { + "type": "number" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "number" + } + }, + "required": [ + "TimeoutAction", + "TimeoutDurationMinutes" + ], + "type": "object" + }, + "AWS::EMR::Cluster.StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/AWS::EMR::Cluster.HadoopJarStepConfig" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "AWS::EMR::Cluster.VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "number" + }, + "SizeInGB": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig": { + "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": { + "ClusterId": { + "type": "string" + }, + "InstanceFleetType": { + "type": "string" + }, + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceTypeConfig" + }, + "type": "array" + }, + "LaunchSpecifications": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "number" + }, + "TargetSpotCapacity": { + "type": "number" + } + }, + "required": [ + "ClusterId", + "InstanceFleetType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::InstanceFleetConfig" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "number" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig" + }, + "type": "array" + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "SpotSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification" + } + }, + "required": [ + "SpotSpecification" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration" + }, + "type": "array" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsConfiguration" + }, + "InstanceType": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "BlockDurationMinutes": { + "type": "number" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "number" + } + }, + "required": [ + "TimeoutAction", + "TimeoutDurationMinutes" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "number" + }, + "SizeInGB": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig": { + "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": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration" + }, + "type": "array" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsConfiguration" + }, + "InstanceCount": { + "type": "number" + }, + "InstanceRole": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "JobFlowId": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceRole", + "InstanceType", + "JobFlowId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::InstanceGroupConfig" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingRule" + }, + "type": "array" + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.MetricDimension" + }, + "type": "array" + }, + "EvaluationPeriods": { + "type": "number" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "number" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "MetricName", + "Period", + "Threshold" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "number" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig" + }, + "type": "array" + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "required": [ + "MaxCapacity", + "MinCapacity" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingTrigger" + } + }, + "required": [ + "Action", + "Name", + "Trigger" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "number" + }, + "ScalingAdjustment": { + "type": "number" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "number" + }, + "SizeInGB": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + }, + "AWS::EMR::SecurityConfiguration": { + "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": { + "Name": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "object" + } + }, + "required": [ + "SecurityConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::SecurityConfiguration" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::Step": { + "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": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/AWS::EMR::Step.HadoopJarStepConfig" + }, + "JobFlowId": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "ActionOnFailure", + "HadoopJarStep", + "JobFlowId", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::Step" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::Step.HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/AWS::EMR::Step.KeyValue" + }, + "type": "array" + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "AWS::EMR::Step.KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElastiCache::CacheCluster": { + "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": { + "AZMode": { + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "CacheNodeType": { + "type": "string" + }, + "CacheParameterGroupName": { + "type": "string" + }, + "CacheSecurityGroupNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CacheSubnetGroupName": { + "type": "string" + }, + "ClusterName": { + "type": "string" + }, + "Engine": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "NotificationTopicArn": { + "type": "string" + }, + "NumCacheNodes": { + "type": "number" + }, + "Port": { + "type": "number" + }, + "PreferredAvailabilityZone": { + "type": "string" + }, + "PreferredAvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "SnapshotArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotName": { + "type": "string" + }, + "SnapshotRetentionLimit": { + "type": "number" + }, + "SnapshotWindow": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "CacheNodeType", + "Engine", + "NumCacheNodes" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::CacheCluster" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::ParameterGroup": { + "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": { + "CacheParameterGroupFamily": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Properties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "CacheParameterGroupFamily", + "Description" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::ParameterGroup" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::ReplicationGroup": { + "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": { + "AtRestEncryptionEnabled": { + "type": "boolean" + }, + "AuthToken": { + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AutomaticFailoverEnabled": { + "type": "boolean" + }, + "CacheNodeType": { + "type": "string" + }, + "CacheParameterGroupName": { + "type": "string" + }, + "CacheSecurityGroupNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CacheSubnetGroupName": { + "type": "string" + }, + "Engine": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "NodeGroupConfiguration": { + "items": { + "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration" + }, + "type": "array" + }, + "NotificationTopicArn": { + "type": "string" + }, + "NumCacheClusters": { + "type": "number" + }, + "NumNodeGroups": { + "type": "number" + }, + "Port": { + "type": "number" + }, + "PreferredCacheClusterAZs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PrimaryClusterId": { + "type": "string" + }, + "ReplicasPerNodeGroup": { + "type": "number" + }, + "ReplicationGroupDescription": { + "type": "string" + }, + "ReplicationGroupId": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotName": { + "type": "string" + }, + "SnapshotRetentionLimit": { + "type": "number" + }, + "SnapshotWindow": { + "type": "string" + }, + "SnapshottingClusterId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitEncryptionEnabled": { + "type": "boolean" + } + }, + "required": [ + "ReplicationGroupDescription" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::ReplicationGroup" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration": { + "additionalProperties": false, + "properties": { + "NodeGroupId": { + "type": "string" + }, + "PrimaryAvailabilityZone": { + "type": "string" + }, + "ReplicaAvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ReplicaCount": { + "type": "number" + }, + "Slots": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElastiCache::SecurityGroup": { + "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" + } + }, + "required": [ + "Description" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::SecurityGroup" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::SecurityGroupIngress": { + "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": { + "CacheSecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupOwnerId": { + "type": "string" + } + }, + "required": [ + "CacheSecurityGroupName", + "EC2SecurityGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::SecurityGroupIngress" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::SubnetGroup": { + "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": { + "CacheSubnetGroupName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Description", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::SubnetGroup" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::Application": { + "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": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "ResourceLifecycleConfig": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticBeanstalk::Application" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig": { + "additionalProperties": false, + "properties": { + "ServiceRole": { + "type": "string" + }, + "VersionLifecycleConfig": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig": { + "additionalProperties": false, + "properties": { + "MaxAgeRule": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxAgeRule" + }, + "MaxCountRule": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxCountRule" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.MaxAgeRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxAgeInDays": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.MaxCountRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxCount": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::ApplicationVersion": { + "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": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "SourceBundle": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle" + } + }, + "required": [ + "ApplicationName", + "SourceBundle" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticBeanstalk::ApplicationVersion" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::ConfigurationTemplate": { + "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": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EnvironmentId": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting" + }, + "type": "array" + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "SourceConfiguration": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration" + } + }, + "required": [ + "ApplicationName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticBeanstalk::ConfigurationTemplate" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "OptionName": { + "type": "string" + }, + "ResourceName": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration": { + "additionalProperties": false, + "properties": { + "ApplicationName": { + "type": "string" + }, + "TemplateName": { + "type": "string" + } + }, + "required": [ + "ApplicationName", + "TemplateName" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::Environment": { + "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": { + "ApplicationName": { + "type": "string" + }, + "CNAMEPrefix": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EnvironmentName": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.OptionSetting" + }, + "type": "array" + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TemplateName": { + "type": "string" + }, + "Tier": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.Tier" + }, + "VersionLabel": { + "type": "string" + } + }, + "required": [ + "ApplicationName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticBeanstalk::Environment" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::Environment.OptionSetting": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "OptionName": { + "type": "string" + }, + "ResourceName": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::Environment.Tier": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer": { + "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": { + "AccessLoggingPolicy": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy" + }, + "AppCookieStickinessPolicy": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy" + }, + "type": "array" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ConnectionDrainingPolicy": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy" + }, + "ConnectionSettings": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings" + }, + "CrossZone": { + "type": "boolean" + }, + "HealthCheck": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck" + }, + "Instances": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LBCookieStickinessPolicy": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy" + }, + "type": "array" + }, + "Listeners": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Listeners" + }, + "type": "array" + }, + "LoadBalancerName": { + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Policies" + }, + "type": "array" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Listeners" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticLoadBalancing::LoadBalancer" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy": { + "additionalProperties": false, + "properties": { + "EmitInterval": { + "type": "number" + }, + "Enabled": { + "type": "boolean" + }, + "S3BucketName": { + "type": "string" + }, + "S3BucketPrefix": { + "type": "string" + } + }, + "required": [ + "Enabled", + "S3BucketName" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy": { + "additionalProperties": false, + "properties": { + "CookieName": { + "type": "string" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "CookieName", + "PolicyName" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Timeout": { + "type": "number" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "number" + } + }, + "required": [ + "IdleTimeout" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck": { + "additionalProperties": false, + "properties": { + "HealthyThreshold": { + "type": "string" + }, + "Interval": { + "type": "string" + }, + "Target": { + "type": "string" + }, + "Timeout": { + "type": "string" + }, + "UnhealthyThreshold": { + "type": "string" + } + }, + "required": [ + "HealthyThreshold", + "Interval", + "Target", + "Timeout", + "UnhealthyThreshold" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy": { + "additionalProperties": false, + "properties": { + "CookieExpirationPeriod": { + "type": "string" + }, + "PolicyName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.Listeners": { + "additionalProperties": false, + "properties": { + "InstancePort": { + "type": "string" + }, + "InstanceProtocol": { "type": "string" }, - "WeightedCapacity": { - "type": "number" + "LoadBalancerPort": { + "type": "string" + }, + "PolicyNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Protocol": { + "type": "string" + }, + "SSLCertificateId": { + "type": "string" } }, "required": [ - "InstanceType" + "InstancePort", + "LoadBalancerPort", + "Protocol" ], "type": "object" }, - "AWS::EMR::Cluster.JobFlowInstancesConfig": { + "AWS::ElasticLoadBalancing::LoadBalancer.Policies": { "additionalProperties": false, "properties": { - "AdditionalMasterSecurityGroups": { + "Attributes": { "items": { - "type": "string" + "type": "object" }, "type": "array" }, - "AdditionalSlaveSecurityGroups": { + "InstancePorts": { "items": { "type": "string" }, "type": "array" }, - "CoreInstanceFleet": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + "LoadBalancerPorts": { + "items": { + "type": "string" + }, + "type": "array" }, - "CoreInstanceGroup": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + "PolicyName": { + "type": "string" }, - "Ec2KeyName": { + "PolicyType": { + "type": "string" + } + }, + "required": [ + "Attributes", + "PolicyName", + "PolicyType" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "Ec2SubnetId": { + "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": { + "Certificates": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Certificate" + }, + "type": "array" + }, + "DefaultActions": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Action" + }, + "type": "array" + }, + "LoadBalancerArn": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + }, + "SslPolicy": { + "type": "string" + } + }, + "required": [ + "DefaultActions", + "LoadBalancerArn", + "Port", + "Protocol" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticLoadBalancingV2::Listener" + ], "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.Action": { + "additionalProperties": false, + "properties": { + "AuthenticateCognitoConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig" }, - "EmrManagedMasterSecurityGroup": { + "AuthenticateOidcConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig" + }, + "FixedResponseConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig" + }, + "Order": { + "type": "number" + }, + "RedirectConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.RedirectConfig" + }, + "TargetGroupArn": { "type": "string" }, - "EmrManagedSlaveSecurityGroup": { + "Type": { "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig": { + "additionalProperties": false, + "properties": { + "AuthenticationRequestExtraParams": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" }, - "HadoopVersion": { + "OnUnauthenticatedRequest": { "type": "string" }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" + "Scope": { + "type": "string" }, - "MasterInstanceFleet": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + "SessionCookieName": { + "type": "string" }, - "MasterInstanceGroup": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + "SessionTimeout": { + "type": "number" }, - "Placement": { - "$ref": "#/definitions/AWS::EMR::Cluster.PlacementType" + "UserPoolArn": { + "type": "string" }, - "ServiceAccessSecurityGroup": { + "UserPoolClientId": { "type": "string" }, - "TerminationProtected": { - "type": "boolean" + "UserPoolDomain": { + "type": "string" } }, + "required": [ + "UserPoolArn", + "UserPoolClientId", + "UserPoolDomain" + ], "type": "object" }, - "AWS::EMR::Cluster.KerberosAttributes": { + "AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig": { "additionalProperties": false, "properties": { - "ADDomainJoinPassword": { + "AuthenticationRequestExtraParams": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "AuthorizationEndpoint": { "type": "string" }, - "ADDomainJoinUser": { + "ClientId": { "type": "string" }, - "CrossRealmTrustPrincipalPassword": { + "ClientSecret": { "type": "string" }, - "KdcAdminPassword": { + "Issuer": { "type": "string" }, - "Realm": { + "OnUnauthenticatedRequest": { + "type": "string" + }, + "Scope": { + "type": "string" + }, + "SessionCookieName": { + "type": "string" + }, + "SessionTimeout": { + "type": "number" + }, + "TokenEndpoint": { + "type": "string" + }, + "UserInfoEndpoint": { "type": "string" } }, "required": [ - "KdcAdminPassword", - "Realm" + "AuthorizationEndpoint", + "ClientId", + "ClientSecret", + "Issuer", + "TokenEndpoint", + "UserInfoEndpoint" ], "type": "object" }, - "AWS::EMR::Cluster.KeyValue": { + "AWS::ElasticLoadBalancingV2::Listener.Certificate": { "additionalProperties": false, "properties": { - "Key": { - "type": "string" - }, - "Value": { + "CertificateArn": { "type": "string" } }, "type": "object" }, - "AWS::EMR::Cluster.MetricDimension": { + "AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig": { "additionalProperties": false, "properties": { - "Key": { + "ContentType": { "type": "string" }, - "Value": { + "MessageBody": { + "type": "string" + }, + "StatusCode": { "type": "string" } }, "required": [ - "Key", - "Value" + "StatusCode" ], "type": "object" }, - "AWS::EMR::Cluster.PlacementType": { + "AWS::ElasticLoadBalancingV2::Listener.RedirectConfig": { "additionalProperties": false, "properties": { - "AvailabilityZone": { + "Host": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "Query": { + "type": "string" + }, + "StatusCode": { "type": "string" } }, "required": [ - "AvailabilityZone" + "StatusCode" ], "type": "object" }, - "AWS::EMR::Cluster.ScalingAction": { + "AWS::ElasticLoadBalancingV2::ListenerCertificate": { "additionalProperties": false, "properties": { - "Market": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/AWS::EMR::Cluster.SimpleScalingPolicyConfiguration" + "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": { + "Certificates": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate" + }, + "type": "array" + }, + "ListenerArn": { + "type": "string" + } + }, + "required": [ + "Certificates", + "ListenerArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticLoadBalancingV2::ListenerCertificate" + ], + "type": "string" } }, "required": [ - "SimpleScalingPolicyConfiguration" + "Type", + "Properties" ], "type": "object" }, - "AWS::EMR::Cluster.ScalingConstraints": { + "AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate": { "additionalProperties": false, "properties": { - "MaxCapacity": { - "type": "number" - }, - "MinCapacity": { - "type": "number" + "CertificateArn": { + "type": "string" } }, - "required": [ - "MaxCapacity", - "MinCapacity" - ], "type": "object" }, - "AWS::EMR::Cluster.ScalingRule": { + "AWS::ElasticLoadBalancingV2::ListenerRule": { "additionalProperties": false, "properties": { - "Action": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScalingAction" - }, - "Description": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "Name": { - "type": "string" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Trigger": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScalingTrigger" + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.Action" + }, + "type": "array" + }, + "Conditions": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition" + }, + "type": "array" + }, + "ListenerArn": { + "type": "string" + }, + "Priority": { + "type": "number" + } + }, + "required": [ + "Actions", + "Conditions", + "ListenerArn", + "Priority" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticLoadBalancingV2::ListenerRule" + ], + "type": "string" } }, "required": [ - "Action", - "Name", - "Trigger" + "Type", + "Properties" ], "type": "object" }, - "AWS::EMR::Cluster.ScalingTrigger": { + "AWS::ElasticLoadBalancingV2::ListenerRule.Action": { "additionalProperties": false, "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/AWS::EMR::Cluster.CloudWatchAlarmDefinition" + "AuthenticateCognitoConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig" + }, + "AuthenticateOidcConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig" + }, + "FixedResponseConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig" + }, + "Order": { + "type": "number" + }, + "RedirectConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig" + }, + "TargetGroupArn": { + "type": "string" + }, + "Type": { + "type": "string" } }, "required": [ - "CloudWatchAlarmDefinition" + "Type" ], "type": "object" }, - "AWS::EMR::Cluster.ScriptBootstrapActionConfig": { + "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig": { "additionalProperties": false, "properties": { - "Args": { - "items": { - "type": "string" + "AuthenticationRequestExtraParams": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } }, - "type": "array" + "type": "object" }, - "Path": { + "OnUnauthenticatedRequest": { + "type": "string" + }, + "Scope": { + "type": "string" + }, + "SessionCookieName": { + "type": "string" + }, + "SessionTimeout": { + "type": "number" + }, + "UserPoolArn": { + "type": "string" + }, + "UserPoolClientId": { + "type": "string" + }, + "UserPoolDomain": { "type": "string" } }, "required": [ - "Path" + "UserPoolArn", + "UserPoolClientId", + "UserPoolDomain" ], "type": "object" }, - "AWS::EMR::Cluster.SimpleScalingPolicyConfiguration": { + "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig": { "additionalProperties": false, "properties": { - "AdjustmentType": { + "AuthenticationRequestExtraParams": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "AuthorizationEndpoint": { + "type": "string" + }, + "ClientId": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + }, + "Issuer": { + "type": "string" + }, + "OnUnauthenticatedRequest": { + "type": "string" + }, + "Scope": { "type": "string" }, - "CoolDown": { - "type": "number" + "SessionCookieName": { + "type": "string" }, - "ScalingAdjustment": { + "SessionTimeout": { "type": "number" + }, + "TokenEndpoint": { + "type": "string" + }, + "UserInfoEndpoint": { + "type": "string" } }, "required": [ - "ScalingAdjustment" + "AuthorizationEndpoint", + "ClientId", + "ClientSecret", + "Issuer", + "TokenEndpoint", + "UserInfoEndpoint" ], "type": "object" }, - "AWS::EMR::Cluster.SpotProvisioningSpecification": { + "AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig": { "additionalProperties": false, "properties": { - "BlockDurationMinutes": { - "type": "number" + "ContentType": { + "type": "string" }, - "TimeoutAction": { + "MessageBody": { "type": "string" }, - "TimeoutDurationMinutes": { - "type": "number" + "StatusCode": { + "type": "string" } }, "required": [ - "TimeoutAction", - "TimeoutDurationMinutes" + "StatusCode" ], "type": "object" }, - "AWS::EMR::Cluster.StepConfig": { + "AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig": { "additionalProperties": false, "properties": { - "ActionOnFailure": { + "Host": { "type": "string" }, - "HadoopJarStep": { - "$ref": "#/definitions/AWS::EMR::Cluster.HadoopJarStepConfig" + "Path": { + "type": "string" }, - "Name": { + "Port": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "Query": { + "type": "string" + }, + "StatusCode": { "type": "string" } }, "required": [ - "HadoopJarStep", - "Name" + "StatusCode" ], "type": "object" }, - "AWS::EMR::Cluster.VolumeSpecification": { + "AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition": { "additionalProperties": false, "properties": { - "Iops": { - "type": "number" - }, - "SizeInGB": { - "type": "number" - }, - "VolumeType": { + "Field": { "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "SizeInGB", - "VolumeType" - ], "type": "object" }, - "AWS::EMR::InstanceFleetConfig": { + "AWS::ElasticLoadBalancingV2::LoadBalancer": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -17848,185 +21850,92 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ClusterId": { + "IpAddressType": { "type": "string" }, - "InstanceFleetType": { + "LoadBalancerAttributes": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute" + }, + "type": "array" + }, + "Name": { "type": "string" }, - "InstanceTypeConfigs": { + "Scheme": { + "type": "string" + }, + "SecurityGroups": { "items": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceTypeConfig" + "type": "string" }, "type": "array" }, - "LaunchSpecifications": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications" + "SubnetMappings": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping" + }, + "type": "array" }, - "Name": { - "type": "string" + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" }, - "TargetOnDemandCapacity": { - "type": "number" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "TargetSpotCapacity": { - "type": "number" + "Type": { + "type": "string" } }, - "required": [ - "ClusterId", - "InstanceFleetType" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EMR::InstanceFleetConfig" + "AWS::ElasticLoadBalancingV2::LoadBalancer" ], "type": "string" } }, "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::EMR::InstanceFleetConfig.Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "number" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "AWS::EMR::InstanceFleetConfig.EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig" - }, - "type": "array" - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "SpotSpecification": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification" - } - }, - "required": [ - "SpotSpecification" + "Type" ], "type": "object" }, - "AWS::EMR::InstanceFleetConfig.InstanceTypeConfig": { + "AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute": { "additionalProperties": false, "properties": { - "BidPrice": { + "Key": { "type": "string" }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration" - }, - "type": "array" - }, - "EbsConfiguration": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsConfiguration" - }, - "InstanceType": { + "Value": { "type": "string" - }, - "WeightedCapacity": { - "type": "number" } }, - "required": [ - "InstanceType" - ], "type": "object" }, - "AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification": { + "AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping": { "additionalProperties": false, "properties": { - "BlockDurationMinutes": { - "type": "number" - }, - "TimeoutAction": { + "AllocationId": { "type": "string" }, - "TimeoutDurationMinutes": { - "type": "number" - } - }, - "required": [ - "TimeoutAction", - "TimeoutDurationMinutes" - ], - "type": "object" - }, - "AWS::EMR::InstanceFleetConfig.VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "number" - }, - "SizeInGB": { - "type": "number" - }, - "VolumeType": { + "SubnetId": { "type": "string" } }, "required": [ - "SizeInGB", - "VolumeType" + "AllocationId", + "SubnetId" ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig": { + "AWS::ElasticLoadBalancingV2::TargetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18058,177 +21967,112 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.AutoScalingPolicy" + "HealthCheckEnabled": { + "type": "boolean" }, - "BidPrice": { + "HealthCheckIntervalSeconds": { + "type": "number" + }, + "HealthCheckPath": { "type": "string" }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration" - }, - "type": "array" + "HealthCheckPort": { + "type": "string" }, - "EbsConfiguration": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsConfiguration" + "HealthCheckProtocol": { + "type": "string" }, - "InstanceCount": { + "HealthCheckTimeoutSeconds": { "type": "number" }, - "InstanceRole": { - "type": "string" + "HealthyThresholdCount": { + "type": "number" }, - "InstanceType": { + "Matcher": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.Matcher" + }, + "Name": { "type": "string" }, - "JobFlowId": { + "Port": { + "type": "number" + }, + "Protocol": { "type": "string" }, - "Market": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TargetGroupAttributes": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute" + }, + "type": "array" + }, + "TargetType": { "type": "string" }, - "Name": { + "Targets": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription" + }, + "type": "array" + }, + "UnhealthyThresholdCount": { + "type": "number" + }, + "VpcId": { "type": "string" } }, - "required": [ - "InstanceCount", - "InstanceRole", - "InstanceType", - "JobFlowId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EMR::InstanceGroupConfig" + "AWS::ElasticLoadBalancingV2::TargetGroup" ], "type": "string" } }, "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::EMR::InstanceGroupConfig.AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingRule" - }, - "type": "array" - } - }, - "required": [ - "Constraints", - "Rules" + "Type" ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition": { + "AWS::ElasticLoadBalancingV2::TargetGroup.Matcher": { "additionalProperties": false, "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.MetricDimension" - }, - "type": "array" - }, - "EvaluationPeriods": { - "type": "number" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "number" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { + "HttpCode": { "type": "string" } }, "required": [ - "ComparisonOperator", - "MetricName", - "Period", - "Threshold" + "HttpCode" ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.Configuration": { + "AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription": { "additionalProperties": false, "properties": { - "Classification": { + "AvailabilityZone": { "type": "string" }, - "ConfigurationProperties": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.VolumeSpecification" + "Id": { + "type": "string" }, - "VolumesPerInstance": { + "Port": { "type": "number" } }, "required": [ - "VolumeSpecification" + "Id" ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig" - }, - "type": "array" - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::EMR::InstanceGroupConfig.MetricDimension": { + "AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute": { "additionalProperties": false, "properties": { "Key": { @@ -18238,173 +22082,188 @@ var SamSchema = `{ "type": "string" } }, - "required": [ - "Key", - "Value" - ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.ScalingAction": { + "AWS::Elasticsearch::Domain": { "additionalProperties": false, "properties": { - "Market": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration" + "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": { + "AccessPolicies": { + "type": "object" + }, + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.EBSOptions" + }, + "ElasticsearchClusterConfig": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.ElasticsearchClusterConfig" + }, + "ElasticsearchVersion": { + "type": "string" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.EncryptionAtRestOptions" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.NodeToNodeEncryptionOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.SnapshotOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VPCOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.VPCOptions" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Elasticsearch::Domain" + ], + "type": "string" } }, "required": [ - "SimpleScalingPolicyConfiguration" + "Type" ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.ScalingConstraints": { + "AWS::Elasticsearch::Domain.EBSOptions": { "additionalProperties": false, "properties": { - "MaxCapacity": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { "type": "number" }, - "MinCapacity": { + "VolumeSize": { "type": "number" + }, + "VolumeType": { + "type": "string" } }, - "required": [ - "MaxCapacity", - "MinCapacity" - ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.ScalingRule": { + "AWS::Elasticsearch::Domain.ElasticsearchClusterConfig": { "additionalProperties": false, "properties": { - "Action": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingAction" + "DedicatedMasterCount": { + "type": "number" }, - "Description": { + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { "type": "string" }, - "Name": { + "InstanceCount": { + "type": "number" + }, + "InstanceType": { "type": "string" }, - "Trigger": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingTrigger" + "ZoneAwarenessEnabled": { + "type": "boolean" } }, - "required": [ - "Action", - "Name", - "Trigger" - ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.ScalingTrigger": { + "AWS::Elasticsearch::Domain.EncryptionAtRestOptions": { "additionalProperties": false, "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition" + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" } }, - "required": [ - "CloudWatchAlarmDefinition" - ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration": { + "AWS::Elasticsearch::Domain.NodeToNodeEncryptionOptions": { "additionalProperties": false, "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "number" - }, - "ScalingAdjustment": { - "type": "number" + "Enabled": { + "type": "boolean" } }, - "required": [ - "ScalingAdjustment" - ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.VolumeSpecification": { + "AWS::Elasticsearch::Domain.SnapshotOptions": { "additionalProperties": false, "properties": { - "Iops": { - "type": "number" - }, - "SizeInGB": { + "AutomatedSnapshotStartHour": { "type": "number" - }, - "VolumeType": { - "type": "string" } }, - "required": [ - "SizeInGB", - "VolumeType" - ], "type": "object" }, - "AWS::EMR::SecurityConfiguration": { + "AWS::Elasticsearch::Domain.VPCOptions": { "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": { - "Name": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "object" - } + "SecurityGroupIds": { + "items": { + "type": "string" }, - "required": [ - "SecurityConfiguration" - ], - "type": "object" + "type": "array" }, - "Type": { - "enum": [ - "AWS::EMR::SecurityConfiguration" - ], - "type": "string" + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::EMR::Step": { + "AWS::Events::EventBusPolicy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18436,30 +22295,29 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ActionOnFailure": { + "Action": { "type": "string" }, - "HadoopJarStep": { - "$ref": "#/definitions/AWS::EMR::Step.HadoopJarStepConfig" + "Condition": { + "$ref": "#/definitions/AWS::Events::EventBusPolicy.Condition" }, - "JobFlowId": { + "Principal": { "type": "string" }, - "Name": { + "StatementId": { "type": "string" } }, "required": [ - "ActionOnFailure", - "HadoopJarStep", - "JobFlowId", - "Name" + "Action", + "Principal", + "StatementId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EMR::Step" + "AWS::Events::EventBusPolicy" ], "type": "string" } @@ -18470,37 +22328,13 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EMR::Step.HadoopJarStepConfig": { + "AWS::Events::EventBusPolicy.Condition": { "additionalProperties": false, "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Jar": { - "type": "string" - }, - "MainClass": { + "Key": { "type": "string" }, - "StepProperties": { - "items": { - "$ref": "#/definitions/AWS::EMR::Step.KeyValue" - }, - "type": "array" - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "AWS::EMR::Step.KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { + "Type": { "type": "string" }, "Value": { @@ -18509,7 +22343,7 @@ var SamSchema = `{ }, "type": "object" }, - "AWS::ElastiCache::CacheCluster": { + "AWS::Events::Rule": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18541,173 +22375,180 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AZMode": { - "type": "string" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "CacheNodeType": { - "type": "string" - }, - "CacheParameterGroupName": { - "type": "string" - }, - "CacheSecurityGroupNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "CacheSubnetGroupName": { - "type": "string" - }, - "ClusterName": { - "type": "string" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "NotificationTopicArn": { + "Description": { "type": "string" }, - "NumCacheNodes": { - "type": "number" - }, - "Port": { - "type": "number" + "EventPattern": { + "type": "object" }, - "PreferredAvailabilityZone": { + "Name": { "type": "string" }, - "PreferredAvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" - }, - "PreferredMaintenanceWindow": { + "RoleArn": { "type": "string" }, - "SnapshotArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SnapshotName": { + "ScheduleExpression": { "type": "string" }, - "SnapshotRetentionLimit": { - "type": "number" - }, - "SnapshotWindow": { + "State": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VpcSecurityGroupIds": { + "Targets": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::Events::Rule.Target" }, "type": "array" } }, - "required": [ - "CacheNodeType", - "Engine", - "NumCacheNodes" - ], "type": "object" }, "Type": { "enum": [ - "AWS::ElastiCache::CacheCluster" + "AWS::Events::Rule" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::ElastiCache::ParameterGroup": { + "AWS::Events::Rule.EcsParameters": { "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" + "TaskCount": { + "type": "number" }, - "Properties": { + "TaskDefinitionArn": { + "type": "string" + } + }, + "required": [ + "TaskDefinitionArn" + ], + "type": "object" + }, + "AWS::Events::Rule.InputTransformer": { + "additionalProperties": false, + "properties": { + "InputPathsMap": { "additionalProperties": false, - "properties": { - "CacheParameterGroupFamily": { - "type": "string" - }, - "Description": { + "patternProperties": { + "^[a-zA-Z0-9]+$": { "type": "string" - }, - "Properties": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" } }, - "required": [ - "CacheParameterGroupFamily", - "Description" - ], "type": "object" }, - "Type": { - "enum": [ - "AWS::ElastiCache::ParameterGroup" - ], + "InputTemplate": { "type": "string" } }, "required": [ - "Type", - "Properties" + "InputTemplate" ], "type": "object" }, - "AWS::ElastiCache::ReplicationGroup": { + "AWS::Events::Rule.KinesisParameters": { + "additionalProperties": false, + "properties": { + "PartitionKeyPath": { + "type": "string" + } + }, + "required": [ + "PartitionKeyPath" + ], + "type": "object" + }, + "AWS::Events::Rule.RunCommandParameters": { + "additionalProperties": false, + "properties": { + "RunCommandTargets": { + "items": { + "$ref": "#/definitions/AWS::Events::Rule.RunCommandTarget" + }, + "type": "array" + } + }, + "required": [ + "RunCommandTargets" + ], + "type": "object" + }, + "AWS::Events::Rule.RunCommandTarget": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Key", + "Values" + ], + "type": "object" + }, + "AWS::Events::Rule.SqsParameters": { + "additionalProperties": false, + "properties": { + "MessageGroupId": { + "type": "string" + } + }, + "required": [ + "MessageGroupId" + ], + "type": "object" + }, + "AWS::Events::Rule.Target": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "EcsParameters": { + "$ref": "#/definitions/AWS::Events::Rule.EcsParameters" + }, + "Id": { + "type": "string" + }, + "Input": { + "type": "string" + }, + "InputPath": { + "type": "string" + }, + "InputTransformer": { + "$ref": "#/definitions/AWS::Events::Rule.InputTransformer" + }, + "KinesisParameters": { + "$ref": "#/definitions/AWS::Events::Rule.KinesisParameters" + }, + "RoleArn": { + "type": "string" + }, + "RunCommandParameters": { + "$ref": "#/definitions/AWS::Events::Rule.RunCommandParameters" + }, + "SqsParameters": { + "$ref": "#/definitions/AWS::Events::Rule.SqsParameters" + } + }, + "required": [ + "Arn", + "Id" + ], + "type": "object" + }, + "AWS::FSx::FileSystem": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18734,82 +22575,22 @@ var SamSchema = `{ ] }, "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "AtRestEncryptionEnabled": { - "type": "boolean" - }, - "AuthToken": { - "type": "string" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticFailoverEnabled": { - "type": "boolean" - }, - "CacheNodeType": { - "type": "string" - }, - "CacheParameterGroupName": { - "type": "string" - }, - "CacheSecurityGroupNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "CacheSubnetGroupName": { - "type": "string" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "NodeGroupConfiguration": { - "items": { - "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration" - }, - "type": "array" - }, - "NotificationTopicArn": { - "type": "string" - }, - "NumCacheClusters": { - "type": "number" - }, - "NumNodeGroups": { - "type": "number" - }, - "Port": { - "type": "number" - }, - "PreferredCacheClusterAZs": { - "items": { - "type": "string" - }, - "type": "array" - }, - "PreferredMaintenanceWindow": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "BackupId": { "type": "string" }, - "PrimaryClusterId": { + "FileSystemType": { "type": "string" }, - "ReplicasPerNodeGroup": { - "type": "number" - }, - "ReplicationGroupDescription": { + "KmsKeyId": { "type": "string" }, - "ReplicationGroupId": { - "type": "string" + "LustreConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.LustreConfiguration" }, "SecurityGroupIds": { "items": { @@ -18817,77 +22598,98 @@ var SamSchema = `{ }, "type": "array" }, - "SnapshotArns": { + "StorageCapacity": { + "type": "number" + }, + "SubnetIds": { "items": { "type": "string" }, "type": "array" }, - "SnapshotName": { - "type": "string" - }, - "SnapshotRetentionLimit": { - "type": "number" - }, - "SnapshotWindow": { - "type": "string" - }, - "SnapshottingClusterId": { - "type": "string" - }, "Tags": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::FSx::FileSystem.TagEntry" }, "type": "array" }, - "TransitEncryptionEnabled": { - "type": "boolean" + "WindowsConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.WindowsConfiguration" } }, - "required": [ - "ReplicationGroupDescription" - ], "type": "object" }, "Type": { "enum": [ - "AWS::ElastiCache::ReplicationGroup" + "AWS::FSx::FileSystem" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration": { + "AWS::FSx::FileSystem.LustreConfiguration": { "additionalProperties": false, "properties": { - "NodeGroupId": { + "ExportPath": { "type": "string" }, - "PrimaryAvailabilityZone": { + "ImportPath": { "type": "string" }, - "ReplicaAvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" + "ImportedFileChunkSize": { + "type": "number" }, - "ReplicaCount": { + "WeeklyMaintenanceStartTime": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::FSx::FileSystem.TagEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::FSx::FileSystem.WindowsConfiguration": { + "additionalProperties": false, + "properties": { + "ActiveDirectoryId": { + "type": "string" + }, + "AutomaticBackupRetentionDays": { "type": "number" }, - "Slots": { + "CopyTagsToBackups": { + "type": "boolean" + }, + "DailyAutomaticBackupStartTime": { + "type": "string" + }, + "ThroughputCapacity": { + "type": "number" + }, + "WeeklyMaintenanceStartTime": { "type": "string" } }, "type": "object" }, - "AWS::ElastiCache::SecurityGroup": { + "AWS::GameLift::Alias": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18921,16 +22723,23 @@ var SamSchema = `{ "properties": { "Description": { "type": "string" + }, + "Name": { + "type": "string" + }, + "RoutingStrategy": { + "$ref": "#/definitions/AWS::GameLift::Alias.RoutingStrategy" } }, "required": [ - "Description" + "Name", + "RoutingStrategy" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElastiCache::SecurityGroup" + "AWS::GameLift::Alias" ], "type": "string" } @@ -18941,7 +22750,25 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::ElastiCache::SecurityGroupIngress": { + "AWS::GameLift::Alias.RoutingStrategy": { + "additionalProperties": false, + "properties": { + "FleetId": { + "type": "string" + }, + "Message": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::GameLift::Build": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18973,36 +22800,51 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CacheSecurityGroupName": { + "Name": { "type": "string" }, - "EC2SecurityGroupName": { - "type": "string" + "StorageLocation": { + "$ref": "#/definitions/AWS::GameLift::Build.S3Location" }, - "EC2SecurityGroupOwnerId": { + "Version": { "type": "string" } }, - "required": [ - "CacheSecurityGroupName", - "EC2SecurityGroupName" - ], "type": "object" }, "Type": { "enum": [ - "AWS::ElastiCache::SecurityGroupIngress" + "AWS::GameLift::Build" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::ElastiCache::SubnetGroup": { + "AWS::GameLift::Build.S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key", + "RoleArn" + ], + "type": "object" + }, + "AWS::GameLift::Fleet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19034,28 +22876,58 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CacheSubnetGroupName": { + "BuildId": { "type": "string" }, "Description": { "type": "string" }, - "SubnetIds": { + "DesiredEC2Instances": { + "type": "number" + }, + "EC2InboundPermissions": { + "items": { + "$ref": "#/definitions/AWS::GameLift::Fleet.IpPermission" + }, + "type": "array" + }, + "EC2InstanceType": { + "type": "string" + }, + "LogPaths": { "items": { "type": "string" }, "type": "array" + }, + "MaxSize": { + "type": "number" + }, + "MinSize": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "ServerLaunchParameters": { + "type": "string" + }, + "ServerLaunchPath": { + "type": "string" } }, "required": [ - "Description", - "SubnetIds" + "BuildId", + "DesiredEC2Instances", + "EC2InstanceType", + "Name", + "ServerLaunchPath" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElastiCache::SubnetGroup" + "AWS::GameLift::Fleet" ], "type": "string" } @@ -19066,7 +22938,31 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::ElasticBeanstalk::Application": { + "AWS::GameLift::Fleet.IpPermission": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "number" + }, + "IpRange": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "FromPort", + "IpRange", + "Protocol", + "ToPort" + ], + "type": "object" + }, + "AWS::Glue::Classifier": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19098,21 +22994,21 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApplicationName": { - "type": "string" + "GrokClassifier": { + "$ref": "#/definitions/AWS::Glue::Classifier.GrokClassifier" }, - "Description": { - "type": "string" + "JsonClassifier": { + "$ref": "#/definitions/AWS::Glue::Classifier.JsonClassifier" }, - "ResourceLifecycleConfig": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig" + "XMLClassifier": { + "$ref": "#/definitions/AWS::Glue::Classifier.XMLClassifier" } }, "type": "object" }, "Type": { "enum": [ - "AWS::ElasticBeanstalk::Application" + "AWS::Glue::Classifier" ], "type": "string" } @@ -19122,61 +23018,63 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig": { + "AWS::Glue::Classifier.GrokClassifier": { "additionalProperties": false, "properties": { - "ServiceRole": { + "Classification": { "type": "string" }, - "VersionLifecycleConfig": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig" - } - }, - "type": "object" - }, - "AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig": { - "additionalProperties": false, - "properties": { - "MaxAgeRule": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxAgeRule" + "CustomPatterns": { + "type": "string" }, - "MaxCountRule": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxCountRule" + "GrokPattern": { + "type": "string" + }, + "Name": { + "type": "string" } }, + "required": [ + "Classification", + "GrokPattern" + ], "type": "object" }, - "AWS::ElasticBeanstalk::Application.MaxAgeRule": { + "AWS::Glue::Classifier.JsonClassifier": { "additionalProperties": false, "properties": { - "DeleteSourceFromS3": { - "type": "boolean" - }, - "Enabled": { - "type": "boolean" + "JsonPath": { + "type": "string" }, - "MaxAgeInDays": { - "type": "number" + "Name": { + "type": "string" } }, + "required": [ + "JsonPath" + ], "type": "object" }, - "AWS::ElasticBeanstalk::Application.MaxCountRule": { + "AWS::Glue::Classifier.XMLClassifier": { "additionalProperties": false, "properties": { - "DeleteSourceFromS3": { - "type": "boolean" + "Classification": { + "type": "string" }, - "Enabled": { - "type": "boolean" + "Name": { + "type": "string" }, - "MaxCount": { - "type": "number" + "RowTag": { + "type": "string" } }, + "required": [ + "Classification", + "RowTag" + ], "type": "object" }, - "AWS::ElasticBeanstalk::ApplicationVersion": { + "AWS::Glue::Connection": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19208,25 +23106,22 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApplicationName": { - "type": "string" - }, - "Description": { + "CatalogId": { "type": "string" }, - "SourceBundle": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle" + "ConnectionInput": { + "$ref": "#/definitions/AWS::Glue::Connection.ConnectionInput" } }, "required": [ - "ApplicationName", - "SourceBundle" + "CatalogId", + "ConnectionInput" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticBeanstalk::ApplicationVersion" + "AWS::Glue::Connection" ], "type": "string" } @@ -19237,23 +23132,56 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle": { + "AWS::Glue::Connection.ConnectionInput": { "additionalProperties": false, "properties": { - "S3Bucket": { + "ConnectionProperties": { + "type": "object" + }, + "ConnectionType": { "type": "string" }, - "S3Key": { + "Description": { "type": "string" + }, + "MatchCriteria": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "PhysicalConnectionRequirements": { + "$ref": "#/definitions/AWS::Glue::Connection.PhysicalConnectionRequirements" } }, "required": [ - "S3Bucket", - "S3Key" + "ConnectionProperties", + "ConnectionType" ], "type": "object" }, - "AWS::ElasticBeanstalk::ConfigurationTemplate": { + "AWS::Glue::Connection.PhysicalConnectionRequirements": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "SecurityGroupIdList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19285,39 +23213,180 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApplicationName": { + "Classifiers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Configuration": { + "type": "string" + }, + "DatabaseName": { "type": "string" }, "Description": { "type": "string" }, - "EnvironmentId": { + "Name": { "type": "string" }, - "OptionSettings": { - "items": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting" - }, - "type": "array" + "Role": { + "type": "string" }, - "PlatformArn": { + "Schedule": { + "$ref": "#/definitions/AWS::Glue::Crawler.Schedule" + }, + "SchemaChangePolicy": { + "$ref": "#/definitions/AWS::Glue::Crawler.SchemaChangePolicy" + }, + "TablePrefix": { "type": "string" }, - "SolutionStackName": { + "Targets": { + "$ref": "#/definitions/AWS::Glue::Crawler.Targets" + } + }, + "required": [ + "DatabaseName", + "Role", + "Targets" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Crawler" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Crawler.JdbcTarget": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "type": "string" + }, + "Exclusions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.S3Target": { + "additionalProperties": false, + "properties": { + "Exclusions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.Schedule": { + "additionalProperties": false, + "properties": { + "ScheduleExpression": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.SchemaChangePolicy": { + "additionalProperties": false, + "properties": { + "DeleteBehavior": { + "type": "string" + }, + "UpdateBehavior": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.Targets": { + "additionalProperties": false, + "properties": { + "JdbcTargets": { + "items": { + "$ref": "#/definitions/AWS::Glue::Crawler.JdbcTarget" + }, + "type": "array" + }, + "S3Targets": { + "items": { + "$ref": "#/definitions/AWS::Glue::Crawler.S3Target" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Glue::Database": { + "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": { + "CatalogId": { "type": "string" }, - "SourceConfiguration": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration" + "DatabaseInput": { + "$ref": "#/definitions/AWS::Glue::Database.DatabaseInput" } }, "required": [ - "ApplicationName" + "CatalogId", + "DatabaseInput" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticBeanstalk::ConfigurationTemplate" + "AWS::Glue::Database" ], "type": "string" } @@ -19328,45 +23397,25 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting": { + "AWS::Glue::Database.DatabaseInput": { "additionalProperties": false, "properties": { - "Namespace": { - "type": "string" - }, - "OptionName": { + "Description": { "type": "string" }, - "ResourceName": { + "LocationUri": { "type": "string" }, - "Value": { - "type": "string" - } - }, - "required": [ - "Namespace", - "OptionName" - ], - "type": "object" - }, - "AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration": { - "additionalProperties": false, - "properties": { - "ApplicationName": { + "Name": { "type": "string" }, - "TemplateName": { - "type": "string" + "Parameters": { + "type": "object" } }, - "required": [ - "ApplicationName", - "TemplateName" - ], "type": "object" }, - "AWS::ElasticBeanstalk::Environment": { + "AWS::Glue::DevEndpoint": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19398,54 +23447,43 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApplicationName": { - "type": "string" - }, - "CNAMEPrefix": { + "EndpointName": { "type": "string" }, - "Description": { + "ExtraJarsS3Path": { "type": "string" }, - "EnvironmentName": { + "ExtraPythonLibsS3Path": { "type": "string" }, - "OptionSettings": { - "items": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.OptionSetting" - }, - "type": "array" + "NumberOfNodes": { + "type": "number" }, - "PlatformArn": { + "PublicKey": { "type": "string" }, - "SolutionStackName": { + "RoleArn": { "type": "string" }, - "Tags": { + "SecurityGroupIds": { "items": { - "$ref": "#/definitions/Tag" + "type": "string" }, "type": "array" }, - "TemplateName": { - "type": "string" - }, - "Tier": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.Tier" - }, - "VersionLabel": { + "SubnetId": { "type": "string" } }, "required": [ - "ApplicationName" + "PublicKey", + "RoleArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticBeanstalk::Environment" + "AWS::Glue::DevEndpoint" ], "type": "string" } @@ -19456,44 +23494,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::ElasticBeanstalk::Environment.OptionSetting": { - "additionalProperties": false, - "properties": { - "Namespace": { - "type": "string" - }, - "OptionName": { - "type": "string" - }, - "ResourceName": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Namespace", - "OptionName" - ], - "type": "object" - }, - "AWS::ElasticBeanstalk::Environment.Tier": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer": { + "AWS::Glue::Job": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19525,90 +23526,46 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AccessLoggingPolicy": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy" - }, - "AppCookieStickinessPolicy": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy" - }, - "type": "array" - }, - "AvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ConnectionDrainingPolicy": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy" - }, - "ConnectionSettings": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings" - }, - "CrossZone": { - "type": "boolean" - }, - "HealthCheck": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck" + "AllocatedCapacity": { + "type": "number" }, - "Instances": { - "items": { - "type": "string" - }, - "type": "array" + "Command": { + "$ref": "#/definitions/AWS::Glue::Job.JobCommand" }, - "LBCookieStickinessPolicy": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy" - }, - "type": "array" + "Connections": { + "$ref": "#/definitions/AWS::Glue::Job.ConnectionsList" }, - "Listeners": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Listeners" - }, - "type": "array" + "DefaultArguments": { + "type": "object" }, - "LoadBalancerName": { + "Description": { "type": "string" }, - "Policies": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Policies" - }, - "type": "array" + "ExecutionProperty": { + "$ref": "#/definitions/AWS::Glue::Job.ExecutionProperty" }, - "Scheme": { + "LogUri": { "type": "string" }, - "SecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" + "MaxRetries": { + "type": "number" }, - "Subnets": { - "items": { - "type": "string" - }, - "type": "array" + "Name": { + "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "Role": { + "type": "string" } }, "required": [ - "Listeners" + "Command", + "Role" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticLoadBalancing::LoadBalancer" + "AWS::Glue::Job" ], "type": "string" } @@ -19619,179 +23576,40 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy": { - "additionalProperties": false, - "properties": { - "EmitInterval": { - "type": "number" - }, - "Enabled": { - "type": "boolean" - }, - "S3BucketName": { - "type": "string" - }, - "S3BucketPrefix": { - "type": "string" - } - }, - "required": [ - "Enabled", - "S3BucketName" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy": { - "additionalProperties": false, - "properties": { - "CookieName": { - "type": "string" - }, - "PolicyName": { - "type": "string" - } - }, - "required": [ - "CookieName", - "PolicyName" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy": { + "AWS::Glue::Job.ConnectionsList": { "additionalProperties": false, "properties": { - "Enabled": { - "type": "boolean" - }, - "Timeout": { - "type": "number" + "Connections": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "Enabled" - ], "type": "object" }, - "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings": { + "AWS::Glue::Job.ExecutionProperty": { "additionalProperties": false, "properties": { - "IdleTimeout": { + "MaxConcurrentRuns": { "type": "number" } }, - "required": [ - "IdleTimeout" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck": { - "additionalProperties": false, - "properties": { - "HealthyThreshold": { - "type": "string" - }, - "Interval": { - "type": "string" - }, - "Target": { - "type": "string" - }, - "Timeout": { - "type": "string" - }, - "UnhealthyThreshold": { - "type": "string" - } - }, - "required": [ - "HealthyThreshold", - "Interval", - "Target", - "Timeout", - "UnhealthyThreshold" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy": { - "additionalProperties": false, - "properties": { - "CookieExpirationPeriod": { - "type": "string" - }, - "PolicyName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer.Listeners": { - "additionalProperties": false, - "properties": { - "InstancePort": { - "type": "string" - }, - "InstanceProtocol": { - "type": "string" - }, - "LoadBalancerPort": { - "type": "string" - }, - "PolicyNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Protocol": { - "type": "string" - }, - "SSLCertificateId": { - "type": "string" - } - }, - "required": [ - "InstancePort", - "LoadBalancerPort", - "Protocol" - ], "type": "object" }, - "AWS::ElasticLoadBalancing::LoadBalancer.Policies": { + "AWS::Glue::Job.JobCommand": { "additionalProperties": false, "properties": { - "Attributes": { - "items": { - "type": "object" - }, - "type": "array" - }, - "InstancePorts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LoadBalancerPorts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "PolicyName": { + "Name": { "type": "string" }, - "PolicyType": { + "ScriptLocation": { "type": "string" } }, - "required": [ - "Attributes", - "PolicyName", - "PolicyType" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener": { + "AWS::Glue::Partition": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19823,42 +23641,30 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Certificates": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Certificate" - }, - "type": "array" - }, - "DefaultActions": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Action" - }, - "type": "array" - }, - "LoadBalancerArn": { + "CatalogId": { "type": "string" }, - "Port": { - "type": "number" - }, - "Protocol": { + "DatabaseName": { "type": "string" }, - "SslPolicy": { + "PartitionInput": { + "$ref": "#/definitions/AWS::Glue::Partition.PartitionInput" + }, + "TableName": { "type": "string" } }, "required": [ - "DefaultActions", - "LoadBalancerArn", - "Port", - "Protocol" + "CatalogId", + "DatabaseName", + "PartitionInput", + "TableName" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticLoadBalancingV2::Listener" + "AWS::Glue::Partition" ], "type": "string" } @@ -19869,25 +23675,13 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.Action": { + "AWS::Glue::Partition.Column": { "additionalProperties": false, "properties": { - "AuthenticateCognitoConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig" - }, - "AuthenticateOidcConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig" - }, - "FixedResponseConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig" - }, - "Order": { - "type": "number" - }, - "RedirectConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.RedirectConfig" + "Comment": { + "type": "string" }, - "TargetGroupArn": { + "Name": { "type": "string" }, "Type": { @@ -19895,159 +23689,134 @@ var SamSchema = `{ } }, "required": [ - "Type" + "Name" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig": { + "AWS::Glue::Partition.Order": { "additionalProperties": false, "properties": { - "AuthenticationRequestExtraParams": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "OnUnauthenticatedRequest": { - "type": "string" - }, - "Scope": { - "type": "string" - }, - "SessionCookieName": { + "Column": { "type": "string" }, - "SessionTimeout": { + "SortOrder": { "type": "number" - }, - "UserPoolArn": { - "type": "string" - }, - "UserPoolClientId": { - "type": "string" - }, - "UserPoolDomain": { - "type": "string" } }, "required": [ - "UserPoolArn", - "UserPoolClientId", - "UserPoolDomain" + "Column" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig": { + "AWS::Glue::Partition.PartitionInput": { "additionalProperties": false, "properties": { - "AuthenticationRequestExtraParams": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, + "Parameters": { "type": "object" }, - "AuthorizationEndpoint": { - "type": "string" - }, - "ClientId": { - "type": "string" - }, - "ClientSecret": { - "type": "string" - }, - "Issuer": { - "type": "string" - }, - "OnUnauthenticatedRequest": { - "type": "string" - }, - "Scope": { - "type": "string" - }, - "SessionCookieName": { - "type": "string" - }, - "SessionTimeout": { - "type": "number" - }, - "TokenEndpoint": { - "type": "string" + "StorageDescriptor": { + "$ref": "#/definitions/AWS::Glue::Partition.StorageDescriptor" }, - "UserInfoEndpoint": { - "type": "string" - } - }, - "required": [ - "AuthorizationEndpoint", - "ClientId", - "ClientSecret", - "Issuer", - "TokenEndpoint", - "UserInfoEndpoint" + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Values" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.Certificate": { + "AWS::Glue::Partition.SerdeInfo": { "additionalProperties": false, "properties": { - "CertificateArn": { + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "SerializationLibrary": { "type": "string" } }, "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig": { + "AWS::Glue::Partition.SkewedInfo": { "additionalProperties": false, "properties": { - "ContentType": { - "type": "string" + "SkewedColumnNames": { + "items": { + "type": "string" + }, + "type": "array" }, - "MessageBody": { - "type": "string" + "SkewedColumnValueLocationMaps": { + "type": "object" }, - "StatusCode": { - "type": "string" + "SkewedColumnValues": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "StatusCode" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.RedirectConfig": { + "AWS::Glue::Partition.StorageDescriptor": { "additionalProperties": false, "properties": { - "Host": { - "type": "string" + "BucketColumns": { + "items": { + "type": "string" + }, + "type": "array" }, - "Path": { - "type": "string" + "Columns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Partition.Column" + }, + "type": "array" }, - "Port": { - "type": "string" + "Compressed": { + "type": "boolean" }, - "Protocol": { + "InputFormat": { "type": "string" }, - "Query": { + "Location": { "type": "string" }, - "StatusCode": { + "NumberOfBuckets": { + "type": "number" + }, + "OutputFormat": { "type": "string" + }, + "Parameters": { + "type": "object" + }, + "SerdeInfo": { + "$ref": "#/definitions/AWS::Glue::Partition.SerdeInfo" + }, + "SkewedInfo": { + "$ref": "#/definitions/AWS::Glue::Partition.SkewedInfo" + }, + "SortColumns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Partition.Order" + }, + "type": "array" + }, + "StoredAsSubDirectories": { + "type": "boolean" } }, - "required": [ - "StatusCode" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerCertificate": { + "AWS::Glue::Table": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20079,25 +23848,26 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Certificates": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate" - }, - "type": "array" + "CatalogId": { + "type": "string" }, - "ListenerArn": { + "DatabaseName": { "type": "string" + }, + "TableInput": { + "$ref": "#/definitions/AWS::Glue::Table.TableInput" } }, "required": [ - "Certificates", - "ListenerArn" + "CatalogId", + "DatabaseName", + "TableInput" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticLoadBalancingV2::ListenerCertificate" + "AWS::Glue::Table" ], "type": "string" } @@ -20108,272 +23878,167 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate": { - "additionalProperties": false, - "properties": { - "CertificateArn": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ElasticLoadBalancingV2::ListenerRule": { + "AWS::Glue::Table.Column": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Comment": { "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": { - "Actions": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.Action" - }, - "type": "array" - }, - "Conditions": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition" - }, - "type": "array" - }, - "ListenerArn": { - "type": "string" - }, - "Priority": { - "type": "number" - } - }, - "required": [ - "Actions", - "Conditions", - "ListenerArn", - "Priority" - ], - "type": "object" + "Name": { + "type": "string" }, "Type": { - "enum": [ - "AWS::ElasticLoadBalancingV2::ListenerRule" - ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Name" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerRule.Action": { + "AWS::Glue::Table.Order": { "additionalProperties": false, "properties": { - "AuthenticateCognitoConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig" - }, - "AuthenticateOidcConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig" - }, - "FixedResponseConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig" - }, - "Order": { - "type": "number" - }, - "RedirectConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig" - }, - "TargetGroupArn": { + "Column": { "type": "string" }, - "Type": { - "type": "string" + "SortOrder": { + "type": "number" } }, "required": [ - "Type" + "Column", + "SortOrder" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig": { + "AWS::Glue::Table.SerdeInfo": { "additionalProperties": false, "properties": { - "AuthenticationRequestExtraParams": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "OnUnauthenticatedRequest": { - "type": "string" - }, - "Scope": { - "type": "string" - }, - "SessionCookieName": { + "Name": { "type": "string" }, - "SessionTimeout": { - "type": "number" + "Parameters": { + "type": "object" }, - "UserPoolArn": { + "SerializationLibrary": { "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Table.SkewedInfo": { + "additionalProperties": false, + "properties": { + "SkewedColumnNames": { + "items": { + "type": "string" + }, + "type": "array" }, - "UserPoolClientId": { - "type": "string" + "SkewedColumnValueLocationMaps": { + "type": "object" }, - "UserPoolDomain": { - "type": "string" + "SkewedColumnValues": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "UserPoolArn", - "UserPoolClientId", - "UserPoolDomain" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig": { + "AWS::Glue::Table.StorageDescriptor": { "additionalProperties": false, "properties": { - "AuthenticationRequestExtraParams": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } + "BucketColumns": { + "items": { + "type": "string" }, - "type": "object" + "type": "array" }, - "AuthorizationEndpoint": { - "type": "string" + "Columns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Table.Column" + }, + "type": "array" }, - "ClientId": { - "type": "string" + "Compressed": { + "type": "boolean" }, - "ClientSecret": { + "InputFormat": { "type": "string" }, - "Issuer": { + "Location": { "type": "string" }, - "OnUnauthenticatedRequest": { - "type": "string" + "NumberOfBuckets": { + "type": "number" }, - "Scope": { + "OutputFormat": { "type": "string" }, - "SessionCookieName": { - "type": "string" + "Parameters": { + "type": "object" }, - "SessionTimeout": { - "type": "number" + "SerdeInfo": { + "$ref": "#/definitions/AWS::Glue::Table.SerdeInfo" }, - "TokenEndpoint": { - "type": "string" + "SkewedInfo": { + "$ref": "#/definitions/AWS::Glue::Table.SkewedInfo" }, - "UserInfoEndpoint": { - "type": "string" + "SortColumns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Table.Order" + }, + "type": "array" + }, + "StoredAsSubDirectories": { + "type": "boolean" } }, - "required": [ - "AuthorizationEndpoint", - "ClientId", - "ClientSecret", - "Issuer", - "TokenEndpoint", - "UserInfoEndpoint" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig": { + "AWS::Glue::Table.TableInput": { "additionalProperties": false, "properties": { - "ContentType": { + "Description": { "type": "string" }, - "MessageBody": { + "Name": { "type": "string" }, - "StatusCode": { - "type": "string" - } - }, - "required": [ - "StatusCode" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig": { - "additionalProperties": false, - "properties": { - "Host": { + "Owner": { "type": "string" }, - "Path": { - "type": "string" + "Parameters": { + "type": "object" }, - "Port": { - "type": "string" + "PartitionKeys": { + "items": { + "$ref": "#/definitions/AWS::Glue::Table.Column" + }, + "type": "array" }, - "Protocol": { - "type": "string" + "Retention": { + "type": "number" }, - "Query": { - "type": "string" + "StorageDescriptor": { + "$ref": "#/definitions/AWS::Glue::Table.StorageDescriptor" }, - "StatusCode": { + "TableType": { "type": "string" - } - }, - "required": [ - "StatusCode" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition": { - "additionalProperties": false, - "properties": { - "Field": { + }, + "ViewExpandedText": { "type": "string" }, - "Values": { - "items": { - "type": "string" - }, - "type": "array" + "ViewOriginalText": { + "type": "string" } }, "type": "object" }, - "AWS::ElasticLoadBalancingV2::LoadBalancer": { + "AWS::Glue::Trigger": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20405,92 +24070,147 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "IpAddressType": { - "type": "string" - }, - "LoadBalancerAttributes": { + "Actions": { "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute" + "$ref": "#/definitions/AWS::Glue::Trigger.Action" }, "type": "array" }, - "Name": { + "Description": { "type": "string" }, - "Scheme": { + "Name": { "type": "string" }, - "SecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SubnetMappings": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping" - }, - "type": "array" - }, - "Subnets": { - "items": { - "type": "string" - }, - "type": "array" + "Predicate": { + "$ref": "#/definitions/AWS::Glue::Trigger.Predicate" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "Schedule": { + "type": "string" }, "Type": { "type": "string" } }, + "required": [ + "Actions", + "Type" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticLoadBalancingV2::LoadBalancer" + "AWS::Glue::Trigger" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute": { + "AWS::Glue::Trigger.Action": { "additionalProperties": false, "properties": { - "Key": { + "Arguments": { + "type": "object" + }, + "JobName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Trigger.Condition": { + "additionalProperties": false, + "properties": { + "JobName": { "type": "string" }, - "Value": { + "LogicalOperator": { + "type": "string" + }, + "State": { "type": "string" } }, "type": "object" }, - "AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping": { + "AWS::Glue::Trigger.Predicate": { "additionalProperties": false, "properties": { - "AllocationId": { + "Conditions": { + "items": { + "$ref": "#/definitions/AWS::Glue::Trigger.Condition" + }, + "type": "array" + }, + "Logical": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GuardDuty::Detector": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "SubnetId": { + "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": { + "Enable": { + "type": "boolean" + }, + "FindingPublishingFrequency": { + "type": "string" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GuardDuty::Detector" + ], "type": "string" } }, "required": [ - "AllocationId", - "SubnetId" + "Type", + "Properties" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::TargetGroup": { + "AWS::GuardDuty::Filter": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20522,74 +24242,37 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "HealthCheckIntervalSeconds": { - "type": "number" - }, - "HealthCheckPath": { + "Action": { "type": "string" }, - "HealthCheckPort": { + "Description": { "type": "string" }, - "HealthCheckProtocol": { + "DetectorId": { "type": "string" }, - "HealthCheckTimeoutSeconds": { - "type": "number" - }, - "HealthyThresholdCount": { - "type": "number" - }, - "Matcher": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.Matcher" + "FindingCriteria": { + "$ref": "#/definitions/AWS::GuardDuty::Filter.FindingCriteria" }, "Name": { "type": "string" }, - "Port": { - "type": "number" - }, - "Protocol": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "TargetGroupAttributes": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute" - }, - "type": "array" - }, - "TargetType": { - "type": "string" - }, - "Targets": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription" - }, - "type": "array" - }, - "UnhealthyThresholdCount": { + "Rank": { "type": "number" - }, - "VpcId": { - "type": "string" } }, "required": [ - "Port", - "Protocol", - "VpcId" + "Action", + "Description", + "DetectorId", + "FindingCriteria", + "Rank" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticLoadBalancingV2::TargetGroup" + "AWS::GuardDuty::Filter" ], "type": "string" } @@ -20600,49 +24283,46 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::TargetGroup.Matcher": { - "additionalProperties": false, - "properties": { - "HttpCode": { - "type": "string" - } - }, - "required": [ - "HttpCode" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription": { + "AWS::GuardDuty::Filter.Condition": { "additionalProperties": false, "properties": { - "AvailabilityZone": { - "type": "string" + "Eq": { + "items": { + "type": "string" + }, + "type": "array" }, - "Id": { - "type": "string" + "Gte": { + "type": "number" }, - "Port": { + "Lt": { "type": "number" + }, + "Lte": { + "type": "number" + }, + "Neq": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "Id" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute": { + "AWS::GuardDuty::Filter.FindingCriteria": { "additionalProperties": false, "properties": { - "Key": { - "type": "string" + "Criterion": { + "type": "object" }, - "Value": { - "type": "string" + "ItemType": { + "$ref": "#/definitions/AWS::GuardDuty::Filter.Condition" } }, "type": "object" }, - "AWS::Elasticsearch::Domain": { + "AWS::GuardDuty::IPSet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20674,142 +24354,44 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AccessPolicies": { - "type": "object" - }, - "AdvancedOptions": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" + "Activate": { + "type": "boolean" }, - "DomainName": { + "DetectorId": { "type": "string" }, - "EBSOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.EBSOptions" - }, - "ElasticsearchClusterConfig": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.ElasticsearchClusterConfig" - }, - "ElasticsearchVersion": { + "Format": { "type": "string" }, - "EncryptionAtRestOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.EncryptionAtRestOptions" - }, - "SnapshotOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.SnapshotOptions" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "Location": { + "type": "string" }, - "VPCOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.VPCOptions" + "Name": { + "type": "string" } }, + "required": [ + "Activate", + "DetectorId", + "Format", + "Location" + ], "type": "object" }, "Type": { "enum": [ - "AWS::Elasticsearch::Domain" + "AWS::GuardDuty::IPSet" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::Elasticsearch::Domain.EBSOptions": { - "additionalProperties": false, - "properties": { - "EBSEnabled": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "VolumeSize": { - "type": "number" - }, - "VolumeType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Elasticsearch::Domain.ElasticsearchClusterConfig": { - "additionalProperties": false, - "properties": { - "DedicatedMasterCount": { - "type": "number" - }, - "DedicatedMasterEnabled": { - "type": "boolean" - }, - "DedicatedMasterType": { - "type": "string" - }, - "InstanceCount": { - "type": "number" - }, - "InstanceType": { - "type": "string" - }, - "ZoneAwarenessEnabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::Elasticsearch::Domain.EncryptionAtRestOptions": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "KmsKeyId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Elasticsearch::Domain.SnapshotOptions": { - "additionalProperties": false, - "properties": { - "AutomatedSnapshotStartHour": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::Elasticsearch::Domain.VPCOptions": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Events::EventBusPolicy": { + "AWS::GuardDuty::Master": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20841,29 +24423,25 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Action": { + "DetectorId": { "type": "string" }, - "Condition": { - "$ref": "#/definitions/AWS::Events::EventBusPolicy.Condition" - }, - "Principal": { + "InvitationId": { "type": "string" }, - "StatementId": { + "MasterId": { "type": "string" } }, "required": [ - "Action", - "Principal", - "StatementId" + "DetectorId", + "MasterId" ], "type": "object" }, "Type": { "enum": [ - "AWS::Events::EventBusPolicy" + "AWS::GuardDuty::Master" ], "type": "string" } @@ -20874,22 +24452,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Events::EventBusPolicy.Condition": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Events::Rule": { + "AWS::GuardDuty::Member": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20921,180 +24484,175 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "DetectorId": { "type": "string" }, - "EventPattern": { - "type": "object" + "DisableEmailNotification": { + "type": "boolean" }, - "Name": { + "Email": { "type": "string" }, - "RoleArn": { + "MemberId": { "type": "string" }, - "ScheduleExpression": { + "Message": { "type": "string" }, - "State": { + "Status": { "type": "string" - }, - "Targets": { - "items": { - "$ref": "#/definitions/AWS::Events::Rule.Target" - }, - "type": "array" } }, + "required": [ + "DetectorId", + "Email", + "MemberId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::Events::Rule" + "AWS::GuardDuty::Member" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::Events::Rule.EcsParameters": { + "AWS::GuardDuty::ThreatIntelSet": { "additionalProperties": false, "properties": { - "TaskCount": { - "type": "number" - }, - "TaskDefinitionArn": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" - } - }, - "required": [ - "TaskDefinitionArn" - ], - "type": "object" - }, - "AWS::Events::Rule.InputTransformer": { - "additionalProperties": false, - "properties": { - "InputPathsMap": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - }, + ] + }, + "Metadata": { "type": "object" }, - "InputTemplate": { - "type": "string" - } - }, - "required": [ - "InputTemplate" - ], - "type": "object" - }, - "AWS::Events::Rule.KinesisParameters": { - "additionalProperties": false, - "properties": { - "PartitionKeyPath": { - "type": "string" - } - }, - "required": [ - "PartitionKeyPath" - ], - "type": "object" - }, - "AWS::Events::Rule.RunCommandParameters": { - "additionalProperties": false, - "properties": { - "RunCommandTargets": { - "items": { - "$ref": "#/definitions/AWS::Events::Rule.RunCommandTarget" + "Properties": { + "additionalProperties": false, + "properties": { + "Activate": { + "type": "boolean" + }, + "DetectorId": { + "type": "string" + }, + "Format": { + "type": "string" + }, + "Location": { + "type": "string" + }, + "Name": { + "type": "string" + } }, - "type": "array" - } - }, - "required": [ - "RunCommandTargets" - ], - "type": "object" - }, - "AWS::Events::Rule.RunCommandTarget": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" + "required": [ + "Activate", + "DetectorId", + "Format", + "Location" + ], + "type": "object" }, - "Values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Key", - "Values" - ], - "type": "object" - }, - "AWS::Events::Rule.SqsParameters": { - "additionalProperties": false, - "properties": { - "MessageGroupId": { + "Type": { + "enum": [ + "AWS::GuardDuty::ThreatIntelSet" + ], "type": "string" } }, "required": [ - "MessageGroupId" + "Type", + "Properties" ], "type": "object" }, - "AWS::Events::Rule.Target": { + "AWS::IAM::AccessKey": { "additionalProperties": false, "properties": { - "Arn": { - "type": "string" - }, - "EcsParameters": { - "$ref": "#/definitions/AWS::Events::Rule.EcsParameters" - }, - "Id": { - "type": "string" - }, - "Input": { - "type": "string" - }, - "InputPath": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "InputTransformer": { - "$ref": "#/definitions/AWS::Events::Rule.InputTransformer" - }, - "KinesisParameters": { - "$ref": "#/definitions/AWS::Events::Rule.KinesisParameters" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "RoleArn": { - "type": "string" + "Metadata": { + "type": "object" }, - "RunCommandParameters": { - "$ref": "#/definitions/AWS::Events::Rule.RunCommandParameters" + "Properties": { + "additionalProperties": false, + "properties": { + "Serial": { + "type": "number" + }, + "Status": { + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "required": [ + "UserName" + ], + "type": "object" }, - "SqsParameters": { - "$ref": "#/definitions/AWS::Events::Rule.SqsParameters" + "Type": { + "enum": [ + "AWS::IAM::AccessKey" + ], + "type": "string" } }, "required": [ - "Arn", - "Id" + "Type", + "Properties" ], "type": "object" }, - "AWS::GameLift::Alias": { + "AWS::IAM::Group": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21126,54 +24684,56 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "GroupName": { "type": "string" }, - "Name": { + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { "type": "string" }, - "RoutingStrategy": { - "$ref": "#/definitions/AWS::GameLift::Alias.RoutingStrategy" + "Policies": { + "items": { + "$ref": "#/definitions/AWS::IAM::Group.Policy" + }, + "type": "array" } }, - "required": [ - "Name", - "RoutingStrategy" - ], "type": "object" }, "Type": { "enum": [ - "AWS::GameLift::Alias" + "AWS::IAM::Group" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::GameLift::Alias.RoutingStrategy": { + "AWS::IAM::Group.Policy": { "additionalProperties": false, "properties": { - "FleetId": { - "type": "string" - }, - "Message": { - "type": "string" + "PolicyDocument": { + "type": "object" }, - "Type": { + "PolicyName": { "type": "string" } }, "required": [ - "Type" + "PolicyDocument", + "PolicyName" ], "type": "object" }, - "AWS::GameLift::Build": { + "AWS::IAM::InstanceProfile": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21205,51 +24765,38 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Name": { + "InstanceProfileName": { "type": "string" }, - "StorageLocation": { - "$ref": "#/definitions/AWS::GameLift::Build.S3Location" - }, - "Version": { + "Path": { "type": "string" + }, + "Roles": { + "items": { + "type": "string" + }, + "type": "array" } }, + "required": [ + "Roles" + ], "type": "object" }, "Type": { "enum": [ - "AWS::GameLift::Build" + "AWS::IAM::InstanceProfile" ], "type": "string" } }, "required": [ - "Type" - ], - "type": "object" - }, - "AWS::GameLift::Build.S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key", - "RoleArn" + "Type", + "Properties" ], "type": "object" }, - "AWS::GameLift::Fleet": { + "AWS::IAM::ManagedPolicy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21281,58 +24828,45 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "BuildId": { - "type": "string" - }, "Description": { "type": "string" }, - "DesiredEC2Instances": { - "type": "number" - }, - "EC2InboundPermissions": { + "Groups": { "items": { - "$ref": "#/definitions/AWS::GameLift::Fleet.IpPermission" + "type": "string" }, "type": "array" }, - "EC2InstanceType": { + "ManagedPolicyName": { "type": "string" }, - "LogPaths": { + "Path": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "Roles": { "items": { "type": "string" }, "type": "array" }, - "MaxSize": { - "type": "number" - }, - "MinSize": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "ServerLaunchParameters": { - "type": "string" - }, - "ServerLaunchPath": { - "type": "string" + "Users": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "BuildId", - "DesiredEC2Instances", - "EC2InstanceType", - "Name", - "ServerLaunchPath" + "PolicyDocument" ], "type": "object" }, "Type": { "enum": [ - "AWS::GameLift::Fleet" + "AWS::IAM::ManagedPolicy" ], "type": "string" } @@ -21343,31 +24877,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::GameLift::Fleet.IpPermission": { - "additionalProperties": false, - "properties": { - "FromPort": { - "type": "number" - }, - "IpRange": { - "type": "string" - }, - "Protocol": { - "type": "string" - }, - "ToPort": { - "type": "number" - } - }, - "required": [ - "FromPort", - "IpRange", - "Protocol", - "ToPort" - ], - "type": "object" - }, - "AWS::Glue::Classifier": { + "AWS::IAM::Policy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21399,87 +24909,145 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "GrokClassifier": { - "$ref": "#/definitions/AWS::Glue::Classifier.GrokClassifier" + "Groups": { + "items": { + "type": "string" + }, + "type": "array" }, - "JsonClassifier": { - "$ref": "#/definitions/AWS::Glue::Classifier.JsonClassifier" + "PolicyDocument": { + "type": "object" }, - "XMLClassifier": { - "$ref": "#/definitions/AWS::Glue::Classifier.XMLClassifier" + "PolicyName": { + "type": "string" + }, + "Roles": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array" } }, + "required": [ + "PolicyDocument", + "PolicyName" + ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Classifier" + "AWS::IAM::Policy" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::Glue::Classifier.GrokClassifier": { + "AWS::IAM::Role": { "additionalProperties": false, "properties": { - "Classification": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "CustomPatterns": { - "type": "string" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "GrokPattern": { - "type": "string" + "Metadata": { + "type": "object" }, - "Name": { - "type": "string" - } - }, - "required": [ - "Classification", - "GrokPattern" - ], - "type": "object" - }, - "AWS::Glue::Classifier.JsonClassifier": { - "additionalProperties": false, - "properties": { - "JsonPath": { - "type": "string" + "Properties": { + "additionalProperties": false, + "properties": { + "AssumeRolePolicyDocument": { + "type": "object" + }, + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxSessionDuration": { + "type": "number" + }, + "Path": { + "type": "string" + }, + "PermissionsBoundary": { + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/AWS::IAM::Role.Policy" + }, + "type": "array" + }, + "RoleName": { + "type": "string" + } + }, + "required": [ + "AssumeRolePolicyDocument" + ], + "type": "object" }, - "Name": { + "Type": { + "enum": [ + "AWS::IAM::Role" + ], "type": "string" } }, "required": [ - "JsonPath" + "Type", + "Properties" ], "type": "object" }, - "AWS::Glue::Classifier.XMLClassifier": { + "AWS::IAM::Role.Policy": { "additionalProperties": false, "properties": { - "Classification": { - "type": "string" - }, - "Name": { - "type": "string" + "PolicyDocument": { + "type": "object" }, - "RowTag": { + "PolicyName": { "type": "string" } }, "required": [ - "Classification", - "RowTag" + "PolicyDocument", + "PolicyName" ], "type": "object" }, - "AWS::Glue::Connection": { + "AWS::IAM::ServiceLinkedRole": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21511,22 +25079,24 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CatalogId": { + "AWSServiceName": { "type": "string" }, - "ConnectionInput": { - "$ref": "#/definitions/AWS::Glue::Connection.ConnectionInput" + "CustomSuffix": { + "type": "string" + }, + "Description": { + "type": "string" } }, "required": [ - "CatalogId", - "ConnectionInput" + "AWSServiceName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Connection" + "AWS::IAM::ServiceLinkedRole" ], "type": "string" } @@ -21537,56 +25107,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Glue::Connection.ConnectionInput": { - "additionalProperties": false, - "properties": { - "ConnectionProperties": { - "type": "object" - }, - "ConnectionType": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "MatchCriteria": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "PhysicalConnectionRequirements": { - "$ref": "#/definitions/AWS::Glue::Connection.PhysicalConnectionRequirements" - } - }, - "required": [ - "ConnectionProperties", - "ConnectionType" - ], - "type": "object" - }, - "AWS::Glue::Connection.PhysicalConnectionRequirements": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "type": "string" - }, - "SecurityGroupIdList": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SubnetId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Crawler": { + "AWS::IAM::User": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21618,133 +25139,144 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Classifiers": { + "Groups": { "items": { "type": "string" }, "type": "array" }, - "Configuration": { - "type": "string" - }, - "DatabaseName": { - "type": "string" + "LoginProfile": { + "$ref": "#/definitions/AWS::IAM::User.LoginProfile" }, - "Description": { - "type": "string" + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" }, - "Name": { + "Path": { "type": "string" }, - "Role": { + "PermissionsBoundary": { "type": "string" }, - "Schedule": { - "$ref": "#/definitions/AWS::Glue::Crawler.Schedule" - }, - "SchemaChangePolicy": { - "$ref": "#/definitions/AWS::Glue::Crawler.SchemaChangePolicy" + "Policies": { + "items": { + "$ref": "#/definitions/AWS::IAM::User.Policy" + }, + "type": "array" }, - "TablePrefix": { + "UserName": { "type": "string" - }, - "Targets": { - "$ref": "#/definitions/AWS::Glue::Crawler.Targets" } }, - "required": [ - "DatabaseName", - "Role", - "Targets" - ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Crawler" + "AWS::IAM::User" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::Glue::Crawler.JdbcTarget": { + "AWS::IAM::User.LoginProfile": { "additionalProperties": false, "properties": { - "ConnectionName": { + "Password": { "type": "string" }, - "Exclusions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Path": { - "type": "string" + "PasswordResetRequired": { + "type": "boolean" } }, + "required": [ + "Password" + ], "type": "object" }, - "AWS::Glue::Crawler.S3Target": { + "AWS::IAM::User.Policy": { "additionalProperties": false, "properties": { - "Exclusions": { - "items": { - "type": "string" - }, - "type": "array" + "PolicyDocument": { + "type": "object" }, - "Path": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Crawler.Schedule": { - "additionalProperties": false, - "properties": { - "ScheduleExpression": { + "PolicyName": { "type": "string" } }, + "required": [ + "PolicyDocument", + "PolicyName" + ], "type": "object" }, - "AWS::Glue::Crawler.SchemaChangePolicy": { + "AWS::IAM::UserToGroupAddition": { "additionalProperties": false, "properties": { - "DeleteBehavior": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "UpdateBehavior": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Crawler.Targets": { - "additionalProperties": false, - "properties": { - "JdbcTargets": { - "items": { - "$ref": "#/definitions/AWS::Glue::Crawler.JdbcTarget" + "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": { + "GroupName": { + "type": "string" + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array" + } }, - "type": "array" + "required": [ + "GroupName", + "Users" + ], + "type": "object" }, - "S3Targets": { - "items": { - "$ref": "#/definitions/AWS::Glue::Crawler.S3Target" - }, - "type": "array" + "Type": { + "enum": [ + "AWS::IAM::UserToGroupAddition" + ], + "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::Glue::Database": { + "AWS::Inspector::AssessmentTarget": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21776,51 +25308,28 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CatalogId": { + "AssessmentTargetName": { "type": "string" }, - "DatabaseInput": { - "$ref": "#/definitions/AWS::Glue::Database.DatabaseInput" + "ResourceGroupArn": { + "type": "string" } }, - "required": [ - "CatalogId", - "DatabaseInput" - ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Database" + "AWS::Inspector::AssessmentTarget" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::Glue::Database.DatabaseInput": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "type": "object" - } - }, - "type": "object" - }, - "AWS::Glue::DevEndpoint": { + "AWS::Inspector::AssessmentTemplate": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21852,43 +25361,38 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "EndpointName": { - "type": "string" - }, - "ExtraJarsS3Path": { + "AssessmentTargetArn": { "type": "string" }, - "ExtraPythonLibsS3Path": { + "AssessmentTemplateName": { "type": "string" }, - "NumberOfNodes": { + "DurationInSeconds": { "type": "number" }, - "PublicKey": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "SecurityGroupIds": { + "RulesPackageArns": { "items": { "type": "string" }, "type": "array" }, - "SubnetId": { - "type": "string" + "UserAttributesForFindings": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "PublicKey", - "RoleArn" + "AssessmentTargetArn", + "DurationInSeconds", + "RulesPackageArns" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::DevEndpoint" + "AWS::Inspector::AssessmentTemplate" ], "type": "string" } @@ -21899,7 +25403,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Glue::Job": { + "AWS::Inspector::ResourceGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21931,46 +25435,21 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AllocatedCapacity": { - "type": "number" - }, - "Command": { - "$ref": "#/definitions/AWS::Glue::Job.JobCommand" - }, - "Connections": { - "$ref": "#/definitions/AWS::Glue::Job.ConnectionsList" - }, - "DefaultArguments": { - "type": "object" - }, - "Description": { - "type": "string" - }, - "ExecutionProperty": { - "$ref": "#/definitions/AWS::Glue::Job.ExecutionProperty" - }, - "LogUri": { - "type": "string" - }, - "MaxRetries": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "Role": { - "type": "string" + "ResourceGroupTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "Command", - "Role" + "ResourceGroupTags" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Job" + "AWS::Inspector::ResourceGroup" ], "type": "string" } @@ -21981,40 +25460,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Glue::Job.ConnectionsList": { - "additionalProperties": false, - "properties": { - "Connections": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Glue::Job.ExecutionProperty": { - "additionalProperties": false, - "properties": { - "MaxConcurrentRuns": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::Glue::Job.JobCommand": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptLocation": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Partition": { + "AWS::IoT1Click::Device": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22046,30 +25492,22 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { + "DeviceId": { "type": "string" }, - "PartitionInput": { - "$ref": "#/definitions/AWS::Glue::Partition.PartitionInput" - }, - "TableName": { - "type": "string" + "Enabled": { + "type": "boolean" } }, "required": [ - "CatalogId", - "DatabaseName", - "PartitionInput", - "TableName" + "DeviceId", + "Enabled" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Partition" + "AWS::IoT1Click::Device" ], "type": "string" } @@ -22080,148 +25518,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Glue::Partition.Column": { - "additionalProperties": false, - "properties": { - "Comment": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "AWS::Glue::Partition.Order": { - "additionalProperties": false, - "properties": { - "Column": { - "type": "string" - }, - "SortOrder": { - "type": "number" - } - }, - "required": [ - "Column" - ], - "type": "object" - }, - "AWS::Glue::Partition.PartitionInput": { - "additionalProperties": false, - "properties": { - "Parameters": { - "type": "object" - }, - "StorageDescriptor": { - "$ref": "#/definitions/AWS::Glue::Partition.StorageDescriptor" - }, - "Values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Values" - ], - "type": "object" - }, - "AWS::Glue::Partition.SerdeInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerializationLibrary": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Partition.SkewedInfo": { - "additionalProperties": false, - "properties": { - "SkewedColumnNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SkewedColumnValueLocationMaps": { - "type": "object" - }, - "SkewedColumnValues": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Glue::Partition.StorageDescriptor": { - "additionalProperties": false, - "properties": { - "BucketColumns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Columns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Partition.Column" - }, - "type": "array" - }, - "Compressed": { - "type": "boolean" - }, - "InputFormat": { - "type": "string" - }, - "Location": { - "type": "string" - }, - "NumberOfBuckets": { - "type": "number" - }, - "OutputFormat": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerdeInfo": { - "$ref": "#/definitions/AWS::Glue::Partition.SerdeInfo" - }, - "SkewedInfo": { - "$ref": "#/definitions/AWS::Glue::Partition.SkewedInfo" - }, - "SortColumns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Partition.Order" - }, - "type": "array" - }, - "StoredAsSubDirectories": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::Glue::Table": { + "AWS::IoT1Click::Placement": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22253,26 +25550,27 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CatalogId": { - "type": "string" + "AssociatedDevices": { + "type": "object" }, - "DatabaseName": { + "Attributes": { + "type": "object" + }, + "PlacementName": { "type": "string" }, - "TableInput": { - "$ref": "#/definitions/AWS::Glue::Table.TableInput" + "ProjectName": { + "type": "string" } }, "required": [ - "CatalogId", - "DatabaseName", - "TableInput" + "ProjectName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Table" + "AWS::IoT1Click::Placement" ], "type": "string" } @@ -22283,167 +25581,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Glue::Table.Column": { - "additionalProperties": false, - "properties": { - "Comment": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "AWS::Glue::Table.Order": { - "additionalProperties": false, - "properties": { - "Column": { - "type": "string" - }, - "SortOrder": { - "type": "number" - } - }, - "required": [ - "Column", - "SortOrder" - ], - "type": "object" - }, - "AWS::Glue::Table.SerdeInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerializationLibrary": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Table.SkewedInfo": { - "additionalProperties": false, - "properties": { - "SkewedColumnNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SkewedColumnValueLocationMaps": { - "type": "object" - }, - "SkewedColumnValues": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Glue::Table.StorageDescriptor": { - "additionalProperties": false, - "properties": { - "BucketColumns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Columns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Table.Column" - }, - "type": "array" - }, - "Compressed": { - "type": "boolean" - }, - "InputFormat": { - "type": "string" - }, - "Location": { - "type": "string" - }, - "NumberOfBuckets": { - "type": "number" - }, - "OutputFormat": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerdeInfo": { - "$ref": "#/definitions/AWS::Glue::Table.SerdeInfo" - }, - "SkewedInfo": { - "$ref": "#/definitions/AWS::Glue::Table.SkewedInfo" - }, - "SortColumns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Table.Order" - }, - "type": "array" - }, - "StoredAsSubDirectories": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::Glue::Table.TableInput": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Owner": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "PartitionKeys": { - "items": { - "$ref": "#/definitions/AWS::Glue::Table.Column" - }, - "type": "array" - }, - "Retention": { - "type": "number" - }, - "StorageDescriptor": { - "$ref": "#/definitions/AWS::Glue::Table.StorageDescriptor" - }, - "TableType": { - "type": "string" - }, - "ViewExpandedText": { - "type": "string" - }, - "ViewOriginalText": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Trigger": { + "AWS::IoT1Click::Project": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22475,37 +25613,24 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/AWS::Glue::Trigger.Action" - }, - "type": "array" - }, "Description": { "type": "string" }, - "Name": { - "type": "string" - }, - "Predicate": { - "$ref": "#/definitions/AWS::Glue::Trigger.Predicate" - }, - "Schedule": { - "type": "string" + "PlacementTemplate": { + "$ref": "#/definitions/AWS::IoT1Click::Project.PlacementTemplate" }, - "Type": { + "ProjectName": { "type": "string" } }, "required": [ - "Actions", - "Type" + "PlacementTemplate" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Trigger" + "AWS::IoT1Click::Project" ], "type": "string" } @@ -22516,49 +25641,31 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Glue::Trigger.Action": { + "AWS::IoT1Click::Project.DeviceTemplate": { "additionalProperties": false, "properties": { - "Arguments": { + "CallbackOverrides": { "type": "object" }, - "JobName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Trigger.Condition": { - "additionalProperties": false, - "properties": { - "JobName": { - "type": "string" - }, - "LogicalOperator": { - "type": "string" - }, - "State": { + "DeviceType": { "type": "string" } }, "type": "object" }, - "AWS::Glue::Trigger.Predicate": { + "AWS::IoT1Click::Project.PlacementTemplate": { "additionalProperties": false, "properties": { - "Conditions": { - "items": { - "$ref": "#/definitions/AWS::Glue::Trigger.Condition" - }, - "type": "array" + "DefaultAttributes": { + "type": "object" }, - "Logical": { - "type": "string" + "DeviceTemplates": { + "type": "object" } }, "type": "object" }, - "AWS::GuardDuty::Detector": { + "AWS::IoT::Certificate": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22590,21 +25697,22 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Enable": { - "type": "boolean" + "CertificateSigningRequest": { + "type": "string" }, - "FindingPublishingFrequency": { + "Status": { "type": "string" } }, "required": [ - "Enable" + "CertificateSigningRequest", + "Status" ], "type": "object" }, "Type": { "enum": [ - "AWS::GuardDuty::Detector" + "AWS::IoT::Certificate" ], "type": "string" } @@ -22615,7 +25723,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::GuardDuty::Filter": { + "AWS::IoT::Policy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22647,37 +25755,21 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Action": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "DetectorId": { - "type": "string" - }, - "FindingCriteria": { - "$ref": "#/definitions/AWS::GuardDuty::Filter.FindingCriteria" + "PolicyDocument": { + "type": "object" }, - "Name": { + "PolicyName": { "type": "string" - }, - "Rank": { - "type": "number" } }, "required": [ - "Action", - "Description", - "DetectorId", - "FindingCriteria", - "Rank" + "PolicyDocument" ], "type": "object" }, "Type": { "enum": [ - "AWS::GuardDuty::Filter" + "AWS::IoT::Policy" ], "type": "string" } @@ -22688,46 +25780,65 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::GuardDuty::Filter.Condition": { + "AWS::IoT::PolicyPrincipalAttachment": { "additionalProperties": false, "properties": { - "Eq": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Gte": { - "type": "number" + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" }, - "Lt": { - "type": "number" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Lte": { - "type": "number" + "Metadata": { + "type": "object" }, - "Neq": { - "items": { - "type": "string" + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyName": { + "type": "string" + }, + "Principal": { + "type": "string" + } }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::GuardDuty::Filter.FindingCriteria": { - "additionalProperties": false, - "properties": { - "Criterion": { + "required": [ + "PolicyName", + "Principal" + ], "type": "object" }, - "ItemType": { - "$ref": "#/definitions/AWS::GuardDuty::Filter.Condition" + "Type": { + "enum": [ + "AWS::IoT::PolicyPrincipalAttachment" + ], + "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::GuardDuty::IPSet": { + "AWS::IoT::Thing": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22759,44 +25870,43 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Activate": { - "type": "boolean" - }, - "DetectorId": { - "type": "string" - }, - "Format": { - "type": "string" - }, - "Location": { - "type": "string" + "AttributePayload": { + "$ref": "#/definitions/AWS::IoT::Thing.AttributePayload" }, - "Name": { + "ThingName": { "type": "string" } }, - "required": [ - "Activate", - "DetectorId", - "Format", - "Location" - ], "type": "object" }, "Type": { "enum": [ - "AWS::GuardDuty::IPSet" + "AWS::IoT::Thing" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::GuardDuty::Master": { + "AWS::IoT::Thing.AttributePayload": { + "additionalProperties": false, + "properties": { + "Attributes": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::IoT::ThingPrincipalAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22828,25 +25938,22 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DetectorId": { - "type": "string" - }, - "InvitationId": { + "Principal": { "type": "string" }, - "MasterId": { + "ThingName": { "type": "string" } }, "required": [ - "DetectorId", - "MasterId" + "Principal", + "ThingName" ], "type": "object" }, "Type": { "enum": [ - "AWS::GuardDuty::Master" + "AWS::IoT::ThingPrincipalAttachment" ], "type": "string" } @@ -22857,7 +25964,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::GuardDuty::Member": { + "AWS::IoT::TopicRule": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22889,256 +25996,414 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DetectorId": { - "type": "string" - }, - "DisableEmailNotification": { - "type": "boolean" - }, - "Email": { - "type": "string" - }, - "MemberId": { - "type": "string" - }, - "Message": { + "RuleName": { "type": "string" }, - "Status": { - "type": "string" + "TopicRulePayload": { + "$ref": "#/definitions/AWS::IoT::TopicRule.TopicRulePayload" } }, "required": [ - "DetectorId", - "Email", - "MemberId" + "TopicRulePayload" ], "type": "object" }, "Type": { "enum": [ - "AWS::GuardDuty::Member" + "AWS::IoT::TopicRule" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.Action": { + "additionalProperties": false, + "properties": { + "CloudwatchAlarm": { + "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchAlarmAction" + }, + "CloudwatchMetric": { + "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchMetricAction" + }, + "DynamoDB": { + "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBAction" + }, + "DynamoDBv2": { + "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBv2Action" + }, + "Elasticsearch": { + "$ref": "#/definitions/AWS::IoT::TopicRule.ElasticsearchAction" + }, + "Firehose": { + "$ref": "#/definitions/AWS::IoT::TopicRule.FirehoseAction" + }, + "IotAnalytics": { + "$ref": "#/definitions/AWS::IoT::TopicRule.IotAnalyticsAction" + }, + "Kinesis": { + "$ref": "#/definitions/AWS::IoT::TopicRule.KinesisAction" + }, + "Lambda": { + "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction" + }, + "Republish": { + "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishAction" + }, + "S3": { + "$ref": "#/definitions/AWS::IoT::TopicRule.S3Action" + }, + "Sns": { + "$ref": "#/definitions/AWS::IoT::TopicRule.SnsAction" + }, + "Sqs": { + "$ref": "#/definitions/AWS::IoT::TopicRule.SqsAction" + }, + "StepFunctions": { + "$ref": "#/definitions/AWS::IoT::TopicRule.StepFunctionsAction" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRule.CloudwatchAlarmAction": { + "additionalProperties": false, + "properties": { + "AlarmName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StateReason": { + "type": "string" + }, + "StateValue": { + "type": "string" + } + }, + "required": [ + "AlarmName", + "RoleArn", + "StateReason", + "StateValue" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.CloudwatchMetricAction": { + "additionalProperties": false, + "properties": { + "MetricName": { + "type": "string" + }, + "MetricNamespace": { + "type": "string" + }, + "MetricTimestamp": { + "type": "string" + }, + "MetricUnit": { + "type": "string" + }, + "MetricValue": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "MetricName", + "MetricNamespace", + "MetricUnit", + "MetricValue", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.DynamoDBAction": { + "additionalProperties": false, + "properties": { + "HashKeyField": { + "type": "string" + }, + "HashKeyType": { + "type": "string" + }, + "HashKeyValue": { + "type": "string" + }, + "PayloadField": { + "type": "string" + }, + "RangeKeyField": { + "type": "string" + }, + "RangeKeyType": { + "type": "string" + }, + "RangeKeyValue": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "HashKeyField", + "HashKeyValue", + "RoleArn", + "TableName" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.DynamoDBv2Action": { + "additionalProperties": false, + "properties": { + "PutItem": { + "$ref": "#/definitions/AWS::IoT::TopicRule.PutItemInput" + }, + "RoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRule.ElasticsearchAction": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Index": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Endpoint", + "Id", + "Index", + "RoleArn", + "Type" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.FirehoseAction": { + "additionalProperties": false, + "properties": { + "DeliveryStreamName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Separator": { + "type": "string" + } + }, + "required": [ + "DeliveryStreamName", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.IotAnalyticsAction": { + "additionalProperties": false, + "properties": { + "ChannelName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "ChannelName", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.KinesisAction": { + "additionalProperties": false, + "properties": { + "PartitionKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StreamName": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "StreamName" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.LambdaAction": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRule.PutItemInput": { + "additionalProperties": false, + "properties": { + "TableName": { + "type": "string" + } + }, + "required": [ + "TableName" ], "type": "object" }, - "AWS::GuardDuty::ThreatIntelSet": { + "AWS::IoT::TopicRule.RepublishAction": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "RoleArn": { "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": { - "Activate": { - "type": "boolean" - }, - "DetectorId": { - "type": "string" - }, - "Format": { - "type": "string" - }, - "Location": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "Activate", - "DetectorId", - "Format", - "Location" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::GuardDuty::ThreatIntelSet" - ], + "Topic": { "type": "string" } }, "required": [ - "Type", - "Properties" + "RoleArn", + "Topic" ], "type": "object" }, - "AWS::IAM::AccessKey": { + "AWS::IoT::TopicRule.S3Action": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "BucketName": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Key": { + "type": "string" }, - "Metadata": { - "type": "object" + "RoleArn": { + "type": "string" + } + }, + "required": [ + "BucketName", + "Key", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.SnsAction": { + "additionalProperties": false, + "properties": { + "MessageFormat": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Serial": { - "type": "number" - }, - "Status": { - "type": "string" - }, - "UserName": { - "type": "string" - } - }, - "required": [ - "UserName" - ], - "type": "object" + "RoleArn": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::IAM::AccessKey" - ], + "TargetArn": { "type": "string" } }, "required": [ - "Type", - "Properties" + "RoleArn", + "TargetArn" ], "type": "object" }, - "AWS::IAM::Group": { + "AWS::IoT::TopicRule.SqsAction": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "QueueUrl": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "RoleArn": { + "type": "string" }, - "Metadata": { - "type": "object" + "UseBase64": { + "type": "boolean" + } + }, + "required": [ + "QueueUrl", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.StepFunctionsAction": { + "additionalProperties": false, + "properties": { + "ExecutionNamePrefix": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "GroupName": { - "type": "string" - }, - "ManagedPolicyArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Path": { - "type": "string" - }, - "Policies": { - "items": { - "$ref": "#/definitions/AWS::IAM::Group.Policy" - }, - "type": "array" - } - }, - "type": "object" + "RoleArn": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::IAM::Group" - ], + "StateMachineName": { "type": "string" } }, "required": [ - "Type" + "RoleArn", + "StateMachineName" ], "type": "object" }, - "AWS::IAM::Group.Policy": { + "AWS::IoT::TopicRule.TopicRulePayload": { "additionalProperties": false, "properties": { - "PolicyDocument": { - "type": "object" + "Actions": { + "items": { + "$ref": "#/definitions/AWS::IoT::TopicRule.Action" + }, + "type": "array" }, - "PolicyName": { + "AwsIotSqlVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "ErrorAction": { + "$ref": "#/definitions/AWS::IoT::TopicRule.Action" + }, + "RuleDisabled": { + "type": "boolean" + }, + "Sql": { "type": "string" } }, "required": [ - "PolicyDocument", - "PolicyName" + "Actions", + "RuleDisabled", + "Sql" ], "type": "object" }, - "AWS::IAM::InstanceProfile": { + "AWS::IoTAnalytics::Channel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23170,38 +26435,46 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "InstanceProfileName": { + "ChannelName": { "type": "string" }, - "Path": { - "type": "string" + "RetentionPeriod": { + "$ref": "#/definitions/AWS::IoTAnalytics::Channel.RetentionPeriod" }, - "Roles": { + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" } }, - "required": [ - "Roles" - ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::InstanceProfile" + "AWS::IoTAnalytics::Channel" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::IAM::ManagedPolicy": { + "AWS::IoTAnalytics::Channel.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "NumberOfDays": { + "type": "number" + }, + "Unlimited": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23233,45 +26506,39 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" - }, - "Groups": { + "Actions": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Action" }, "type": "array" }, - "ManagedPolicyName": { - "type": "string" - }, - "Path": { + "DatasetName": { "type": "string" }, - "PolicyDocument": { - "type": "object" + "RetentionPeriod": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.RetentionPeriod" }, - "Roles": { + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "Users": { + "Triggers": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Trigger" }, "type": "array" } }, "required": [ - "PolicyDocument" + "Actions" ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::ManagedPolicy" + "AWS::IoTAnalytics::Dataset" ], "type": "string" } @@ -23282,177 +26549,204 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::IAM::Policy": { + "AWS::IoTAnalytics::Dataset.Action": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "ActionName": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "ContainerAction": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.ContainerAction" }, - "Metadata": { - "type": "object" + "QueryAction": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.QueryAction" + } + }, + "required": [ + "ActionName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.ContainerAction": { + "additionalProperties": false, + "properties": { + "ExecutionRoleArn": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Groups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "PolicyDocument": { - "type": "object" - }, - "PolicyName": { - "type": "string" - }, - "Roles": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Users": { - "items": { - "type": "string" - }, - "type": "array" - } + "Image": { + "type": "string" + }, + "ResourceConfiguration": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.ResourceConfiguration" + }, + "Variables": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Variable" }, - "required": [ - "PolicyDocument", - "PolicyName" - ], - "type": "object" + "type": "array" + } + }, + "required": [ + "ExecutionRoleArn", + "Image", + "ResourceConfiguration" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.DatasetContentVersionValue": { + "additionalProperties": false, + "properties": { + "DatasetName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.DeltaTime": { + "additionalProperties": false, + "properties": { + "OffsetSeconds": { + "type": "number" }, - "Type": { - "enum": [ - "AWS::IAM::Policy" - ], + "TimeExpression": { "type": "string" } }, "required": [ - "Type", - "Properties" + "OffsetSeconds", + "TimeExpression" ], "type": "object" }, - "AWS::IAM::Role": { + "AWS::IoTAnalytics::Dataset.Filter": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "DeltaTime": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DeltaTime" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.OutputFileUriValue": { + "additionalProperties": false, + "properties": { + "FileName": { "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.QueryAction": { + "additionalProperties": false, + "properties": { + "Filters": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Filter" + }, + "type": "array" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "SqlQuery": { + "type": "string" + } + }, + "required": [ + "SqlQuery" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.ResourceConfiguration": { + "additionalProperties": false, + "properties": { + "ComputeType": { + "type": "string" }, - "Metadata": { - "type": "object" + "VolumeSizeInGB": { + "type": "number" + } + }, + "required": [ + "ComputeType", + "VolumeSizeInGB" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "NumberOfDays": { + "type": "number" }, - "Properties": { - "additionalProperties": false, - "properties": { - "AssumeRolePolicyDocument": { - "type": "object" - }, - "ManagedPolicyArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MaxSessionDuration": { - "type": "number" - }, - "Path": { - "type": "string" - }, - "PermissionsBoundary": { - "type": "string" - }, - "Policies": { - "items": { - "$ref": "#/definitions/AWS::IAM::Role.Policy" - }, - "type": "array" - }, - "RoleName": { - "type": "string" - } - }, - "required": [ - "AssumeRolePolicyDocument" - ], - "type": "object" + "Unlimited": { + "type": "boolean" + } + }, + "required": [ + "NumberOfDays", + "Unlimited" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.Schedule": { + "additionalProperties": false, + "properties": { + "ScheduleExpression": { + "type": "string" + } + }, + "required": [ + "ScheduleExpression" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.Trigger": { + "additionalProperties": false, + "properties": { + "Schedule": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Schedule" }, - "Type": { - "enum": [ - "AWS::IAM::Role" - ], + "TriggeringDataset": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.TriggeringDataset" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.TriggeringDataset": { + "additionalProperties": false, + "properties": { + "DatasetName": { "type": "string" } }, "required": [ - "Type", - "Properties" + "DatasetName" ], "type": "object" }, - "AWS::IAM::Role.Policy": { + "AWS::IoTAnalytics::Dataset.Variable": { "additionalProperties": false, "properties": { - "PolicyDocument": { - "type": "object" + "DatasetContentVersionValue": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DatasetContentVersionValue" + }, + "DoubleValue": { + "type": "number" }, - "PolicyName": { + "OutputFileUriValue": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.OutputFileUriValue" + }, + "StringValue": { + "type": "string" + }, + "VariableName": { "type": "string" } }, "required": [ - "PolicyDocument", - "PolicyName" + "VariableName" ], "type": "object" }, - "AWS::IAM::ServiceLinkedRole": { + "AWS::IoTAnalytics::Datastore": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23484,35 +26778,46 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AWSServiceName": { + "DatastoreName": { "type": "string" }, - "CustomSuffix": { - "type": "string" + "RetentionPeriod": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.RetentionPeriod" }, - "Description": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, - "required": [ - "AWSServiceName" - ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::ServiceLinkedRole" + "AWS::IoTAnalytics::Datastore" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::IAM::User": { + "AWS::IoTAnalytics::Datastore.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "NumberOfDays": { + "type": "number" + }, + "Unlimited": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23544,83 +26849,248 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Groups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LoginProfile": { - "$ref": "#/definitions/AWS::IAM::User.LoginProfile" - }, - "ManagedPolicyArns": { + "PipelineActivities": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Activity" }, "type": "array" }, - "Path": { - "type": "string" - }, - "PermissionsBoundary": { + "PipelineName": { "type": "string" }, - "Policies": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::IAM::User.Policy" + "$ref": "#/definitions/Tag" }, "type": "array" - }, - "UserName": { - "type": "string" } }, + "required": [ + "PipelineActivities" + ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::User" + "AWS::IoTAnalytics::Pipeline" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::IAM::User.LoginProfile": { + "AWS::IoTAnalytics::Pipeline.Activity": { "additionalProperties": false, "properties": { - "Password": { - "type": "string" + "AddAttributes": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.AddAttributes" }, - "PasswordResetRequired": { - "type": "boolean" + "Channel": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Channel" + }, + "Datastore": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Datastore" + }, + "DeviceRegistryEnrich": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.DeviceRegistryEnrich" + }, + "DeviceShadowEnrich": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.DeviceShadowEnrich" + }, + "Filter": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Filter" + }, + "Lambda": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Lambda" + }, + "Math": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Math" + }, + "RemoveAttributes": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.RemoveAttributes" + }, + "SelectAttributes": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.SelectAttributes" } }, - "required": [ - "Password" - ], "type": "object" }, - "AWS::IAM::User.Policy": { + "AWS::IoTAnalytics::Pipeline.AddAttributes": { "additionalProperties": false, "properties": { - "PolicyDocument": { + "Attributes": { "type": "object" }, - "PolicyName": { + "Name": { + "type": "string" + }, + "Next": { "type": "string" } }, - "required": [ - "PolicyDocument", - "PolicyName" - ], "type": "object" }, - "AWS::IAM::UserToGroupAddition": { + "AWS::IoTAnalytics::Pipeline.Channel": { + "additionalProperties": false, + "properties": { + "ChannelName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Datastore": { + "additionalProperties": false, + "properties": { + "DatastoreName": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.DeviceRegistryEnrich": { + "additionalProperties": false, + "properties": { + "Attribute": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.DeviceShadowEnrich": { + "additionalProperties": false, + "properties": { + "Attribute": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Filter": { + "additionalProperties": false, + "properties": { + "Filter": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Lambda": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "type": "number" + }, + "LambdaName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Math": { + "additionalProperties": false, + "properties": { + "Attribute": { + "type": "string" + }, + "Math": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.RemoveAttributes": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.SelectAttributes": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::KMS::Alias": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23652,25 +27122,22 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "GroupName": { + "AliasName": { "type": "string" }, - "Users": { - "items": { - "type": "string" - }, - "type": "array" + "TargetKeyId": { + "type": "string" } }, "required": [ - "GroupName", - "Users" + "AliasName", + "TargetKeyId" ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::UserToGroupAddition" + "AWS::KMS::Alias" ], "type": "string" } @@ -23681,7 +27148,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Inspector::AssessmentTarget": { + "AWS::KMS::Key": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23713,21 +27180,39 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AssessmentTargetName": { + "Description": { "type": "string" }, - "ResourceGroupArn": { + "EnableKeyRotation": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "KeyPolicy": { + "type": "object" + }, + "KeyUsage": { "type": "string" + }, + "PendingWindowInDays": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "ResourceGroupArn" + "KeyPolicy" ], "type": "object" }, "Type": { "enum": [ - "AWS::Inspector::AssessmentTarget" + "AWS::KMS::Key" ], "type": "string" } @@ -23738,7 +27223,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Inspector::AssessmentTemplate": { + "AWS::Kinesis::Stream": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23770,22 +27255,19 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AssessmentTargetArn": { + "Name": { "type": "string" }, - "AssessmentTemplateName": { - "type": "string" + "RetentionPeriodHours": { + "type": "number" }, - "DurationInSeconds": { + "ShardCount": { "type": "number" }, - "RulesPackageArns": { - "items": { - "type": "string" - }, - "type": "array" + "StreamEncryption": { + "$ref": "#/definitions/AWS::Kinesis::Stream.StreamEncryption" }, - "UserAttributesForFindings": { + "Tags": { "items": { "$ref": "#/definitions/Tag" }, @@ -23793,15 +27275,13 @@ var SamSchema = `{ } }, "required": [ - "AssessmentTargetArn", - "DurationInSeconds", - "RulesPackageArns" + "ShardCount" ], "type": "object" }, "Type": { "enum": [ - "AWS::Inspector::AssessmentTemplate" + "AWS::Kinesis::Stream" ], "type": "string" } @@ -23812,7 +27292,23 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Inspector::ResourceGroup": { + "AWS::Kinesis::Stream.StreamEncryption": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "type": "string" + }, + "KeyId": { + "type": "string" + } + }, + "required": [ + "EncryptionType", + "KeyId" + ], + "type": "object" + }, + "AWS::Kinesis::StreamConsumer": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23844,21 +27340,22 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ResourceGroupTags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "ConsumerName": { + "type": "string" + }, + "StreamARN": { + "type": "string" } }, "required": [ - "ResourceGroupTags" + "ConsumerName", + "StreamARN" ], "type": "object" }, "Type": { "enum": [ - "AWS::Inspector::ResourceGroup" + "AWS::Kinesis::StreamConsumer" ], "type": "string" } @@ -23869,7 +27366,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::IoT1Click::Device": { + "AWS::KinesisAnalytics::Application": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23901,96 +27398,231 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DeviceId": { + "ApplicationCode": { "type": "string" }, - "Enabled": { - "type": "boolean" + "ApplicationDescription": { + "type": "string" + }, + "ApplicationName": { + "type": "string" + }, + "Inputs": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.Input" + }, + "type": "array" } }, "required": [ - "DeviceId", - "Enabled" + "Inputs" ], "type": "object" }, - "Type": { - "enum": [ - "AWS::IoT1Click::Device" - ], + "Type": { + "enum": [ + "AWS::KinesisAnalytics::Application" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.CSVMappingParameters": { + "additionalProperties": false, + "properties": { + "RecordColumnDelimiter": { + "type": "string" + }, + "RecordRowDelimiter": { + "type": "string" + } + }, + "required": [ + "RecordColumnDelimiter", + "RecordRowDelimiter" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.Input": { + "additionalProperties": false, + "properties": { + "InputParallelism": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputParallelism" + }, + "InputProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputProcessingConfiguration" + }, + "InputSchema": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputSchema" + }, + "KinesisFirehoseInput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.KinesisFirehoseInput" + }, + "KinesisStreamsInput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.KinesisStreamsInput" + }, + "NamePrefix": { + "type": "string" + } + }, + "required": [ + "InputSchema", + "NamePrefix" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.InputLambdaProcessor": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.InputParallelism": { + "additionalProperties": false, + "properties": { + "Count": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisAnalytics::Application.InputProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "InputLambdaProcessor": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputLambdaProcessor" + } + }, + "type": "object" + }, + "AWS::KinesisAnalytics::Application.InputSchema": { + "additionalProperties": false, + "properties": { + "RecordColumns": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.RecordColumn" + }, + "type": "array" + }, + "RecordEncoding": { + "type": "string" + }, + "RecordFormat": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.RecordFormat" + } + }, + "required": [ + "RecordColumns", + "RecordFormat" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.JSONMappingParameters": { + "additionalProperties": false, + "properties": { + "RecordRowPath": { + "type": "string" + } + }, + "required": [ + "RecordRowPath" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.KinesisFirehoseInput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.KinesisStreamsInput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.MappingParameters": { + "additionalProperties": false, + "properties": { + "CSVMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.CSVMappingParameters" + }, + "JSONMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.JSONMappingParameters" + } + }, + "type": "object" + }, + "AWS::KinesisAnalytics::Application.RecordColumn": { + "additionalProperties": false, + "properties": { + "Mapping": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SqlType": { "type": "string" } }, "required": [ - "Type", - "Properties" + "Name", + "SqlType" ], "type": "object" }, - "AWS::IoT1Click::Placement": { + "AWS::KinesisAnalytics::Application.RecordFormat": { "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": { - "AssociatedDevices": { - "type": "object" - }, - "Attributes": { - "type": "object" - }, - "PlacementName": { - "type": "string" - }, - "ProjectName": { - "type": "string" - } - }, - "required": [ - "ProjectName" - ], - "type": "object" + "MappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.MappingParameters" }, - "Type": { - "enum": [ - "AWS::IoT1Click::Placement" - ], + "RecordFormatType": { "type": "string" } }, "required": [ - "Type", - "Properties" + "RecordFormatType" ], "type": "object" }, - "AWS::IoT1Click::Project": { + "AWS::KinesisAnalytics::ApplicationOutput": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -24022,24 +27654,22 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "ApplicationName": { "type": "string" }, - "PlacementTemplate": { - "$ref": "#/definitions/AWS::IoT1Click::Project.PlacementTemplate" - }, - "ProjectName": { - "type": "string" + "Output": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.Output" } }, "required": [ - "PlacementTemplate" + "ApplicationName", + "Output" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT1Click::Project" + "AWS::KinesisAnalytics::ApplicationOutput" ], "type": "string" } @@ -24050,146 +27680,88 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::IoT1Click::Project.DeviceTemplate": { + "AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema": { "additionalProperties": false, "properties": { - "CallbackOverrides": { - "type": "object" - }, - "DeviceType": { + "RecordFormatType": { "type": "string" } }, "type": "object" }, - "AWS::IoT1Click::Project.PlacementTemplate": { + "AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput": { "additionalProperties": false, "properties": { - "DefaultAttributes": { - "type": "object" + "ResourceARN": { + "type": "string" }, - "DeviceTemplates": { - "type": "object" + "RoleARN": { + "type": "string" } }, + "required": [ + "ResourceARN", + "RoleARN" + ], "type": "object" }, - "AWS::IoT::Certificate": { + "AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "ResourceARN": { "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": { - "CertificateSigningRequest": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "required": [ - "CertificateSigningRequest", - "Status" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::IoT::Certificate" - ], + "RoleARN": { "type": "string" } }, "required": [ - "Type", - "Properties" + "ResourceARN", + "RoleARN" ], "type": "object" }, - "AWS::IoT::Policy": { + "AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "ResourceARN": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "RoleARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationOutput.Output": { + "additionalProperties": false, + "properties": { + "DestinationSchema": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema" }, - "Metadata": { - "type": "object" + "KinesisFirehoseOutput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput" }, - "Properties": { - "additionalProperties": false, - "properties": { - "PolicyDocument": { - "type": "object" - }, - "PolicyName": { - "type": "string" - } - }, - "required": [ - "PolicyDocument" - ], - "type": "object" + "KinesisStreamsOutput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput" }, - "Type": { - "enum": [ - "AWS::IoT::Policy" - ], + "LambdaOutput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput" + }, + "Name": { "type": "string" } }, "required": [ - "Type", - "Properties" + "DestinationSchema" ], "type": "object" }, - "AWS::IoT::PolicyPrincipalAttachment": { + "AWS::KinesisAnalytics::ApplicationReferenceDataSource": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -24221,22 +27793,22 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "PolicyName": { + "ApplicationName": { "type": "string" }, - "Principal": { - "type": "string" + "ReferenceDataSource": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource" } }, "required": [ - "PolicyName", - "Principal" + "ApplicationName", + "ReferenceDataSource" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT::PolicyPrincipalAttachment" + "AWS::KinesisAnalytics::ApplicationReferenceDataSource" ], "type": "string" } @@ -24247,133 +27819,141 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::IoT::Thing": { + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "RecordColumnDelimiter": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "RecordRowDelimiter": { + "type": "string" + } + }, + "required": [ + "RecordColumnDelimiter", + "RecordRowDelimiter" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters": { + "additionalProperties": false, + "properties": { + "RecordRowPath": { + "type": "string" + } + }, + "required": [ + "RecordRowPath" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters": { + "additionalProperties": false, + "properties": { + "CSVMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters" }, - "Metadata": { - "type": "object" + "JSONMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters" + } + }, + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn": { + "additionalProperties": false, + "properties": { + "Mapping": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "AttributePayload": { - "$ref": "#/definitions/AWS::IoT::Thing.AttributePayload" - }, - "ThingName": { - "type": "string" - } - }, - "type": "object" + "Name": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::IoT::Thing" - ], + "SqlType": { "type": "string" } }, "required": [ - "Type" + "Name", + "SqlType" ], "type": "object" }, - "AWS::IoT::Thing.AttributePayload": { + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat": { "additionalProperties": false, "properties": { - "Attributes": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" + "MappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters" + }, + "RecordFormatType": { + "type": "string" } }, + "required": [ + "RecordFormatType" + ], "type": "object" }, - "AWS::IoT::ThingPrincipalAttachment": { + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "ReferenceSchema": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema" + }, + "S3ReferenceDataSource": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource" + }, + "TableName": { "type": "string" + } + }, + "required": [ + "ReferenceSchema" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema": { + "additionalProperties": false, + "properties": { + "RecordColumns": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn" + }, + "type": "array" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "RecordEncoding": { + "type": "string" }, - "Metadata": { - "type": "object" + "RecordFormat": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat" + } + }, + "required": [ + "RecordColumns", + "RecordFormat" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Principal": { - "type": "string" - }, - "ThingName": { - "type": "string" - } - }, - "required": [ - "Principal", - "ThingName" - ], - "type": "object" + "FileKey": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::IoT::ThingPrincipalAttachment" - ], + "ReferenceRoleARN": { "type": "string" } }, "required": [ - "Type", - "Properties" + "BucketARN", + "FileKey", + "ReferenceRoleARN" ], "type": "object" }, - "AWS::IoT::TopicRule": { + "AWS::KinesisAnalyticsV2::Application": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -24405,690 +27985,410 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "RuleName": { + "ApplicationConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ApplicationConfiguration" + }, + "ApplicationDescription": { "type": "string" }, - "TopicRulePayload": { - "$ref": "#/definitions/AWS::IoT::TopicRule.TopicRulePayload" - } - }, - "required": [ - "TopicRulePayload" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::IoT::TopicRule" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::IoT::TopicRule.Action": { - "additionalProperties": false, - "properties": { - "CloudwatchAlarm": { - "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchAlarmAction" - }, - "CloudwatchMetric": { - "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchMetricAction" - }, - "DynamoDB": { - "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBAction" - }, - "DynamoDBv2": { - "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBv2Action" - }, - "Elasticsearch": { - "$ref": "#/definitions/AWS::IoT::TopicRule.ElasticsearchAction" - }, - "Firehose": { - "$ref": "#/definitions/AWS::IoT::TopicRule.FirehoseAction" - }, - "IotAnalytics": { - "$ref": "#/definitions/AWS::IoT::TopicRule.IotAnalyticsAction" - }, - "Kinesis": { - "$ref": "#/definitions/AWS::IoT::TopicRule.KinesisAction" - }, - "Lambda": { - "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction" - }, - "Republish": { - "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishAction" - }, - "S3": { - "$ref": "#/definitions/AWS::IoT::TopicRule.S3Action" - }, - "Sns": { - "$ref": "#/definitions/AWS::IoT::TopicRule.SnsAction" - }, - "Sqs": { - "$ref": "#/definitions/AWS::IoT::TopicRule.SqsAction" + "ApplicationName": { + "type": "string" + }, + "RuntimeEnvironment": { + "type": "string" + }, + "ServiceExecutionRole": { + "type": "string" + } + }, + "required": [ + "RuntimeEnvironment", + "ServiceExecutionRole" + ], + "type": "object" }, - "StepFunctions": { - "$ref": "#/definitions/AWS::IoT::TopicRule.StepFunctionsAction" + "Type": { + "enum": [ + "AWS::KinesisAnalyticsV2::Application" + ], + "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::IoT::TopicRule.CloudwatchAlarmAction": { + "AWS::KinesisAnalyticsV2::Application.ApplicationCodeConfiguration": { "additionalProperties": false, "properties": { - "AlarmName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "StateReason": { - "type": "string" + "CodeContent": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CodeContent" }, - "StateValue": { + "CodeContentType": { "type": "string" } }, "required": [ - "AlarmName", - "RoleArn", - "StateReason", - "StateValue" + "CodeContent", + "CodeContentType" ], "type": "object" }, - "AWS::IoT::TopicRule.CloudwatchMetricAction": { + "AWS::KinesisAnalyticsV2::Application.ApplicationConfiguration": { "additionalProperties": false, "properties": { - "MetricName": { - "type": "string" + "ApplicationCodeConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ApplicationCodeConfiguration" }, - "MetricNamespace": { - "type": "string" - }, - "MetricTimestamp": { - "type": "string" + "ApplicationSnapshotConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ApplicationSnapshotConfiguration" }, - "MetricUnit": { - "type": "string" + "EnvironmentProperties": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.EnvironmentProperties" }, - "MetricValue": { - "type": "string" + "FlinkApplicationConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.FlinkApplicationConfiguration" }, - "RoleArn": { - "type": "string" + "SqlApplicationConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.ApplicationSnapshotConfiguration": { + "additionalProperties": false, + "properties": { + "SnapshotsEnabled": { + "type": "boolean" } }, "required": [ - "MetricName", - "MetricNamespace", - "MetricUnit", - "MetricValue", - "RoleArn" + "SnapshotsEnabled" ], "type": "object" }, - "AWS::IoT::TopicRule.DynamoDBAction": { + "AWS::KinesisAnalyticsV2::Application.CSVMappingParameters": { "additionalProperties": false, "properties": { - "HashKeyField": { - "type": "string" - }, - "HashKeyType": { - "type": "string" - }, - "HashKeyValue": { - "type": "string" - }, - "PayloadField": { - "type": "string" - }, - "RangeKeyField": { - "type": "string" - }, - "RangeKeyType": { - "type": "string" - }, - "RangeKeyValue": { - "type": "string" - }, - "RoleArn": { + "RecordColumnDelimiter": { "type": "string" }, - "TableName": { + "RecordRowDelimiter": { "type": "string" } }, "required": [ - "HashKeyField", - "HashKeyValue", - "RoleArn", - "TableName" + "RecordColumnDelimiter", + "RecordRowDelimiter" ], "type": "object" }, - "AWS::IoT::TopicRule.DynamoDBv2Action": { + "AWS::KinesisAnalyticsV2::Application.CheckpointConfiguration": { "additionalProperties": false, "properties": { - "PutItem": { - "$ref": "#/definitions/AWS::IoT::TopicRule.PutItemInput" + "CheckpointInterval": { + "type": "number" }, - "RoleArn": { + "CheckpointingEnabled": { + "type": "boolean" + }, + "ConfigurationType": { "type": "string" + }, + "MinPauseBetweenCheckpoints": { + "type": "number" } }, + "required": [ + "ConfigurationType" + ], "type": "object" }, - "AWS::IoT::TopicRule.ElasticsearchAction": { + "AWS::KinesisAnalyticsV2::Application.CodeContent": { "additionalProperties": false, "properties": { - "Endpoint": { - "type": "string" + "S3ContentLocation": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.S3ContentLocation" }, - "Id": { + "TextContent": { "type": "string" }, - "Index": { + "ZipFileContent": { "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.EnvironmentProperties": { + "additionalProperties": false, + "properties": { + "PropertyGroups": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.PropertyGroup" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.FlinkApplicationConfiguration": { + "additionalProperties": false, + "properties": { + "CheckpointConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CheckpointConfiguration" }, - "RoleArn": { - "type": "string" + "MonitoringConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.MonitoringConfiguration" }, - "Type": { - "type": "string" + "ParallelismConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ParallelismConfiguration" } }, - "required": [ - "Endpoint", - "Id", - "Index", - "RoleArn", - "Type" - ], "type": "object" }, - "AWS::IoT::TopicRule.FirehoseAction": { + "AWS::KinesisAnalyticsV2::Application.Input": { "additionalProperties": false, "properties": { - "DeliveryStreamName": { - "type": "string" + "InputParallelism": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputParallelism" }, - "RoleArn": { - "type": "string" + "InputProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputProcessingConfiguration" }, - "Separator": { + "InputSchema": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputSchema" + }, + "KinesisFirehoseInput": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.KinesisFirehoseInput" + }, + "KinesisStreamsInput": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.KinesisStreamsInput" + }, + "NamePrefix": { "type": "string" } }, "required": [ - "DeliveryStreamName", - "RoleArn" + "InputSchema", + "NamePrefix" ], "type": "object" }, - "AWS::IoT::TopicRule.IotAnalyticsAction": { + "AWS::KinesisAnalyticsV2::Application.InputLambdaProcessor": { "additionalProperties": false, "properties": { - "ChannelName": { - "type": "string" - }, - "RoleArn": { + "ResourceARN": { "type": "string" } }, "required": [ - "ChannelName", - "RoleArn" + "ResourceARN" ], "type": "object" }, - "AWS::IoT::TopicRule.KinesisAction": { + "AWS::KinesisAnalyticsV2::Application.InputParallelism": { "additionalProperties": false, "properties": { - "PartitionKey": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "StreamName": { - "type": "string" + "Count": { + "type": "number" } }, - "required": [ - "RoleArn", - "StreamName" - ], "type": "object" }, - "AWS::IoT::TopicRule.LambdaAction": { + "AWS::KinesisAnalyticsV2::Application.InputProcessingConfiguration": { "additionalProperties": false, "properties": { - "FunctionArn": { - "type": "string" + "InputLambdaProcessor": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputLambdaProcessor" } }, "type": "object" }, - "AWS::IoT::TopicRule.PutItemInput": { + "AWS::KinesisAnalyticsV2::Application.InputSchema": { "additionalProperties": false, "properties": { - "TableName": { + "RecordColumns": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.RecordColumn" + }, + "type": "array" + }, + "RecordEncoding": { "type": "string" + }, + "RecordFormat": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.RecordFormat" } }, "required": [ - "TableName" + "RecordColumns", + "RecordFormat" ], "type": "object" }, - "AWS::IoT::TopicRule.RepublishAction": { + "AWS::KinesisAnalyticsV2::Application.JSONMappingParameters": { "additionalProperties": false, "properties": { - "RoleArn": { - "type": "string" - }, - "Topic": { + "RecordRowPath": { "type": "string" } }, "required": [ - "RoleArn", - "Topic" + "RecordRowPath" ], "type": "object" }, - "AWS::IoT::TopicRule.S3Action": { + "AWS::KinesisAnalyticsV2::Application.KinesisFirehoseInput": { "additionalProperties": false, "properties": { - "BucketName": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "RoleArn": { + "ResourceARN": { "type": "string" } }, "required": [ - "BucketName", - "Key", - "RoleArn" + "ResourceARN" ], "type": "object" }, - "AWS::IoT::TopicRule.SnsAction": { + "AWS::KinesisAnalyticsV2::Application.KinesisStreamsInput": { "additionalProperties": false, "properties": { - "MessageFormat": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "TargetArn": { + "ResourceARN": { "type": "string" } }, "required": [ - "RoleArn", - "TargetArn" + "ResourceARN" ], "type": "object" }, - "AWS::IoT::TopicRule.SqsAction": { + "AWS::KinesisAnalyticsV2::Application.MappingParameters": { "additionalProperties": false, "properties": { - "QueueUrl": { - "type": "string" - }, - "RoleArn": { - "type": "string" + "CSVMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CSVMappingParameters" }, - "UseBase64": { - "type": "boolean" + "JSONMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.JSONMappingParameters" } }, - "required": [ - "QueueUrl", - "RoleArn" - ], "type": "object" }, - "AWS::IoT::TopicRule.StepFunctionsAction": { + "AWS::KinesisAnalyticsV2::Application.MonitoringConfiguration": { "additionalProperties": false, "properties": { - "ExecutionNamePrefix": { + "ConfigurationType": { "type": "string" }, - "RoleArn": { + "LogLevel": { "type": "string" }, - "StateMachineName": { + "MetricsLevel": { "type": "string" } }, "required": [ - "RoleArn", - "StateMachineName" + "ConfigurationType" ], "type": "object" }, - "AWS::IoT::TopicRule.TopicRulePayload": { + "AWS::KinesisAnalyticsV2::Application.ParallelismConfiguration": { "additionalProperties": false, "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/AWS::IoT::TopicRule.Action" - }, - "type": "array" - }, - "AwsIotSqlVersion": { - "type": "string" + "AutoScalingEnabled": { + "type": "boolean" }, - "Description": { + "ConfigurationType": { "type": "string" }, - "ErrorAction": { - "$ref": "#/definitions/AWS::IoT::TopicRule.Action" - }, - "RuleDisabled": { - "type": "boolean" + "Parallelism": { + "type": "number" }, - "Sql": { - "type": "string" + "ParallelismPerKPU": { + "type": "number" } }, "required": [ - "Actions", - "RuleDisabled", - "Sql" + "ConfigurationType" ], "type": "object" }, - "AWS::KMS::Alias": { + "AWS::KinesisAnalyticsV2::Application.PropertyGroup": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "PropertyGroupId": { "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": { - "AliasName": { - "type": "string" - }, - "TargetKeyId": { - "type": "string" - } - }, - "required": [ - "AliasName", - "TargetKeyId" - ], + "PropertyMap": { "type": "object" - }, - "Type": { - "enum": [ - "AWS::KMS::Alias" - ], - "type": "string" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::KMS::Key": { + "AWS::KinesisAnalyticsV2::Application.RecordColumn": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Mapping": { "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" - }, - "EnableKeyRotation": { - "type": "boolean" - }, - "Enabled": { - "type": "boolean" - }, - "KeyPolicy": { - "type": "object" - }, - "KeyUsage": { - "type": "string" - }, - "PendingWindowInDays": { - "type": "number" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "required": [ - "KeyPolicy" - ], - "type": "object" + "Name": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::KMS::Key" - ], + "SqlType": { "type": "string" } }, "required": [ - "Type", - "Properties" + "Name", + "SqlType" ], "type": "object" }, - "AWS::Kinesis::Stream": { + "AWS::KinesisAnalyticsV2::Application.RecordFormat": { "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": { - "Name": { - "type": "string" - }, - "RetentionPeriodHours": { - "type": "number" - }, - "ShardCount": { - "type": "number" - }, - "StreamEncryption": { - "$ref": "#/definitions/AWS::Kinesis::Stream.StreamEncryption" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "required": [ - "ShardCount" - ], - "type": "object" + "MappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.MappingParameters" }, - "Type": { - "enum": [ - "AWS::Kinesis::Stream" - ], + "RecordFormatType": { "type": "string" } }, "required": [ - "Type", - "Properties" + "RecordFormatType" ], "type": "object" }, - "AWS::Kinesis::Stream.StreamEncryption": { + "AWS::KinesisAnalyticsV2::Application.S3ContentLocation": { "additionalProperties": false, "properties": { - "EncryptionType": { + "BucketARN": { "type": "string" }, - "KeyId": { + "FileKey": { + "type": "string" + }, + "ObjectVersion": { "type": "string" } }, - "required": [ - "EncryptionType", - "KeyId" - ], "type": "object" }, - "AWS::Kinesis::StreamConsumer": { + "AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration": { "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": { - "ConsumerName": { - "type": "string" - }, - "StreamARN": { - "type": "string" - } + "Inputs": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.Input" }, - "required": [ - "ConsumerName", - "StreamARN" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Kinesis::StreamConsumer" - ], - "type": "string" + "type": "array" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::KinesisAnalytics::Application": { + "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -25120,30 +28420,22 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApplicationCode": { - "type": "string" - }, - "ApplicationDescription": { - "type": "string" - }, "ApplicationName": { "type": "string" }, - "Inputs": { - "items": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.Input" - }, - "type": "array" + "CloudWatchLoggingOption": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption.CloudWatchLoggingOption" } }, "required": [ - "Inputs" + "ApplicationName", + "CloudWatchLoggingOption" ], "type": "object" }, "Type": { "enum": [ - "AWS::KinesisAnalytics::Application" + "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption" ], "type": "string" } @@ -25154,197 +28446,19 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::KinesisAnalytics::Application.CSVMappingParameters": { + "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption.CloudWatchLoggingOption": { "additionalProperties": false, "properties": { - "RecordColumnDelimiter": { - "type": "string" - }, - "RecordRowDelimiter": { - "type": "string" - } - }, - "required": [ - "RecordColumnDelimiter", - "RecordRowDelimiter" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.Input": { - "additionalProperties": false, - "properties": { - "InputParallelism": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputParallelism" - }, - "InputProcessingConfiguration": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputProcessingConfiguration" - }, - "InputSchema": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputSchema" - }, - "KinesisFirehoseInput": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.KinesisFirehoseInput" - }, - "KinesisStreamsInput": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.KinesisStreamsInput" - }, - "NamePrefix": { - "type": "string" - } - }, - "required": [ - "InputSchema", - "NamePrefix" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.InputLambdaProcessor": { - "additionalProperties": false, - "properties": { - "ResourceARN": { - "type": "string" - }, - "RoleARN": { - "type": "string" - } - }, - "required": [ - "ResourceARN", - "RoleARN" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.InputParallelism": { - "additionalProperties": false, - "properties": { - "Count": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::KinesisAnalytics::Application.InputProcessingConfiguration": { - "additionalProperties": false, - "properties": { - "InputLambdaProcessor": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputLambdaProcessor" - } - }, - "type": "object" - }, - "AWS::KinesisAnalytics::Application.InputSchema": { - "additionalProperties": false, - "properties": { - "RecordColumns": { - "items": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.RecordColumn" - }, - "type": "array" - }, - "RecordEncoding": { - "type": "string" - }, - "RecordFormat": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.RecordFormat" - } - }, - "required": [ - "RecordColumns", - "RecordFormat" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.JSONMappingParameters": { - "additionalProperties": false, - "properties": { - "RecordRowPath": { - "type": "string" - } - }, - "required": [ - "RecordRowPath" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.KinesisFirehoseInput": { - "additionalProperties": false, - "properties": { - "ResourceARN": { - "type": "string" - }, - "RoleARN": { - "type": "string" - } - }, - "required": [ - "ResourceARN", - "RoleARN" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.KinesisStreamsInput": { - "additionalProperties": false, - "properties": { - "ResourceARN": { - "type": "string" - }, - "RoleARN": { - "type": "string" - } - }, - "required": [ - "ResourceARN", - "RoleARN" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.MappingParameters": { - "additionalProperties": false, - "properties": { - "CSVMappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.CSVMappingParameters" - }, - "JSONMappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.JSONMappingParameters" - } - }, - "type": "object" - }, - "AWS::KinesisAnalytics::Application.RecordColumn": { - "additionalProperties": false, - "properties": { - "Mapping": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "SqlType": { - "type": "string" - } - }, - "required": [ - "Name", - "SqlType" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.RecordFormat": { - "additionalProperties": false, - "properties": { - "MappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.MappingParameters" - }, - "RecordFormatType": { + "LogStreamARN": { "type": "string" } }, "required": [ - "RecordFormatType" + "LogStreamARN" ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput": { + "AWS::KinesisAnalyticsV2::ApplicationOutput": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -25380,7 +28494,7 @@ var SamSchema = `{ "type": "string" }, "Output": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.Output" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.Output" } }, "required": [ @@ -25391,7 +28505,7 @@ var SamSchema = `{ }, "Type": { "enum": [ - "AWS::KinesisAnalytics::ApplicationOutput" + "AWS::KinesisAnalyticsV2::ApplicationOutput" ], "type": "string" } @@ -25402,7 +28516,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema": { + "AWS::KinesisAnalyticsV2::ApplicationOutput.DestinationSchema": { "additionalProperties": false, "properties": { "RecordFormatType": { @@ -25411,68 +28525,56 @@ var SamSchema = `{ }, "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput": { + "AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisFirehoseOutput": { "additionalProperties": false, "properties": { "ResourceARN": { "type": "string" - }, - "RoleARN": { - "type": "string" } }, "required": [ - "ResourceARN", - "RoleARN" + "ResourceARN" ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput": { + "AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisStreamsOutput": { "additionalProperties": false, "properties": { "ResourceARN": { "type": "string" - }, - "RoleARN": { - "type": "string" } }, "required": [ - "ResourceARN", - "RoleARN" + "ResourceARN" ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput": { + "AWS::KinesisAnalyticsV2::ApplicationOutput.LambdaOutput": { "additionalProperties": false, "properties": { "ResourceARN": { "type": "string" - }, - "RoleARN": { - "type": "string" } }, "required": [ - "ResourceARN", - "RoleARN" + "ResourceARN" ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput.Output": { + "AWS::KinesisAnalyticsV2::ApplicationOutput.Output": { "additionalProperties": false, "properties": { "DestinationSchema": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.DestinationSchema" }, "KinesisFirehoseOutput": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisFirehoseOutput" }, "KinesisStreamsOutput": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisStreamsOutput" }, "LambdaOutput": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.LambdaOutput" }, "Name": { "type": "string" @@ -25483,7 +28585,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -25519,7 +28621,7 @@ var SamSchema = `{ "type": "string" }, "ReferenceDataSource": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceDataSource" } }, "required": [ @@ -25530,7 +28632,7 @@ var SamSchema = `{ }, "Type": { "enum": [ - "AWS::KinesisAnalytics::ApplicationReferenceDataSource" + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource" ], "type": "string" } @@ -25541,7 +28643,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.CSVMappingParameters": { "additionalProperties": false, "properties": { "RecordColumnDelimiter": { @@ -25557,7 +28659,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.JSONMappingParameters": { "additionalProperties": false, "properties": { "RecordRowPath": { @@ -25569,19 +28671,19 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.MappingParameters": { "additionalProperties": false, "properties": { "CSVMappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.CSVMappingParameters" }, "JSONMappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.JSONMappingParameters" } }, "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordColumn": { "additionalProperties": false, "properties": { "Mapping": { @@ -25600,11 +28702,11 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordFormat": { "additionalProperties": false, "properties": { "MappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.MappingParameters" }, "RecordFormatType": { "type": "string" @@ -25615,14 +28717,14 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceDataSource": { "additionalProperties": false, "properties": { "ReferenceSchema": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceSchema" }, "S3ReferenceDataSource": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.S3ReferenceDataSource" }, "TableName": { "type": "string" @@ -25633,12 +28735,12 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceSchema": { "additionalProperties": false, "properties": { "RecordColumns": { "items": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordColumn" }, "type": "array" }, @@ -25646,7 +28748,7 @@ var SamSchema = `{ "type": "string" }, "RecordFormat": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordFormat" } }, "required": [ @@ -25655,7 +28757,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.S3ReferenceDataSource": { "additionalProperties": false, "properties": { "BucketARN": { @@ -25663,15 +28765,11 @@ var SamSchema = `{ }, "FileKey": { "type": "string" - }, - "ReferenceRoleARN": { - "type": "string" } }, "required": [ "BucketARN", - "FileKey", - "ReferenceRoleARN" + "FileKey" ], "type": "object" }, @@ -26475,6 +29573,159 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Lambda::LayerVersion": { + "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": { + "CompatibleRuntimes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Content": { + "$ref": "#/definitions/AWS::Lambda::LayerVersion.Content" + }, + "Description": { + "type": "string" + }, + "LayerName": { + "type": "string" + }, + "LicenseInfo": { + "type": "string" + } + }, + "required": [ + "Content" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lambda::LayerVersion" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lambda::LayerVersion.Content": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + }, + "S3ObjectVersion": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::Lambda::LayerVersionPermission": { + "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": { + "Action": { + "type": "string" + }, + "LayerVersionArn": { + "type": "string" + }, + "OrganizationId": { + "type": "string" + }, + "Principal": { + "type": "string" + } + }, + "required": [ + "Action", + "LayerVersionArn", + "Principal" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lambda::LayerVersionPermission" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Lambda::Permission": { "additionalProperties": false, "properties": { @@ -28090,110 +31341,320 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AgentVersion": { - "type": "string" - }, - "Attributes": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "ChefConfiguration": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.ChefConfiguration" - }, - "CloneAppIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ClonePermissions": { - "type": "boolean" - }, - "ConfigurationManager": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.StackConfigurationManager" - }, - "CustomCookbooksSource": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.Source" - }, - "CustomJson": { - "type": "object" - }, - "DefaultAvailabilityZone": { - "type": "string" - }, - "DefaultInstanceProfileArn": { - "type": "string" - }, - "DefaultOs": { - "type": "string" - }, - "DefaultRootDeviceType": { - "type": "string" - }, - "DefaultSshKeyName": { - "type": "string" - }, - "DefaultSubnetId": { - "type": "string" - }, - "EcsClusterArn": { + "AgentVersion": { + "type": "string" + }, + "Attributes": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "ChefConfiguration": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.ChefConfiguration" + }, + "CloneAppIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ClonePermissions": { + "type": "boolean" + }, + "ConfigurationManager": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.StackConfigurationManager" + }, + "CustomCookbooksSource": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.Source" + }, + "CustomJson": { + "type": "object" + }, + "DefaultAvailabilityZone": { + "type": "string" + }, + "DefaultInstanceProfileArn": { + "type": "string" + }, + "DefaultOs": { + "type": "string" + }, + "DefaultRootDeviceType": { + "type": "string" + }, + "DefaultSshKeyName": { + "type": "string" + }, + "DefaultSubnetId": { + "type": "string" + }, + "EcsClusterArn": { + "type": "string" + }, + "ElasticIps": { + "items": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.ElasticIp" + }, + "type": "array" + }, + "HostnameTheme": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RdsDbInstances": { + "items": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.RdsDbInstance" + }, + "type": "array" + }, + "ServiceRoleArn": { + "type": "string" + }, + "SourceStackId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UseCustomCookbooks": { + "type": "boolean" + }, + "UseOpsworksSecurityGroups": { + "type": "boolean" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "DefaultInstanceProfileArn", + "Name", + "ServiceRoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OpsWorks::Stack" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OpsWorks::Stack.ChefConfiguration": { + "additionalProperties": false, + "properties": { + "BerkshelfVersion": { + "type": "string" + }, + "ManageBerkshelf": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Stack.ElasticIp": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Ip" + ], + "type": "object" + }, + "AWS::OpsWorks::Stack.RdsDbInstance": { + "additionalProperties": false, + "properties": { + "DbPassword": { + "type": "string" + }, + "DbUser": { + "type": "string" + }, + "RdsDbInstanceArn": { + "type": "string" + } + }, + "required": [ + "DbPassword", + "DbUser", + "RdsDbInstanceArn" + ], + "type": "object" + }, + "AWS::OpsWorks::Stack.Source": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "Revision": { + "type": "string" + }, + "SshKey": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Stack.StackConfigurationManager": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpsWorks::UserProfile": { + "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": { + "AllowSelfManagement": { + "type": "boolean" + }, + "IamUserArn": { + "type": "string" + }, + "SshPublicKey": { + "type": "string" + }, + "SshUsername": { + "type": "string" + } + }, + "required": [ + "IamUserArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OpsWorks::UserProfile" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OpsWorks::Volume": { + "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": { + "Ec2VolumeId": { "type": "string" }, - "ElasticIps": { - "items": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.ElasticIp" - }, - "type": "array" - }, - "HostnameTheme": { + "MountPoint": { "type": "string" }, "Name": { "type": "string" }, - "RdsDbInstances": { - "items": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.RdsDbInstance" - }, - "type": "array" - }, - "ServiceRoleArn": { - "type": "string" - }, - "SourceStackId": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "UseCustomCookbooks": { - "type": "boolean" - }, - "UseOpsworksSecurityGroups": { - "type": "boolean" - }, - "VpcId": { + "StackId": { "type": "string" } }, "required": [ - "DefaultInstanceProfileArn", - "Name", - "ServiceRoleArn" + "Ec2VolumeId", + "StackId" ], "type": "object" }, "Type": { "enum": [ - "AWS::OpsWorks::Stack" + "AWS::OpsWorks::Volume" ], "type": "string" } @@ -28204,90 +31665,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::OpsWorks::Stack.ChefConfiguration": { - "additionalProperties": false, - "properties": { - "BerkshelfVersion": { - "type": "string" - }, - "ManageBerkshelf": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::OpsWorks::Stack.ElasticIp": { - "additionalProperties": false, - "properties": { - "Ip": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "Ip" - ], - "type": "object" - }, - "AWS::OpsWorks::Stack.RdsDbInstance": { - "additionalProperties": false, - "properties": { - "DbPassword": { - "type": "string" - }, - "DbUser": { - "type": "string" - }, - "RdsDbInstanceArn": { - "type": "string" - } - }, - "required": [ - "DbPassword", - "DbUser", - "RdsDbInstanceArn" - ], - "type": "object" - }, - "AWS::OpsWorks::Stack.Source": { - "additionalProperties": false, - "properties": { - "Password": { - "type": "string" - }, - "Revision": { - "type": "string" - }, - "SshKey": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Url": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::OpsWorks::Stack.StackConfigurationManager": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::OpsWorks::UserProfile": { + "AWS::OpsWorksCM::Server": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -28319,27 +31697,77 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AllowSelfManagement": { + "AssociatePublicIpAddress": { "type": "boolean" }, - "IamUserArn": { + "BackupId": { "type": "string" }, - "SshPublicKey": { + "BackupRetentionCount": { + "type": "number" + }, + "DisableAutomatedBackup": { + "type": "boolean" + }, + "Engine": { "type": "string" }, - "SshUsername": { + "EngineAttributes": { + "items": { + "$ref": "#/definitions/AWS::OpsWorksCM::Server.EngineAttribute" + }, + "type": "array" + }, + "EngineModel": { "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "InstanceProfileArn": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "KeyPair": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ServerName": { + "type": "string" + }, + "ServiceRoleArn": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "IamUserArn" + "InstanceProfileArn", + "InstanceType", + "ServiceRoleArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::OpsWorks::UserProfile" + "AWS::OpsWorksCM::Server" ], "type": "string" } @@ -28350,7 +31778,19 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::OpsWorks::Volume": { + "AWS::OpsWorksCM::Server.EngineAttribute": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RAM::ResourceShare": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -28382,28 +31822,39 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Ec2VolumeId": { - "type": "string" - }, - "MountPoint": { - "type": "string" + "AllowExternalPrincipals": { + "type": "boolean" }, "Name": { "type": "string" }, - "StackId": { - "type": "string" + "Principals": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ResourceArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "Ec2VolumeId", - "StackId" + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::OpsWorks::Volume" + "AWS::RAM::ResourceShare" ], "type": "string" } @@ -28518,6 +31969,9 @@ var SamSchema = `{ "SnapshotIdentifier": { "type": "string" }, + "SourceRegion": { + "type": "string" + }, "StorageEncrypted": { "type": "boolean" }, @@ -28823,6 +32277,9 @@ var SamSchema = `{ "Timezone": { "type": "string" }, + "UseDefaultProcessorFeatures": { + "type": "boolean" + }, "VPCSecurityGroups": { "items": { "type": "string" @@ -29762,31 +33219,517 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "Description": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::ClusterSubnetGroup" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::Fleet": { + "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": { + "Name": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::Fleet" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RoboMaker::Robot": { + "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": { + "Architecture": { + "type": "string" + }, + "Fleet": { + "type": "string" + }, + "GreengrassGroupId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "required": [ + "Architecture", + "GreengrassGroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::Robot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::RobotApplication": { + "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": { + "CurrentRevisionId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RobotSoftwareSuite": { + "$ref": "#/definitions/AWS::RoboMaker::RobotApplication.RobotSoftwareSuite" + }, + "Sources": { + "items": { + "$ref": "#/definitions/AWS::RoboMaker::RobotApplication.SourceConfig" + }, + "type": "array" + }, + "Tags": { + "type": "object" + } + }, + "required": [ + "RobotSoftwareSuite", + "Sources" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::RobotApplication" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::RobotApplication.RobotSoftwareSuite": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "Version" + ], + "type": "object" + }, + "AWS::RoboMaker::RobotApplication.SourceConfig": { + "additionalProperties": false, + "properties": { + "Architecture": { + "type": "string" + }, + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "Architecture", + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::RoboMaker::RobotApplicationVersion": { + "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": { + "Application": { "type": "string" }, - "SubnetIds": { + "CurrentRevisionId": { + "type": "string" + } + }, + "required": [ + "Application" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::RobotApplicationVersion" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication": { + "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": { + "CurrentRevisionId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RenderingEngine": { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.RenderingEngine" + }, + "RobotSoftwareSuite": { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.RobotSoftwareSuite" + }, + "SimulationSoftwareSuite": { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.SimulationSoftwareSuite" + }, + "Sources": { + "items": { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.SourceConfig" + }, + "type": "array" }, "Tags": { + "type": "object" + } + }, + "required": [ + "RenderingEngine", + "RobotSoftwareSuite", + "SimulationSoftwareSuite", + "Sources" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::SimulationApplication" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.RenderingEngine": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "Version" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.RobotSoftwareSuite": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "Version" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.SimulationSoftwareSuite": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "Version" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.SourceConfig": { + "additionalProperties": false, + "properties": { + "Architecture": { + "type": "string" + }, + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "Architecture", + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplicationVersion": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { "items": { - "$ref": "#/definitions/Tag" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Application": { + "type": "string" + }, + "CurrentRevisionId": { + "type": "string" + } }, "required": [ - "Description", - "SubnetIds" + "Application" ], "type": "object" }, "Type": { "enum": [ - "AWS::Redshift::ClusterSubnetGroup" + "AWS::RoboMaker::SimulationApplicationVersion" ], "type": "string" } @@ -30549,6 +34492,67 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Route53Resolver::ResolverRuleAssociation": { + "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": { + "Name": { + "type": "string" + }, + "ResolverRuleId": { + "type": "string" + }, + "VPCId": { + "type": "string" + } + }, + "required": [ + "ResolverRuleId", + "VPCId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::ResolverRuleAssociation" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::S3::Bucket": { "additionalProperties": false, "properties": { @@ -32179,6 +36183,10 @@ var SamSchema = `{ "type": "string" } }, + "required": [ + "Protocol", + "TopicArn" + ], "type": "object" }, "Type": { @@ -32189,7 +36197,8 @@ var SamSchema = `{ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -32739,6 +36748,12 @@ var SamSchema = `{ }, "StartDate": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ @@ -33458,6 +37473,9 @@ var SamSchema = `{ "AWS::SageMaker::EndpointConfig.ProductionVariant": { "additionalProperties": false, "properties": { + "AcceleratorType": { + "type": "string" + }, "InitialInstanceCount": { "type": "number" }, @@ -33515,6 +37533,12 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::Model.ContainerDefinition" + }, + "type": "array" + }, "ExecutionRoleArn": { "type": "string" }, @@ -33535,8 +37559,7 @@ var SamSchema = `{ } }, "required": [ - "ExecutionRoleArn", - "PrimaryContainer" + "ExecutionRoleArn" ], "type": "object" }, @@ -34080,12 +38103,24 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "Auth": { + "$ref": "#/definitions/AWS::Serverless::Api.Auth" + }, + "BinaryMediaTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, "CacheClusterEnabled": { "type": "boolean" }, "CacheClusterSize": { "type": "string" }, + "Cors": { + "type": "string" + }, "DefinitionBody": { "type": "object" }, @@ -34101,6 +38136,9 @@ var SamSchema = `{ } ] }, + "EndpointConfiguration": { + "type": "string" + }, "MethodSettings": { "type": "object" }, @@ -34138,6 +38176,18 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Serverless::Api.Auth": { + "additionalProperties": false, + "properties": { + "Authorizers": { + "type": "string" + }, + "DefaultAuthorizer": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Serverless::Api.S3Location": { "additionalProperties": false, "properties": { @@ -34158,6 +38208,107 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Serverless::Application": { + "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": { + "Location": { + "anyOf": [ + { + "$ref": "#/definitions/AWS::Serverless::Application.ApplicationLocation" + } + ] + }, + "NotificationArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Parameters": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutInMinutes": { + "type": "number" + } + }, + "required": [ + "Location" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Serverless::Application" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Serverless::Application.ApplicationLocation": { + "additionalProperties": false, + "properties": { + "ApplicationId": { + "type": "string" + }, + "SemanticVersion": { + "type": "string" + } + }, + "required": [ + "ApplicationId", + "SemanticVersion" + ], + "type": "object" + }, "AWS::Serverless::Function": { "additionalProperties": false, "properties": { @@ -34190,6 +38341,9 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "AutoPublishAlias": { + "type": "string" + }, "CodeUri": { "anyOf": [ { @@ -34205,6 +38359,9 @@ var SamSchema = `{ "DeadLetterQueue": { "$ref": "#/definitions/AWS::Serverless::Function.DeadLetterQueue" }, + "DeploymentPreference": { + "$ref": "#/definitions/AWS::Serverless::Function.DeploymentPreference" + }, "Description": { "type": "string" }, @@ -34229,6 +38386,12 @@ var SamSchema = `{ "KmsKeyArn": { "type": "string" }, + "Layers": { + "items": { + "type": "string" + }, + "type": "array" + }, "MemorySize": { "type": "number" }, @@ -34256,6 +38419,9 @@ var SamSchema = `{ } ] }, + "ReservedConcurrentExecutions": { + "type": "number" + }, "Role": { "type": "string" }, @@ -34369,6 +38535,36 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Serverless::Function.DeploymentPreference": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enabled": { + "type": "boolean" + }, + "Hooks": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Role": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Serverless::Function.DynamoDBEvent": { "additionalProperties": false, "properties": { @@ -34627,6 +38823,74 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Serverless::LayerVersion": { + "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": { + "CompatibleRuntimes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ContentUri": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "LayerName": { + "type": "string" + }, + "LicenseInfo": { + "type": "string" + }, + "RetentionPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Serverless::LayerVersion" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, "AWS::Serverless::SimpleTable": { "additionalProperties": false, "properties": { @@ -34664,6 +38928,21 @@ var SamSchema = `{ }, "ProvisionedThroughput": { "$ref": "#/definitions/AWS::Serverless::SimpleTable.ProvisionedThroughput" + }, + "SSESpecification": { + "$ref": "#/definitions/AWS::Serverless::SimpleTable.SSESpecification" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" } }, "type": "object" @@ -34710,6 +38989,15 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Serverless::SimpleTable.SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, "AWS::ServiceCatalog::AcceptedPortfolioShare": { "additionalProperties": false, "properties": { @@ -37773,6 +42061,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::AmazonMQ::Configuration" }, + { + "$ref": "#/definitions/AWS::AmazonMQ::ConfigurationAssociation" + }, { "$ref": "#/definitions/AWS::ApiGateway::Account" }, @@ -37830,6 +42121,33 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::ApiGateway::VpcLink" }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Api" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Authorizer" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Deployment" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Integration" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::IntegrationResponse" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Model" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Route" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::RouteResponse" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Stage" + }, { "$ref": "#/definitions/AWS::AppStream::DirectoryConfig" }, @@ -38046,6 +42364,18 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::DirectoryService::SimpleAD" }, + { + "$ref": "#/definitions/AWS::DocDB::DBCluster" + }, + { + "$ref": "#/definitions/AWS::DocDB::DBClusterParameterGroup" + }, + { + "$ref": "#/definitions/AWS::DocDB::DBInstance" + }, + { + "$ref": "#/definitions/AWS::DocDB::DBSubnetGroup" + }, { "$ref": "#/definitions/AWS::DynamoDB::Table" }, @@ -38289,6 +42619,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::Events::Rule" }, + { + "$ref": "#/definitions/AWS::FSx::FileSystem" + }, { "$ref": "#/definitions/AWS::GameLift::Alias" }, @@ -38406,6 +42739,18 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::IoT::TopicRule" }, + { + "$ref": "#/definitions/AWS::IoTAnalytics::Channel" + }, + { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset" + }, + { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore" + }, + { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline" + }, { "$ref": "#/definitions/AWS::KMS::Alias" }, @@ -38427,6 +42772,18 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource" }, + { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application" + }, + { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption" + }, + { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput" + }, + { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource" + }, { "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream" }, @@ -38439,6 +42796,12 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::Lambda::Function" }, + { + "$ref": "#/definitions/AWS::Lambda::LayerVersion" + }, + { + "$ref": "#/definitions/AWS::Lambda::LayerVersionPermission" + }, { "$ref": "#/definitions/AWS::Lambda::Permission" }, @@ -38496,6 +42859,12 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::OpsWorks::Volume" }, + { + "$ref": "#/definitions/AWS::OpsWorksCM::Server" + }, + { + "$ref": "#/definitions/AWS::RAM::ResourceShare" + }, { "$ref": "#/definitions/AWS::RDS::DBCluster" }, @@ -38538,6 +42907,24 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::Redshift::ClusterSubnetGroup" }, + { + "$ref": "#/definitions/AWS::RoboMaker::Fleet" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::Robot" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::RobotApplication" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::RobotApplicationVersion" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplicationVersion" + }, { "$ref": "#/definitions/AWS::Route53::HealthCheck" }, @@ -38556,6 +42943,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::Route53Resolver::ResolverRule" }, + { + "$ref": "#/definitions/AWS::Route53Resolver::ResolverRuleAssociation" + }, { "$ref": "#/definitions/AWS::S3::Bucket" }, @@ -38649,9 +43039,15 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::Serverless::Api" }, + { + "$ref": "#/definitions/AWS::Serverless::Application" + }, { "$ref": "#/definitions/AWS::Serverless::Function" }, + { + "$ref": "#/definitions/AWS::Serverless::LayerVersion" + }, { "$ref": "#/definitions/AWS::Serverless::SimpleTable" }, diff --git a/schema/sam.schema.json b/schema/sam.schema.json index 320138d883..50bcc553b5 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -76,6 +76,12 @@ }, "type": "array" }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AmazonMQ::Broker.TagsEntry" + }, + "type": "array" + }, "Users": { "items": { "$ref": "#/definitions/AWS::AmazonMQ::Broker.User" @@ -156,6 +162,22 @@ ], "type": "object" }, + "AWS::AmazonMQ::Broker.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::AmazonMQ::Broker.User": { "additionalProperties": false, "properties": { @@ -227,6 +249,12 @@ }, "Name": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AmazonMQ::Configuration.TagsEntry" + }, + "type": "array" } }, "required": [ @@ -250,6 +278,96 @@ ], "type": "object" }, + "AWS::AmazonMQ::Configuration.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::AmazonMQ::ConfigurationAssociation": { + "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": { + "Broker": { + "type": "string" + }, + "Configuration": { + "$ref": "#/definitions/AWS::AmazonMQ::ConfigurationAssociation.ConfigurationId" + } + }, + "required": [ + "Broker", + "Configuration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AmazonMQ::ConfigurationAssociation" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AmazonMQ::ConfigurationAssociation.ConfigurationId": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Revision": { + "type": "number" + } + }, + "required": [ + "Id", + "Revision" + ], + "type": "object" + }, "AWS::ApiGateway::Account": { "additionalProperties": false, "properties": { @@ -352,6 +470,9 @@ "$ref": "#/definitions/AWS::ApiGateway::ApiKey.StageKey" }, "type": "array" + }, + "Value": { + "type": "string" } }, "type": "object" @@ -447,7 +568,8 @@ } }, "required": [ - "RestApiId" + "RestApiId", + "Type" ], "type": "object" }, @@ -2077,7 +2199,7 @@ ], "type": "object" }, - "AWS::AppStream::DirectoryConfig": { + "AWS::ApiGatewayV2::Api": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2109,29 +2231,120 @@ "Properties": { "additionalProperties": false, "properties": { - "DirectoryName": { + "ApiKeySelectionExpression": { "type": "string" }, - "OrganizationalUnitDistinguishedNames": { + "Description": { + "type": "string" + }, + "DisableSchemaValidation": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "ProtocolType": { + "type": "string" + }, + "RouteSelectionExpression": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "ProtocolType", + "RouteSelectionExpression" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGatewayV2::Api" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::Authorizer": { + "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": { + "ApiId": { + "type": "string" }, - "ServiceAccountCredentials": { - "$ref": "#/definitions/AWS::AppStream::DirectoryConfig.ServiceAccountCredentials" + "AuthorizerCredentialsArn": { + "type": "string" + }, + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerType": { + "type": "string" + }, + "AuthorizerUri": { + "type": "string" + }, + "IdentitySource": { + "items": { + "type": "string" + }, + "type": "array" + }, + "IdentityValidationExpression": { + "type": "string" + }, + "Name": { + "type": "string" } }, "required": [ - "DirectoryName", - "OrganizationalUnitDistinguishedNames", - "ServiceAccountCredentials" + "ApiId", + "AuthorizerType", + "AuthorizerUri", + "IdentitySource", + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::DirectoryConfig" + "AWS::ApiGatewayV2::Authorizer" ], "type": "string" } @@ -2142,23 +2355,67 @@ ], "type": "object" }, - "AWS::AppStream::DirectoryConfig.ServiceAccountCredentials": { + "AWS::ApiGatewayV2::Deployment": { "additionalProperties": false, "properties": { - "AccountName": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "AccountPassword": { + "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": { + "ApiId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "StageName": { + "type": "string" + } + }, + "required": [ + "ApiId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGatewayV2::Deployment" + ], "type": "string" } }, "required": [ - "AccountName", - "AccountPassword" + "Type", + "Properties" ], "type": "object" }, - "AWS::AppStream::Fleet": { + "AWS::ApiGatewayV2::Integration": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2190,55 +2447,55 @@ "Properties": { "additionalProperties": false, "properties": { - "ComputeCapacity": { - "$ref": "#/definitions/AWS::AppStream::Fleet.ComputeCapacity" - }, - "Description": { + "ApiId": { "type": "string" }, - "DisconnectTimeoutInSeconds": { - "type": "number" + "ConnectionType": { + "type": "string" }, - "DisplayName": { + "ContentHandlingStrategy": { "type": "string" }, - "DomainJoinInfo": { - "$ref": "#/definitions/AWS::AppStream::Fleet.DomainJoinInfo" + "CredentialsArn": { + "type": "string" }, - "EnableDefaultInternetAccess": { - "type": "boolean" + "Description": { + "type": "string" }, - "FleetType": { + "IntegrationMethod": { "type": "string" }, - "ImageArn": { + "IntegrationType": { "type": "string" }, - "ImageName": { + "IntegrationUri": { "type": "string" }, - "InstanceType": { + "PassthroughBehavior": { "type": "string" }, - "MaxUserDurationInSeconds": { - "type": "number" + "RequestParameters": { + "type": "object" }, - "Name": { + "RequestTemplates": { + "type": "object" + }, + "TemplateSelectionExpression": { "type": "string" }, - "VpcConfig": { - "$ref": "#/definitions/AWS::AppStream::Fleet.VpcConfig" + "TimeoutInMillis": { + "type": "number" } }, "required": [ - "ComputeCapacity", - "InstanceType" + "ApiId", + "IntegrationType" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::Fleet" + "AWS::ApiGatewayV2::Integration" ], "type": "string" } @@ -2249,49 +2506,7 @@ ], "type": "object" }, - "AWS::AppStream::Fleet.ComputeCapacity": { - "additionalProperties": false, - "properties": { - "DesiredInstances": { - "type": "number" - } - }, - "required": [ - "DesiredInstances" - ], - "type": "object" - }, - "AWS::AppStream::Fleet.DomainJoinInfo": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "type": "string" - }, - "OrganizationalUnitDistinguishedName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AppStream::Fleet.VpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::AppStream::ImageBuilder": { + "AWS::ApiGatewayV2::IntegrationResponse": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2323,45 +2538,38 @@ "Properties": { "additionalProperties": false, "properties": { - "AppstreamAgentVersion": { + "ApiId": { "type": "string" }, - "Description": { + "ContentHandlingStrategy": { "type": "string" }, - "DisplayName": { + "IntegrationId": { "type": "string" }, - "DomainJoinInfo": { - "$ref": "#/definitions/AWS::AppStream::ImageBuilder.DomainJoinInfo" - }, - "EnableDefaultInternetAccess": { - "type": "boolean" - }, - "ImageArn": { + "IntegrationResponseKey": { "type": "string" }, - "ImageName": { - "type": "string" + "ResponseParameters": { + "type": "object" }, - "InstanceType": { - "type": "string" + "ResponseTemplates": { + "type": "object" }, - "Name": { + "TemplateSelectionExpression": { "type": "string" - }, - "VpcConfig": { - "$ref": "#/definitions/AWS::AppStream::ImageBuilder.VpcConfig" } }, "required": [ - "InstanceType" + "ApiId", + "IntegrationId", + "IntegrationResponseKey" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::ImageBuilder" + "AWS::ApiGatewayV2::IntegrationResponse" ], "type": "string" } @@ -2372,37 +2580,7 @@ ], "type": "object" }, - "AWS::AppStream::ImageBuilder.DomainJoinInfo": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "type": "string" - }, - "OrganizationalUnitDistinguishedName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AppStream::ImageBuilder.VpcConfig": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::AppStream::Stack": { + "AWS::ApiGatewayV2::Model": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2434,113 +2612,43 @@ "Properties": { "additionalProperties": false, "properties": { - "ApplicationSettings": { - "$ref": "#/definitions/AWS::AppStream::Stack.ApplicationSettings" - }, - "AttributesToDelete": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DeleteStorageConnectors": { - "type": "boolean" - }, - "Description": { + "ApiId": { "type": "string" }, - "DisplayName": { + "ContentType": { "type": "string" }, - "FeedbackURL": { + "Description": { "type": "string" }, "Name": { "type": "string" }, - "RedirectURL": { - "type": "string" - }, - "StorageConnectors": { - "items": { - "$ref": "#/definitions/AWS::AppStream::Stack.StorageConnector" - }, - "type": "array" - }, - "UserSettings": { - "items": { - "$ref": "#/definitions/AWS::AppStream::Stack.UserSetting" - }, - "type": "array" + "Schema": { + "type": "object" } }, + "required": [ + "ApiId", + "Name", + "Schema" + ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::Stack" + "AWS::ApiGatewayV2::Model" ], "type": "string" } }, "required": [ - "Type" - ], - "type": "object" - }, - "AWS::AppStream::Stack.ApplicationSettings": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "SettingsGroup": { - "type": "string" - } - }, - "required": [ - "Enabled" - ], - "type": "object" - }, - "AWS::AppStream::Stack.StorageConnector": { - "additionalProperties": false, - "properties": { - "ConnectorType": { - "type": "string" - }, - "Domains": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ResourceIdentifier": { - "type": "string" - } - }, - "required": [ - "ConnectorType" - ], - "type": "object" - }, - "AWS::AppStream::Stack.UserSetting": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "Permission": { - "type": "string" - } - }, - "required": [ - "Action", - "Permission" + "Type", + "Properties" ], "type": "object" }, - "AWS::AppStream::StackFleetAssociation": { + "AWS::ApiGatewayV2::Route": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2572,22 +2680,55 @@ "Properties": { "additionalProperties": false, "properties": { - "FleetName": { + "ApiId": { "type": "string" }, - "StackName": { + "ApiKeyRequired": { + "type": "boolean" + }, + "AuthorizationScopes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AuthorizationType": { + "type": "string" + }, + "AuthorizerId": { + "type": "string" + }, + "ModelSelectionExpression": { + "type": "string" + }, + "OperationName": { + "type": "string" + }, + "RequestModels": { + "type": "object" + }, + "RequestParameters": { + "type": "object" + }, + "RouteKey": { + "type": "string" + }, + "RouteResponseSelectionExpression": { + "type": "string" + }, + "Target": { "type": "string" } }, "required": [ - "FleetName", - "StackName" + "ApiId", + "RouteKey" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::StackFleetAssociation" + "AWS::ApiGatewayV2::Route" ], "type": "string" } @@ -2598,7 +2739,19 @@ ], "type": "object" }, - "AWS::AppStream::StackUserAssociation": { + "AWS::ApiGatewayV2::Route.ParameterConstraints": { + "additionalProperties": false, + "properties": { + "Required": { + "type": "boolean" + } + }, + "required": [ + "Required" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::RouteResponse": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2630,29 +2783,35 @@ "Properties": { "additionalProperties": false, "properties": { - "AuthenticationType": { + "ApiId": { "type": "string" }, - "SendEmailNotification": { - "type": "boolean" + "ModelSelectionExpression": { + "type": "string" }, - "StackName": { + "ResponseModels": { + "type": "object" + }, + "ResponseParameters": { + "type": "object" + }, + "RouteId": { "type": "string" }, - "UserName": { + "RouteResponseKey": { "type": "string" } }, "required": [ - "AuthenticationType", - "StackName", - "UserName" + "ApiId", + "RouteId", + "RouteResponseKey" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::StackUserAssociation" + "AWS::ApiGatewayV2::RouteResponse" ], "type": "string" } @@ -2663,7 +2822,19 @@ ], "type": "object" }, - "AWS::AppStream::User": { + "AWS::ApiGatewayV2::RouteResponse.ParameterConstraints": { + "additionalProperties": false, + "properties": { + "Required": { + "type": "boolean" + } + }, + "required": [ + "Required" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::Stage": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2695,31 +2866,44 @@ "Properties": { "additionalProperties": false, "properties": { - "AuthenticationType": { + "AccessLogSettings": { + "$ref": "#/definitions/AWS::ApiGatewayV2::Stage.AccessLogSettings" + }, + "ApiId": { "type": "string" }, - "FirstName": { + "ClientCertificateId": { "type": "string" }, - "LastName": { + "DefaultRouteSettings": { + "$ref": "#/definitions/AWS::ApiGatewayV2::Stage.RouteSettings" + }, + "DeploymentId": { "type": "string" }, - "MessageAction": { + "Description": { "type": "string" }, - "UserName": { + "RouteSettings": { + "type": "object" + }, + "StageName": { "type": "string" + }, + "StageVariables": { + "type": "object" } }, "required": [ - "AuthenticationType", - "UserName" + "ApiId", + "DeploymentId", + "StageName" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppStream::User" + "AWS::ApiGatewayV2::Stage" ], "type": "string" } @@ -2730,7 +2914,40 @@ ], "type": "object" }, - "AWS::AppSync::ApiKey": { + "AWS::ApiGatewayV2::Stage.AccessLogSettings": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "type": "string" + }, + "Format": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGatewayV2::Stage.RouteSettings": { + "additionalProperties": false, + "properties": { + "DataTraceEnabled": { + "type": "boolean" + }, + "DetailedMetricsEnabled": { + "type": "boolean" + }, + "LoggingLevel": { + "type": "string" + }, + "ThrottlingBurstLimit": { + "type": "number" + }, + "ThrottlingRateLimit": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AppStream::DirectoryConfig": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2762,24 +2979,29 @@ "Properties": { "additionalProperties": false, "properties": { - "ApiId": { + "DirectoryName": { "type": "string" }, - "Description": { - "type": "string" + "OrganizationalUnitDistinguishedNames": { + "items": { + "type": "string" + }, + "type": "array" }, - "Expires": { - "type": "number" + "ServiceAccountCredentials": { + "$ref": "#/definitions/AWS::AppStream::DirectoryConfig.ServiceAccountCredentials" } }, "required": [ - "ApiId" + "DirectoryName", + "OrganizationalUnitDistinguishedNames", + "ServiceAccountCredentials" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::ApiKey" + "AWS::AppStream::DirectoryConfig" ], "type": "string" } @@ -2790,7 +3012,23 @@ ], "type": "object" }, - "AWS::AppSync::DataSource": { + "AWS::AppStream::DirectoryConfig.ServiceAccountCredentials": { + "additionalProperties": false, + "properties": { + "AccountName": { + "type": "string" + }, + "AccountPassword": { + "type": "string" + } + }, + "required": [ + "AccountName", + "AccountPassword" + ], + "type": "object" + }, + "AWS::AppStream::Fleet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -2822,47 +3060,55 @@ "Properties": { "additionalProperties": false, "properties": { - "ApiId": { - "type": "string" + "ComputeCapacity": { + "$ref": "#/definitions/AWS::AppStream::Fleet.ComputeCapacity" }, "Description": { "type": "string" }, - "DynamoDBConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.DynamoDBConfig" + "DisconnectTimeoutInSeconds": { + "type": "number" }, - "ElasticsearchConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.ElasticsearchConfig" + "DisplayName": { + "type": "string" }, - "HttpConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.HttpConfig" + "DomainJoinInfo": { + "$ref": "#/definitions/AWS::AppStream::Fleet.DomainJoinInfo" }, - "LambdaConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.LambdaConfig" + "EnableDefaultInternetAccess": { + "type": "boolean" }, - "Name": { + "FleetType": { "type": "string" }, - "RelationalDatabaseConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.RelationalDatabaseConfig" + "ImageArn": { + "type": "string" }, - "ServiceRoleArn": { + "ImageName": { "type": "string" }, - "Type": { + "InstanceType": { + "type": "string" + }, + "MaxUserDurationInSeconds": { + "type": "number" + }, + "Name": { "type": "string" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::AppStream::Fleet.VpcConfig" } }, "required": [ - "ApiId", - "Name", - "Type" + "ComputeCapacity", + "InstanceType" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::DataSource" + "AWS::AppStream::Fleet" ], "type": "string" } @@ -2873,145 +3119,57 @@ ], "type": "object" }, - "AWS::AppSync::DataSource.AuthorizationConfig": { + "AWS::AppStream::Fleet.ComputeCapacity": { "additionalProperties": false, "properties": { - "AuthorizationType": { - "type": "string" - }, - "AwsIamConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.AwsIamConfig" + "DesiredInstances": { + "type": "number" } }, "required": [ - "AuthorizationType" + "DesiredInstances" ], "type": "object" }, - "AWS::AppSync::DataSource.AwsIamConfig": { + "AWS::AppStream::Fleet.DomainJoinInfo": { "additionalProperties": false, "properties": { - "SigningRegion": { + "DirectoryName": { "type": "string" }, - "SigningServiceName": { + "OrganizationalUnitDistinguishedName": { "type": "string" } }, "type": "object" }, - "AWS::AppSync::DataSource.DynamoDBConfig": { + "AWS::AppStream::Fleet.VpcConfig": { "additionalProperties": false, "properties": { - "AwsRegion": { - "type": "string" - }, - "TableName": { - "type": "string" + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "UseCallerCredentials": { - "type": "boolean" + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "AwsRegion", - "TableName" - ], "type": "object" }, - "AWS::AppSync::DataSource.ElasticsearchConfig": { + "AWS::AppStream::ImageBuilder": { "additionalProperties": false, "properties": { - "AwsRegion": { - "type": "string" - }, - "Endpoint": { - "type": "string" - } - }, - "required": [ - "AwsRegion", - "Endpoint" - ], - "type": "object" - }, - "AWS::AppSync::DataSource.HttpConfig": { - "additionalProperties": false, - "properties": { - "AuthorizationConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.AuthorizationConfig" - }, - "Endpoint": { - "type": "string" - } - }, - "required": [ - "Endpoint" - ], - "type": "object" - }, - "AWS::AppSync::DataSource.LambdaConfig": { - "additionalProperties": false, - "properties": { - "LambdaFunctionArn": { - "type": "string" - } - }, - "required": [ - "LambdaFunctionArn" - ], - "type": "object" - }, - "AWS::AppSync::DataSource.RdsHttpEndpointConfig": { - "additionalProperties": false, - "properties": { - "AwsRegion": { - "type": "string" - }, - "AwsSecretStoreArn": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "DbClusterIdentifier": { - "type": "string" - }, - "Schema": { - "type": "string" - } - }, - "required": [ - "AwsRegion", - "AwsSecretStoreArn", - "DbClusterIdentifier" - ], - "type": "object" - }, - "AWS::AppSync::DataSource.RelationalDatabaseConfig": { - "additionalProperties": false, - "properties": { - "RdsHttpEndpointConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.RdsHttpEndpointConfig" - }, - "RelationalDatabaseSourceType": { - "type": "string" - } - }, - "required": [ - "RelationalDatabaseSourceType" - ], - "type": "object" - }, - "AWS::AppSync::FunctionConfiguration": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, "DependsOn": { @@ -3035,42 +3193,45 @@ "Properties": { "additionalProperties": false, "properties": { - "ApiId": { - "type": "string" - }, - "DataSourceName": { + "AppstreamAgentVersion": { "type": "string" }, "Description": { "type": "string" }, - "FunctionVersion": { + "DisplayName": { "type": "string" }, - "Name": { - "type": "string" + "DomainJoinInfo": { + "$ref": "#/definitions/AWS::AppStream::ImageBuilder.DomainJoinInfo" }, - "RequestMappingTemplate": { + "EnableDefaultInternetAccess": { + "type": "boolean" + }, + "ImageArn": { "type": "string" }, - "RequestMappingTemplateS3Location": { + "ImageName": { "type": "string" }, - "ResponseMappingTemplate": { + "InstanceType": { "type": "string" }, - "ResponseMappingTemplateS3Location": { + "Name": { "type": "string" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::AppStream::ImageBuilder.VpcConfig" } }, "required": [ - "ApiId" + "InstanceType" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::FunctionConfiguration" + "AWS::AppStream::ImageBuilder" ], "type": "string" } @@ -3081,7 +3242,37 @@ ], "type": "object" }, - "AWS::AppSync::GraphQLApi": { + "AWS::AppStream::ImageBuilder.DomainJoinInfo": { + "additionalProperties": false, + "properties": { + "DirectoryName": { + "type": "string" + }, + "OrganizationalUnitDistinguishedName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppStream::ImageBuilder.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::AppStream::Stack": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3113,90 +3304,113 @@ "Properties": { "additionalProperties": false, "properties": { - "AuthenticationType": { + "ApplicationSettings": { + "$ref": "#/definitions/AWS::AppStream::Stack.ApplicationSettings" + }, + "AttributesToDelete": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DeleteStorageConnectors": { + "type": "boolean" + }, + "Description": { "type": "string" }, - "LogConfig": { - "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LogConfig" + "DisplayName": { + "type": "string" + }, + "FeedbackURL": { + "type": "string" }, "Name": { "type": "string" }, - "OpenIDConnectConfig": { - "$ref": "#/definitions/AWS::AppSync::GraphQLApi.OpenIDConnectConfig" + "RedirectURL": { + "type": "string" }, - "UserPoolConfig": { - "$ref": "#/definitions/AWS::AppSync::GraphQLApi.UserPoolConfig" + "StorageConnectors": { + "items": { + "$ref": "#/definitions/AWS::AppStream::Stack.StorageConnector" + }, + "type": "array" + }, + "UserSettings": { + "items": { + "$ref": "#/definitions/AWS::AppStream::Stack.UserSetting" + }, + "type": "array" } }, - "required": [ - "AuthenticationType", - "Name" - ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::GraphQLApi" + "AWS::AppStream::Stack" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::AppSync::GraphQLApi.LogConfig": { + "AWS::AppStream::Stack.ApplicationSettings": { "additionalProperties": false, "properties": { - "CloudWatchLogsRoleArn": { - "type": "string" + "Enabled": { + "type": "boolean" }, - "FieldLogLevel": { + "SettingsGroup": { "type": "string" } }, + "required": [ + "Enabled" + ], "type": "object" }, - "AWS::AppSync::GraphQLApi.OpenIDConnectConfig": { + "AWS::AppStream::Stack.StorageConnector": { "additionalProperties": false, "properties": { - "AuthTTL": { - "type": "number" - }, - "ClientId": { + "ConnectorType": { "type": "string" }, - "IatTTL": { - "type": "number" + "Domains": { + "items": { + "type": "string" + }, + "type": "array" }, - "Issuer": { + "ResourceIdentifier": { "type": "string" } }, + "required": [ + "ConnectorType" + ], "type": "object" }, - "AWS::AppSync::GraphQLApi.UserPoolConfig": { + "AWS::AppStream::Stack.UserSetting": { "additionalProperties": false, "properties": { - "AppIdClientRegex": { - "type": "string" - }, - "AwsRegion": { - "type": "string" - }, - "DefaultAction": { + "Action": { "type": "string" }, - "UserPoolId": { + "Permission": { "type": "string" } }, + "required": [ + "Action", + "Permission" + ], "type": "object" }, - "AWS::AppSync::GraphQLSchema": { + "AWS::AppStream::StackFleetAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3228,24 +3442,22 @@ "Properties": { "additionalProperties": false, "properties": { - "ApiId": { - "type": "string" - }, - "Definition": { + "FleetName": { "type": "string" }, - "DefinitionS3Location": { + "StackName": { "type": "string" } }, "required": [ - "ApiId" + "FleetName", + "StackName" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::GraphQLSchema" + "AWS::AppStream::StackFleetAssociation" ], "type": "string" } @@ -3256,7 +3468,7 @@ ], "type": "object" }, - "AWS::AppSync::Resolver": { + "AWS::AppStream::StackUserAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3288,47 +3500,29 @@ "Properties": { "additionalProperties": false, "properties": { - "ApiId": { - "type": "string" - }, - "DataSourceName": { - "type": "string" - }, - "FieldName": { - "type": "string" - }, - "Kind": { - "type": "string" - }, - "PipelineConfig": { - "$ref": "#/definitions/AWS::AppSync::Resolver.PipelineConfig" - }, - "RequestMappingTemplate": { - "type": "string" - }, - "RequestMappingTemplateS3Location": { + "AuthenticationType": { "type": "string" }, - "ResponseMappingTemplate": { - "type": "string" + "SendEmailNotification": { + "type": "boolean" }, - "ResponseMappingTemplateS3Location": { + "StackName": { "type": "string" }, - "TypeName": { + "UserName": { "type": "string" } }, "required": [ - "ApiId", - "FieldName", - "TypeName" + "AuthenticationType", + "StackName", + "UserName" ], "type": "object" }, "Type": { "enum": [ - "AWS::AppSync::Resolver" + "AWS::AppStream::StackUserAssociation" ], "type": "string" } @@ -3339,19 +3533,7 @@ ], "type": "object" }, - "AWS::AppSync::Resolver.PipelineConfig": { - "additionalProperties": false, - "properties": { - "Functions": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::ApplicationAutoScaling::ScalableTarget": { + "AWS::AppStream::User": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3383,44 +3565,31 @@ "Properties": { "additionalProperties": false, "properties": { - "MaxCapacity": { - "type": "number" - }, - "MinCapacity": { - "type": "number" - }, - "ResourceId": { + "AuthenticationType": { "type": "string" }, - "RoleARN": { + "FirstName": { "type": "string" }, - "ScalableDimension": { + "LastName": { "type": "string" }, - "ScheduledActions": { - "items": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction" - }, - "type": "array" + "MessageAction": { + "type": "string" }, - "ServiceNamespace": { + "UserName": { "type": "string" } }, "required": [ - "MaxCapacity", - "MinCapacity", - "ResourceId", - "RoleARN", - "ScalableDimension", - "ServiceNamespace" + "AuthenticationType", + "UserName" ], "type": "object" }, "Type": { "enum": [ - "AWS::ApplicationAutoScaling::ScalableTarget" + "AWS::AppStream::User" ], "type": "string" } @@ -3431,44 +3600,67 @@ ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "number" - }, - "MinCapacity": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction": { + "AWS::AppSync::ApiKey": { "additionalProperties": false, "properties": { - "EndTime": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "ScalableTargetAction": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Schedule": { - "type": "string" + "Metadata": { + "type": "object" }, - "ScheduledActionName": { - "type": "string" + "Properties": { + "additionalProperties": false, + "properties": { + "ApiId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Expires": { + "type": "number" + } + }, + "required": [ + "ApiId" + ], + "type": "object" }, - "StartTime": { + "Type": { + "enum": [ + "AWS::AppSync::ApiKey" + ], "type": "string" } }, "required": [ - "Schedule", - "ScheduledActionName" + "Type", + "Properties" ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy": { + "AWS::AppSync::DataSource": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3500,40 +3692,47 @@ "Properties": { "additionalProperties": false, "properties": { - "PolicyName": { + "ApiId": { "type": "string" }, - "PolicyType": { + "Description": { "type": "string" }, - "ResourceId": { - "type": "string" + "DynamoDBConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.DynamoDBConfig" }, - "ScalableDimension": { - "type": "string" + "ElasticsearchConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.ElasticsearchConfig" }, - "ScalingTargetId": { - "type": "string" + "HttpConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.HttpConfig" }, - "ServiceNamespace": { + "LambdaConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.LambdaConfig" + }, + "Name": { "type": "string" }, - "StepScalingPolicyConfiguration": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration" + "RelationalDatabaseConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.RelationalDatabaseConfig" }, - "TargetTrackingScalingPolicyConfiguration": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration" + "ServiceRoleArn": { + "type": "string" + }, + "Type": { + "type": "string" } }, "required": [ - "PolicyName", - "PolicyType" + "ApiId", + "Name", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::ApplicationAutoScaling::ScalingPolicy" + "AWS::AppSync::DataSource" ], "type": "string" } @@ -3544,136 +3743,137 @@ ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification": { + "AWS::AppSync::DataSource.AuthorizationConfig": { "additionalProperties": false, "properties": { - "Dimensions": { - "items": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension" - }, - "type": "array" - }, - "MetricName": { + "AuthorizationType": { "type": "string" }, - "Namespace": { + "AwsIamConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.AwsIamConfig" + } + }, + "required": [ + "AuthorizationType" + ], + "type": "object" + }, + "AWS::AppSync::DataSource.AwsIamConfig": { + "additionalProperties": false, + "properties": { + "SigningRegion": { "type": "string" }, - "Statistic": { + "SigningServiceName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::DataSource.DynamoDBConfig": { + "additionalProperties": false, + "properties": { + "AwsRegion": { "type": "string" }, - "Unit": { + "TableName": { "type": "string" + }, + "UseCallerCredentials": { + "type": "boolean" } }, "required": [ - "MetricName", - "Namespace", - "Statistic" + "AwsRegion", + "TableName" ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension": { + "AWS::AppSync::DataSource.ElasticsearchConfig": { "additionalProperties": false, "properties": { - "Name": { + "AwsRegion": { "type": "string" }, - "Value": { + "Endpoint": { "type": "string" } }, "required": [ - "Name", - "Value" + "AwsRegion", + "Endpoint" ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification": { + "AWS::AppSync::DataSource.HttpConfig": { "additionalProperties": false, "properties": { - "PredefinedMetricType": { - "type": "string" + "AuthorizationConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.AuthorizationConfig" }, - "ResourceLabel": { + "Endpoint": { "type": "string" } }, "required": [ - "PredefinedMetricType" + "Endpoint" ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment": { + "AWS::AppSync::DataSource.LambdaConfig": { "additionalProperties": false, "properties": { - "MetricIntervalLowerBound": { - "type": "number" - }, - "MetricIntervalUpperBound": { - "type": "number" - }, - "ScalingAdjustment": { - "type": "number" + "LambdaFunctionArn": { + "type": "string" } }, "required": [ - "ScalingAdjustment" + "LambdaFunctionArn" ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration": { + "AWS::AppSync::DataSource.RdsHttpEndpointConfig": { "additionalProperties": false, "properties": { - "AdjustmentType": { + "AwsRegion": { "type": "string" }, - "Cooldown": { - "type": "number" + "AwsSecretStoreArn": { + "type": "string" }, - "MetricAggregationType": { + "DatabaseName": { "type": "string" }, - "MinAdjustmentMagnitude": { - "type": "number" + "DbClusterIdentifier": { + "type": "string" }, - "StepAdjustments": { - "items": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment" - }, - "type": "array" + "Schema": { + "type": "string" } }, + "required": [ + "AwsRegion", + "AwsSecretStoreArn", + "DbClusterIdentifier" + ], "type": "object" }, - "AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration": { + "AWS::AppSync::DataSource.RelationalDatabaseConfig": { "additionalProperties": false, "properties": { - "CustomizedMetricSpecification": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification" - }, - "DisableScaleIn": { - "type": "boolean" - }, - "PredefinedMetricSpecification": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification" - }, - "ScaleInCooldown": { - "type": "number" - }, - "ScaleOutCooldown": { - "type": "number" + "RdsHttpEndpointConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.RdsHttpEndpointConfig" }, - "TargetValue": { - "type": "number" + "RelationalDatabaseSourceType": { + "type": "string" } }, "required": [ - "TargetValue" + "RelationalDatabaseSourceType" ], "type": "object" }, - "AWS::Athena::NamedQuery": { + "AWS::AppSync::FunctionConfiguration": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -3705,28 +3905,42 @@ "Properties": { "additionalProperties": false, "properties": { - "Database": { + "ApiId": { + "type": "string" + }, + "DataSourceName": { "type": "string" }, "Description": { "type": "string" }, + "FunctionVersion": { + "type": "string" + }, "Name": { "type": "string" }, - "QueryString": { + "RequestMappingTemplate": { + "type": "string" + }, + "RequestMappingTemplateS3Location": { + "type": "string" + }, + "ResponseMappingTemplate": { + "type": "string" + }, + "ResponseMappingTemplateS3Location": { "type": "string" } }, "required": [ - "Database", - "QueryString" + "ApiId" ], "type": "object" }, "Type": { "enum": [ - "AWS::Athena::NamedQuery" + "AWS::AppSync::FunctionConfiguration" ], "type": "string" } @@ -3737,12 +3951,9 @@ ], "type": "object" }, - "AWS::AutoScaling::AutoScalingGroup": { + "AWS::AppSync::GraphQLApi": { "additionalProperties": false, "properties": { - "CreationPolicy": { - "type": "object" - }, "DeletionPolicy": { "enum": [ "Delete", @@ -3772,114 +3983,33 @@ "Properties": { "additionalProperties": false, "properties": { - "AutoScalingGroupName": { - "type": "string" - }, - "AvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Cooldown": { - "type": "string" - }, - "DesiredCapacity": { - "type": "string" - }, - "HealthCheckGracePeriod": { - "type": "number" - }, - "HealthCheckType": { - "type": "string" - }, - "InstanceId": { - "type": "string" - }, - "LaunchConfigurationName": { - "type": "string" - }, - "LaunchTemplate": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" - }, - "LifecycleHookSpecificationList": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification" - }, - "type": "array" - }, - "LoadBalancerNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MaxSize": { - "type": "string" - }, - "MetricsCollection": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MetricsCollection" - }, - "type": "array" - }, - "MinSize": { + "AuthenticationType": { "type": "string" }, - "MixedInstancesPolicy": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy" - }, - "NotificationConfigurations": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration" - }, - "type": "array" - }, - "PlacementGroup": { - "type": "string" + "LogConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LogConfig" }, - "ServiceLinkedRoleARN": { + "Name": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.TagProperty" - }, - "type": "array" - }, - "TargetGroupARNs": { - "items": { - "type": "string" - }, - "type": "array" - }, - "TerminationPolicies": { - "items": { - "type": "string" - }, - "type": "array" + "OpenIDConnectConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.OpenIDConnectConfig" }, - "VPCZoneIdentifier": { - "items": { - "type": "string" - }, - "type": "array" + "UserPoolConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.UserPoolConfig" } }, "required": [ - "MaxSize", - "MinSize" + "AuthenticationType", + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScaling::AutoScalingGroup" + "AWS::AppSync::GraphQLApi" ], "type": "string" - }, - "UpdatePolicy": { - "type": "object" } }, "required": [ @@ -3888,178 +4018,55 @@ ], "type": "object" }, - "AWS::AutoScaling::AutoScalingGroup.InstancesDistribution": { - "additionalProperties": false, - "properties": { - "OnDemandAllocationStrategy": { - "type": "string" - }, - "OnDemandBaseCapacity": { - "type": "number" - }, - "OnDemandPercentageAboveBaseCapacity": { - "type": "number" - }, - "SpotAllocationStrategy": { - "type": "string" - }, - "SpotInstancePools": { - "type": "number" - }, - "SpotMaxPrice": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.LaunchTemplate": { - "additionalProperties": false, - "properties": { - "LaunchTemplateSpecification": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" - }, - "Overrides": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides" - }, - "type": "array" - } - }, - "required": [ - "LaunchTemplateSpecification" - ], - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification": { + "AWS::AppSync::GraphQLApi.LogConfig": { "additionalProperties": false, "properties": { - "LaunchTemplateId": { - "type": "string" - }, - "LaunchTemplateName": { + "CloudWatchLogsRoleArn": { "type": "string" }, - "Version": { + "FieldLogLevel": { "type": "string" } }, - "required": [ - "Version" - ], "type": "object" }, - "AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification": { + "AWS::AppSync::GraphQLApi.OpenIDConnectConfig": { "additionalProperties": false, "properties": { - "DefaultResult": { - "type": "string" - }, - "HeartbeatTimeout": { + "AuthTTL": { "type": "number" }, - "LifecycleHookName": { - "type": "string" - }, - "LifecycleTransition": { - "type": "string" - }, - "NotificationMetadata": { + "ClientId": { "type": "string" }, - "NotificationTargetARN": { - "type": "string" + "IatTTL": { + "type": "number" }, - "RoleARN": { + "Issuer": { "type": "string" } }, - "required": [ - "LifecycleHookName", - "LifecycleTransition" - ], "type": "object" }, - "AWS::AutoScaling::AutoScalingGroup.MetricsCollection": { + "AWS::AppSync::GraphQLApi.UserPoolConfig": { "additionalProperties": false, "properties": { - "Granularity": { + "AppIdClientRegex": { "type": "string" }, - "Metrics": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Granularity" - ], - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy": { - "additionalProperties": false, - "properties": { - "InstancesDistribution": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.InstancesDistribution" - }, - "LaunchTemplate": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplate" - } - }, - "required": [ - "LaunchTemplate" - ], - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration": { - "additionalProperties": false, - "properties": { - "NotificationTypes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "TopicARN": { - "type": "string" - } - }, - "required": [ - "TopicARN" - ], - "type": "object" - }, - "AWS::AutoScaling::AutoScalingGroup.TagProperty": { - "additionalProperties": false, - "properties": { - "Key": { + "AwsRegion": { "type": "string" }, - "PropagateAtLaunch": { - "type": "boolean" + "DefaultAction": { + "type": "string" }, - "Value": { + "UserPoolId": { "type": "string" } }, - "required": [ - "Key", - "PropagateAtLaunch", - "Value" - ], "type": "object" }, - "AWS::AutoScaling::LaunchConfiguration": { + "AWS::AppSync::GraphQLSchema": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -4091,79 +4098,24 @@ "Properties": { "additionalProperties": false, "properties": { - "AssociatePublicIpAddress": { - "type": "boolean" - }, - "BlockDeviceMappings": { - "items": { - "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping" - }, - "type": "array" - }, - "ClassicLinkVPCId": { - "type": "string" - }, - "ClassicLinkVPCSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EbsOptimized": { - "type": "boolean" - }, - "IamInstanceProfile": { - "type": "string" - }, - "ImageId": { - "type": "string" - }, - "InstanceId": { - "type": "string" - }, - "InstanceMonitoring": { - "type": "boolean" - }, - "InstanceType": { - "type": "string" - }, - "KernelId": { - "type": "string" - }, - "KeyName": { - "type": "string" - }, - "LaunchConfigurationName": { - "type": "string" - }, - "PlacementTenancy": { - "type": "string" - }, - "RamDiskId": { + "ApiId": { "type": "string" }, - "SecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SpotPrice": { + "Definition": { "type": "string" }, - "UserData": { + "DefinitionS3Location": { "type": "string" } }, "required": [ - "ImageId", - "InstanceType" + "ApiId" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScaling::LaunchConfiguration" + "AWS::AppSync::GraphQLSchema" ], "type": "string" } @@ -4174,52 +4126,7 @@ ], "type": "object" }, - "AWS::AutoScaling::LaunchConfiguration.BlockDevice": { - "additionalProperties": false, - "properties": { - "DeleteOnTermination": { - "type": "boolean" - }, - "Encrypted": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "SnapshotId": { - "type": "string" - }, - "VolumeSize": { - "type": "number" - }, - "VolumeType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping": { - "additionalProperties": false, - "properties": { - "DeviceName": { - "type": "string" - }, - "Ebs": { - "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDevice" - }, - "NoDevice": { - "type": "boolean" - }, - "VirtualName": { - "type": "string" - } - }, - "required": [ - "DeviceName" - ], - "type": "object" - }, - "AWS::AutoScaling::LifecycleHook": { + "AWS::AppSync::Resolver": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -4251,40 +4158,47 @@ "Properties": { "additionalProperties": false, "properties": { - "AutoScalingGroupName": { + "ApiId": { "type": "string" }, - "DefaultResult": { + "DataSourceName": { "type": "string" }, - "HeartbeatTimeout": { - "type": "number" + "FieldName": { + "type": "string" }, - "LifecycleHookName": { + "Kind": { "type": "string" }, - "LifecycleTransition": { + "PipelineConfig": { + "$ref": "#/definitions/AWS::AppSync::Resolver.PipelineConfig" + }, + "RequestMappingTemplate": { "type": "string" }, - "NotificationMetadata": { + "RequestMappingTemplateS3Location": { "type": "string" }, - "NotificationTargetARN": { + "ResponseMappingTemplate": { "type": "string" }, - "RoleARN": { + "ResponseMappingTemplateS3Location": { + "type": "string" + }, + "TypeName": { "type": "string" } }, "required": [ - "AutoScalingGroupName", - "LifecycleTransition" + "ApiId", + "FieldName", + "TypeName" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScaling::LifecycleHook" + "AWS::AppSync::Resolver" ], "type": "string" } @@ -4295,7 +4209,19 @@ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy": { + "AWS::AppSync::Resolver.PipelineConfig": { + "additionalProperties": false, + "properties": { + "Functions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalableTarget": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -4327,48 +4253,157 @@ "Properties": { "additionalProperties": false, "properties": { - "AdjustmentType": { - "type": "string" - }, - "AutoScalingGroupName": { - "type": "string" - }, - "Cooldown": { - "type": "string" + "MaxCapacity": { + "type": "number" }, - "EstimatedInstanceWarmup": { + "MinCapacity": { "type": "number" }, - "MetricAggregationType": { + "ResourceId": { "type": "string" }, - "MinAdjustmentMagnitude": { - "type": "number" + "RoleARN": { + "type": "string" }, - "PolicyType": { + "ScalableDimension": { "type": "string" }, - "ScalingAdjustment": { - "type": "number" + "ScheduledActions": { + "items": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction" + }, + "type": "array" }, - "StepAdjustments": { + "ServiceNamespace": { + "type": "string" + } + }, + "required": [ + "MaxCapacity", + "MinCapacity", + "ResourceId", + "RoleARN", + "ScalableDimension", + "ServiceNamespace" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApplicationAutoScaling::ScalableTarget" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction": { + "additionalProperties": false, + "properties": { + "EndTime": { + "type": "string" + }, + "ScalableTargetAction": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction" + }, + "Schedule": { + "type": "string" + }, + "ScheduledActionName": { + "type": "string" + }, + "StartTime": { + "type": "string" + } + }, + "required": [ + "Schedule", + "ScheduledActionName" + ], + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { "items": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.StepAdjustment" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyName": { + "type": "string" }, - "TargetTrackingConfiguration": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration" + "PolicyType": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "ScalableDimension": { + "type": "string" + }, + "ScalingTargetId": { + "type": "string" + }, + "ServiceNamespace": { + "type": "string" + }, + "StepScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration" } }, "required": [ - "AutoScalingGroupName" + "PolicyName", + "PolicyType" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScaling::ScalingPolicy" + "AWS::ApplicationAutoScaling::ScalingPolicy" ], "type": "string" } @@ -4379,12 +4414,12 @@ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification": { + "AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification": { "additionalProperties": false, "properties": { "Dimensions": { "items": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDimension" + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension" }, "type": "array" }, @@ -4408,7 +4443,7 @@ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy.MetricDimension": { + "AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension": { "additionalProperties": false, "properties": { "Name": { @@ -4424,7 +4459,7 @@ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification": { + "AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification": { "additionalProperties": false, "properties": { "PredefinedMetricType": { @@ -4439,7 +4474,7 @@ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy.StepAdjustment": { + "AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment": { "additionalProperties": false, "properties": { "MetricIntervalLowerBound": { @@ -4457,17 +4492,47 @@ ], "type": "object" }, - "AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration": { + "AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "Cooldown": { + "type": "number" + }, + "MetricAggregationType": { + "type": "string" + }, + "MinAdjustmentMagnitude": { + "type": "number" + }, + "StepAdjustments": { + "items": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration": { "additionalProperties": false, "properties": { "CustomizedMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification" + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification" }, "DisableScaleIn": { "type": "boolean" }, "PredefinedMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification" + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification" + }, + "ScaleInCooldown": { + "type": "number" + }, + "ScaleOutCooldown": { + "type": "number" }, "TargetValue": { "type": "number" @@ -4478,7 +4543,7 @@ ], "type": "object" }, - "AWS::AutoScaling::ScheduledAction": { + "AWS::Athena::NamedQuery": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -4510,36 +4575,28 @@ "Properties": { "additionalProperties": false, "properties": { - "AutoScalingGroupName": { + "Database": { "type": "string" }, - "DesiredCapacity": { - "type": "number" - }, - "EndTime": { + "Description": { "type": "string" }, - "MaxSize": { - "type": "number" - }, - "MinSize": { - "type": "number" - }, - "Recurrence": { + "Name": { "type": "string" }, - "StartTime": { + "QueryString": { "type": "string" } }, "required": [ - "AutoScalingGroupName" + "Database", + "QueryString" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScaling::ScheduledAction" + "AWS::Athena::NamedQuery" ], "type": "string" } @@ -4550,9 +4607,12 @@ ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan": { + "AWS::AutoScaling::AutoScalingGroup": { "additionalProperties": false, "properties": { + "CreationPolicy": { + "type": "object" + }, "DeletionPolicy": { "enum": [ "Delete", @@ -4582,27 +4642,114 @@ "Properties": { "additionalProperties": false, "properties": { - "ApplicationSource": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ApplicationSource" + "AutoScalingGroupName": { + "type": "string" }, - "ScalingInstructions": { + "AvailabilityZones": { "items": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction" + "type": "string" + }, + "type": "array" + }, + "Cooldown": { + "type": "string" + }, + "DesiredCapacity": { + "type": "string" + }, + "HealthCheckGracePeriod": { + "type": "number" + }, + "HealthCheckType": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "LaunchConfigurationName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" + }, + "LifecycleHookSpecificationList": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification" + }, + "type": "array" + }, + "LoadBalancerNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxSize": { + "type": "string" + }, + "MetricsCollection": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MetricsCollection" + }, + "type": "array" + }, + "MinSize": { + "type": "string" + }, + "MixedInstancesPolicy": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy" + }, + "NotificationConfigurations": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration" + }, + "type": "array" + }, + "PlacementGroup": { + "type": "string" + }, + "ServiceLinkedRoleARN": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.TagProperty" + }, + "type": "array" + }, + "TargetGroupARNs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TerminationPolicies": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VPCZoneIdentifier": { + "items": { + "type": "string" }, "type": "array" } }, "required": [ - "ApplicationSource", - "ScalingInstructions" + "MaxSize", + "MinSize" ], "type": "object" }, "Type": { "enum": [ - "AWS::AutoScalingPlans::ScalingPlan" + "AWS::AutoScaling::AutoScalingGroup" ], "type": "string" + }, + "UpdatePolicy": { + "type": "object" } }, "required": [ @@ -4611,191 +4758,113 @@ ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.ApplicationSource": { + "AWS::AutoScaling::AutoScalingGroup.InstancesDistribution": { "additionalProperties": false, "properties": { - "CloudFormationStackARN": { + "OnDemandAllocationStrategy": { "type": "string" }, - "TagFilters": { - "items": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TagFilter" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification": { - "additionalProperties": false, - "properties": { - "Dimensions": { - "items": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension" - }, - "type": "array" + "OnDemandBaseCapacity": { + "type": "number" }, - "MetricName": { - "type": "string" + "OnDemandPercentageAboveBaseCapacity": { + "type": "number" }, - "Namespace": { + "SpotAllocationStrategy": { "type": "string" }, - "Statistic": { - "type": "string" + "SpotInstancePools": { + "type": "number" }, - "Unit": { + "SpotMaxPrice": { "type": "string" } }, - "required": [ - "MetricName", - "Namespace", - "Statistic" - ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification": { + "AWS::AutoScaling::AutoScalingGroup.LaunchTemplate": { "additionalProperties": false, "properties": { - "Dimensions": { + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" + }, + "Overrides": { "items": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension" + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides" }, "type": "array" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Statistic": { - "type": "string" - }, - "Unit": { - "type": "string" } }, "required": [ - "MetricName", - "Namespace", - "Statistic" + "LaunchTemplateSpecification" ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.MetricDimension": { + "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides": { "additionalProperties": false, "properties": { - "Name": { - "type": "string" - }, - "Value": { + "InstanceType": { "type": "string" } }, - "required": [ - "Name", - "Value" - ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification": { + "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification": { "additionalProperties": false, "properties": { - "PredefinedLoadMetricType": { + "LaunchTemplateId": { "type": "string" }, - "ResourceLabel": { - "type": "string" - } - }, - "required": [ - "PredefinedLoadMetricType" - ], - "type": "object" - }, - "AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification": { - "additionalProperties": false, - "properties": { - "PredefinedScalingMetricType": { + "LaunchTemplateName": { "type": "string" }, - "ResourceLabel": { + "Version": { "type": "string" } }, "required": [ - "PredefinedScalingMetricType" + "Version" ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction": { + "AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification": { "additionalProperties": false, "properties": { - "CustomizedLoadMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification" - }, - "DisableDynamicScaling": { - "type": "boolean" - }, - "MaxCapacity": { - "type": "number" - }, - "MinCapacity": { - "type": "number" - }, - "PredefinedLoadMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification" - }, - "PredictiveScalingMaxCapacityBehavior": { + "DefaultResult": { "type": "string" }, - "PredictiveScalingMaxCapacityBuffer": { + "HeartbeatTimeout": { "type": "number" }, - "PredictiveScalingMode": { + "LifecycleHookName": { "type": "string" }, - "ResourceId": { + "LifecycleTransition": { "type": "string" }, - "ScalableDimension": { + "NotificationMetadata": { "type": "string" }, - "ScalingPolicyUpdateBehavior": { + "NotificationTargetARN": { "type": "string" }, - "ScheduledActionBufferTime": { - "type": "number" - }, - "ServiceNamespace": { + "RoleARN": { "type": "string" - }, - "TargetTrackingConfigurations": { - "items": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration" - }, - "type": "array" } }, "required": [ - "MaxCapacity", - "MinCapacity", - "ResourceId", - "ScalableDimension", - "ServiceNamespace", - "TargetTrackingConfigurations" + "LifecycleHookName", + "LifecycleTransition" ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.TagFilter": { + "AWS::AutoScaling::AutoScalingGroup.MetricsCollection": { "additionalProperties": false, "properties": { - "Key": { + "Granularity": { "type": "string" }, - "Values": { + "Metrics": { "items": { "type": "string" }, @@ -4803,49 +4872,72 @@ } }, "required": [ - "Key" + "Granularity" ], "type": "object" }, - "AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration": { + "AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy": { "additionalProperties": false, "properties": { - "CustomizedScalingMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification" - }, - "DisableScaleIn": { - "type": "boolean" - }, - "EstimatedInstanceWarmup": { - "type": "number" - }, - "PredefinedScalingMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification" - }, - "ScaleInCooldown": { - "type": "number" + "InstancesDistribution": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.InstancesDistribution" }, - "ScaleOutCooldown": { - "type": "number" + "LaunchTemplate": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplate" + } + }, + "required": [ + "LaunchTemplate" + ], + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration": { + "additionalProperties": false, + "properties": { + "NotificationTypes": { + "items": { + "type": "string" + }, + "type": "array" }, - "TargetValue": { - "type": "number" + "TopicARN": { + "type": "string" } }, "required": [ - "TargetValue" + "TopicARN" ], "type": "object" }, - "AWS::Batch::ComputeEnvironment": { + "AWS::AutoScaling::AutoScalingGroup.TagProperty": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Key": { + "type": "string" + }, + "PropagateAtLaunch": { + "type": "boolean" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "PropagateAtLaunch", + "Value" + ], + "type": "object" + }, + "AWS::AutoScaling::LaunchConfiguration": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, "DependsOn": { @@ -4869,31 +4961,79 @@ "Properties": { "additionalProperties": false, "properties": { - "ComputeEnvironmentName": { + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping" + }, + "type": "array" + }, + "ClassicLinkVPCId": { "type": "string" }, - "ComputeResources": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.ComputeResources" + "ClassicLinkVPCSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" }, - "ServiceRole": { + "EbsOptimized": { + "type": "boolean" + }, + "IamInstanceProfile": { "type": "string" }, - "State": { + "ImageId": { "type": "string" }, - "Type": { + "InstanceId": { + "type": "string" + }, + "InstanceMonitoring": { + "type": "boolean" + }, + "InstanceType": { + "type": "string" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchConfigurationName": { + "type": "string" + }, + "PlacementTenancy": { + "type": "string" + }, + "RamDiskId": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SpotPrice": { + "type": "string" + }, + "UserData": { "type": "string" } }, "required": [ - "ServiceRole", - "Type" + "ImageId", + "InstanceType" ], "type": "object" }, "Type": { "enum": [ - "AWS::Batch::ComputeEnvironment" + "AWS::AutoScaling::LaunchConfiguration" ], "type": "string" } @@ -4904,91 +5044,128 @@ ], "type": "object" }, - "AWS::Batch::ComputeEnvironment.ComputeResources": { + "AWS::AutoScaling::LaunchConfiguration.BlockDevice": { "additionalProperties": false, "properties": { - "BidPercentage": { - "type": "number" - }, - "DesiredvCpus": { - "type": "number" + "DeleteOnTermination": { + "type": "boolean" }, - "Ec2KeyPair": { - "type": "string" + "Encrypted": { + "type": "boolean" }, - "ImageId": { - "type": "string" + "Iops": { + "type": "number" }, - "InstanceRole": { + "SnapshotId": { "type": "string" }, - "InstanceTypes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LaunchTemplate": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification" - }, - "MaxvCpus": { - "type": "number" - }, - "MinvCpus": { + "VolumeSize": { "type": "number" }, - "PlacementGroup": { + "VolumeType": { "type": "string" - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SpotIamFleetRole": { + } + }, + "type": "object" + }, + "AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { "type": "string" }, - "Subnets": { - "items": { - "type": "string" - }, - "type": "array" + "Ebs": { + "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDevice" }, - "Tags": { - "type": "object" + "NoDevice": { + "type": "boolean" }, - "Type": { + "VirtualName": { "type": "string" } }, "required": [ - "InstanceRole", - "InstanceTypes", - "MaxvCpus", - "MinvCpus", - "SecurityGroupIds", - "Subnets", - "Type" + "DeviceName" ], "type": "object" }, - "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": { + "AWS::AutoScaling::LifecycleHook": { "additionalProperties": false, "properties": { - "LaunchTemplateId": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "LaunchTemplateName": { - "type": "string" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Version": { + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AutoScalingGroupName": { + "type": "string" + }, + "DefaultResult": { + "type": "string" + }, + "HeartbeatTimeout": { + "type": "number" + }, + "LifecycleHookName": { + "type": "string" + }, + "LifecycleTransition": { + "type": "string" + }, + "NotificationMetadata": { + "type": "string" + }, + "NotificationTargetARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "AutoScalingGroupName", + "LifecycleTransition" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AutoScaling::LifecycleHook" + ], "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::Batch::JobDefinition": { + "AWS::AutoScaling::ScalingPolicy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -5020,36 +5197,48 @@ "Properties": { "additionalProperties": false, "properties": { - "ContainerProperties": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties" + "AdjustmentType": { + "type": "string" }, - "JobDefinitionName": { + "AutoScalingGroupName": { "type": "string" }, - "NodeProperties": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeProperties" + "Cooldown": { + "type": "string" }, - "Parameters": { - "type": "object" + "EstimatedInstanceWarmup": { + "type": "number" }, - "RetryStrategy": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.RetryStrategy" + "MetricAggregationType": { + "type": "string" }, - "Timeout": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.Timeout" + "MinAdjustmentMagnitude": { + "type": "number" }, - "Type": { + "PolicyType": { "type": "string" + }, + "ScalingAdjustment": { + "type": "number" + }, + "StepAdjustments": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.StepAdjustment" + }, + "type": "array" + }, + "TargetTrackingConfiguration": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration" } }, "required": [ - "Type" + "AutoScalingGroupName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Batch::JobDefinition" + "AWS::AutoScaling::ScalingPolicy" ], "type": "string" } @@ -5060,72 +5249,36 @@ ], "type": "object" }, - "AWS::Batch::JobDefinition.ContainerProperties": { + "AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification": { "additionalProperties": false, "properties": { - "Command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Environment": { + "Dimensions": { "items": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.Environment" + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDimension" }, "type": "array" }, - "Image": { + "MetricName": { "type": "string" }, - "InstanceType": { + "Namespace": { "type": "string" }, - "JobRoleArn": { + "Statistic": { "type": "string" }, - "Memory": { - "type": "number" - }, - "MountPoints": { - "items": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.MountPoints" - }, - "type": "array" - }, - "Privileged": { - "type": "boolean" - }, - "ReadonlyRootFilesystem": { - "type": "boolean" - }, - "Ulimits": { - "items": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.Ulimit" - }, - "type": "array" - }, - "User": { + "Unit": { "type": "string" - }, - "Vcpus": { - "type": "number" - }, - "Volumes": { - "items": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.Volumes" - }, - "type": "array" } }, "required": [ - "Image", - "Memory", - "Vcpus" + "MetricName", + "Namespace", + "Statistic" ], "type": "object" }, - "AWS::Batch::JobDefinition.Environment": { + "AWS::AutoScaling::ScalingPolicy.MetricDimension": { "additionalProperties": false, "properties": { "Name": { @@ -5135,121 +5288,67 @@ "type": "string" } }, + "required": [ + "Name", + "Value" + ], "type": "object" }, - "AWS::Batch::JobDefinition.MountPoints": { + "AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification": { "additionalProperties": false, "properties": { - "ContainerPath": { + "PredefinedMetricType": { "type": "string" }, - "ReadOnly": { - "type": "boolean" - }, - "SourceVolume": { + "ResourceLabel": { "type": "string" } }, + "required": [ + "PredefinedMetricType" + ], "type": "object" }, - "AWS::Batch::JobDefinition.NodeProperties": { + "AWS::AutoScaling::ScalingPolicy.StepAdjustment": { "additionalProperties": false, "properties": { - "MainNode": { + "MetricIntervalLowerBound": { "type": "number" }, - "NodeRangeProperties": { - "items": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeRangeProperty" - }, - "type": "array" + "MetricIntervalUpperBound": { + "type": "number" }, - "NumNodes": { + "ScalingAdjustment": { "type": "number" } }, "required": [ - "MainNode", - "NodeRangeProperties", - "NumNodes" + "ScalingAdjustment" ], "type": "object" }, - "AWS::Batch::JobDefinition.NodeRangeProperty": { + "AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration": { "additionalProperties": false, "properties": { - "Container": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties" + "CustomizedMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification" }, - "TargetNodes": { - "type": "string" - } - }, - "required": [ - "TargetNodes" - ], - "type": "object" - }, - "AWS::Batch::JobDefinition.RetryStrategy": { - "additionalProperties": false, - "properties": { - "Attempts": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::Batch::JobDefinition.Timeout": { - "additionalProperties": false, - "properties": { - "AttemptDurationSeconds": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::Batch::JobDefinition.Ulimit": { - "additionalProperties": false, - "properties": { - "HardLimit": { - "type": "number" + "DisableScaleIn": { + "type": "boolean" }, - "Name": { - "type": "string" + "PredefinedMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification" }, - "SoftLimit": { + "TargetValue": { "type": "number" } }, "required": [ - "HardLimit", - "Name", - "SoftLimit" + "TargetValue" ], "type": "object" }, - "AWS::Batch::JobDefinition.Volumes": { - "additionalProperties": false, - "properties": { - "Host": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.VolumesHost" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Batch::JobDefinition.VolumesHost": { - "additionalProperties": false, - "properties": { - "SourcePath": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Batch::JobQueue": { + "AWS::AutoScaling::ScheduledAction": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -5281,31 +5380,36 @@ "Properties": { "additionalProperties": false, "properties": { - "ComputeEnvironmentOrder": { - "items": { - "$ref": "#/definitions/AWS::Batch::JobQueue.ComputeEnvironmentOrder" - }, - "type": "array" + "AutoScalingGroupName": { + "type": "string" }, - "JobQueueName": { + "DesiredCapacity": { + "type": "number" + }, + "EndTime": { "type": "string" }, - "Priority": { + "MaxSize": { "type": "number" }, - "State": { + "MinSize": { + "type": "number" + }, + "Recurrence": { + "type": "string" + }, + "StartTime": { "type": "string" } }, "required": [ - "ComputeEnvironmentOrder", - "Priority" + "AutoScalingGroupName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Batch::JobQueue" + "AWS::AutoScaling::ScheduledAction" ], "type": "string" } @@ -5316,23 +5420,7 @@ ], "type": "object" }, - "AWS::Batch::JobQueue.ComputeEnvironmentOrder": { - "additionalProperties": false, - "properties": { - "ComputeEnvironment": { - "type": "string" - }, - "Order": { - "type": "number" - } - }, - "required": [ - "ComputeEnvironment", - "Order" - ], - "type": "object" - }, - "AWS::Budgets::Budget": { + "AWS::AutoScalingPlans::ScalingPlan": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -5364,24 +5452,25 @@ "Properties": { "additionalProperties": false, "properties": { - "Budget": { - "$ref": "#/definitions/AWS::Budgets::Budget.BudgetData" + "ApplicationSource": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ApplicationSource" }, - "NotificationsWithSubscribers": { + "ScalingInstructions": { "items": { - "$ref": "#/definitions/AWS::Budgets::Budget.NotificationWithSubscribers" + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction" }, "type": "array" } }, "required": [ - "Budget" + "ApplicationSource", + "ScalingInstructions" ], "type": "object" }, "Type": { "enum": [ - "AWS::Budgets::Budget" + "AWS::AutoScalingPlans::ScalingPlan" ], "type": "string" } @@ -5392,254 +5481,233 @@ ], "type": "object" }, - "AWS::Budgets::Budget.BudgetData": { + "AWS::AutoScalingPlans::ScalingPlan.ApplicationSource": { "additionalProperties": false, "properties": { - "BudgetLimit": { - "$ref": "#/definitions/AWS::Budgets::Budget.Spend" - }, - "BudgetName": { - "type": "string" - }, - "BudgetType": { + "CloudFormationStackARN": { "type": "string" }, - "CostFilters": { - "type": "object" - }, - "CostTypes": { - "$ref": "#/definitions/AWS::Budgets::Budget.CostTypes" - }, - "TimePeriod": { - "$ref": "#/definitions/AWS::Budgets::Budget.TimePeriod" - }, - "TimeUnit": { - "type": "string" + "TagFilters": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TagFilter" + }, + "type": "array" } }, - "required": [ - "BudgetType", - "TimeUnit" - ], "type": "object" }, - "AWS::Budgets::Budget.CostTypes": { + "AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification": { "additionalProperties": false, "properties": { - "IncludeCredit": { - "type": "boolean" - }, - "IncludeDiscount": { - "type": "boolean" - }, - "IncludeOtherSubscription": { - "type": "boolean" - }, - "IncludeRecurring": { - "type": "boolean" - }, - "IncludeRefund": { - "type": "boolean" - }, - "IncludeSubscription": { - "type": "boolean" - }, - "IncludeSupport": { - "type": "boolean" + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension" + }, + "type": "array" }, - "IncludeTax": { - "type": "boolean" + "MetricName": { + "type": "string" }, - "IncludeUpfront": { - "type": "boolean" + "Namespace": { + "type": "string" }, - "UseAmortized": { - "type": "boolean" + "Statistic": { + "type": "string" }, - "UseBlended": { - "type": "boolean" + "Unit": { + "type": "string" } }, + "required": [ + "MetricName", + "Namespace", + "Statistic" + ], "type": "object" }, - "AWS::Budgets::Budget.Notification": { + "AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification": { "additionalProperties": false, "properties": { - "ComparisonOperator": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension" + }, + "type": "array" + }, + "MetricName": { "type": "string" }, - "NotificationType": { + "Namespace": { "type": "string" }, - "Threshold": { - "type": "number" + "Statistic": { + "type": "string" }, - "ThresholdType": { + "Unit": { "type": "string" } }, "required": [ - "ComparisonOperator", - "NotificationType", - "Threshold" + "MetricName", + "Namespace", + "Statistic" ], "type": "object" }, - "AWS::Budgets::Budget.NotificationWithSubscribers": { + "AWS::AutoScalingPlans::ScalingPlan.MetricDimension": { "additionalProperties": false, "properties": { - "Notification": { - "$ref": "#/definitions/AWS::Budgets::Budget.Notification" + "Name": { + "type": "string" }, - "Subscribers": { - "items": { - "$ref": "#/definitions/AWS::Budgets::Budget.Subscriber" - }, - "type": "array" + "Value": { + "type": "string" } }, "required": [ - "Notification", - "Subscribers" + "Name", + "Value" ], "type": "object" }, - "AWS::Budgets::Budget.Spend": { + "AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification": { "additionalProperties": false, "properties": { - "Amount": { - "type": "number" + "PredefinedLoadMetricType": { + "type": "string" }, - "Unit": { + "ResourceLabel": { "type": "string" } }, "required": [ - "Amount", - "Unit" + "PredefinedLoadMetricType" ], "type": "object" }, - "AWS::Budgets::Budget.Subscriber": { + "AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification": { "additionalProperties": false, "properties": { - "Address": { + "PredefinedScalingMetricType": { "type": "string" }, - "SubscriptionType": { + "ResourceLabel": { "type": "string" } }, "required": [ - "Address", - "SubscriptionType" + "PredefinedScalingMetricType" ], "type": "object" }, - "AWS::Budgets::Budget.TimePeriod": { + "AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction": { "additionalProperties": false, "properties": { - "End": { + "CustomizedLoadMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification" + }, + "DisableDynamicScaling": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + }, + "PredefinedLoadMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification" + }, + "PredictiveScalingMaxCapacityBehavior": { "type": "string" }, - "Start": { + "PredictiveScalingMaxCapacityBuffer": { + "type": "number" + }, + "PredictiveScalingMode": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "ScalableDimension": { + "type": "string" + }, + "ScalingPolicyUpdateBehavior": { + "type": "string" + }, + "ScheduledActionBufferTime": { + "type": "number" + }, + "ServiceNamespace": { "type": "string" + }, + "TargetTrackingConfigurations": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration" + }, + "type": "array" } }, + "required": [ + "MaxCapacity", + "MinCapacity", + "ResourceId", + "ScalableDimension", + "ServiceNamespace", + "TargetTrackingConfigurations" + ], "type": "object" }, - "AWS::CertificateManager::Certificate": { + "AWS::AutoScalingPlans::ScalingPlan.TagFilter": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Key": { "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": { - "DomainName": { - "type": "string" - }, - "DomainValidationOptions": { - "items": { - "$ref": "#/definitions/AWS::CertificateManager::Certificate.DomainValidationOption" - }, - "type": "array" - }, - "SubjectAlternativeNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "ValidationMethod": { - "type": "string" - } + "Values": { + "items": { + "type": "string" }, - "required": [ - "DomainName" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::CertificateManager::Certificate" - ], - "type": "string" + "type": "array" } }, "required": [ - "Type", - "Properties" + "Key" ], "type": "object" }, - "AWS::CertificateManager::Certificate.DomainValidationOption": { + "AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration": { "additionalProperties": false, "properties": { - "DomainName": { - "type": "string" + "CustomizedScalingMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification" }, - "ValidationDomain": { - "type": "string" + "DisableScaleIn": { + "type": "boolean" + }, + "EstimatedInstanceWarmup": { + "type": "number" + }, + "PredefinedScalingMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification" + }, + "ScaleInCooldown": { + "type": "number" + }, + "ScaleOutCooldown": { + "type": "number" + }, + "TargetValue": { + "type": "number" } }, "required": [ - "DomainName", - "ValidationDomain" + "TargetValue" ], "type": "object" }, - "AWS::Cloud9::EnvironmentEC2": { + "AWS::Batch::ComputeEnvironment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -5671,39 +5739,31 @@ "Properties": { "additionalProperties": false, "properties": { - "AutomaticStopTimeMinutes": { - "type": "number" - }, - "Description": { + "ComputeEnvironmentName": { "type": "string" }, - "InstanceType": { - "type": "string" + "ComputeResources": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.ComputeResources" }, - "Name": { + "ServiceRole": { "type": "string" }, - "OwnerArn": { + "State": { "type": "string" }, - "Repositories": { - "items": { - "$ref": "#/definitions/AWS::Cloud9::EnvironmentEC2.Repository" - }, - "type": "array" - }, - "SubnetId": { + "Type": { "type": "string" } }, "required": [ - "InstanceType" + "ServiceRole", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::Cloud9::EnvironmentEC2" + "AWS::Batch::ComputeEnvironment" ], "type": "string" } @@ -5714,144 +5774,91 @@ ], "type": "object" }, - "AWS::Cloud9::EnvironmentEC2.Repository": { + "AWS::Batch::ComputeEnvironment.ComputeResources": { "additionalProperties": false, "properties": { - "PathComponent": { + "BidPercentage": { + "type": "number" + }, + "DesiredvCpus": { + "type": "number" + }, + "Ec2KeyPair": { "type": "string" }, - "RepositoryUrl": { + "ImageId": { "type": "string" - } - }, - "required": [ - "PathComponent", - "RepositoryUrl" - ], - "type": "object" - }, - "AWS::CloudFormation::CustomResource": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + }, + "InstanceRole": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "InstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" }, - "Metadata": { - "type": "object" + "LaunchTemplate": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification" }, - "Properties": { - "additionalProperties": false, - "properties": { - "ServiceToken": { - "type": "string" - } + "MaxvCpus": { + "type": "number" + }, + "MinvCpus": { + "type": "number" + }, + "PlacementGroup": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" }, - "required": [ - "ServiceToken" - ], + "type": "array" + }, + "SpotIamFleetRole": { + "type": "string" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { "type": "object" }, "Type": { - "enum": [ - "AWS::CloudFormation::CustomResource" - ], "type": "string" } }, "required": [ - "Type", - "Properties" + "InstanceRole", + "InstanceTypes", + "MaxvCpus", + "MinvCpus", + "SecurityGroupIds", + "Subnets", + "Type" ], "type": "object" }, - "AWS::CloudFormation::Macro": { + "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "LaunchTemplateId": { "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" - }, - "FunctionName": { - "type": "string" - }, - "LogGroupName": { - "type": "string" - }, - "LogRoleARN": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "FunctionName", - "Name" - ], - "type": "object" + "LaunchTemplateName": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::CloudFormation::Macro" - ], + "Version": { "type": "string" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::CloudFormation::Stack": { + "AWS::Batch::JobDefinition": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -5883,42 +5890,36 @@ "Properties": { "additionalProperties": false, "properties": { - "NotificationARNs": { - "items": { - "type": "string" - }, - "type": "array" + "ContainerProperties": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties" + }, + "JobDefinitionName": { + "type": "string" + }, + "NodeProperties": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeProperties" }, "Parameters": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, "type": "object" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "RetryStrategy": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.RetryStrategy" }, - "TemplateURL": { - "type": "string" + "Timeout": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Timeout" }, - "TimeoutInMinutes": { - "type": "number" + "Type": { + "type": "string" } }, "required": [ - "TemplateURL" + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudFormation::Stack" + "AWS::Batch::JobDefinition" ], "type": "string" } @@ -5929,112 +5930,196 @@ ], "type": "object" }, - "AWS::CloudFormation::WaitCondition": { + "AWS::Batch::JobDefinition.ContainerProperties": { "additionalProperties": false, "properties": { - "CreationPolicy": { - "type": "object" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Command": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Environment": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Environment" + }, + "type": "array" + }, + "Image": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "InstanceType": { + "type": "string" }, - "Metadata": { - "type": "object" + "JobRoleArn": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Count": { - "type": "number" - }, - "Handle": { - "type": "string" - }, - "Timeout": { - "type": "string" - } + "Memory": { + "type": "number" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.MountPoints" }, - "type": "object" + "type": "array" }, - "Type": { - "enum": [ - "AWS::CloudFormation::WaitCondition" - ], + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Ulimit" + }, + "type": "array" + }, + "User": { "type": "string" + }, + "Vcpus": { + "type": "number" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Volumes" + }, + "type": "array" } }, "required": [ - "Type" + "Image", + "Memory", + "Vcpus" ], "type": "object" }, - "AWS::CloudFormation::WaitConditionHandle": { + "AWS::Batch::JobDefinition.Environment": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Name": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.MountPoints": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" }, - "Metadata": { - "type": "object" + "ReadOnly": { + "type": "boolean" }, - "Properties": { - "additionalProperties": false, - "properties": {}, - "type": "object" + "SourceVolume": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.NodeProperties": { + "additionalProperties": false, + "properties": { + "MainNode": { + "type": "number" }, - "Type": { - "enum": [ - "AWS::CloudFormation::WaitConditionHandle" - ], + "NodeRangeProperties": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeRangeProperty" + }, + "type": "array" + }, + "NumNodes": { + "type": "number" + } + }, + "required": [ + "MainNode", + "NodeRangeProperties", + "NumNodes" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.NodeRangeProperty": { + "additionalProperties": false, + "properties": { + "Container": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties" + }, + "TargetNodes": { "type": "string" } }, "required": [ - "Type" + "TargetNodes" ], "type": "object" }, - "AWS::CloudFront::CloudFrontOriginAccessIdentity": { + "AWS::Batch::JobDefinition.RetryStrategy": { + "additionalProperties": false, + "properties": { + "Attempts": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.Timeout": { + "additionalProperties": false, + "properties": { + "AttemptDurationSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "SoftLimit": { + "type": "number" + } + }, + "required": [ + "HardLimit", + "Name", + "SoftLimit" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.Volumes": { + "additionalProperties": false, + "properties": { + "Host": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.VolumesHost" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.VolumesHost": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobQueue": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -6066,18 +6151,31 @@ "Properties": { "additionalProperties": false, "properties": { - "CloudFrontOriginAccessIdentityConfig": { - "$ref": "#/definitions/AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig" + "ComputeEnvironmentOrder": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobQueue.ComputeEnvironmentOrder" + }, + "type": "array" + }, + "JobQueueName": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "State": { + "type": "string" } }, "required": [ - "CloudFrontOriginAccessIdentityConfig" + "ComputeEnvironmentOrder", + "Priority" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudFront::CloudFrontOriginAccessIdentity" + "AWS::Batch::JobQueue" ], "type": "string" } @@ -6088,19 +6186,23 @@ ], "type": "object" }, - "AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig": { + "AWS::Batch::JobQueue.ComputeEnvironmentOrder": { "additionalProperties": false, "properties": { - "Comment": { + "ComputeEnvironment": { "type": "string" + }, + "Order": { + "type": "number" } }, "required": [ - "Comment" + "ComputeEnvironment", + "Order" ], "type": "object" }, - "AWS::CloudFront::Distribution": { + "AWS::Budgets::Budget": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -6132,24 +6234,24 @@ "Properties": { "additionalProperties": false, "properties": { - "DistributionConfig": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.DistributionConfig" + "Budget": { + "$ref": "#/definitions/AWS::Budgets::Budget.BudgetData" }, - "Tags": { + "NotificationsWithSubscribers": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::Budgets::Budget.NotificationWithSubscribers" }, "type": "array" } }, "required": [ - "DistributionConfig" + "Budget" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudFront::Distribution" + "AWS::Budgets::Budget" ], "type": "string" } @@ -6160,443 +6262,172 @@ ], "type": "object" }, - "AWS::CloudFront::Distribution.CacheBehavior": { + "AWS::Budgets::Budget.BudgetData": { "additionalProperties": false, "properties": { - "AllowedMethods": { - "items": { - "type": "string" - }, - "type": "array" + "BudgetLimit": { + "$ref": "#/definitions/AWS::Budgets::Budget.Spend" }, - "CachedMethods": { - "items": { - "type": "string" - }, - "type": "array" + "BudgetName": { + "type": "string" }, - "Compress": { - "type": "boolean" + "BudgetType": { + "type": "string" }, - "DefaultTTL": { - "type": "number" + "CostFilters": { + "type": "object" }, - "FieldLevelEncryptionId": { + "CostTypes": { + "$ref": "#/definitions/AWS::Budgets::Budget.CostTypes" + }, + "TimePeriod": { + "$ref": "#/definitions/AWS::Budgets::Budget.TimePeriod" + }, + "TimeUnit": { "type": "string" + } + }, + "required": [ + "BudgetType", + "TimeUnit" + ], + "type": "object" + }, + "AWS::Budgets::Budget.CostTypes": { + "additionalProperties": false, + "properties": { + "IncludeCredit": { + "type": "boolean" }, - "ForwardedValues": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues" + "IncludeDiscount": { + "type": "boolean" }, - "LambdaFunctionAssociations": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation" - }, - "type": "array" + "IncludeOtherSubscription": { + "type": "boolean" }, - "MaxTTL": { - "type": "number" + "IncludeRecurring": { + "type": "boolean" }, - "MinTTL": { - "type": "number" + "IncludeRefund": { + "type": "boolean" }, - "PathPattern": { - "type": "string" + "IncludeSubscription": { + "type": "boolean" }, - "SmoothStreaming": { + "IncludeSupport": { "type": "boolean" }, - "TargetOriginId": { + "IncludeTax": { + "type": "boolean" + }, + "IncludeUpfront": { + "type": "boolean" + }, + "UseAmortized": { + "type": "boolean" + }, + "UseBlended": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Budgets::Budget.Notification": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { "type": "string" }, - "TrustedSigners": { - "items": { - "type": "string" - }, - "type": "array" + "NotificationType": { + "type": "string" }, - "ViewerProtocolPolicy": { + "Threshold": { + "type": "number" + }, + "ThresholdType": { "type": "string" } }, "required": [ - "ForwardedValues", - "PathPattern", - "TargetOriginId", - "ViewerProtocolPolicy" + "ComparisonOperator", + "NotificationType", + "Threshold" ], "type": "object" }, - "AWS::CloudFront::Distribution.Cookies": { + "AWS::Budgets::Budget.NotificationWithSubscribers": { "additionalProperties": false, "properties": { - "Forward": { - "type": "string" + "Notification": { + "$ref": "#/definitions/AWS::Budgets::Budget.Notification" }, - "WhitelistedNames": { + "Subscribers": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::Budgets::Budget.Subscriber" }, "type": "array" } }, "required": [ - "Forward" + "Notification", + "Subscribers" ], "type": "object" }, - "AWS::CloudFront::Distribution.CustomErrorResponse": { + "AWS::Budgets::Budget.Spend": { "additionalProperties": false, "properties": { - "ErrorCachingMinTTL": { - "type": "number" - }, - "ErrorCode": { - "type": "number" - }, - "ResponseCode": { + "Amount": { "type": "number" }, - "ResponsePagePath": { + "Unit": { "type": "string" } }, "required": [ - "ErrorCode" + "Amount", + "Unit" ], "type": "object" }, - "AWS::CloudFront::Distribution.CustomOriginConfig": { + "AWS::Budgets::Budget.Subscriber": { "additionalProperties": false, "properties": { - "HTTPPort": { - "type": "number" - }, - "HTTPSPort": { - "type": "number" - }, - "OriginKeepaliveTimeout": { - "type": "number" - }, - "OriginProtocolPolicy": { + "Address": { "type": "string" }, - "OriginReadTimeout": { - "type": "number" - }, - "OriginSSLProtocols": { - "items": { - "type": "string" - }, - "type": "array" + "SubscriptionType": { + "type": "string" } }, "required": [ - "OriginProtocolPolicy" + "Address", + "SubscriptionType" ], "type": "object" }, - "AWS::CloudFront::Distribution.DefaultCacheBehavior": { + "AWS::Budgets::Budget.TimePeriod": { "additionalProperties": false, "properties": { - "AllowedMethods": { - "items": { - "type": "string" - }, - "type": "array" - }, - "CachedMethods": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Compress": { - "type": "boolean" - }, - "DefaultTTL": { - "type": "number" - }, - "FieldLevelEncryptionId": { - "type": "string" - }, - "ForwardedValues": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues" - }, - "LambdaFunctionAssociations": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation" - }, - "type": "array" - }, - "MaxTTL": { - "type": "number" - }, - "MinTTL": { - "type": "number" - }, - "SmoothStreaming": { - "type": "boolean" - }, - "TargetOriginId": { + "End": { "type": "string" }, - "TrustedSigners": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ViewerProtocolPolicy": { + "Start": { "type": "string" } }, - "required": [ - "ForwardedValues", - "TargetOriginId", - "ViewerProtocolPolicy" - ], "type": "object" }, - "AWS::CloudFront::Distribution.DistributionConfig": { + "AWS::CertificateManager::Certificate": { "additionalProperties": false, "properties": { - "Aliases": { - "items": { - "type": "string" - }, - "type": "array" - }, - "CacheBehaviors": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.CacheBehavior" - }, - "type": "array" - }, - "Comment": { - "type": "string" - }, - "CustomErrorResponses": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomErrorResponse" - }, - "type": "array" - }, - "DefaultCacheBehavior": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.DefaultCacheBehavior" - }, - "DefaultRootObject": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "HttpVersion": { - "type": "string" - }, - "IPV6Enabled": { - "type": "boolean" - }, - "Logging": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.Logging" - }, - "Origins": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.Origin" - }, - "type": "array" - }, - "PriceClass": { - "type": "string" - }, - "Restrictions": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.Restrictions" - }, - "ViewerCertificate": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.ViewerCertificate" - }, - "WebACLId": { - "type": "string" - } - }, - "required": [ - "Enabled" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.ForwardedValues": { - "additionalProperties": false, - "properties": { - "Cookies": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.Cookies" - }, - "Headers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "QueryString": { - "type": "boolean" - }, - "QueryStringCacheKeys": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "QueryString" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.GeoRestriction": { - "additionalProperties": false, - "properties": { - "Locations": { - "items": { - "type": "string" - }, - "type": "array" - }, - "RestrictionType": { - "type": "string" - } - }, - "required": [ - "RestrictionType" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.LambdaFunctionAssociation": { - "additionalProperties": false, - "properties": { - "EventType": { - "type": "string" - }, - "LambdaFunctionARN": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CloudFront::Distribution.Logging": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "IncludeCookies": { - "type": "boolean" - }, - "Prefix": { - "type": "string" - } - }, - "required": [ - "Bucket" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.Origin": { - "additionalProperties": false, - "properties": { - "CustomOriginConfig": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomOriginConfig" - }, - "DomainName": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "OriginCustomHeaders": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginCustomHeader" - }, - "type": "array" - }, - "OriginPath": { - "type": "string" - }, - "S3OriginConfig": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.S3OriginConfig" - } - }, - "required": [ - "DomainName", - "Id" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.OriginCustomHeader": { - "additionalProperties": false, - "properties": { - "HeaderName": { - "type": "string" - }, - "HeaderValue": { - "type": "string" - } - }, - "required": [ - "HeaderName", - "HeaderValue" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.Restrictions": { - "additionalProperties": false, - "properties": { - "GeoRestriction": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.GeoRestriction" - } - }, - "required": [ - "GeoRestriction" - ], - "type": "object" - }, - "AWS::CloudFront::Distribution.S3OriginConfig": { - "additionalProperties": false, - "properties": { - "OriginAccessIdentity": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CloudFront::Distribution.ViewerCertificate": { - "additionalProperties": false, - "properties": { - "AcmCertificateArn": { - "type": "string" - }, - "CloudFrontDefaultCertificate": { - "type": "boolean" - }, - "IamCertificateId": { - "type": "string" - }, - "MinimumProtocolVersion": { - "type": "string" - }, - "SslSupportMethod": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CloudFront::StreamingDistribution": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" }, "DependsOn": { "anyOf": [ @@ -6619,25 +6450,39 @@ "Properties": { "additionalProperties": false, "properties": { - "StreamingDistributionConfig": { - "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig" + "DomainName": { + "type": "string" + }, + "DomainValidationOptions": { + "items": { + "$ref": "#/definitions/AWS::CertificateManager::Certificate.DomainValidationOption" + }, + "type": "array" + }, + "SubjectAlternativeNames": { + "items": { + "type": "string" + }, + "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "ValidationMethod": { + "type": "string" } }, "required": [ - "StreamingDistributionConfig", - "Tags" + "DomainName" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudFront::StreamingDistribution" + "AWS::CertificateManager::Certificate" ], "type": "string" } @@ -6648,97 +6493,23 @@ ], "type": "object" }, - "AWS::CloudFront::StreamingDistribution.Logging": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "Prefix": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Enabled", - "Prefix" - ], - "type": "object" - }, - "AWS::CloudFront::StreamingDistribution.S3Origin": { + "AWS::CertificateManager::Certificate.DomainValidationOption": { "additionalProperties": false, "properties": { "DomainName": { "type": "string" }, - "OriginAccessIdentity": { + "ValidationDomain": { "type": "string" } }, "required": [ "DomainName", - "OriginAccessIdentity" - ], - "type": "object" - }, - "AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig": { - "additionalProperties": false, - "properties": { - "Aliases": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Comment": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "Logging": { - "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.Logging" - }, - "PriceClass": { - "type": "string" - }, - "S3Origin": { - "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.S3Origin" - }, - "TrustedSigners": { - "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.TrustedSigners" - } - }, - "required": [ - "Comment", - "Enabled", - "S3Origin", - "TrustedSigners" - ], - "type": "object" - }, - "AWS::CloudFront::StreamingDistribution.TrustedSigners": { - "additionalProperties": false, - "properties": { - "AwsAccountNumbers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Enabled": { - "type": "boolean" - } - }, - "required": [ - "Enabled" + "ValidationDomain" ], "type": "object" }, - "AWS::CloudTrail::Trail": { + "AWS::Cloud9::EnvironmentEC2": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -6770,61 +6541,39 @@ "Properties": { "additionalProperties": false, "properties": { - "CloudWatchLogsLogGroupArn": { - "type": "string" - }, - "CloudWatchLogsRoleArn": { - "type": "string" - }, - "EnableLogFileValidation": { - "type": "boolean" - }, - "EventSelectors": { - "items": { - "$ref": "#/definitions/AWS::CloudTrail::Trail.EventSelector" - }, - "type": "array" - }, - "IncludeGlobalServiceEvents": { - "type": "boolean" - }, - "IsLogging": { - "type": "boolean" - }, - "IsMultiRegionTrail": { - "type": "boolean" + "AutomaticStopTimeMinutes": { + "type": "number" }, - "KMSKeyId": { + "Description": { "type": "string" }, - "S3BucketName": { + "InstanceType": { "type": "string" }, - "S3KeyPrefix": { + "Name": { "type": "string" }, - "SnsTopicName": { + "OwnerArn": { "type": "string" }, - "Tags": { + "Repositories": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::Cloud9::EnvironmentEC2.Repository" }, "type": "array" }, - "TrailName": { + "SubnetId": { "type": "string" } }, "required": [ - "IsLogging", - "S3BucketName" + "InstanceType" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudTrail::Trail" + "AWS::Cloud9::EnvironmentEC2" ], "type": "string" } @@ -6835,43 +6584,23 @@ ], "type": "object" }, - "AWS::CloudTrail::Trail.DataResource": { + "AWS::Cloud9::EnvironmentEC2.Repository": { "additionalProperties": false, "properties": { - "Type": { + "PathComponent": { "type": "string" }, - "Values": { - "items": { - "type": "string" - }, - "type": "array" + "RepositoryUrl": { + "type": "string" } }, "required": [ - "Type" + "PathComponent", + "RepositoryUrl" ], "type": "object" }, - "AWS::CloudTrail::Trail.EventSelector": { - "additionalProperties": false, - "properties": { - "DataResources": { - "items": { - "$ref": "#/definitions/AWS::CloudTrail::Trail.DataResource" - }, - "type": "array" - }, - "IncludeManagementEvents": { - "type": "boolean" - }, - "ReadWriteType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CloudWatch::Alarm": { + "AWS::CloudFormation::CustomResource": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -6903,86 +6632,18 @@ "Properties": { "additionalProperties": false, "properties": { - "ActionsEnabled": { - "type": "boolean" - }, - "AlarmActions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AlarmDescription": { - "type": "string" - }, - "AlarmName": { - "type": "string" - }, - "ComparisonOperator": { - "type": "string" - }, - "DatapointsToAlarm": { - "type": "number" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/AWS::CloudWatch::Alarm.Dimension" - }, - "type": "array" - }, - "EvaluateLowSampleCountPercentile": { - "type": "string" - }, - "EvaluationPeriods": { - "type": "number" - }, - "ExtendedStatistic": { - "type": "string" - }, - "InsufficientDataActions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "OKActions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Period": { - "type": "number" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "TreatMissingData": { - "type": "string" - }, - "Unit": { + "ServiceToken": { "type": "string" } }, "required": [ - "ComparisonOperator", - "EvaluationPeriods", - "Threshold" + "ServiceToken" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudWatch::Alarm" + "AWS::CloudFormation::CustomResource" ], "type": "string" } @@ -6993,23 +6654,7 @@ ], "type": "object" }, - "AWS::CloudWatch::Alarm.Dimension": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Name", - "Value" - ], - "type": "object" - }, - "AWS::CloudWatch::Dashboard": { + "AWS::CloudFormation::Macro": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -7041,21 +6686,31 @@ "Properties": { "additionalProperties": false, "properties": { - "DashboardBody": { + "Description": { "type": "string" }, - "DashboardName": { + "FunctionName": { "type": "string" - } - }, + }, + "LogGroupName": { + "type": "string" + }, + "LogRoleARN": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, "required": [ - "DashboardBody" + "FunctionName", + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudWatch::Dashboard" + "AWS::CloudFormation::Macro" ], "type": "string" } @@ -7066,7 +6721,7 @@ ], "type": "object" }, - "AWS::CodeBuild::Project": { + "AWS::CloudFormation::Stack": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -7098,50 +6753,20 @@ "Properties": { "additionalProperties": false, "properties": { - "Artifacts": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts" - }, - "BadgeEnabled": { - "type": "boolean" - }, - "Cache": { - "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectCache" - }, - "Description": { - "type": "string" - }, - "EncryptionKey": { - "type": "string" - }, - "Environment": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Environment" - }, - "LogsConfig": { - "$ref": "#/definitions/AWS::CodeBuild::Project.LogsConfig" - }, - "Name": { - "type": "string" - }, - "QueuedTimeoutInMinutes": { - "type": "number" - }, - "SecondaryArtifacts": { + "NotificationARNs": { "items": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts" + "type": "string" }, "type": "array" }, - "SecondarySources": { - "items": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Source" + "Parameters": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } }, - "type": "array" - }, - "ServiceRole": { - "type": "string" - }, - "Source": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Source" + "type": "object" }, "Tags": { "items": { @@ -7149,27 +6774,21 @@ }, "type": "array" }, + "TemplateURL": { + "type": "string" + }, "TimeoutInMinutes": { "type": "number" - }, - "Triggers": { - "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectTriggers" - }, - "VpcConfig": { - "$ref": "#/definitions/AWS::CodeBuild::Project.VpcConfig" } }, "required": [ - "Artifacts", - "Environment", - "ServiceRole", - "Source" + "TemplateURL" ], "type": "object" }, "Type": { "enum": [ - "AWS::CodeBuild::Project" + "AWS::CloudFormation::Stack" ], "type": "string" } @@ -7180,234 +6799,12 @@ ], "type": "object" }, - "AWS::CodeBuild::Project.Artifacts": { - "additionalProperties": false, - "properties": { - "ArtifactIdentifier": { - "type": "string" - }, - "EncryptionDisabled": { - "type": "boolean" - }, - "Location": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "NamespaceType": { - "type": "string" - }, - "OverrideArtifactName": { - "type": "boolean" - }, - "Packaging": { - "type": "string" - }, - "Path": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.CloudWatchLogsConfig": { - "additionalProperties": false, - "properties": { - "GroupName": { - "type": "string" - }, - "Status": { - "type": "string" - }, - "StreamName": { - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.Environment": { - "additionalProperties": false, - "properties": { - "Certificate": { - "type": "string" - }, - "ComputeType": { - "type": "string" - }, - "EnvironmentVariables": { - "items": { - "$ref": "#/definitions/AWS::CodeBuild::Project.EnvironmentVariable" - }, - "type": "array" - }, - "Image": { - "type": "string" - }, - "PrivilegedMode": { - "type": "boolean" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "ComputeType", - "Image", - "Type" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.EnvironmentVariable": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Name", - "Value" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.LogsConfig": { - "additionalProperties": false, - "properties": { - "CloudWatchLogs": { - "$ref": "#/definitions/AWS::CodeBuild::Project.CloudWatchLogsConfig" - }, - "S3Logs": { - "$ref": "#/definitions/AWS::CodeBuild::Project.S3LogsConfig" - } - }, - "type": "object" - }, - "AWS::CodeBuild::Project.ProjectCache": { - "additionalProperties": false, - "properties": { - "Location": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.ProjectTriggers": { - "additionalProperties": false, - "properties": { - "Webhook": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::CodeBuild::Project.S3LogsConfig": { - "additionalProperties": false, - "properties": { - "Location": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.Source": { - "additionalProperties": false, - "properties": { - "Auth": { - "$ref": "#/definitions/AWS::CodeBuild::Project.SourceAuth" - }, - "BuildSpec": { - "type": "string" - }, - "GitCloneDepth": { - "type": "number" - }, - "InsecureSsl": { - "type": "boolean" - }, - "Location": { - "type": "string" - }, - "ReportBuildStatus": { - "type": "boolean" - }, - "SourceIdentifier": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.SourceAuth": { - "additionalProperties": false, - "properties": { - "Resource": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::CodeBuild::Project.VpcConfig": { + "AWS::CloudFormation::WaitCondition": { "additionalProperties": false, "properties": { - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Subnets": { - "items": { - "type": "string" - }, - "type": "array" + "CreationPolicy": { + "type": "object" }, - "VpcId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CodeCommit::Repository": { - "additionalProperties": false, - "properties": { "DeletionPolicy": { "enum": [ "Delete", @@ -7437,65 +6834,31 @@ "Properties": { "additionalProperties": false, "properties": { - "RepositoryDescription": { - "type": "string" + "Count": { + "type": "number" }, - "RepositoryName": { + "Handle": { "type": "string" }, - "Triggers": { - "items": { - "$ref": "#/definitions/AWS::CodeCommit::Repository.RepositoryTrigger" - }, - "type": "array" + "Timeout": { + "type": "string" } }, - "required": [ - "RepositoryName" - ], "type": "object" }, "Type": { "enum": [ - "AWS::CodeCommit::Repository" + "AWS::CloudFormation::WaitCondition" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::CodeCommit::Repository.RepositoryTrigger": { - "additionalProperties": false, - "properties": { - "Branches": { - "items": { - "type": "string" - }, - "type": "array" - }, - "CustomData": { - "type": "string" - }, - "DestinationArn": { - "type": "string" - }, - "Events": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CodeDeploy::Application": { + "AWS::CloudFormation::WaitConditionHandle": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -7526,19 +6889,12 @@ }, "Properties": { "additionalProperties": false, - "properties": { - "ApplicationName": { - "type": "string" - }, - "ComputePlatform": { - "type": "string" - } - }, + "properties": {}, "type": "object" }, "Type": { "enum": [ - "AWS::CodeDeploy::Application" + "AWS::CloudFormation::WaitConditionHandle" ], "type": "string" } @@ -7548,7 +6904,7 @@ ], "type": "object" }, - "AWS::CodeDeploy::DeploymentConfig": { + "AWS::CloudFront::CloudFrontOriginAccessIdentity": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -7580,44 +6936,41 @@ "Properties": { "additionalProperties": false, "properties": { - "DeploymentConfigName": { - "type": "string" - }, - "MinimumHealthyHosts": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts" + "CloudFrontOriginAccessIdentityConfig": { + "$ref": "#/definitions/AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig" } }, + "required": [ + "CloudFrontOriginAccessIdentityConfig" + ], "type": "object" }, "Type": { "enum": [ - "AWS::CodeDeploy::DeploymentConfig" + "AWS::CloudFront::CloudFrontOriginAccessIdentity" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts": { + "AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig": { "additionalProperties": false, "properties": { - "Type": { + "Comment": { "type": "string" - }, - "Value": { - "type": "number" } }, "required": [ - "Type", - "Value" + "Comment" ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup": { + "AWS::CloudFront::Distribution": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -7649,73 +7002,24 @@ "Properties": { "additionalProperties": false, "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Deployment": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.DeploymentStyle" - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter" - }, - "type": "array" - }, - "Ec2TagSet": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSet" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter" - }, - "type": "array" - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet" - }, - "ServiceRoleArn": { - "type": "string" + "DistributionConfig": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.DistributionConfig" }, - "TriggerConfigurations": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TriggerConfig" + "$ref": "#/definitions/Tag" }, "type": "array" } }, "required": [ - "ApplicationName", - "ServiceRoleArn" + "DistributionConfig" ], "type": "object" }, "Type": { "enum": [ - "AWS::CodeDeploy::DeploymentGroup" + "AWS::CloudFront::Distribution" ], "type": "string" } @@ -7726,267 +7030,434 @@ ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration": { + "AWS::CloudFront::Distribution.CacheBehavior": { "additionalProperties": false, "properties": { - "Alarms": { + "AllowedMethods": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Alarm" + "type": "string" }, "type": "array" }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { + "CachedMethods": { "items": { "type": "string" }, "type": "array" - } - }, - "type": "object" - }, - "AWS::CodeDeploy::DeploymentGroup.Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" }, - "IgnoreApplicationStopFailures": { + "Compress": { "type": "boolean" }, - "Revision": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "AWS::CodeDeploy::DeploymentGroup.DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "type": "string" + "DefaultTTL": { + "type": "number" }, - "DeploymentType": { + "FieldLevelEncryptionId": { "type": "string" - } - }, - "type": "object" - }, - "AWS::CodeDeploy::DeploymentGroup.EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { + }, + "ForwardedValues": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues" + }, + "LambdaFunctionAssociations": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation" + }, + "type": "array" + }, + "MaxTTL": { + "type": "number" + }, + "MinTTL": { + "type": "number" + }, + "PathPattern": { "type": "string" }, - "Type": { + "SmoothStreaming": { + "type": "boolean" + }, + "TargetOriginId": { "type": "string" }, - "Value": { + "TrustedSigners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ViewerProtocolPolicy": { "type": "string" } }, + "required": [ + "ForwardedValues", + "PathPattern", + "TargetOriginId", + "ViewerProtocolPolicy" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.EC2TagSet": { + "AWS::CloudFront::Distribution.Cookies": { "additionalProperties": false, "properties": { - "Ec2TagSetList": { + "Forward": { + "type": "string" + }, + "WhitelistedNames": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject" + "type": "string" }, "type": "array" } }, + "required": [ + "Forward" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject": { + "AWS::CloudFront::Distribution.CustomErrorResponse": { "additionalProperties": false, "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter" - }, - "type": "array" + "ErrorCachingMinTTL": { + "type": "number" + }, + "ErrorCode": { + "type": "number" + }, + "ResponseCode": { + "type": "number" + }, + "ResponsePagePath": { + "type": "string" } }, + "required": [ + "ErrorCode" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.ELBInfo": { + "AWS::CloudFront::Distribution.CustomOriginConfig": { "additionalProperties": false, "properties": { - "Name": { + "HTTPPort": { + "type": "number" + }, + "HTTPSPort": { + "type": "number" + }, + "OriginKeepaliveTimeout": { + "type": "number" + }, + "OriginProtocolPolicy": { "type": "string" + }, + "OriginReadTimeout": { + "type": "number" + }, + "OriginSSLProtocols": { + "items": { + "type": "string" + }, + "type": "array" } }, + "required": [ + "OriginProtocolPolicy" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.GitHubLocation": { + "AWS::CloudFront::Distribution.DefaultCacheBehavior": { "additionalProperties": false, "properties": { - "CommitId": { + "AllowedMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CachedMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Compress": { + "type": "boolean" + }, + "DefaultTTL": { + "type": "number" + }, + "FieldLevelEncryptionId": { "type": "string" }, - "Repository": { + "ForwardedValues": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues" + }, + "LambdaFunctionAssociations": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation" + }, + "type": "array" + }, + "MaxTTL": { + "type": "number" + }, + "MinTTL": { + "type": "number" + }, + "SmoothStreaming": { + "type": "boolean" + }, + "TargetOriginId": { + "type": "string" + }, + "TrustedSigners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ViewerProtocolPolicy": { "type": "string" } }, "required": [ - "CommitId", - "Repository" + "ForwardedValues", + "TargetOriginId", + "ViewerProtocolPolicy" ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo": { + "AWS::CloudFront::Distribution.DistributionConfig": { "additionalProperties": false, "properties": { - "ElbInfoList": { + "Aliases": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.ELBInfo" + "type": "string" }, "type": "array" }, - "TargetGroupInfoList": { + "CacheBehaviors": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo" + "$ref": "#/definitions/AWS::CloudFront::Distribution.CacheBehavior" + }, + "type": "array" + }, + "Comment": { + "type": "string" + }, + "CustomErrorResponses": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomErrorResponse" + }, + "type": "array" + }, + "DefaultCacheBehavior": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.DefaultCacheBehavior" + }, + "DefaultRootObject": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "HttpVersion": { + "type": "string" + }, + "IPV6Enabled": { + "type": "boolean" + }, + "Logging": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Logging" + }, + "Origins": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Origin" }, "type": "array" + }, + "PriceClass": { + "type": "string" + }, + "Restrictions": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Restrictions" + }, + "ViewerCertificate": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.ViewerCertificate" + }, + "WebACLId": { + "type": "string" } }, + "required": [ + "Enabled" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet": { + "AWS::CloudFront::Distribution.ForwardedValues": { "additionalProperties": false, "properties": { - "OnPremisesTagSetList": { + "Cookies": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Cookies" + }, + "Headers": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject" + "type": "string" + }, + "type": "array" + }, + "QueryString": { + "type": "boolean" + }, + "QueryStringCacheKeys": { + "items": { + "type": "string" }, "type": "array" } }, + "required": [ + "QueryString" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject": { + "AWS::CloudFront::Distribution.GeoRestriction": { "additionalProperties": false, "properties": { - "OnPremisesTagGroup": { + "Locations": { "items": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter" + "type": "string" }, "type": "array" + }, + "RestrictionType": { + "type": "string" } }, + "required": [ + "RestrictionType" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.RevisionLocation": { + "AWS::CloudFront::Distribution.LambdaFunctionAssociation": { "additionalProperties": false, "properties": { - "GitHubLocation": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.GitHubLocation" - }, - "RevisionType": { + "EventType": { "type": "string" }, - "S3Location": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.S3Location" + "LambdaFunctionARN": { + "type": "string" } }, "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.S3Location": { + "AWS::CloudFront::Distribution.Logging": { "additionalProperties": false, "properties": { "Bucket": { "type": "string" }, - "BundleType": { + "IncludeCookies": { + "type": "boolean" + }, + "Prefix": { "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.Origin": { + "additionalProperties": false, + "properties": { + "CustomOriginConfig": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomOriginConfig" }, - "ETag": { + "DomainName": { "type": "string" }, - "Key": { + "Id": { "type": "string" }, - "Version": { + "OriginCustomHeaders": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginCustomHeader" + }, + "type": "array" + }, + "OriginPath": { "type": "string" + }, + "S3OriginConfig": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.S3OriginConfig" } }, "required": [ - "Bucket", - "Key" + "DomainName", + "Id" ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.TagFilter": { + "AWS::CloudFront::Distribution.OriginCustomHeader": { "additionalProperties": false, "properties": { - "Key": { - "type": "string" - }, - "Type": { + "HeaderName": { "type": "string" }, - "Value": { + "HeaderValue": { "type": "string" } }, + "required": [ + "HeaderName", + "HeaderValue" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.Restrictions": { + "additionalProperties": false, + "properties": { + "GeoRestriction": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.GeoRestriction" + } + }, + "required": [ + "GeoRestriction" + ], "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo": { + "AWS::CloudFront::Distribution.S3OriginConfig": { "additionalProperties": false, "properties": { - "Name": { + "OriginAccessIdentity": { "type": "string" } }, "type": "object" }, - "AWS::CodeDeploy::DeploymentGroup.TriggerConfig": { + "AWS::CloudFront::Distribution.ViewerCertificate": { "additionalProperties": false, "properties": { - "TriggerEvents": { - "items": { - "type": "string" - }, - "type": "array" + "AcmCertificateArn": { + "type": "string" }, - "TriggerName": { + "CloudFrontDefaultCertificate": { + "type": "boolean" + }, + "IamCertificateId": { "type": "string" }, - "TriggerTargetArn": { + "MinimumProtocolVersion": { + "type": "string" + }, + "SslSupportMethod": { "type": "string" } }, "type": "object" }, - "AWS::CodePipeline::CustomActionType": { + "AWS::CloudFront::StreamingDistribution": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -8018,42 +7489,25 @@ "Properties": { "additionalProperties": false, "properties": { - "Category": { - "type": "string" + "StreamingDistributionConfig": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig" }, - "ConfigurationProperties": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ConfigurationProperties" + "$ref": "#/definitions/Tag" }, "type": "array" - }, - "InputArtifactDetails": { - "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails" - }, - "OutputArtifactDetails": { - "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails" - }, - "Provider": { - "type": "string" - }, - "Settings": { - "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.Settings" - }, - "Version": { - "type": "string" } }, "required": [ - "Category", - "InputArtifactDetails", - "OutputArtifactDetails", - "Provider" + "StreamingDistributionConfig", + "Tags" ], "type": "object" }, "Type": { "enum": [ - "AWS::CodePipeline::CustomActionType" + "AWS::CloudFront::StreamingDistribution" ], "type": "string" } @@ -8064,74 +7518,97 @@ ], "type": "object" }, - "AWS::CodePipeline::CustomActionType.ArtifactDetails": { + "AWS::CloudFront::StreamingDistribution.Logging": { "additionalProperties": false, "properties": { - "MaximumCount": { - "type": "number" + "Bucket": { + "type": "string" }, - "MinimumCount": { - "type": "number" + "Enabled": { + "type": "boolean" + }, + "Prefix": { + "type": "string" } }, "required": [ - "MaximumCount", - "MinimumCount" + "Bucket", + "Enabled", + "Prefix" ], "type": "object" }, - "AWS::CodePipeline::CustomActionType.ConfigurationProperties": { + "AWS::CloudFront::StreamingDistribution.S3Origin": { "additionalProperties": false, "properties": { - "Description": { + "DomainName": { "type": "string" }, - "Key": { - "type": "boolean" - }, - "Name": { + "OriginAccessIdentity": { "type": "string" + } + }, + "required": [ + "DomainName", + "OriginAccessIdentity" + ], + "type": "object" + }, + "AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig": { + "additionalProperties": false, + "properties": { + "Aliases": { + "items": { + "type": "string" + }, + "type": "array" }, - "Queryable": { - "type": "boolean" + "Comment": { + "type": "string" }, - "Required": { + "Enabled": { "type": "boolean" }, - "Secret": { - "type": "boolean" + "Logging": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.Logging" }, - "Type": { + "PriceClass": { "type": "string" + }, + "S3Origin": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.S3Origin" + }, + "TrustedSigners": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.TrustedSigners" } }, "required": [ - "Key", - "Name", - "Required", - "Secret" + "Comment", + "Enabled", + "S3Origin", + "TrustedSigners" ], "type": "object" }, - "AWS::CodePipeline::CustomActionType.Settings": { + "AWS::CloudFront::StreamingDistribution.TrustedSigners": { "additionalProperties": false, "properties": { - "EntityUrlTemplate": { - "type": "string" - }, - "ExecutionUrlTemplate": { - "type": "string" - }, - "RevisionUrlTemplate": { - "type": "string" + "AwsAccountNumbers": { + "items": { + "type": "string" + }, + "type": "array" }, - "ThirdPartyConfigurationUrl": { - "type": "string" + "Enabled": { + "type": "boolean" } }, + "required": [ + "Enabled" + ], "type": "object" }, - "AWS::CodePipeline::Pipeline": { + "AWS::CloudTrail::Trail": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -8163,46 +7640,61 @@ "Properties": { "additionalProperties": false, "properties": { - "ArtifactStore": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore" + "CloudWatchLogsLogGroupArn": { + "type": "string" }, - "ArtifactStores": { - "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStoreMap" - }, - "type": "array" + "CloudWatchLogsRoleArn": { + "type": "string" }, - "DisableInboundStageTransitions": { + "EnableLogFileValidation": { + "type": "boolean" + }, + "EventSelectors": { "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageTransition" + "$ref": "#/definitions/AWS::CloudTrail::Trail.EventSelector" }, "type": "array" }, - "Name": { - "type": "string" + "IncludeGlobalServiceEvents": { + "type": "boolean" }, - "RestartExecutionOnUpdate": { + "IsLogging": { "type": "boolean" }, - "RoleArn": { + "IsMultiRegionTrail": { + "type": "boolean" + }, + "KMSKeyId": { "type": "string" }, - "Stages": { + "S3BucketName": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + }, + "SnsTopicName": { + "type": "string" + }, + "Tags": { "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageDeclaration" + "$ref": "#/definitions/Tag" }, "type": "array" + }, + "TrailName": { + "type": "string" } }, "required": [ - "RoleArn", - "Stages" + "IsLogging", + "S3BucketName" ], "type": "object" }, "Type": { "enum": [ - "AWS::CodePipeline::Pipeline" + "AWS::CloudTrail::Trail" ], "type": "string" } @@ -8213,203 +7705,252 @@ ], "type": "object" }, - "AWS::CodePipeline::Pipeline.ActionDeclaration": { + "AWS::CloudTrail::Trail.DataResource": { "additionalProperties": false, "properties": { - "ActionTypeId": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionTypeId" - }, - "Configuration": { - "type": "object" - }, - "InputArtifacts": { - "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.InputArtifact" - }, - "type": "array" - }, - "Name": { + "Type": { "type": "string" }, - "OutputArtifacts": { + "Values": { "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.OutputArtifact" + "type": "string" }, "type": "array" - }, - "Region": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "RunOrder": { - "type": "number" } }, "required": [ - "ActionTypeId", - "Name" + "Type" ], "type": "object" }, - "AWS::CodePipeline::Pipeline.ActionTypeId": { + "AWS::CloudTrail::Trail.EventSelector": { "additionalProperties": false, "properties": { - "Category": { - "type": "string" - }, - "Owner": { - "type": "string" + "DataResources": { + "items": { + "$ref": "#/definitions/AWS::CloudTrail::Trail.DataResource" + }, + "type": "array" }, - "Provider": { - "type": "string" + "IncludeManagementEvents": { + "type": "boolean" }, - "Version": { + "ReadWriteType": { "type": "string" } }, - "required": [ - "Category", - "Owner", - "Provider", - "Version" - ], "type": "object" }, - "AWS::CodePipeline::Pipeline.ArtifactStore": { + "AWS::CloudWatch::Alarm": { "additionalProperties": false, "properties": { - "EncryptionKey": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.EncryptionKey" - }, - "Location": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "Type": { - "type": "string" - } - }, - "required": [ - "Location", - "Type" - ], - "type": "object" - }, - "AWS::CodePipeline::Pipeline.ArtifactStoreMap": { - "additionalProperties": false, - "properties": { - "ArtifactStore": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Region": { + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ActionsEnabled": { + "type": "boolean" + }, + "AlarmActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AlarmDescription": { + "type": "string" + }, + "AlarmName": { + "type": "string" + }, + "ComparisonOperator": { + "type": "string" + }, + "DatapointsToAlarm": { + "type": "number" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.Dimension" + }, + "type": "array" + }, + "EvaluateLowSampleCountPercentile": { + "type": "string" + }, + "EvaluationPeriods": { + "type": "number" + }, + "ExtendedStatistic": { + "type": "string" + }, + "InsufficientDataActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MetricName": { + "type": "string" + }, + "Metrics": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.MetricDataQuery" + }, + "type": "array" + }, + "Namespace": { + "type": "string" + }, + "OKActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Period": { + "type": "number" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "TreatMissingData": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "EvaluationPeriods", + "Threshold" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudWatch::Alarm" + ], "type": "string" } }, "required": [ - "ArtifactStore", - "Region" + "Type", + "Properties" ], "type": "object" }, - "AWS::CodePipeline::Pipeline.BlockerDeclaration": { + "AWS::CloudWatch::Alarm.Dimension": { "additionalProperties": false, "properties": { "Name": { "type": "string" }, - "Type": { + "Value": { "type": "string" } }, "required": [ "Name", - "Type" + "Value" ], "type": "object" }, - "AWS::CodePipeline::Pipeline.EncryptionKey": { + "AWS::CloudWatch::Alarm.Metric": { "additionalProperties": false, "properties": { - "Id": { - "type": "string" + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.Dimension" + }, + "type": "array" }, - "Type": { + "MetricName": { "type": "string" - } - }, - "required": [ - "Id", - "Type" - ], - "type": "object" - }, - "AWS::CodePipeline::Pipeline.InputArtifact": { - "additionalProperties": false, - "properties": { - "Name": { + }, + "Namespace": { "type": "string" } }, - "required": [ - "Name" - ], "type": "object" }, - "AWS::CodePipeline::Pipeline.OutputArtifact": { + "AWS::CloudWatch::Alarm.MetricDataQuery": { "additionalProperties": false, "properties": { - "Name": { + "Expression": { "type": "string" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "AWS::CodePipeline::Pipeline.StageDeclaration": { - "additionalProperties": false, - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionDeclaration" - }, - "type": "array" }, - "Blockers": { - "items": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.BlockerDeclaration" - }, - "type": "array" + "Id": { + "type": "string" }, - "Name": { + "Label": { "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.MetricStat" + }, + "ReturnData": { + "type": "boolean" } }, "required": [ - "Actions", - "Name" + "Id" ], "type": "object" }, - "AWS::CodePipeline::Pipeline.StageTransition": { + "AWS::CloudWatch::Alarm.MetricStat": { "additionalProperties": false, "properties": { - "Reason": { + "Metric": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.Metric" + }, + "Period": { + "type": "number" + }, + "Stat": { "type": "string" }, - "StageName": { + "Unit": { "type": "string" } }, "required": [ - "Reason", - "StageName" + "Metric", + "Period", + "Stat" ], "type": "object" }, - "AWS::CodePipeline::Webhook": { + "AWS::CloudWatch::Dashboard": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -8441,47 +7982,21 @@ "Properties": { "additionalProperties": false, "properties": { - "Authentication": { - "type": "string" - }, - "AuthenticationConfiguration": { - "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookAuthConfiguration" - }, - "Filters": { - "items": { - "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookFilterRule" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "RegisterWithThirdParty": { - "type": "boolean" - }, - "TargetAction": { + "DashboardBody": { "type": "string" }, - "TargetPipeline": { + "DashboardName": { "type": "string" - }, - "TargetPipelineVersion": { - "type": "number" } }, "required": [ - "Authentication", - "AuthenticationConfiguration", - "Filters", - "TargetAction", - "TargetPipeline", - "TargetPipelineVersion" + "DashboardBody" ], "type": "object" }, "Type": { "enum": [ - "AWS::CodePipeline::Webhook" + "AWS::CloudWatch::Dashboard" ], "type": "string" } @@ -8492,34 +8007,7 @@ ], "type": "object" }, - "AWS::CodePipeline::Webhook.WebhookAuthConfiguration": { - "additionalProperties": false, - "properties": { - "AllowedIPRange": { - "type": "string" - }, - "SecretToken": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::CodePipeline::Webhook.WebhookFilterRule": { - "additionalProperties": false, - "properties": { - "JsonPath": { - "type": "string" - }, - "MatchEquals": { - "type": "string" - } - }, - "required": [ - "JsonPath" - ], - "type": "object" - }, - "AWS::Cognito::IdentityPool": { + "AWS::CodeBuild::Project": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -8551,54 +8039,78 @@ "Properties": { "additionalProperties": false, "properties": { - "AllowUnauthenticatedIdentities": { - "type": "boolean" + "Artifacts": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts" }, - "CognitoEvents": { - "type": "object" + "BadgeEnabled": { + "type": "boolean" }, - "CognitoIdentityProviders": { - "items": { - "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoIdentityProvider" - }, - "type": "array" + "Cache": { + "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectCache" }, - "CognitoStreams": { - "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoStreams" + "Description": { + "type": "string" }, - "DeveloperProviderName": { + "EncryptionKey": { "type": "string" }, - "IdentityPoolName": { + "Environment": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Environment" + }, + "LogsConfig": { + "$ref": "#/definitions/AWS::CodeBuild::Project.LogsConfig" + }, + "Name": { "type": "string" }, - "OpenIdConnectProviderARNs": { + "QueuedTimeoutInMinutes": { + "type": "number" + }, + "SecondaryArtifacts": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts" }, "type": "array" }, - "PushSync": { - "$ref": "#/definitions/AWS::Cognito::IdentityPool.PushSync" + "SecondarySources": { + "items": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Source" + }, + "type": "array" }, - "SamlProviderARNs": { + "ServiceRole": { + "type": "string" + }, + "Source": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Source" + }, + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "SupportedLoginProviders": { - "type": "object" + "TimeoutInMinutes": { + "type": "number" + }, + "Triggers": { + "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectTriggers" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::CodeBuild::Project.VpcConfig" } }, "required": [ - "AllowUnauthenticatedIdentities" + "Artifacts", + "Environment", + "ServiceRole", + "Source" ], "type": "object" }, "Type": { "enum": [ - "AWS::Cognito::IdentityPool" + "AWS::CodeBuild::Project" ], "type": "string" } @@ -8609,121 +8121,105 @@ ], "type": "object" }, - "AWS::Cognito::IdentityPool.CognitoIdentityProvider": { + "AWS::CodeBuild::Project.Artifacts": { "additionalProperties": false, "properties": { - "ClientId": { + "ArtifactIdentifier": { "type": "string" }, - "ProviderName": { + "EncryptionDisabled": { + "type": "boolean" + }, + "Location": { "type": "string" }, - "ServerSideTokenCheck": { + "Name": { + "type": "string" + }, + "NamespaceType": { + "type": "string" + }, + "OverrideArtifactName": { "type": "boolean" + }, + "Packaging": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "Type": { + "type": "string" } }, + "required": [ + "Type" + ], "type": "object" }, - "AWS::Cognito::IdentityPool.CognitoStreams": { + "AWS::CodeBuild::Project.CloudWatchLogsConfig": { "additionalProperties": false, "properties": { - "RoleArn": { + "GroupName": { "type": "string" }, - "StreamName": { + "Status": { "type": "string" }, - "StreamingStatus": { + "StreamName": { "type": "string" } }, + "required": [ + "Status" + ], "type": "object" }, - "AWS::Cognito::IdentityPool.PushSync": { + "AWS::CodeBuild::Project.Environment": { "additionalProperties": false, "properties": { - "ApplicationArns": { + "Certificate": { + "type": "string" + }, + "ComputeType": { + "type": "string" + }, + "EnvironmentVariables": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::CodeBuild::Project.EnvironmentVariable" }, "type": "array" }, - "RoleArn": { + "Image": { + "type": "string" + }, + "ImagePullCredentialsType": { + "type": "string" + }, + "PrivilegedMode": { + "type": "boolean" + }, + "RegistryCredential": { + "$ref": "#/definitions/AWS::CodeBuild::Project.RegistryCredential" + }, + "Type": { "type": "string" } }, + "required": [ + "ComputeType", + "Image", + "Type" + ], "type": "object" }, - "AWS::Cognito::IdentityPoolRoleAttachment": { + "AWS::CodeBuild::Project.EnvironmentVariable": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Name": { "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": { - "IdentityPoolId": { - "type": "string" - }, - "RoleMappings": { - "type": "object" - }, - "Roles": { - "type": "object" - } - }, - "required": [ - "IdentityPoolId" - ], - "type": "object" - }, "Type": { - "enum": [ - "AWS::Cognito::IdentityPoolRoleAttachment" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::Cognito::IdentityPoolRoleAttachment.MappingRule": { - "additionalProperties": false, - "properties": { - "Claim": { - "type": "string" - }, - "MatchType": { - "type": "string" - }, - "RoleARN": { "type": "string" }, "Value": { @@ -8731,148 +8227,41 @@ } }, "required": [ - "Claim", - "MatchType", - "RoleARN", + "Name", "Value" ], "type": "object" }, - "AWS::Cognito::IdentityPoolRoleAttachment.RoleMapping": { + "AWS::CodeBuild::Project.FilterGroup": { "additionalProperties": false, - "properties": { - "AmbiguousRoleResolution": { - "type": "string" - }, - "RulesConfiguration": { - "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], + "properties": {}, "type": "object" }, - "AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType": { + "AWS::CodeBuild::Project.LogsConfig": { "additionalProperties": false, "properties": { - "Rules": { - "items": { - "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.MappingRule" - }, - "type": "array" + "CloudWatchLogs": { + "$ref": "#/definitions/AWS::CodeBuild::Project.CloudWatchLogsConfig" + }, + "S3Logs": { + "$ref": "#/definitions/AWS::CodeBuild::Project.S3LogsConfig" } }, - "required": [ - "Rules" - ], "type": "object" }, - "AWS::Cognito::UserPool": { + "AWS::CodeBuild::Project.ProjectCache": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Location": { "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": { - "AdminCreateUserConfig": { - "$ref": "#/definitions/AWS::Cognito::UserPool.AdminCreateUserConfig" - }, - "AliasAttributes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AutoVerifiedAttributes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DeviceConfiguration": { - "$ref": "#/definitions/AWS::Cognito::UserPool.DeviceConfiguration" - }, - "EmailConfiguration": { - "$ref": "#/definitions/AWS::Cognito::UserPool.EmailConfiguration" - }, - "EmailVerificationMessage": { - "type": "string" - }, - "EmailVerificationSubject": { - "type": "string" - }, - "LambdaConfig": { - "$ref": "#/definitions/AWS::Cognito::UserPool.LambdaConfig" - }, - "MfaConfiguration": { - "type": "string" - }, - "Policies": { - "$ref": "#/definitions/AWS::Cognito::UserPool.Policies" - }, - "Schema": { - "items": { - "$ref": "#/definitions/AWS::Cognito::UserPool.SchemaAttribute" - }, - "type": "array" - }, - "SmsAuthenticationMessage": { - "type": "string" - }, - "SmsConfiguration": { - "$ref": "#/definitions/AWS::Cognito::UserPool.SmsConfiguration" - }, - "SmsVerificationMessage": { - "type": "string" - }, - "UserPoolName": { - "type": "string" - }, - "UserPoolTags": { - "type": "object" - }, - "UsernameAttributes": { - "items": { - "type": "string" - }, - "type": "array" - } + "Modes": { + "items": { + "type": "string" }, - "type": "object" + "type": "array" }, "Type": { - "enum": [ - "AWS::Cognito::UserPool" - ], "type": "string" } }, @@ -8881,184 +8270,141 @@ ], "type": "object" }, - "AWS::Cognito::UserPool.AdminCreateUserConfig": { - "additionalProperties": false, - "properties": { - "AllowAdminCreateUserOnly": { - "type": "boolean" - }, - "InviteMessageTemplate": { - "$ref": "#/definitions/AWS::Cognito::UserPool.InviteMessageTemplate" - }, - "UnusedAccountValidityDays": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::Cognito::UserPool.DeviceConfiguration": { + "AWS::CodeBuild::Project.ProjectTriggers": { "additionalProperties": false, "properties": { - "ChallengeRequiredOnNewDevice": { - "type": "boolean" + "FilterGroups": { + "items": { + "$ref": "#/definitions/AWS::CodeBuild::Project.FilterGroup" + }, + "type": "array" }, - "DeviceOnlyRememberedOnUserPrompt": { + "Webhook": { "type": "boolean" } }, "type": "object" }, - "AWS::Cognito::UserPool.EmailConfiguration": { + "AWS::CodeBuild::Project.RegistryCredential": { "additionalProperties": false, "properties": { - "ReplyToEmailAddress": { + "Credential": { "type": "string" }, - "SourceArn": { + "CredentialProvider": { "type": "string" } }, + "required": [ + "Credential", + "CredentialProvider" + ], "type": "object" }, - "AWS::Cognito::UserPool.InviteMessageTemplate": { + "AWS::CodeBuild::Project.S3LogsConfig": { "additionalProperties": false, "properties": { - "EmailMessage": { - "type": "string" - }, - "EmailSubject": { + "Location": { "type": "string" }, - "SMSMessage": { + "Status": { "type": "string" } }, + "required": [ + "Status" + ], "type": "object" }, - "AWS::Cognito::UserPool.LambdaConfig": { + "AWS::CodeBuild::Project.Source": { "additionalProperties": false, "properties": { - "CreateAuthChallenge": { - "type": "string" + "Auth": { + "$ref": "#/definitions/AWS::CodeBuild::Project.SourceAuth" }, - "CustomMessage": { + "BuildSpec": { "type": "string" }, - "DefineAuthChallenge": { - "type": "string" + "GitCloneDepth": { + "type": "number" }, - "PostAuthentication": { - "type": "string" + "InsecureSsl": { + "type": "boolean" }, - "PostConfirmation": { + "Location": { "type": "string" }, - "PreAuthentication": { - "type": "string" + "ReportBuildStatus": { + "type": "boolean" }, - "PreSignUp": { + "SourceIdentifier": { "type": "string" }, - "VerifyAuthChallengeResponse": { + "Type": { "type": "string" } }, + "required": [ + "Type" + ], "type": "object" }, - "AWS::Cognito::UserPool.NumberAttributeConstraints": { + "AWS::CodeBuild::Project.SourceAuth": { "additionalProperties": false, "properties": { - "MaxValue": { + "Resource": { "type": "string" }, - "MinValue": { + "Type": { "type": "string" } }, + "required": [ + "Type" + ], "type": "object" }, - "AWS::Cognito::UserPool.PasswordPolicy": { - "additionalProperties": false, - "properties": { - "MinimumLength": { - "type": "number" - }, - "RequireLowercase": { - "type": "boolean" - }, - "RequireNumbers": { - "type": "boolean" - }, - "RequireSymbols": { - "type": "boolean" - }, - "RequireUppercase": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::Cognito::UserPool.Policies": { - "additionalProperties": false, - "properties": { - "PasswordPolicy": { - "$ref": "#/definitions/AWS::Cognito::UserPool.PasswordPolicy" - } - }, - "type": "object" - }, - "AWS::Cognito::UserPool.SchemaAttribute": { + "AWS::CodeBuild::Project.VpcConfig": { "additionalProperties": false, "properties": { - "AttributeDataType": { - "type": "string" - }, - "DeveloperOnlyAttribute": { - "type": "boolean" + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "Mutable": { - "type": "boolean" + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" }, - "Name": { + "VpcId": { "type": "string" - }, - "NumberAttributeConstraints": { - "$ref": "#/definitions/AWS::Cognito::UserPool.NumberAttributeConstraints" - }, - "Required": { - "type": "boolean" - }, - "StringAttributeConstraints": { - "$ref": "#/definitions/AWS::Cognito::UserPool.StringAttributeConstraints" } }, "type": "object" }, - "AWS::Cognito::UserPool.SmsConfiguration": { + "AWS::CodeBuild::Project.WebhookFilter": { "additionalProperties": false, "properties": { - "ExternalId": { - "type": "string" + "ExcludeMatchedPattern": { + "type": "boolean" }, - "SnsCallerArn": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Cognito::UserPool.StringAttributeConstraints": { - "additionalProperties": false, - "properties": { - "MaxLength": { + "Pattern": { "type": "string" }, - "MinLength": { + "Type": { "type": "string" } }, + "required": [ + "Pattern", + "Type" + ], "type": "object" }, - "AWS::Cognito::UserPoolClient": { + "AWS::CodeCommit::Repository": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9090,45 +8436,27 @@ "Properties": { "additionalProperties": false, "properties": { - "ClientName": { + "RepositoryDescription": { "type": "string" }, - "ExplicitAuthFlows": { - "items": { - "type": "string" - }, - "type": "array" - }, - "GenerateSecret": { - "type": "boolean" - }, - "ReadAttributes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "RefreshTokenValidity": { - "type": "number" - }, - "UserPoolId": { + "RepositoryName": { "type": "string" }, - "WriteAttributes": { + "Triggers": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::CodeCommit::Repository.RepositoryTrigger" }, "type": "array" } }, "required": [ - "UserPoolId" + "RepositoryName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Cognito::UserPoolClient" + "AWS::CodeCommit::Repository" ], "type": "string" } @@ -9139,7 +8467,34 @@ ], "type": "object" }, - "AWS::Cognito::UserPoolGroup": { + "AWS::CodeCommit::Repository.RepositoryTrigger": { + "additionalProperties": false, + "properties": { + "Branches": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CustomData": { + "type": "string" + }, + "DestinationArn": { + "type": "string" + }, + "Events": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::Application": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9171,41 +8526,28 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" - }, - "GroupName": { - "type": "string" - }, - "Precedence": { - "type": "number" - }, - "RoleArn": { + "ApplicationName": { "type": "string" }, - "UserPoolId": { + "ComputePlatform": { "type": "string" } }, - "required": [ - "UserPoolId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::Cognito::UserPoolGroup" + "AWS::CodeDeploy::Application" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::Cognito::UserPoolUser": { + "AWS::CodeDeploy::DeploymentConfig": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9237,68 +8579,44 @@ "Properties": { "additionalProperties": false, "properties": { - "DesiredDeliveryMediums": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ForceAliasCreation": { - "type": "boolean" - }, - "MessageAction": { - "type": "string" - }, - "UserAttributes": { - "items": { - "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType" - }, - "type": "array" - }, - "UserPoolId": { - "type": "string" - }, - "Username": { + "DeploymentConfigName": { "type": "string" }, - "ValidationData": { - "items": { - "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType" - }, - "type": "array" + "MinimumHealthyHosts": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts" } }, - "required": [ - "UserPoolId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::Cognito::UserPoolUser" + "AWS::CodeDeploy::DeploymentConfig" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::Cognito::UserPoolUser.AttributeType": { + "AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts": { "additionalProperties": false, "properties": { - "Name": { + "Type": { "type": "string" }, "Value": { - "type": "string" + "type": "number" } }, + "required": [ + "Type", + "Value" + ], "type": "object" }, - "AWS::Cognito::UserPoolUserToGroupAttachment": { + "AWS::CodeDeploy::DeploymentGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9330,84 +8648,73 @@ "Properties": { "additionalProperties": false, "properties": { - "GroupName": { + "AlarmConfiguration": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration" + }, + "ApplicationName": { "type": "string" }, - "UserPoolId": { + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration" + }, + "AutoScalingGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Deployment": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Deployment" + }, + "DeploymentConfigName": { "type": "string" }, - "Username": { - "type": "string" - } - }, - "required": [ - "GroupName", - "UserPoolId", - "Username" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Cognito::UserPoolUserToGroupAttachment" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::Config::AggregationAuthorization": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", + "DeploymentGroupName": { "type": "string" }, - { + "DeploymentStyle": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.DeploymentStyle" + }, + "Ec2TagFilters": { "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter" }, "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "AuthorizedAccountId": { - "type": "string" }, - "AuthorizedAwsRegion": { + "Ec2TagSet": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSet" + }, + "LoadBalancerInfo": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo" + }, + "OnPremisesInstanceTagFilters": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter" + }, + "type": "array" + }, + "OnPremisesTagSet": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet" + }, + "ServiceRoleArn": { "type": "string" + }, + "TriggerConfigurations": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TriggerConfig" + }, + "type": "array" } }, "required": [ - "AuthorizedAccountId", - "AuthorizedAwsRegion" + "ApplicationName", + "ServiceRoleArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::Config::AggregationAuthorization" + "AWS::CodeDeploy::DeploymentGroup" ], "type": "string" } @@ -9418,138 +8725,267 @@ ], "type": "object" }, - "AWS::Config::ConfigRule": { + "AWS::CodeDeploy::DeploymentGroup.Alarm": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Name": { "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Alarm" + }, + "type": "array" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Enabled": { + "type": "boolean" }, - "Metadata": { - "type": "object" + "IgnorePollAlarmFailure": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" }, - "Properties": { - "additionalProperties": false, - "properties": { - "ConfigRuleName": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "InputParameters": { - "type": "object" - }, - "MaximumExecutionFrequency": { - "type": "string" - }, - "Scope": { - "$ref": "#/definitions/AWS::Config::ConfigRule.Scope" - }, - "Source": { - "$ref": "#/definitions/AWS::Config::ConfigRule.Source" - } + "Events": { + "items": { + "type": "string" }, - "required": [ - "Source" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Config::ConfigRule" - ], + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.Deployment": { + "additionalProperties": false, + "properties": { + "Description": { "type": "string" + }, + "IgnoreApplicationStopFailures": { + "type": "boolean" + }, + "Revision": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.RevisionLocation" } }, "required": [ - "Type", - "Properties" + "Revision" ], "type": "object" }, - "AWS::Config::ConfigRule.Scope": { + "AWS::CodeDeploy::DeploymentGroup.DeploymentStyle": { "additionalProperties": false, "properties": { - "ComplianceResourceId": { + "DeploymentOption": { "type": "string" }, - "ComplianceResourceTypes": { + "DeploymentType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.EC2TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.EC2TagSet": { + "additionalProperties": false, + "properties": { + "Ec2TagSetList": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject" }, "type": "array" - }, - "TagKey": { + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject": { + "additionalProperties": false, + "properties": { + "Ec2TagGroup": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.ELBInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.GitHubLocation": { + "additionalProperties": false, + "properties": { + "CommitId": { "type": "string" }, - "TagValue": { + "Repository": { "type": "string" } }, + "required": [ + "CommitId", + "Repository" + ], "type": "object" }, - "AWS::Config::ConfigRule.Source": { + "AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo": { "additionalProperties": false, "properties": { - "Owner": { - "type": "string" + "ElbInfoList": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.ELBInfo" + }, + "type": "array" }, - "SourceDetails": { + "TargetGroupInfoList": { "items": { - "$ref": "#/definitions/AWS::Config::ConfigRule.SourceDetail" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet": { + "additionalProperties": false, + "properties": { + "OnPremisesTagSetList": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject": { + "additionalProperties": false, + "properties": { + "OnPremisesTagGroup": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter" }, "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.RevisionLocation": { + "additionalProperties": false, + "properties": { + "GitHubLocation": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.GitHubLocation" }, - "SourceIdentifier": { + "RevisionType": { "type": "string" + }, + "S3Location": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.S3Location" } }, - "required": [ - "Owner", - "SourceIdentifier" - ], "type": "object" }, - "AWS::Config::ConfigRule.SourceDetail": { + "AWS::CodeDeploy::DeploymentGroup.S3Location": { "additionalProperties": false, "properties": { - "EventSource": { + "Bucket": { "type": "string" }, - "MaximumExecutionFrequency": { + "BundleType": { "type": "string" }, - "MessageType": { + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { "type": "string" } }, "required": [ - "EventSource", - "MessageType" + "Bucket", + "Key" ], "type": "object" }, - "AWS::Config::ConfigurationAggregator": { + "AWS::CodeDeploy::DeploymentGroup.TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerEvents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TriggerName": { + "type": "string" + }, + "TriggerTargetArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodePipeline::CustomActionType": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9581,27 +9017,42 @@ "Properties": { "additionalProperties": false, "properties": { - "AccountAggregationSources": { + "Category": { + "type": "string" + }, + "ConfigurationProperties": { "items": { - "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.AccountAggregationSource" + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ConfigurationProperties" }, "type": "array" }, - "ConfigurationAggregatorName": { + "InputArtifactDetails": { + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails" + }, + "OutputArtifactDetails": { + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails" + }, + "Provider": { "type": "string" }, - "OrganizationAggregationSource": { - "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.OrganizationAggregationSource" + "Settings": { + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.Settings" + }, + "Version": { + "type": "string" } }, "required": [ - "ConfigurationAggregatorName" + "Category", + "InputArtifactDetails", + "OutputArtifactDetails", + "Provider" ], "type": "object" }, "Type": { "enum": [ - "AWS::Config::ConfigurationAggregator" + "AWS::CodePipeline::CustomActionType" ], "type": "string" } @@ -9612,52 +9063,74 @@ ], "type": "object" }, - "AWS::Config::ConfigurationAggregator.AccountAggregationSource": { + "AWS::CodePipeline::CustomActionType.ArtifactDetails": { "additionalProperties": false, "properties": { - "AccountIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AllAwsRegions": { - "type": "boolean" + "MaximumCount": { + "type": "number" }, - "AwsRegions": { - "items": { - "type": "string" - }, - "type": "array" + "MinimumCount": { + "type": "number" } }, "required": [ - "AccountIds" + "MaximumCount", + "MinimumCount" ], "type": "object" }, - "AWS::Config::ConfigurationAggregator.OrganizationAggregationSource": { + "AWS::CodePipeline::CustomActionType.ConfigurationProperties": { "additionalProperties": false, "properties": { - "AllAwsRegions": { + "Description": { + "type": "string" + }, + "Key": { "type": "boolean" }, - "AwsRegions": { - "items": { - "type": "string" - }, - "type": "array" + "Name": { + "type": "string" }, - "RoleArn": { + "Queryable": { + "type": "boolean" + }, + "Required": { + "type": "boolean" + }, + "Secret": { + "type": "boolean" + }, + "Type": { "type": "string" } }, "required": [ - "RoleArn" + "Key", + "Name", + "Required", + "Secret" ], "type": "object" }, - "AWS::Config::ConfigurationRecorder": { + "AWS::CodePipeline::CustomActionType.Settings": { + "additionalProperties": false, + "properties": { + "EntityUrlTemplate": { + "type": "string" + }, + "ExecutionUrlTemplate": { + "type": "string" + }, + "RevisionUrlTemplate": { + "type": "string" + }, + "ThirdPartyConfigurationUrl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodePipeline::Pipeline": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9689,24 +9162,46 @@ "Properties": { "additionalProperties": false, "properties": { + "ArtifactStore": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore" + }, + "ArtifactStores": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStoreMap" + }, + "type": "array" + }, + "DisableInboundStageTransitions": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageTransition" + }, + "type": "array" + }, "Name": { "type": "string" }, - "RecordingGroup": { - "$ref": "#/definitions/AWS::Config::ConfigurationRecorder.RecordingGroup" + "RestartExecutionOnUpdate": { + "type": "boolean" }, - "RoleARN": { + "RoleArn": { "type": "string" + }, + "Stages": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageDeclaration" + }, + "type": "array" } }, "required": [ - "RoleARN" + "RoleArn", + "Stages" ], "type": "object" }, "Type": { "enum": [ - "AWS::Config::ConfigurationRecorder" + "AWS::CodePipeline::Pipeline" ], "type": "string" } @@ -9717,28 +9212,206 @@ ], "type": "object" }, - "AWS::Config::ConfigurationRecorder.RecordingGroup": { + "AWS::CodePipeline::Pipeline.ActionDeclaration": { "additionalProperties": false, "properties": { - "AllSupported": { - "type": "boolean" + "ActionTypeId": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionTypeId" }, - "IncludeGlobalResourceTypes": { - "type": "boolean" + "Configuration": { + "type": "object" }, - "ResourceTypes": { + "InputArtifacts": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.InputArtifact" }, "type": "array" - } - }, - "type": "object" - }, - "AWS::Config::DeliveryChannel": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { + }, + "Name": { + "type": "string" + }, + "OutputArtifacts": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.OutputArtifact" + }, + "type": "array" + }, + "Region": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "RunOrder": { + "type": "number" + } + }, + "required": [ + "ActionTypeId", + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.ActionTypeId": { + "additionalProperties": false, + "properties": { + "Category": { + "type": "string" + }, + "Owner": { + "type": "string" + }, + "Provider": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Category", + "Owner", + "Provider", + "Version" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.ArtifactStore": { + "additionalProperties": false, + "properties": { + "EncryptionKey": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.EncryptionKey" + }, + "Location": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Location", + "Type" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.ArtifactStoreMap": { + "additionalProperties": false, + "properties": { + "ArtifactStore": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "ArtifactStore", + "Region" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.BlockerDeclaration": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.EncryptionKey": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Id", + "Type" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.InputArtifact": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.OutputArtifact": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.StageDeclaration": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionDeclaration" + }, + "type": "array" + }, + "Blockers": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.BlockerDeclaration" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Actions", + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.StageTransition": { + "additionalProperties": false, + "properties": { + "Reason": { + "type": "string" + }, + "StageName": { + "type": "string" + } + }, + "required": [ + "Reason", + "StageName" + ], + "type": "object" + }, + "AWS::CodePipeline::Webhook": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { "enum": [ "Delete", "Retain", @@ -9767,30 +9440,47 @@ "Properties": { "additionalProperties": false, "properties": { - "ConfigSnapshotDeliveryProperties": { - "$ref": "#/definitions/AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties" + "Authentication": { + "type": "string" + }, + "AuthenticationConfiguration": { + "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookAuthConfiguration" + }, + "Filters": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookFilterRule" + }, + "type": "array" }, "Name": { "type": "string" }, - "S3BucketName": { - "type": "string" + "RegisterWithThirdParty": { + "type": "boolean" }, - "S3KeyPrefix": { + "TargetAction": { "type": "string" }, - "SnsTopicARN": { + "TargetPipeline": { "type": "string" + }, + "TargetPipelineVersion": { + "type": "number" } }, "required": [ - "S3BucketName" + "Authentication", + "AuthenticationConfiguration", + "Filters", + "TargetAction", + "TargetPipeline", + "TargetPipelineVersion" ], "type": "object" }, "Type": { "enum": [ - "AWS::Config::DeliveryChannel" + "AWS::CodePipeline::Webhook" ], "type": "string" } @@ -9801,16 +9491,34 @@ ], "type": "object" }, - "AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties": { + "AWS::CodePipeline::Webhook.WebhookAuthConfiguration": { "additionalProperties": false, "properties": { - "DeliveryFrequency": { + "AllowedIPRange": { + "type": "string" + }, + "SecretToken": { "type": "string" } }, "type": "object" }, - "AWS::DAX::Cluster": { + "AWS::CodePipeline::Webhook.WebhookFilterRule": { + "additionalProperties": false, + "properties": { + "JsonPath": { + "type": "string" + }, + "MatchEquals": { + "type": "string" + } + }, + "required": [ + "JsonPath" + ], + "type": "object" + }, + "AWS::Cognito::IdentityPool": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -9842,62 +9550,54 @@ "Properties": { "additionalProperties": false, "properties": { - "AvailabilityZones": { + "AllowUnauthenticatedIdentities": { + "type": "boolean" + }, + "CognitoEvents": { + "type": "object" + }, + "CognitoIdentityProviders": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoIdentityProvider" }, "type": "array" }, - "ClusterName": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IAMRoleARN": { - "type": "string" - }, - "NodeType": { - "type": "string" - }, - "NotificationTopicARN": { - "type": "string" + "CognitoStreams": { + "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoStreams" }, - "ParameterGroupName": { + "DeveloperProviderName": { "type": "string" }, - "PreferredMaintenanceWindow": { + "IdentityPoolName": { "type": "string" }, - "ReplicationFactor": { - "type": "number" + "OpenIdConnectProviderARNs": { + "items": { + "type": "string" + }, + "type": "array" }, - "SSESpecification": { - "$ref": "#/definitions/AWS::DAX::Cluster.SSESpecification" + "PushSync": { + "$ref": "#/definitions/AWS::Cognito::IdentityPool.PushSync" }, - "SecurityGroupIds": { + "SamlProviderARNs": { "items": { "type": "string" }, "type": "array" }, - "SubnetGroupName": { - "type": "string" - }, - "Tags": { + "SupportedLoginProviders": { "type": "object" } }, "required": [ - "IAMRoleARN", - "NodeType", - "ReplicationFactor" + "AllowUnauthenticatedIdentities" ], "type": "object" }, "Type": { "enum": [ - "AWS::DAX::Cluster" + "AWS::Cognito::IdentityPool" ], "type": "string" } @@ -9908,72 +9608,52 @@ ], "type": "object" }, - "AWS::DAX::Cluster.SSESpecification": { + "AWS::Cognito::IdentityPool.CognitoIdentityProvider": { "additionalProperties": false, "properties": { - "SSEEnabled": { + "ClientId": { + "type": "string" + }, + "ProviderName": { + "type": "string" + }, + "ServerSideTokenCheck": { "type": "boolean" } }, "type": "object" }, - "AWS::DAX::ParameterGroup": { + "AWS::Cognito::IdentityPool.CognitoStreams": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "RoleArn": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" + "StreamName": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "ParameterGroupName": { - "type": "string" - }, - "ParameterNameValues": { - "type": "object" - } + "StreamingStatus": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::IdentityPool.PushSync": { + "additionalProperties": false, + "properties": { + "ApplicationArns": { + "items": { + "type": "string" }, - "type": "object" + "type": "array" }, - "Type": { - "enum": [ - "AWS::DAX::ParameterGroup" - ], + "RoleArn": { "type": "string" } }, - "required": [ - "Type" - ], "type": "object" }, - "AWS::DAX::SubnetGroup": { + "AWS::Cognito::IdentityPoolRoleAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10005,27 +9685,24 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "IdentityPoolId": { "type": "string" }, - "SubnetGroupName": { - "type": "string" + "RoleMappings": { + "type": "object" }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" + "Roles": { + "type": "object" } }, "required": [ - "SubnetIds" + "IdentityPoolId" ], "type": "object" }, "Type": { "enum": [ - "AWS::DAX::SubnetGroup" + "AWS::Cognito::IdentityPoolRoleAttachment" ], "type": "string" } @@ -10036,7 +9713,64 @@ ], "type": "object" }, - "AWS::DLM::LifecyclePolicy": { + "AWS::Cognito::IdentityPoolRoleAttachment.MappingRule": { + "additionalProperties": false, + "properties": { + "Claim": { + "type": "string" + }, + "MatchType": { + "type": "string" + }, + "RoleARN": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Claim", + "MatchType", + "RoleARN", + "Value" + ], + "type": "object" + }, + "AWS::Cognito::IdentityPoolRoleAttachment.RoleMapping": { + "additionalProperties": false, + "properties": { + "AmbiguousRoleResolution": { + "type": "string" + }, + "RulesConfiguration": { + "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.MappingRule" + }, + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::Cognito::UserPool": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10068,24 +9802,75 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "AdminCreateUserConfig": { + "$ref": "#/definitions/AWS::Cognito::UserPool.AdminCreateUserConfig" + }, + "AliasAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AutoVerifiedAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DeviceConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPool.DeviceConfiguration" + }, + "EmailConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPool.EmailConfiguration" + }, + "EmailVerificationMessage": { "type": "string" }, - "ExecutionRoleArn": { + "EmailVerificationSubject": { "type": "string" }, - "PolicyDetails": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.PolicyDetails" + "LambdaConfig": { + "$ref": "#/definitions/AWS::Cognito::UserPool.LambdaConfig" }, - "State": { + "MfaConfiguration": { + "type": "string" + }, + "Policies": { + "$ref": "#/definitions/AWS::Cognito::UserPool.Policies" + }, + "Schema": { + "items": { + "$ref": "#/definitions/AWS::Cognito::UserPool.SchemaAttribute" + }, + "type": "array" + }, + "SmsAuthenticationMessage": { + "type": "string" + }, + "SmsConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPool.SmsConfiguration" + }, + "SmsVerificationMessage": { "type": "string" + }, + "UserPoolName": { + "type": "string" + }, + "UserPoolTags": { + "type": "object" + }, + "UsernameAttributes": { + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, "Type": { "enum": [ - "AWS::DLM::LifecyclePolicy" + "AWS::Cognito::UserPool" ], "type": "string" } @@ -10095,89 +9880,184 @@ ], "type": "object" }, - "AWS::DLM::LifecyclePolicy.CreateRule": { + "AWS::Cognito::UserPool.AdminCreateUserConfig": { "additionalProperties": false, "properties": { - "Interval": { + "AllowAdminCreateUserOnly": { + "type": "boolean" + }, + "InviteMessageTemplate": { + "$ref": "#/definitions/AWS::Cognito::UserPool.InviteMessageTemplate" + }, + "UnusedAccountValidityDays": { "type": "number" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.DeviceConfiguration": { + "additionalProperties": false, + "properties": { + "ChallengeRequiredOnNewDevice": { + "type": "boolean" }, - "IntervalUnit": { + "DeviceOnlyRememberedOnUserPrompt": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.EmailConfiguration": { + "additionalProperties": false, + "properties": { + "ReplyToEmailAddress": { "type": "string" }, - "Times": { - "items": { - "type": "string" - }, - "type": "array" + "SourceArn": { + "type": "string" } }, - "required": [ - "Interval", - "IntervalUnit" - ], "type": "object" }, - "AWS::DLM::LifecyclePolicy.PolicyDetails": { + "AWS::Cognito::UserPool.InviteMessageTemplate": { "additionalProperties": false, "properties": { - "ResourceTypes": { - "items": { - "type": "string" - }, - "type": "array" + "EmailMessage": { + "type": "string" }, - "Schedules": { - "items": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Schedule" - }, - "type": "array" + "EmailSubject": { + "type": "string" }, - "TargetTags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "SMSMessage": { + "type": "string" } }, "type": "object" }, - "AWS::DLM::LifecyclePolicy.RetainRule": { + "AWS::Cognito::UserPool.LambdaConfig": { "additionalProperties": false, "properties": { - "Count": { + "CreateAuthChallenge": { + "type": "string" + }, + "CustomMessage": { + "type": "string" + }, + "DefineAuthChallenge": { + "type": "string" + }, + "PostAuthentication": { + "type": "string" + }, + "PostConfirmation": { + "type": "string" + }, + "PreAuthentication": { + "type": "string" + }, + "PreSignUp": { + "type": "string" + }, + "VerifyAuthChallengeResponse": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.NumberAttributeConstraints": { + "additionalProperties": false, + "properties": { + "MaxValue": { + "type": "string" + }, + "MinValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.PasswordPolicy": { + "additionalProperties": false, + "properties": { + "MinimumLength": { "type": "number" + }, + "RequireLowercase": { + "type": "boolean" + }, + "RequireNumbers": { + "type": "boolean" + }, + "RequireSymbols": { + "type": "boolean" + }, + "RequireUppercase": { + "type": "boolean" } }, - "required": [ - "Count" - ], "type": "object" }, - "AWS::DLM::LifecyclePolicy.Schedule": { + "AWS::Cognito::UserPool.Policies": { "additionalProperties": false, "properties": { - "CopyTags": { + "PasswordPolicy": { + "$ref": "#/definitions/AWS::Cognito::UserPool.PasswordPolicy" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.SchemaAttribute": { + "additionalProperties": false, + "properties": { + "AttributeDataType": { + "type": "string" + }, + "DeveloperOnlyAttribute": { "type": "boolean" }, - "CreateRule": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CreateRule" + "Mutable": { + "type": "boolean" }, "Name": { "type": "string" }, - "RetainRule": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.RetainRule" + "NumberAttributeConstraints": { + "$ref": "#/definitions/AWS::Cognito::UserPool.NumberAttributeConstraints" }, - "TagsToAdd": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "Required": { + "type": "boolean" + }, + "StringAttributeConstraints": { + "$ref": "#/definitions/AWS::Cognito::UserPool.StringAttributeConstraints" } }, "type": "object" }, - "AWS::DMS::Certificate": { + "AWS::Cognito::UserPool.SmsConfiguration": { + "additionalProperties": false, + "properties": { + "ExternalId": { + "type": "string" + }, + "SnsCallerArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.StringAttributeConstraints": { + "additionalProperties": false, + "properties": { + "MaxLength": { + "type": "string" + }, + "MinLength": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPoolClient": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10209,31 +10089,56 @@ "Properties": { "additionalProperties": false, "properties": { - "CertificateIdentifier": { + "ClientName": { "type": "string" }, - "CertificatePem": { - "type": "string" + "ExplicitAuthFlows": { + "items": { + "type": "string" + }, + "type": "array" }, - "CertificateWallet": { + "GenerateSecret": { + "type": "boolean" + }, + "ReadAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RefreshTokenValidity": { + "type": "number" + }, + "UserPoolId": { "type": "string" + }, + "WriteAttributes": { + "items": { + "type": "string" + }, + "type": "array" } }, + "required": [ + "UserPoolId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::Certificate" + "AWS::Cognito::UserPoolClient" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::DMS::Endpoint": { + "AWS::Cognito::UserPoolGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10265,67 +10170,30 @@ "Properties": { "additionalProperties": false, "properties": { - "CertificateArn": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "DynamoDbSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.DynamoDbSettings" - }, - "EndpointIdentifier": { - "type": "string" - }, - "EndpointType": { - "type": "string" - }, - "EngineName": { - "type": "string" - }, - "ExtraConnectionAttributes": { - "type": "string" - }, - "KmsKeyId": { + "Description": { "type": "string" }, - "MongoDbSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.MongoDbSettings" - }, - "Password": { + "GroupName": { "type": "string" }, - "Port": { + "Precedence": { "type": "number" }, - "S3Settings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.S3Settings" - }, - "ServerName": { - "type": "string" - }, - "SslMode": { + "RoleArn": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Username": { + "UserPoolId": { "type": "string" } }, "required": [ - "EndpointType", - "EngineName" + "UserPoolId" ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::Endpoint" + "AWS::Cognito::UserPoolGroup" ], "type": "string" } @@ -10336,82 +10204,7 @@ ], "type": "object" }, - "AWS::DMS::Endpoint.DynamoDbSettings": { - "additionalProperties": false, - "properties": { - "ServiceAccessRoleArn": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::DMS::Endpoint.MongoDbSettings": { - "additionalProperties": false, - "properties": { - "AuthMechanism": { - "type": "string" - }, - "AuthSource": { - "type": "string" - }, - "AuthType": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "DocsToInvestigate": { - "type": "string" - }, - "ExtractDocId": { - "type": "string" - }, - "NestingLevel": { - "type": "string" - }, - "Password": { - "type": "string" - }, - "Port": { - "type": "number" - }, - "ServerName": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::DMS::Endpoint.S3Settings": { - "additionalProperties": false, - "properties": { - "BucketFolder": { - "type": "string" - }, - "BucketName": { - "type": "string" - }, - "CompressionType": { - "type": "string" - }, - "CsvDelimiter": { - "type": "string" - }, - "CsvRowDelimiter": { - "type": "string" - }, - "ExternalTableDefinition": { - "type": "string" - }, - "ServiceAccessRoleArn": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::DMS::EventSubscription": { + "AWS::Cognito::UserPoolUser": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10443,45 +10236,45 @@ "Properties": { "additionalProperties": false, "properties": { - "Enabled": { - "type": "boolean" - }, - "EventCategories": { + "DesiredDeliveryMediums": { "items": { "type": "string" }, "type": "array" }, - "SnsTopicArn": { + "ForceAliasCreation": { + "type": "boolean" + }, + "MessageAction": { "type": "string" }, - "SourceIds": { + "UserAttributes": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType" }, "type": "array" }, - "SourceType": { + "UserPoolId": { "type": "string" }, - "SubscriptionName": { + "Username": { "type": "string" }, - "Tags": { + "ValidationData": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType" }, "type": "array" } }, "required": [ - "SnsTopicArn" + "UserPoolId" ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::EventSubscription" + "AWS::Cognito::UserPoolUser" ], "type": "string" } @@ -10492,7 +10285,19 @@ ], "type": "object" }, - "AWS::DMS::ReplicationInstance": { + "AWS::Cognito::UserPoolUser.AttributeType": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPoolUserToGroupAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10524,63 +10329,26 @@ "Properties": { "additionalProperties": false, "properties": { - "AllocatedStorage": { - "type": "number" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AvailabilityZone": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "KmsKeyId": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicationInstanceClass": { + "GroupName": { "type": "string" }, - "ReplicationInstanceIdentifier": { + "UserPoolId": { "type": "string" }, - "ReplicationSubnetGroupIdentifier": { + "Username": { "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VpcSecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" } }, "required": [ - "ReplicationInstanceClass" + "GroupName", + "UserPoolId", + "Username" ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::ReplicationInstance" + "AWS::Cognito::UserPoolUserToGroupAttachment" ], "type": "string" } @@ -10591,7 +10359,7 @@ ], "type": "object" }, - "AWS::DMS::ReplicationSubnetGroup": { + "AWS::Config::AggregationAuthorization": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10623,34 +10391,22 @@ "Properties": { "additionalProperties": false, "properties": { - "ReplicationSubnetGroupDescription": { + "AuthorizedAccountId": { "type": "string" }, - "ReplicationSubnetGroupIdentifier": { + "AuthorizedAwsRegion": { "type": "string" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" } }, "required": [ - "ReplicationSubnetGroupDescription", - "SubnetIds" + "AuthorizedAccountId", + "AuthorizedAwsRegion" ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::ReplicationSubnetGroup" + "AWS::Config::AggregationAuthorization" ], "type": "string" } @@ -10661,7 +10417,7 @@ ], "type": "object" }, - "AWS::DMS::ReplicationTask": { + "AWS::Config::ConfigRule": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10693,49 +10449,33 @@ "Properties": { "additionalProperties": false, "properties": { - "CdcStartTime": { - "type": "number" - }, - "MigrationType": { - "type": "string" - }, - "ReplicationInstanceArn": { - "type": "string" - }, - "ReplicationTaskIdentifier": { + "ConfigRuleName": { "type": "string" }, - "ReplicationTaskSettings": { + "Description": { "type": "string" }, - "SourceEndpointArn": { - "type": "string" + "InputParameters": { + "type": "object" }, - "TableMappings": { + "MaximumExecutionFrequency": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "Scope": { + "$ref": "#/definitions/AWS::Config::ConfigRule.Scope" }, - "TargetEndpointArn": { - "type": "string" + "Source": { + "$ref": "#/definitions/AWS::Config::ConfigRule.Source" } }, "required": [ - "MigrationType", - "ReplicationInstanceArn", - "SourceEndpointArn", - "TableMappings", - "TargetEndpointArn" + "Source" ], "type": "object" }, "Type": { "enum": [ - "AWS::DMS::ReplicationTask" + "AWS::Config::ConfigRule" ], "type": "string" } @@ -10746,14 +10486,76 @@ ], "type": "object" }, - "AWS::DataPipeline::Pipeline": { + "AWS::Config::ConfigRule.Scope": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" + "ComplianceResourceId": { + "type": "string" + }, + "ComplianceResourceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TagKey": { + "type": "string" + }, + "TagValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Config::ConfigRule.Source": { + "additionalProperties": false, + "properties": { + "Owner": { + "type": "string" + }, + "SourceDetails": { + "items": { + "$ref": "#/definitions/AWS::Config::ConfigRule.SourceDetail" + }, + "type": "array" + }, + "SourceIdentifier": { + "type": "string" + } + }, + "required": [ + "Owner", + "SourceIdentifier" + ], + "type": "object" + }, + "AWS::Config::ConfigRule.SourceDetail": { + "additionalProperties": false, + "properties": { + "EventSource": { + "type": "string" + }, + "MaximumExecutionFrequency": { + "type": "string" + }, + "MessageType": { + "type": "string" + } + }, + "required": [ + "EventSource", + "MessageType" + ], + "type": "object" + }, + "AWS::Config::ConfigurationAggregator": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], "type": "string" }, @@ -10778,49 +10580,27 @@ "Properties": { "additionalProperties": false, "properties": { - "Activate": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "ParameterObjects": { - "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterObject" - }, - "type": "array" - }, - "ParameterValues": { + "AccountAggregationSources": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterValue" + "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.AccountAggregationSource" }, "type": "array" }, - "PipelineObjects": { - "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineObject" - }, - "type": "array" + "ConfigurationAggregatorName": { + "type": "string" }, - "PipelineTags": { - "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineTag" - }, - "type": "array" + "OrganizationAggregationSource": { + "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.OrganizationAggregationSource" } }, "required": [ - "Name", - "ParameterObjects" + "ConfigurationAggregatorName" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataPipeline::Pipeline" + "AWS::Config::ConfigurationAggregator" ], "type": "string" } @@ -10831,115 +10611,52 @@ ], "type": "object" }, - "AWS::DataPipeline::Pipeline.Field": { + "AWS::Config::ConfigurationAggregator.AccountAggregationSource": { "additionalProperties": false, "properties": { - "Key": { - "type": "string" - }, - "RefValue": { - "type": "string" + "AccountIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.ParameterAttribute": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" + "AllAwsRegions": { + "type": "boolean" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Key", - "StringValue" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.ParameterObject": { - "additionalProperties": false, - "properties": { - "Attributes": { + "AwsRegions": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterAttribute" + "type": "string" }, "type": "array" - }, - "Id": { - "type": "string" } }, "required": [ - "Attributes", - "Id" + "AccountIds" ], "type": "object" }, - "AWS::DataPipeline::Pipeline.ParameterValue": { + "AWS::Config::ConfigurationAggregator.OrganizationAggregationSource": { "additionalProperties": false, "properties": { - "Id": { - "type": "string" + "AllAwsRegions": { + "type": "boolean" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Id", - "StringValue" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.PipelineObject": { - "additionalProperties": false, - "properties": { - "Fields": { + "AwsRegions": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.Field" + "type": "string" }, "type": "array" }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "Fields", - "Id", - "Name" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.PipelineTag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { + "RoleArn": { "type": "string" } }, "required": [ - "Key", - "Value" + "RoleArn" ], "type": "object" }, - "AWS::DirectoryService::MicrosoftAD": { + "AWS::Config::ConfigurationRecorder": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -10971,38 +10688,24 @@ "Properties": { "additionalProperties": false, "properties": { - "CreateAlias": { - "type": "boolean" - }, - "Edition": { - "type": "string" - }, - "EnableSso": { - "type": "boolean" - }, "Name": { "type": "string" }, - "Password": { - "type": "string" + "RecordingGroup": { + "$ref": "#/definitions/AWS::Config::ConfigurationRecorder.RecordingGroup" }, - "ShortName": { + "RoleARN": { "type": "string" - }, - "VpcSettings": { - "$ref": "#/definitions/AWS::DirectoryService::MicrosoftAD.VpcSettings" } }, "required": [ - "Name", - "Password", - "VpcSettings" + "RoleARN" ], "type": "object" }, "Type": { "enum": [ - "AWS::DirectoryService::MicrosoftAD" + "AWS::Config::ConfigurationRecorder" ], "type": "string" } @@ -11013,26 +10716,25 @@ ], "type": "object" }, - "AWS::DirectoryService::MicrosoftAD.VpcSettings": { + "AWS::Config::ConfigurationRecorder.RecordingGroup": { "additionalProperties": false, "properties": { - "SubnetIds": { + "AllSupported": { + "type": "boolean" + }, + "IncludeGlobalResourceTypes": { + "type": "boolean" + }, + "ResourceTypes": { "items": { "type": "string" }, "type": "array" - }, - "VpcId": { - "type": "string" } }, - "required": [ - "SubnetIds", - "VpcId" - ], "type": "object" }, - "AWS::DirectoryService::SimpleAD": { + "AWS::Config::DeliveryChannel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11064,42 +10766,30 @@ "Properties": { "additionalProperties": false, "properties": { - "CreateAlias": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "EnableSso": { - "type": "boolean" + "ConfigSnapshotDeliveryProperties": { + "$ref": "#/definitions/AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties" }, "Name": { "type": "string" }, - "Password": { + "S3BucketName": { "type": "string" }, - "ShortName": { + "S3KeyPrefix": { "type": "string" }, - "Size": { + "SnsTopicARN": { "type": "string" - }, - "VpcSettings": { - "$ref": "#/definitions/AWS::DirectoryService::SimpleAD.VpcSettings" } }, "required": [ - "Name", - "Password", - "Size", - "VpcSettings" + "S3BucketName" ], "type": "object" }, "Type": { "enum": [ - "AWS::DirectoryService::SimpleAD" + "AWS::Config::DeliveryChannel" ], "type": "string" } @@ -11110,26 +10800,16 @@ ], "type": "object" }, - "AWS::DirectoryService::SimpleAD.VpcSettings": { + "AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties": { "additionalProperties": false, "properties": { - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "VpcId": { + "DeliveryFrequency": { "type": "string" } }, - "required": [ - "SubnetIds", - "VpcId" - ], "type": "object" }, - "AWS::DynamoDB::Table": { + "AWS::DAX::Cluster": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11161,66 +10841,62 @@ "Properties": { "additionalProperties": false, "properties": { - "AttributeDefinitions": { + "AvailabilityZones": { "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.AttributeDefinition" + "type": "string" }, "type": "array" }, - "BillingMode": { + "ClusterName": { "type": "string" }, - "GlobalSecondaryIndexes": { - "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.GlobalSecondaryIndex" - }, - "type": "array" + "Description": { + "type": "string" }, - "KeySchema": { - "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" - }, - "type": "array" + "IAMRoleARN": { + "type": "string" }, - "LocalSecondaryIndexes": { - "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.LocalSecondaryIndex" - }, - "type": "array" + "NodeType": { + "type": "string" }, - "PointInTimeRecoverySpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.PointInTimeRecoverySpecification" + "NotificationTopicARN": { + "type": "string" }, - "ProvisionedThroughput": { - "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput" + "ParameterGroupName": { + "type": "string" }, - "SSESpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.SSESpecification" + "PreferredMaintenanceWindow": { + "type": "string" }, - "StreamSpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.StreamSpecification" + "ReplicationFactor": { + "type": "number" }, - "TableName": { - "type": "string" + "SSESpecification": { + "$ref": "#/definitions/AWS::DAX::Cluster.SSESpecification" }, - "Tags": { + "SecurityGroupIds": { "items": { - "$ref": "#/definitions/Tag" + "type": "string" }, "type": "array" }, - "TimeToLiveSpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.TimeToLiveSpecification" + "SubnetGroupName": { + "type": "string" + }, + "Tags": { + "type": "object" } }, "required": [ - "KeySchema" + "IAMRoleARN", + "NodeType", + "ReplicationFactor" ], "type": "object" }, "Type": { "enum": [ - "AWS::DynamoDB::Table" + "AWS::DAX::Cluster" ], "type": "string" } @@ -11231,168 +10907,16 @@ ], "type": "object" }, - "AWS::DynamoDB::Table.AttributeDefinition": { - "additionalProperties": false, - "properties": { - "AttributeName": { - "type": "string" - }, - "AttributeType": { - "type": "string" - } - }, - "required": [ - "AttributeName", - "AttributeType" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.GlobalSecondaryIndex": { - "additionalProperties": false, - "properties": { - "IndexName": { - "type": "string" - }, - "KeySchema": { - "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" - }, - "type": "array" - }, - "Projection": { - "$ref": "#/definitions/AWS::DynamoDB::Table.Projection" - }, - "ProvisionedThroughput": { - "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput" - } - }, - "required": [ - "IndexName", - "KeySchema", - "Projection" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.KeySchema": { - "additionalProperties": false, - "properties": { - "AttributeName": { - "type": "string" - }, - "KeyType": { - "type": "string" - } - }, - "required": [ - "AttributeName", - "KeyType" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.LocalSecondaryIndex": { - "additionalProperties": false, - "properties": { - "IndexName": { - "type": "string" - }, - "KeySchema": { - "items": { - "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" - }, - "type": "array" - }, - "Projection": { - "$ref": "#/definitions/AWS::DynamoDB::Table.Projection" - } - }, - "required": [ - "IndexName", - "KeySchema", - "Projection" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.PointInTimeRecoverySpecification": { - "additionalProperties": false, - "properties": { - "PointInTimeRecoveryEnabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::DynamoDB::Table.Projection": { - "additionalProperties": false, - "properties": { - "NonKeyAttributes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ProjectionType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::DynamoDB::Table.ProvisionedThroughput": { - "additionalProperties": false, - "properties": { - "ReadCapacityUnits": { - "type": "number" - }, - "WriteCapacityUnits": { - "type": "number" - } - }, - "required": [ - "ReadCapacityUnits", - "WriteCapacityUnits" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.SSESpecification": { + "AWS::DAX::Cluster.SSESpecification": { "additionalProperties": false, "properties": { "SSEEnabled": { "type": "boolean" } }, - "required": [ - "SSEEnabled" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.StreamSpecification": { - "additionalProperties": false, - "properties": { - "StreamViewType": { - "type": "string" - } - }, - "required": [ - "StreamViewType" - ], - "type": "object" - }, - "AWS::DynamoDB::Table.TimeToLiveSpecification": { - "additionalProperties": false, - "properties": { - "AttributeName": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - } - }, - "required": [ - "AttributeName", - "Enabled" - ], "type": "object" }, - "AWS::EC2::CustomerGateway": { + "AWS::DAX::ParameterGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11424,43 +10948,31 @@ "Properties": { "additionalProperties": false, "properties": { - "BgpAsn": { - "type": "number" - }, - "IpAddress": { + "Description": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { + "ParameterGroupName": { "type": "string" + }, + "ParameterNameValues": { + "type": "object" } }, - "required": [ - "BgpAsn", - "IpAddress", - "Type" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::CustomerGateway" + "AWS::DAX::ParameterGroup" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::DHCPOptions": { + "AWS::DAX::SubnetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11492,52 +11004,38 @@ "Properties": { "additionalProperties": false, "properties": { - "DomainName": { + "Description": { "type": "string" }, - "DomainNameServers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "NetbiosNameServers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "NetbiosNodeType": { - "type": "number" + "SubnetGroupName": { + "type": "string" }, - "NtpServers": { + "SubnetIds": { "items": { "type": "string" }, "type": "array" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" } }, + "required": [ + "SubnetIds" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::DHCPOptions" + "AWS::DAX::SubnetGroup" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::EC2Fleet": { + "AWS::DLM::LifecyclePolicy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11569,192 +11067,116 @@ "Properties": { "additionalProperties": false, "properties": { - "ExcessCapacityTerminationPolicy": { + "Description": { "type": "string" }, - "LaunchTemplateConfigs": { - "items": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest" - }, - "type": "array" - }, - "OnDemandOptions": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.OnDemandOptionsRequest" - }, - "ReplaceUnhealthyInstances": { - "type": "boolean" - }, - "SpotOptions": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.SpotOptionsRequest" - }, - "TagSpecifications": { - "items": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.TagSpecification" - }, - "type": "array" - }, - "TargetCapacitySpecification": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest" - }, - "TerminateInstancesWithExpiration": { - "type": "boolean" - }, - "Type": { + "ExecutionRoleArn": { "type": "string" }, - "ValidFrom": { - "type": "number" + "PolicyDetails": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.PolicyDetails" }, - "ValidUntil": { - "type": "number" + "State": { + "type": "string" } }, - "required": [ - "LaunchTemplateConfigs", - "TargetCapacitySpecification" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::EC2Fleet" + "AWS::DLM::LifecyclePolicy" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest": { - "additionalProperties": false, - "properties": { - "LaunchTemplateSpecification": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest" - }, - "Overrides": { - "items": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest": { + "AWS::DLM::LifecyclePolicy.CreateRule": { "additionalProperties": false, "properties": { - "AvailabilityZone": { - "type": "string" - }, - "InstanceType": { - "type": "string" - }, - "MaxPrice": { - "type": "string" - }, - "Priority": { + "Interval": { "type": "number" }, - "SubnetId": { + "IntervalUnit": { "type": "string" }, - "WeightedCapacity": { - "type": "number" + "Times": { + "items": { + "type": "string" + }, + "type": "array" } }, + "required": [ + "Interval", + "IntervalUnit" + ], "type": "object" }, - "AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest": { + "AWS::DLM::LifecyclePolicy.PolicyDetails": { "additionalProperties": false, "properties": { - "LaunchTemplateId": { - "type": "string" + "ResourceTypes": { + "items": { + "type": "string" + }, + "type": "array" }, - "LaunchTemplateName": { - "type": "string" + "Schedules": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Schedule" + }, + "type": "array" }, - "Version": { - "type": "string" + "TargetTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "type": "object" }, - "AWS::EC2::EC2Fleet.OnDemandOptionsRequest": { + "AWS::DLM::LifecyclePolicy.RetainRule": { "additionalProperties": false, "properties": { - "AllocationStrategy": { - "type": "string" + "Count": { + "type": "number" } }, + "required": [ + "Count" + ], "type": "object" }, - "AWS::EC2::EC2Fleet.SpotOptionsRequest": { + "AWS::DLM::LifecyclePolicy.Schedule": { "additionalProperties": false, "properties": { - "AllocationStrategy": { - "type": "string" + "CopyTags": { + "type": "boolean" }, - "InstanceInterruptionBehavior": { - "type": "string" + "CreateRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CreateRule" }, - "InstancePoolsToUseCount": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::EC2::EC2Fleet.TagRequest": { - "additionalProperties": false, - "properties": { - "Key": { + "Name": { "type": "string" }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::EC2Fleet.TagSpecification": { - "additionalProperties": false, - "properties": { - "ResourceType": { - "type": "string" + "RetainRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.RetainRule" }, - "Tags": { + "TagsToAdd": { "items": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.TagRequest" + "$ref": "#/definitions/Tag" }, "type": "array" } }, "type": "object" }, - "AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest": { - "additionalProperties": false, - "properties": { - "DefaultTargetCapacityType": { - "type": "string" - }, - "OnDemandTargetCapacity": { - "type": "number" - }, - "SpotTargetCapacity": { - "type": "number" - }, - "TotalTargetCapacity": { - "type": "number" - } - }, - "required": [ - "TotalTargetCapacity" - ], - "type": "object" - }, - "AWS::EC2::EIP": { + "AWS::DMS::Certificate": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11786,13 +11208,13 @@ "Properties": { "additionalProperties": false, "properties": { - "Domain": { + "CertificateIdentifier": { "type": "string" }, - "InstanceId": { + "CertificatePem": { "type": "string" }, - "PublicIpv4Pool": { + "CertificateWallet": { "type": "string" } }, @@ -11800,7 +11222,7 @@ }, "Type": { "enum": [ - "AWS::EC2::EIP" + "AWS::DMS::Certificate" ], "type": "string" } @@ -11810,7 +11232,7 @@ ], "type": "object" }, - "AWS::EC2::EIPAssociation": { + "AWS::DMS::Endpoint": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11842,37 +11264,192 @@ "Properties": { "additionalProperties": false, "properties": { - "AllocationId": { + "CertificateArn": { "type": "string" }, - "EIP": { + "DatabaseName": { "type": "string" }, - "InstanceId": { + "DynamoDbSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.DynamoDbSettings" + }, + "ElasticsearchSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.ElasticsearchSettings" + }, + "EndpointIdentifier": { "type": "string" }, - "NetworkInterfaceId": { + "EndpointType": { "type": "string" }, - "PrivateIpAddress": { + "EngineName": { + "type": "string" + }, + "ExtraConnectionAttributes": { + "type": "string" + }, + "KinesisSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.KinesisSettings" + }, + "KmsKeyId": { + "type": "string" + }, + "MongoDbSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.MongoDbSettings" + }, + "Password": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "S3Settings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.S3Settings" + }, + "ServerName": { + "type": "string" + }, + "SslMode": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Username": { "type": "string" } }, + "required": [ + "EndpointType", + "EngineName" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::EIPAssociation" + "AWS::DMS::Endpoint" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::EgressOnlyInternetGateway": { + "AWS::DMS::Endpoint.DynamoDbSettings": { + "additionalProperties": false, + "properties": { + "ServiceAccessRoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.ElasticsearchSettings": { + "additionalProperties": false, + "properties": { + "EndpointUri": { + "type": "string" + }, + "ErrorRetryDuration": { + "type": "number" + }, + "FullLoadErrorPercentage": { + "type": "number" + }, + "ServiceAccessRoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.KinesisSettings": { + "additionalProperties": false, + "properties": { + "MessageFormat": { + "type": "string" + }, + "ServiceAccessRoleArn": { + "type": "string" + }, + "StreamArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.MongoDbSettings": { + "additionalProperties": false, + "properties": { + "AuthMechanism": { + "type": "string" + }, + "AuthSource": { + "type": "string" + }, + "AuthType": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DocsToInvestigate": { + "type": "string" + }, + "ExtractDocId": { + "type": "string" + }, + "NestingLevel": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "ServerName": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.S3Settings": { + "additionalProperties": false, + "properties": { + "BucketFolder": { + "type": "string" + }, + "BucketName": { + "type": "string" + }, + "CompressionType": { + "type": "string" + }, + "CsvDelimiter": { + "type": "string" + }, + "CsvRowDelimiter": { + "type": "string" + }, + "ExternalTableDefinition": { + "type": "string" + }, + "ServiceAccessRoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::EventSubscription": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11904,18 +11481,45 @@ "Properties": { "additionalProperties": false, "properties": { - "VpcId": { + "Enabled": { + "type": "boolean" + }, + "EventCategories": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnsTopicArn": { + "type": "string" + }, + "SourceIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceType": { "type": "string" + }, + "SubscriptionName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "VpcId" + "SnsTopicArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::EgressOnlyInternetGateway" + "AWS::DMS::EventSubscription" ], "type": "string" } @@ -11926,7 +11530,7 @@ ], "type": "object" }, - "AWS::EC2::FlowLog": { + "AWS::DMS::ReplicationInstance": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -11958,38 +11562,63 @@ "Properties": { "additionalProperties": false, "properties": { - "DeliverLogsPermissionArn": { + "AllocatedStorage": { + "type": "number" + }, + "AllowMajorVersionUpgrade": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZone": { "type": "string" }, - "LogDestination": { + "EngineVersion": { "type": "string" }, - "LogDestinationType": { + "KmsKeyId": { "type": "string" }, - "LogGroupName": { + "MultiAZ": { + "type": "boolean" + }, + "PreferredMaintenanceWindow": { "type": "string" }, - "ResourceId": { + "PubliclyAccessible": { + "type": "boolean" + }, + "ReplicationInstanceClass": { "type": "string" }, - "ResourceType": { + "ReplicationInstanceIdentifier": { "type": "string" }, - "TrafficType": { + "ReplicationSubnetGroupIdentifier": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "ResourceId", - "ResourceType", - "TrafficType" + "ReplicationInstanceClass" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::FlowLog" + "AWS::DMS::ReplicationInstance" ], "type": "string" } @@ -12000,7 +11629,7 @@ ], "type": "object" }, - "AWS::EC2::Host": { + "AWS::DMS::ReplicationSubnetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -12032,25 +11661,34 @@ "Properties": { "additionalProperties": false, "properties": { - "AutoPlacement": { + "ReplicationSubnetGroupDescription": { "type": "string" }, - "AvailabilityZone": { + "ReplicationSubnetGroupIdentifier": { "type": "string" }, - "InstanceType": { - "type": "string" - } - }, - "required": [ - "AvailabilityZone", - "InstanceType" - ], + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ReplicationSubnetGroupDescription", + "SubnetIds" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Host" + "AWS::DMS::ReplicationSubnetGroup" ], "type": "string" } @@ -12061,12 +11699,9 @@ ], "type": "object" }, - "AWS::EC2::Instance": { + "AWS::DMS::ReplicationTask": { "additionalProperties": false, "properties": { - "CreationPolicy": { - "type": "object" - }, "DeletionPolicy": { "enum": [ "Delete", @@ -12096,405 +11731,253 @@ "Properties": { "additionalProperties": false, "properties": { - "AdditionalInfo": { - "type": "string" - }, - "Affinity": { - "type": "string" + "CdcStartTime": { + "type": "number" }, - "AvailabilityZone": { + "MigrationType": { "type": "string" }, - "BlockDeviceMappings": { - "items": { - "$ref": "#/definitions/AWS::EC2::Instance.BlockDeviceMapping" - }, - "type": "array" - }, - "CreditSpecification": { - "$ref": "#/definitions/AWS::EC2::Instance.CreditSpecification" - }, - "DisableApiTermination": { - "type": "boolean" - }, - "EbsOptimized": { - "type": "boolean" - }, - "ElasticGpuSpecifications": { - "items": { - "$ref": "#/definitions/AWS::EC2::Instance.ElasticGpuSpecification" - }, - "type": "array" - }, - "ElasticInferenceAccelerators": { - "items": { - "$ref": "#/definitions/AWS::EC2::Instance.ElasticInferenceAccelerator" - }, - "type": "array" - }, - "HostId": { + "ReplicationInstanceArn": { "type": "string" }, - "IamInstanceProfile": { + "ReplicationTaskIdentifier": { "type": "string" }, - "ImageId": { + "ReplicationTaskSettings": { "type": "string" }, - "InstanceInitiatedShutdownBehavior": { + "SourceEndpointArn": { "type": "string" }, - "InstanceType": { + "TableMappings": { "type": "string" }, - "Ipv6AddressCount": { - "type": "number" - }, - "Ipv6Addresses": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "KernelId": { + "TargetEndpointArn": { "type": "string" - }, - "KeyName": { + } + }, + "required": [ + "MigrationType", + "ReplicationInstanceArn", + "SourceEndpointArn", + "TableMappings", + "TargetEndpointArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DMS::ReplicationTask" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - "LaunchTemplate": { - "$ref": "#/definitions/AWS::EC2::Instance.LaunchTemplateSpecification" - }, - "LicenseSpecifications": { + { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.LicenseSpecification" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" - }, - "Monitoring": { + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Activate": { "type": "boolean" }, - "NetworkInterfaces": { - "items": { - "$ref": "#/definitions/AWS::EC2::Instance.NetworkInterface" - }, - "type": "array" - }, - "PlacementGroupName": { - "type": "string" - }, - "PrivateIpAddress": { + "Description": { "type": "string" }, - "RamdiskId": { + "Name": { "type": "string" }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SecurityGroups": { + "ParameterObjects": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterObject" }, "type": "array" }, - "SourceDestCheck": { - "type": "boolean" - }, - "SsmAssociations": { + "ParameterValues": { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.SsmAssociation" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterValue" }, "type": "array" }, - "SubnetId": { - "type": "string" - }, - "Tags": { + "PipelineObjects": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineObject" }, "type": "array" }, - "Tenancy": { - "type": "string" - }, - "UserData": { - "type": "string" - }, - "Volumes": { + "PipelineTags": { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.Volume" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineTag" }, "type": "array" } }, + "required": [ + "Name", + "ParameterObjects" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Instance" + "AWS::DataPipeline::Pipeline" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::Instance.AssociationParameter": { + "AWS::DataPipeline::Pipeline.Field": { "additionalProperties": false, "properties": { "Key": { "type": "string" }, - "Value": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "AWS::EC2::Instance.BlockDeviceMapping": { - "additionalProperties": false, - "properties": { - "DeviceName": { - "type": "string" - }, - "Ebs": { - "$ref": "#/definitions/AWS::EC2::Instance.Ebs" - }, - "NoDevice": { - "$ref": "#/definitions/AWS::EC2::Instance.NoDevice" - }, - "VirtualName": { - "type": "string" - } - }, - "required": [ - "DeviceName" - ], - "type": "object" - }, - "AWS::EC2::Instance.CreditSpecification": { - "additionalProperties": false, - "properties": { - "CPUCredits": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::Instance.Ebs": { - "additionalProperties": false, - "properties": { - "DeleteOnTermination": { - "type": "boolean" - }, - "Encrypted": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "SnapshotId": { + "RefValue": { "type": "string" }, - "VolumeSize": { - "type": "number" - }, - "VolumeType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::Instance.ElasticGpuSpecification": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::EC2::Instance.ElasticInferenceAccelerator": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::EC2::Instance.InstanceIpv6Address": { - "additionalProperties": false, - "properties": { - "Ipv6Address": { + "StringValue": { "type": "string" } }, "required": [ - "Ipv6Address" + "Key" ], "type": "object" }, - "AWS::EC2::Instance.LaunchTemplateSpecification": { + "AWS::DataPipeline::Pipeline.ParameterAttribute": { "additionalProperties": false, "properties": { - "LaunchTemplateId": { - "type": "string" - }, - "LaunchTemplateName": { + "Key": { "type": "string" }, - "Version": { - "type": "string" - } - }, - "required": [ - "Version" - ], - "type": "object" - }, - "AWS::EC2::Instance.LicenseSpecification": { - "additionalProperties": false, - "properties": { - "LicenseConfigurationArn": { + "StringValue": { "type": "string" } }, "required": [ - "LicenseConfigurationArn" + "Key", + "StringValue" ], "type": "object" }, - "AWS::EC2::Instance.NetworkInterface": { + "AWS::DataPipeline::Pipeline.ParameterObject": { "additionalProperties": false, "properties": { - "AssociatePublicIpAddress": { - "type": "boolean" - }, - "DeleteOnTermination": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "DeviceIndex": { - "type": "string" - }, - "GroupSet": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Ipv6AddressCount": { - "type": "number" - }, - "Ipv6Addresses": { - "items": { - "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address" - }, - "type": "array" - }, - "NetworkInterfaceId": { - "type": "string" - }, - "PrivateIpAddress": { - "type": "string" - }, - "PrivateIpAddresses": { + "Attributes": { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.PrivateIpAddressSpecification" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterAttribute" }, "type": "array" }, - "SecondaryPrivateIpAddressCount": { - "type": "number" - }, - "SubnetId": { + "Id": { "type": "string" } }, "required": [ - "DeviceIndex" + "Attributes", + "Id" ], "type": "object" }, - "AWS::EC2::Instance.NoDevice": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "AWS::EC2::Instance.PrivateIpAddressSpecification": { + "AWS::DataPipeline::Pipeline.ParameterValue": { "additionalProperties": false, "properties": { - "Primary": { - "type": "boolean" + "Id": { + "type": "string" }, - "PrivateIpAddress": { + "StringValue": { "type": "string" } }, "required": [ - "Primary", - "PrivateIpAddress" + "Id", + "StringValue" ], "type": "object" }, - "AWS::EC2::Instance.SsmAssociation": { + "AWS::DataPipeline::Pipeline.PipelineObject": { "additionalProperties": false, "properties": { - "AssociationParameters": { + "Fields": { "items": { - "$ref": "#/definitions/AWS::EC2::Instance.AssociationParameter" + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.Field" }, "type": "array" }, - "DocumentName": { + "Id": { + "type": "string" + }, + "Name": { "type": "string" } }, "required": [ - "DocumentName" + "Fields", + "Id", + "Name" ], "type": "object" }, - "AWS::EC2::Instance.Volume": { + "AWS::DataPipeline::Pipeline.PipelineTag": { "additionalProperties": false, "properties": { - "Device": { + "Key": { "type": "string" }, - "VolumeId": { + "Value": { "type": "string" } }, "required": [ - "Device", - "VolumeId" + "Key", + "Value" ], "type": "object" }, - "AWS::EC2::InternetGateway": { + "AWS::DirectoryService::MicrosoftAD": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -12526,28 +12009,68 @@ "Properties": { "additionalProperties": false, "properties": { - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "CreateAlias": { + "type": "boolean" + }, + "Edition": { + "type": "string" + }, + "EnableSso": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/AWS::DirectoryService::MicrosoftAD.VpcSettings" } }, + "required": [ + "Name", + "Password", + "VpcSettings" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::InternetGateway" + "AWS::DirectoryService::MicrosoftAD" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::LaunchTemplate": { + "AWS::DirectoryService::MicrosoftAD.VpcSettings": { + "additionalProperties": false, + "properties": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "SubnetIds", + "VpcId" + ], + "type": "object" + }, + "AWS::DirectoryService::SimpleAD": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -12579,331 +12102,72 @@ "Properties": { "additionalProperties": false, "properties": { - "LaunchTemplateData": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateData" + "CreateAlias": { + "type": "boolean" }, - "LaunchTemplateName": { + "Description": { + "type": "string" + }, + "EnableSso": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { "type": "string" + }, + "Size": { + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/AWS::DirectoryService::SimpleAD.VpcSettings" } }, + "required": [ + "Name", + "Password", + "Size", + "VpcSettings" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::LaunchTemplate" + "AWS::DirectoryService::SimpleAD" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::LaunchTemplate.BlockDeviceMapping": { + "AWS::DirectoryService::SimpleAD.VpcSettings": { "additionalProperties": false, "properties": { - "DeviceName": { - "type": "string" + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "Ebs": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ebs" - }, - "NoDevice": { - "type": "string" - }, - "VirtualName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.CreditSpecification": { - "additionalProperties": false, - "properties": { - "CpuCredits": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.Ebs": { - "additionalProperties": false, - "properties": { - "DeleteOnTermination": { - "type": "boolean" - }, - "Encrypted": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "KmsKeyId": { - "type": "string" - }, - "SnapshotId": { - "type": "string" - }, - "VolumeSize": { - "type": "number" - }, - "VolumeType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.ElasticGpuSpecification": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.IamInstanceProfile": { - "additionalProperties": false, - "properties": { - "Arn": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.InstanceMarketOptions": { - "additionalProperties": false, - "properties": { - "MarketType": { - "type": "string" - }, - "SpotOptions": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.SpotOptions" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.Ipv6Add": { - "additionalProperties": false, - "properties": { - "Ipv6Address": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.LaunchTemplateData": { - "additionalProperties": false, - "properties": { - "BlockDeviceMappings": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.BlockDeviceMapping" - }, - "type": "array" - }, - "CreditSpecification": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CreditSpecification" - }, - "DisableApiTermination": { - "type": "boolean" - }, - "EbsOptimized": { - "type": "boolean" - }, - "ElasticGpuSpecifications": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.ElasticGpuSpecification" - }, - "type": "array" - }, - "IamInstanceProfile": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.IamInstanceProfile" - }, - "ImageId": { - "type": "string" - }, - "InstanceInitiatedShutdownBehavior": { - "type": "string" - }, - "InstanceMarketOptions": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.InstanceMarketOptions" - }, - "InstanceType": { - "type": "string" - }, - "KernelId": { - "type": "string" - }, - "KeyName": { - "type": "string" - }, - "Monitoring": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Monitoring" - }, - "NetworkInterfaces": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.NetworkInterface" - }, - "type": "array" - }, - "Placement": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Placement" - }, - "RamDiskId": { - "type": "string" - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "TagSpecifications": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.TagSpecification" - }, - "type": "array" - }, - "UserData": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.Monitoring": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.NetworkInterface": { - "additionalProperties": false, - "properties": { - "AssociatePublicIpAddress": { - "type": "boolean" - }, - "DeleteOnTermination": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "DeviceIndex": { - "type": "number" - }, - "Groups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Ipv6AddressCount": { - "type": "number" - }, - "Ipv6Addresses": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ipv6Add" - }, - "type": "array" - }, - "NetworkInterfaceId": { - "type": "string" - }, - "PrivateIpAddress": { - "type": "string" - }, - "PrivateIpAddresses": { - "items": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.PrivateIpAdd" - }, - "type": "array" - }, - "SecondaryPrivateIpAddressCount": { - "type": "number" - }, - "SubnetId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.Placement": { - "additionalProperties": false, - "properties": { - "Affinity": { - "type": "string" - }, - "AvailabilityZone": { - "type": "string" - }, - "GroupName": { - "type": "string" - }, - "HostId": { - "type": "string" - }, - "Tenancy": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.PrivateIpAdd": { - "additionalProperties": false, - "properties": { - "Primary": { - "type": "boolean" - }, - "PrivateIpAddress": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.SpotOptions": { - "additionalProperties": false, - "properties": { - "InstanceInterruptionBehavior": { - "type": "string" - }, - "MaxPrice": { - "type": "string" - }, - "SpotInstanceType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::LaunchTemplate.TagSpecification": { - "additionalProperties": false, - "properties": { - "ResourceType": { + "VpcId": { "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" } }, + "required": [ + "SubnetIds", + "VpcId" + ], "type": "object" }, - "AWS::EC2::NatGateway": { + "AWS::DocDB::DBCluster": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -12935,39 +12199,79 @@ "Properties": { "additionalProperties": false, "properties": { - "AllocationId": { + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BackupRetentionPeriod": { + "type": "number" + }, + "DBClusterIdentifier": { "type": "string" }, - "SubnetId": { + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUsername": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "SnapshotIdentifier": { "type": "string" }, + "StorageEncrypted": { + "type": "boolean" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "AllocationId", - "SubnetId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::NatGateway" + "AWS::DocDB::DBCluster" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::NetworkAcl": { + "AWS::DocDB::DBClusterParameterGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -12999,24 +12303,35 @@ "Properties": { "additionalProperties": false, "properties": { + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "VpcId": { - "type": "string" } }, "required": [ - "VpcId" + "Description", + "Family", + "Parameters" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::NetworkAcl" + "AWS::DocDB::DBClusterParameterGroup" ], "type": "string" } @@ -13027,7 +12342,7 @@ ], "type": "object" }, - "AWS::EC2::NetworkAclEntry": { + "AWS::DocDB::DBInstance": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13059,46 +12374,40 @@ "Properties": { "additionalProperties": false, "properties": { - "CidrBlock": { - "type": "string" - }, - "Egress": { + "AutoMinorVersionUpgrade": { "type": "boolean" }, - "Icmp": { - "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.Icmp" - }, - "Ipv6CidrBlock": { + "AvailabilityZone": { "type": "string" }, - "NetworkAclId": { + "DBClusterIdentifier": { "type": "string" }, - "PortRange": { - "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.PortRange" + "DBInstanceClass": { + "type": "string" }, - "Protocol": { - "type": "number" + "DBInstanceIdentifier": { + "type": "string" }, - "RuleAction": { + "PreferredMaintenanceWindow": { "type": "string" }, - "RuleNumber": { - "type": "number" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "CidrBlock", - "NetworkAclId", - "Protocol", - "RuleAction", - "RuleNumber" + "DBClusterIdentifier", + "DBInstanceClass" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::NetworkAclEntry" + "AWS::DocDB::DBInstance" ], "type": "string" } @@ -13109,31 +12418,7 @@ ], "type": "object" }, - "AWS::EC2::NetworkAclEntry.Icmp": { - "additionalProperties": false, - "properties": { - "Code": { - "type": "number" - }, - "Type": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::EC2::NetworkAclEntry.PortRange": { - "additionalProperties": false, - "properties": { - "From": { - "type": "number" - }, - "To": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::EC2::NetworkInterface": { + "AWS::DocDB::DBSubnetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13165,42 +12450,18 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" - }, - "GroupSet": { - "items": { - "type": "string" - }, - "type": "array" - }, - "InterfaceType": { + "DBSubnetGroupDescription": { "type": "string" }, - "Ipv6AddressCount": { - "type": "number" - }, - "Ipv6Addresses": { - "$ref": "#/definitions/AWS::EC2::NetworkInterface.InstanceIpv6Address" - }, - "PrivateIpAddress": { + "DBSubnetGroupName": { "type": "string" }, - "PrivateIpAddresses": { + "SubnetIds": { "items": { - "$ref": "#/definitions/AWS::EC2::NetworkInterface.PrivateIpAddressSpecification" + "type": "string" }, "type": "array" }, - "SecondaryPrivateIpAddressCount": { - "type": "number" - }, - "SourceDestCheck": { - "type": "boolean" - }, - "SubnetId": { - "type": "string" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -13209,13 +12470,14 @@ } }, "required": [ - "SubnetId" + "DBSubnetGroupDescription", + "SubnetIds" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::NetworkInterface" + "AWS::DocDB::DBSubnetGroup" ], "type": "string" } @@ -13226,35 +12488,7 @@ ], "type": "object" }, - "AWS::EC2::NetworkInterface.InstanceIpv6Address": { - "additionalProperties": false, - "properties": { - "Ipv6Address": { - "type": "string" - } - }, - "required": [ - "Ipv6Address" - ], - "type": "object" - }, - "AWS::EC2::NetworkInterface.PrivateIpAddressSpecification": { - "additionalProperties": false, - "properties": { - "Primary": { - "type": "boolean" - }, - "PrivateIpAddress": { - "type": "string" - } - }, - "required": [ - "Primary", - "PrivateIpAddress" - ], - "type": "object" - }, - "AWS::EC2::NetworkInterfaceAttachment": { + "AWS::DynamoDB::Table": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13286,29 +12520,66 @@ "Properties": { "additionalProperties": false, "properties": { - "DeleteOnTermination": { - "type": "boolean" + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.AttributeDefinition" + }, + "type": "array" }, - "DeviceIndex": { + "BillingMode": { "type": "string" }, - "InstanceId": { - "type": "string" + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.GlobalSecondaryIndex" + }, + "type": "array" }, - "NetworkInterfaceId": { + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" + }, + "type": "array" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.LocalSecondaryIndex" + }, + "type": "array" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput" + }, + "SSESpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.SSESpecification" + }, + "StreamSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.StreamSpecification" + }, + "TableName": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.TimeToLiveSpecification" } }, "required": [ - "DeviceIndex", - "InstanceId", - "NetworkInterfaceId" + "KeySchema" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::NetworkInterfaceAttachment" + "AWS::DynamoDB::Table" ], "type": "string" } @@ -13319,119 +12590,168 @@ ], "type": "object" }, - "AWS::EC2::NetworkInterfacePermission": { + "AWS::DynamoDB::Table.AttributeDefinition": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "AttributeName": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "AwsAccountId": { - "type": "string" - }, - "NetworkInterfaceId": { - "type": "string" - }, - "Permission": { - "type": "string" - } + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" }, - "required": [ - "AwsAccountId", - "NetworkInterfaceId", - "Permission" - ], - "type": "object" + "type": "array" }, - "Type": { - "enum": [ - "AWS::EC2::NetworkInterfacePermission" - ], - "type": "string" + "Projection": { + "$ref": "#/definitions/AWS::DynamoDB::Table.Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput" } }, "required": [ - "Type", - "Properties" + "IndexName", + "KeySchema", + "Projection" ], "type": "object" }, - "AWS::EC2::PlacementGroup": { + "AWS::DynamoDB::Table.KeySchema": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "AttributeName": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "KeyType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "KeyType" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" }, - "Metadata": { - "type": "object" + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" + }, + "type": "array" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Strategy": { - "type": "string" - } + "Projection": { + "$ref": "#/definitions/AWS::DynamoDB::Table.Projection" + } + }, + "required": [ + "IndexName", + "KeySchema", + "Projection" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::DynamoDB::Table.Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" }, - "type": "object" + "type": "array" }, - "Type": { - "enum": [ - "AWS::EC2::PlacementGroup" - ], + "ProjectionType": { "type": "string" } }, + "type": "object" + }, + "AWS::DynamoDB::Table.ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "number" + }, + "WriteCapacityUnits": { + "type": "number" + } + }, "required": [ - "Type" + "ReadCapacityUnits", + "WriteCapacityUnits" ], "type": "object" }, - "AWS::EC2::Route": { + "AWS::DynamoDB::Table.SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "AttributeName", + "Enabled" + ], + "type": "object" + }, + "AWS::EC2::CustomerGateway": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13463,42 +12783,32 @@ "Properties": { "additionalProperties": false, "properties": { - "DestinationCidrBlock": { - "type": "string" - }, - "DestinationIpv6CidrBlock": { - "type": "string" - }, - "EgressOnlyInternetGatewayId": { - "type": "string" - }, - "GatewayId": { - "type": "string" - }, - "InstanceId": { - "type": "string" - }, - "NatGatewayId": { - "type": "string" + "BgpAsn": { + "type": "number" }, - "NetworkInterfaceId": { + "IpAddress": { "type": "string" }, - "RouteTableId": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "VpcPeeringConnectionId": { + "Type": { "type": "string" } }, "required": [ - "RouteTableId" + "BgpAsn", + "IpAddress", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Route" + "AWS::EC2::CustomerGateway" ], "type": "string" } @@ -13509,7 +12819,7 @@ ], "type": "object" }, - "AWS::EC2::RouteTable": { + "AWS::EC2::DHCPOptions": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13541,35 +12851,52 @@ "Properties": { "additionalProperties": false, "properties": { + "DomainName": { + "type": "string" + }, + "DomainNameServers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "NetbiosNameServers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "NetbiosNodeType": { + "type": "number" + }, + "NtpServers": { + "items": { + "type": "string" + }, + "type": "array" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "VpcId": { - "type": "string" } }, - "required": [ - "VpcId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::RouteTable" + "AWS::EC2::DHCPOptions" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::SecurityGroup": { + "AWS::EC2::EC2Fleet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13601,42 +12928,55 @@ "Properties": { "additionalProperties": false, "properties": { - "GroupDescription": { - "type": "string" - }, - "GroupName": { + "ExcessCapacityTerminationPolicy": { "type": "string" }, - "SecurityGroupEgress": { + "LaunchTemplateConfigs": { "items": { - "$ref": "#/definitions/AWS::EC2::SecurityGroup.Egress" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest" }, "type": "array" }, - "SecurityGroupIngress": { - "items": { - "$ref": "#/definitions/AWS::EC2::SecurityGroup.Ingress" - }, - "type": "array" + "OnDemandOptions": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.OnDemandOptionsRequest" }, - "Tags": { + "ReplaceUnhealthyInstances": { + "type": "boolean" + }, + "SpotOptions": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.SpotOptionsRequest" + }, + "TagSpecifications": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TagSpecification" }, "type": "array" }, - "VpcId": { + "TargetCapacitySpecification": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest" + }, + "TerminateInstancesWithExpiration": { + "type": "boolean" + }, + "Type": { + "type": "string" + }, + "ValidFrom": { + "type": "string" + }, + "ValidUntil": { "type": "string" } }, "required": [ - "GroupDescription" + "LaunchTemplateConfigs", + "TargetCapacitySpecification" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SecurityGroup" + "AWS::EC2::EC2Fleet" ], "type": "string" } @@ -13647,79 +12987,133 @@ ], "type": "object" }, - "AWS::EC2::SecurityGroup.Egress": { + "AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest": { "additionalProperties": false, "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest" }, - "Description": { + "Overrides": { + "items": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { "type": "string" }, - "DestinationPrefixListId": { + "InstanceType": { "type": "string" }, - "DestinationSecurityGroupId": { + "MaxPrice": { "type": "string" }, - "FromPort": { + "Priority": { "type": "number" }, - "IpProtocol": { + "SubnetId": { "type": "string" }, - "ToPort": { + "WeightedCapacity": { "type": "number" } }, - "required": [ - "IpProtocol" - ], "type": "object" }, - "AWS::EC2::SecurityGroup.Ingress": { + "AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest": { "additionalProperties": false, "properties": { - "CidrIp": { + "LaunchTemplateId": { "type": "string" }, - "CidrIpv6": { + "LaunchTemplateName": { "type": "string" }, - "Description": { + "Version": { "type": "string" - }, - "FromPort": { - "type": "number" - }, - "IpProtocol": { + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.OnDemandOptionsRequest": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.SpotOptionsRequest": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { "type": "string" }, - "SourcePrefixListId": { + "InstanceInterruptionBehavior": { "type": "string" }, - "SourceSecurityGroupId": { + "InstancePoolsToUseCount": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.TagRequest": { + "additionalProperties": false, + "properties": { + "Key": { "type": "string" }, - "SourceSecurityGroupName": { + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { "type": "string" }, - "SourceSecurityGroupOwnerId": { + "Tags": { + "items": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TagRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest": { + "additionalProperties": false, + "properties": { + "DefaultTargetCapacityType": { "type": "string" }, - "ToPort": { + "OnDemandTargetCapacity": { + "type": "number" + }, + "SpotTargetCapacity": { + "type": "number" + }, + "TotalTargetCapacity": { "type": "number" } }, "required": [ - "IpProtocol" + "TotalTargetCapacity" ], "type": "object" }, - "AWS::EC2::SecurityGroupEgress": { + "AWS::EC2::EIP": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13751,43 +13145,136 @@ "Properties": { "additionalProperties": false, "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { + "Domain": { "type": "string" }, - "Description": { + "InstanceId": { "type": "string" }, - "DestinationPrefixListId": { + "PublicIpv4Pool": { "type": "string" - }, - "DestinationSecurityGroupId": { + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::EIP" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::EIPAssociation": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - "FromPort": { - "type": "number" + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" }, - "GroupId": { + "EIP": { "type": "string" }, - "IpProtocol": { + "InstanceId": { "type": "string" }, - "ToPort": { - "type": "number" + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::EIPAssociation" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::EgressOnlyInternetGateway": { + "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": { + "VpcId": { + "type": "string" } }, "required": [ - "GroupId", - "IpProtocol" + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SecurityGroupEgress" + "AWS::EC2::EgressOnlyInternetGateway" ], "type": "string" } @@ -13798,7 +13285,7 @@ ], "type": "object" }, - "AWS::EC2::SecurityGroupIngress": { + "AWS::EC2::FlowLog": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13830,51 +13317,38 @@ "Properties": { "additionalProperties": false, "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "FromPort": { - "type": "number" - }, - "GroupId": { + "DeliverLogsPermissionArn": { "type": "string" }, - "GroupName": { + "LogDestination": { "type": "string" }, - "IpProtocol": { + "LogDestinationType": { "type": "string" }, - "SourcePrefixListId": { + "LogGroupName": { "type": "string" }, - "SourceSecurityGroupId": { + "ResourceId": { "type": "string" }, - "SourceSecurityGroupName": { + "ResourceType": { "type": "string" }, - "SourceSecurityGroupOwnerId": { + "TrafficType": { "type": "string" - }, - "ToPort": { - "type": "number" } }, "required": [ - "IpProtocol" + "ResourceId", + "ResourceType", + "TrafficType" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SecurityGroupIngress" + "AWS::EC2::FlowLog" ], "type": "string" } @@ -13885,7 +13359,7 @@ ], "type": "object" }, - "AWS::EC2::SpotFleet": { + "AWS::EC2::Host": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -13917,18 +13391,25 @@ "Properties": { "additionalProperties": false, "properties": { - "SpotFleetRequestConfigData": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetRequestConfigData" + "AutoPlacement": { + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "InstanceType": { + "type": "string" } }, "required": [ - "SpotFleetRequestConfigData" + "AvailabilityZone", + "InstanceType" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SpotFleet" + "AWS::EC2::Host" ], "type": "string" } @@ -13939,55 +13420,241 @@ ], "type": "object" }, - "AWS::EC2::SpotFleet.BlockDeviceMapping": { + "AWS::EC2::Instance": { "additionalProperties": false, "properties": { - "DeviceName": { + "CreationPolicy": { + "type": "object" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "Ebs": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.EbsBlockDevice" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "NoDevice": { - "type": "string" + "Metadata": { + "type": "object" }, - "VirtualName": { + "Properties": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.BlockDeviceMapping" + }, + "type": "array" + }, + "CreditSpecification": { + "$ref": "#/definitions/AWS::EC2::Instance.CreditSpecification" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.ElasticGpuSpecification" + }, + "type": "array" + }, + "ElasticInferenceAccelerators": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.ElasticInferenceAccelerator" + }, + "type": "array" + }, + "HostId": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Ipv6AddressCount": { + "type": "number" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address" + }, + "type": "array" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::EC2::Instance.LaunchTemplateSpecification" + }, + "LicenseSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.LicenseSpecification" + }, + "type": "array" + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.NetworkInterface" + }, + "type": "array" + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.SsmAssociation" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Tenancy": { + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.Volume" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::Instance" + ], "type": "string" } }, "required": [ - "DeviceName" + "Type" ], "type": "object" }, - "AWS::EC2::SpotFleet.ClassicLoadBalancer": { + "AWS::EC2::Instance.AssociationParameter": { "additionalProperties": false, "properties": { - "Name": { + "Key": { "type": "string" + }, + "Value": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "Name" + "Key", + "Value" ], "type": "object" }, - "AWS::EC2::SpotFleet.ClassicLoadBalancersConfig": { + "AWS::EC2::Instance.BlockDeviceMapping": { "additionalProperties": false, "properties": { - "ClassicLoadBalancers": { - "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancer" - }, - "type": "array" + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/AWS::EC2::Instance.Ebs" + }, + "NoDevice": { + "$ref": "#/definitions/AWS::EC2::Instance.NoDevice" + }, + "VirtualName": { + "type": "string" } }, "required": [ - "ClassicLoadBalancers" + "DeviceName" ], "type": "object" }, - "AWS::EC2::SpotFleet.EbsBlockDevice": { + "AWS::EC2::Instance.CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::Instance.Ebs": { "additionalProperties": false, "properties": { "DeleteOnTermination": { @@ -14011,58 +13678,73 @@ }, "type": "object" }, - "AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification": { + "AWS::EC2::Instance.ElasticGpuSpecification": { "additionalProperties": false, "properties": { - "LaunchTemplateId": { - "type": "string" - }, - "LaunchTemplateName": { + "Type": { "type": "string" - }, - "Version": { + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::Instance.ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Type": { "type": "string" } }, "required": [ - "Version" + "Type" ], "type": "object" }, - "AWS::EC2::SpotFleet.GroupIdentifier": { + "AWS::EC2::Instance.InstanceIpv6Address": { "additionalProperties": false, "properties": { - "GroupId": { + "Ipv6Address": { "type": "string" } }, "required": [ - "GroupId" + "Ipv6Address" ], "type": "object" }, - "AWS::EC2::SpotFleet.IamInstanceProfileSpecification": { + "AWS::EC2::Instance.LaunchTemplateSpecification": { "additionalProperties": false, "properties": { - "Arn": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { "type": "string" } }, + "required": [ + "Version" + ], "type": "object" }, - "AWS::EC2::SpotFleet.InstanceIpv6Address": { + "AWS::EC2::Instance.LicenseSpecification": { "additionalProperties": false, "properties": { - "Ipv6Address": { + "LicenseConfigurationArn": { "type": "string" } }, "required": [ - "Ipv6Address" + "LicenseConfigurationArn" ], "type": "object" }, - "AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification": { + "AWS::EC2::Instance.NetworkInterface": { "additionalProperties": false, "properties": { "AssociatePublicIpAddress": { @@ -14075,9 +13757,9 @@ "type": "string" }, "DeviceIndex": { - "type": "number" + "type": "string" }, - "Groups": { + "GroupSet": { "items": { "type": "string" }, @@ -14088,16 +13770,19 @@ }, "Ipv6Addresses": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceIpv6Address" + "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address" }, "type": "array" }, "NetworkInterfaceId": { "type": "string" }, + "PrivateIpAddress": { + "type": "string" + }, "PrivateIpAddresses": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.PrivateIpAddressSpecification" + "$ref": "#/definitions/AWS::EC2::Instance.PrivateIpAddressSpecification" }, "type": "array" }, @@ -14108,57 +13793,17 @@ "type": "string" } }, + "required": [ + "DeviceIndex" + ], "type": "object" }, - "AWS::EC2::SpotFleet.LaunchTemplateConfig": { - "additionalProperties": false, - "properties": { - "LaunchTemplateSpecification": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification" - }, - "Overrides": { - "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateOverrides" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::EC2::SpotFleet.LaunchTemplateOverrides": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "type": "string" - }, - "InstanceType": { - "type": "string" - }, - "SpotPrice": { - "type": "string" - }, - "SubnetId": { - "type": "string" - }, - "WeightedCapacity": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::EC2::SpotFleet.LoadBalancersConfig": { + "AWS::EC2::Instance.NoDevice": { "additionalProperties": false, - "properties": { - "ClassicLoadBalancersConfig": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancersConfig" - }, - "TargetGroupsConfig": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroupsConfig" - } - }, + "properties": {}, "type": "object" }, - "AWS::EC2::SpotFleet.PrivateIpAddressSpecification": { + "AWS::EC2::Instance.PrivateIpAddressSpecification": { "additionalProperties": false, "properties": { "Primary": { @@ -14169,28 +13814,345 @@ } }, "required": [ + "Primary", "PrivateIpAddress" ], "type": "object" }, - "AWS::EC2::SpotFleet.SpotFleetLaunchSpecification": { + "AWS::EC2::Instance.SsmAssociation": { "additionalProperties": false, "properties": { - "BlockDeviceMappings": { + "AssociationParameters": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.BlockDeviceMapping" + "$ref": "#/definitions/AWS::EC2::Instance.AssociationParameter" + }, + "type": "array" + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "AWS::EC2::Instance.Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "Device", + "VolumeId" + ], + "type": "object" + }, + "AWS::EC2::InternetGateway": { + "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": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::InternetGateway" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::LaunchTemplate": { + "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": { + "LaunchTemplateData": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateData" + }, + "LaunchTemplateName": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::LaunchTemplate" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::LaunchTemplate.BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ebs" + }, + "NoDevice": { + "type": "string" + }, + "VirtualName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CapacityReservationPreference": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CapacityReservationSpecification": { + "additionalProperties": false, + "properties": { + "CapacityReservationPreference": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CapacityReservationPreference" + }, + "CapacityReservationTarget": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CapacityReservationTarget" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CapacityReservationTarget": { + "additionalProperties": false, + "properties": { + "CapacityReservationId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "number" + }, + "ThreadsPerCore": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CreditSpecification": { + "additionalProperties": false, + "properties": { + "CpuCredits": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.IamInstanceProfile": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.InstanceMarketOptions": { + "additionalProperties": false, + "properties": { + "MarketType": { + "type": "string" + }, + "SpotOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.SpotOptions" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Ipv6Add": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.LaunchTemplateData": { + "additionalProperties": false, + "properties": { + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.BlockDeviceMapping" }, "type": "array" }, + "CapacityReservationSpecification": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CapacityReservationSpecification" + }, + "CpuOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CpuOptions" + }, + "CreditSpecification": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CreditSpecification" + }, + "DisableApiTermination": { + "type": "boolean" + }, "EbsOptimized": { "type": "boolean" }, + "ElasticGpuSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.ElasticGpuSpecification" + }, + "type": "array" + }, + "ElasticInferenceAccelerators": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateElasticInferenceAccelerator" + }, + "type": "array" + }, + "HibernationOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.HibernationOptions" + }, "IamInstanceProfile": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.IamInstanceProfileSpecification" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.IamInstanceProfile" }, "ImageId": { "type": "string" }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceMarketOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.InstanceMarketOptions" + }, "InstanceType": { "type": "string" }, @@ -14200,53 +14162,70 @@ "KeyName": { "type": "string" }, + "LicenseSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LicenseSpecification" + }, + "type": "array" + }, "Monitoring": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetMonitoring" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Monitoring" }, "NetworkInterfaces": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.NetworkInterface" }, "type": "array" }, "Placement": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotPlacement" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Placement" }, - "RamdiskId": { + "RamDiskId": { "type": "string" }, - "SecurityGroups": { + "SecurityGroupIds": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.GroupIdentifier" + "type": "string" }, "type": "array" }, - "SpotPrice": { - "type": "string" - }, - "SubnetId": { - "type": "string" + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" }, "TagSpecifications": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetTagSpecification" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.TagSpecification" }, "type": "array" }, "UserData": { "type": "string" - }, - "WeightedCapacity": { - "type": "number" } }, - "required": [ - "ImageId", - "InstanceType" - ], "type": "object" }, - "AWS::EC2::SpotFleet.SpotFleetMonitoring": { + "AWS::EC2::LaunchTemplate.LaunchTemplateElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Monitoring": { "additionalProperties": false, "properties": { "Enabled": { @@ -14255,122 +14234,121 @@ }, "type": "object" }, - "AWS::EC2::SpotFleet.SpotFleetRequestConfigData": { + "AWS::EC2::LaunchTemplate.NetworkInterface": { "additionalProperties": false, "properties": { - "AllocationStrategy": { - "type": "string" + "AssociatePublicIpAddress": { + "type": "boolean" }, - "ExcessCapacityTerminationPolicy": { - "type": "string" + "DeleteOnTermination": { + "type": "boolean" }, - "IamFleetRole": { + "Description": { "type": "string" }, - "InstanceInterruptionBehavior": { - "type": "string" + "DeviceIndex": { + "type": "number" }, - "LaunchSpecifications": { + "Groups": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetLaunchSpecification" + "type": "string" }, "type": "array" }, - "LaunchTemplateConfigs": { + "Ipv6AddressCount": { + "type": "number" + }, + "Ipv6Addresses": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateConfig" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ipv6Add" }, "type": "array" }, - "LoadBalancersConfig": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.LoadBalancersConfig" - }, - "ReplaceUnhealthyInstances": { - "type": "boolean" + "NetworkInterfaceId": { + "type": "string" }, - "SpotPrice": { + "PrivateIpAddress": { "type": "string" }, - "TargetCapacity": { + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.PrivateIpAdd" + }, + "type": "array" + }, + "SecondaryPrivateIpAddressCount": { "type": "number" }, - "TerminateInstancesWithExpiration": { - "type": "boolean" + "SubnetId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Placement": { + "additionalProperties": false, + "properties": { + "Affinity": { + "type": "string" }, - "Type": { + "AvailabilityZone": { "type": "string" }, - "ValidFrom": { + "GroupName": { "type": "string" }, - "ValidUntil": { + "HostId": { + "type": "string" + }, + "Tenancy": { "type": "string" } }, - "required": [ - "IamFleetRole", - "TargetCapacity" - ], "type": "object" }, - "AWS::EC2::SpotFleet.SpotFleetTagSpecification": { + "AWS::EC2::LaunchTemplate.PrivateIpAdd": { "additionalProperties": false, "properties": { - "ResourceType": { - "type": "string" + "Primary": { + "type": "boolean" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "PrivateIpAddress": { + "type": "string" } }, "type": "object" }, - "AWS::EC2::SpotFleet.SpotPlacement": { + "AWS::EC2::LaunchTemplate.SpotOptions": { "additionalProperties": false, "properties": { - "AvailabilityZone": { + "InstanceInterruptionBehavior": { "type": "string" }, - "GroupName": { + "MaxPrice": { "type": "string" }, - "Tenancy": { + "SpotInstanceType": { "type": "string" } }, "type": "object" }, - "AWS::EC2::SpotFleet.TargetGroup": { + "AWS::EC2::LaunchTemplate.TagSpecification": { "additionalProperties": false, "properties": { - "Arn": { + "ResourceType": { "type": "string" - } - }, - "required": [ - "Arn" - ], - "type": "object" - }, - "AWS::EC2::SpotFleet.TargetGroupsConfig": { - "additionalProperties": false, - "properties": { - "TargetGroups": { + }, + "Tags": { "items": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroup" + "$ref": "#/definitions/Tag" }, "type": "array" } }, - "required": [ - "TargetGroups" - ], "type": "object" }, - "AWS::EC2::Subnet": { + "AWS::EC2::NatGateway": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14402,40 +14380,28 @@ "Properties": { "additionalProperties": false, "properties": { - "AssignIpv6AddressOnCreation": { - "type": "boolean" - }, - "AvailabilityZone": { - "type": "string" - }, - "CidrBlock": { + "AllocationId": { "type": "string" }, - "Ipv6CidrBlock": { + "SubnetId": { "type": "string" }, - "MapPublicIpOnLaunch": { - "type": "boolean" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "VpcId": { - "type": "string" } }, "required": [ - "CidrBlock", - "VpcId" + "AllocationId", + "SubnetId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Subnet" + "AWS::EC2::NatGateway" ], "type": "string" } @@ -14446,7 +14412,7 @@ ], "type": "object" }, - "AWS::EC2::SubnetCidrBlock": { + "AWS::EC2::NetworkAcl": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14478,22 +14444,24 @@ "Properties": { "additionalProperties": false, "properties": { - "Ipv6CidrBlock": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "SubnetId": { + "VpcId": { "type": "string" } }, "required": [ - "Ipv6CidrBlock", - "SubnetId" + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SubnetCidrBlock" + "AWS::EC2::NetworkAcl" ], "type": "string" } @@ -14504,7 +14472,7 @@ ], "type": "object" }, - "AWS::EC2::SubnetNetworkAclAssociation": { + "AWS::EC2::NetworkAclEntry": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14536,22 +14504,46 @@ "Properties": { "additionalProperties": false, "properties": { - "NetworkAclId": { + "CidrBlock": { "type": "string" }, - "SubnetId": { - "type": "string" - } + "Egress": { + "type": "boolean" + }, + "Icmp": { + "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.Icmp" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "NetworkAclId": { + "type": "string" + }, + "PortRange": { + "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.PortRange" + }, + "Protocol": { + "type": "number" + }, + "RuleAction": { + "type": "string" + }, + "RuleNumber": { + "type": "number" + } }, "required": [ + "CidrBlock", "NetworkAclId", - "SubnetId" + "Protocol", + "RuleAction", + "RuleNumber" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::SubnetNetworkAclAssociation" + "AWS::EC2::NetworkAclEntry" ], "type": "string" } @@ -14562,65 +14554,31 @@ ], "type": "object" }, - "AWS::EC2::SubnetRouteTableAssociation": { + "AWS::EC2::NetworkAclEntry.Icmp": { "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": { - "RouteTableId": { - "type": "string" - }, - "SubnetId": { - "type": "string" - } - }, - "required": [ - "RouteTableId", - "SubnetId" - ], - "type": "object" + "Code": { + "type": "number" }, "Type": { - "enum": [ - "AWS::EC2::SubnetRouteTableAssociation" - ], - "type": "string" + "type": "number" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::EC2::TransitGateway": { + "AWS::EC2::NetworkAclEntry.PortRange": { + "additionalProperties": false, + "properties": { + "From": { + "type": "number" + }, + "To": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInterface": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14652,22 +14610,40 @@ "Properties": { "additionalProperties": false, "properties": { - "AmazonSideAsn": { - "type": "number" - }, - "AutoAcceptSharedAttachments": { + "Description": { "type": "string" }, - "DefaultRouteTableAssociation": { - "type": "string" + "GroupSet": { + "items": { + "type": "string" + }, + "type": "array" }, - "DefaultRouteTablePropagation": { + "InterfaceType": { "type": "string" }, - "Description": { + "Ipv6AddressCount": { + "type": "number" + }, + "Ipv6Addresses": { + "$ref": "#/definitions/AWS::EC2::NetworkInterface.InstanceIpv6Address" + }, + "PrivateIpAddress": { "type": "string" }, - "DnsSupport": { + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInterface.PrivateIpAddressSpecification" + }, + "type": "array" + }, + "SecondaryPrivateIpAddressCount": { + "type": "number" + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SubnetId": { "type": "string" }, "Tags": { @@ -14675,26 +14651,55 @@ "$ref": "#/definitions/Tag" }, "type": "array" - }, - "VpnEcmpSupport": { - "type": "string" } }, + "required": [ + "SubnetId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGateway" + "AWS::EC2::NetworkInterface" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::TransitGatewayAttachment": { + "AWS::EC2::NetworkInterface.InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "AWS::EC2::NetworkInterface.PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "Primary", + "PrivateIpAddress" + ], + "type": "object" + }, + "AWS::EC2::NetworkInterfaceAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14726,35 +14731,29 @@ "Properties": { "additionalProperties": false, "properties": { - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" + "DeleteOnTermination": { + "type": "boolean" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "DeviceIndex": { + "type": "string" }, - "TransitGatewayId": { + "InstanceId": { "type": "string" }, - "VpcId": { + "NetworkInterfaceId": { "type": "string" } }, "required": [ - "SubnetIds", - "TransitGatewayId", - "VpcId" + "DeviceIndex", + "InstanceId", + "NetworkInterfaceId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayAttachment" + "AWS::EC2::NetworkInterfaceAttachment" ], "type": "string" } @@ -14765,7 +14764,7 @@ ], "type": "object" }, - "AWS::EC2::TransitGatewayRoute": { + "AWS::EC2::NetworkInterfacePermission": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14797,27 +14796,26 @@ "Properties": { "additionalProperties": false, "properties": { - "Blackhole": { - "type": "boolean" - }, - "DestinationCidrBlock": { + "AwsAccountId": { "type": "string" }, - "TransitGatewayAttachmentId": { + "NetworkInterfaceId": { "type": "string" }, - "TransitGatewayRouteTableId": { + "Permission": { "type": "string" } }, "required": [ - "TransitGatewayRouteTableId" + "AwsAccountId", + "NetworkInterfaceId", + "Permission" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRoute" + "AWS::EC2::NetworkInterfacePermission" ], "type": "string" } @@ -14828,7 +14826,7 @@ ], "type": "object" }, - "AWS::EC2::TransitGatewayRouteTable": { + "AWS::EC2::PlacementGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14860,35 +14858,25 @@ "Properties": { "additionalProperties": false, "properties": { - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "TransitGatewayId": { + "Strategy": { "type": "string" } }, - "required": [ - "TransitGatewayId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRouteTable" + "AWS::EC2::PlacementGroup" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::TransitGatewayRouteTableAssociation": { + "AWS::EC2::Route": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14920,22 +14908,42 @@ "Properties": { "additionalProperties": false, "properties": { - "TransitGatewayAttachmentId": { + "DestinationCidrBlock": { "type": "string" }, - "TransitGatewayRouteTableId": { + "DestinationIpv6CidrBlock": { + "type": "string" + }, + "EgressOnlyInternetGatewayId": { + "type": "string" + }, + "GatewayId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "NatGatewayId": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "RouteTableId": { + "type": "string" + }, + "VpcPeeringConnectionId": { "type": "string" } }, "required": [ - "TransitGatewayAttachmentId", - "TransitGatewayRouteTableId" + "RouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRouteTableAssociation" + "AWS::EC2::Route" ], "type": "string" } @@ -14946,7 +14954,7 @@ ], "type": "object" }, - "AWS::EC2::TransitGatewayRouteTablePropagation": { + "AWS::EC2::RouteTable": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14978,22 +14986,24 @@ "Properties": { "additionalProperties": false, "properties": { - "TransitGatewayAttachmentId": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "TransitGatewayRouteTableId": { + "VpcId": { "type": "string" } }, "required": [ - "TransitGatewayAttachmentId", - "TransitGatewayRouteTableId" + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRouteTablePropagation" + "AWS::EC2::RouteTable" ], "type": "string" } @@ -15004,7 +15014,7 @@ ], "type": "object" }, - "AWS::EC2::TrunkInterfaceAssociation": { + "AWS::EC2::SecurityGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15036,28 +15046,42 @@ "Properties": { "additionalProperties": false, "properties": { - "BranchInterfaceId": { + "GroupDescription": { "type": "string" }, - "GREKey": { - "type": "number" - }, - "TrunkInterfaceId": { + "GroupName": { "type": "string" }, - "VLANId": { - "type": "number" + "SecurityGroupEgress": { + "items": { + "$ref": "#/definitions/AWS::EC2::SecurityGroup.Egress" + }, + "type": "array" + }, + "SecurityGroupIngress": { + "items": { + "$ref": "#/definitions/AWS::EC2::SecurityGroup.Ingress" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { + "type": "string" } }, "required": [ - "BranchInterfaceId", - "TrunkInterfaceId" + "GroupDescription" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TrunkInterfaceAssociation" + "AWS::EC2::SecurityGroup" ], "type": "string" } @@ -15068,7 +15092,79 @@ ], "type": "object" }, - "AWS::EC2::VPC": { + "AWS::EC2::SecurityGroup.Egress": { + "additionalProperties": false, + "properties": { + "CidrIp": { + "type": "string" + }, + "CidrIpv6": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DestinationPrefixListId": { + "type": "string" + }, + "DestinationSecurityGroupId": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "IpProtocol": { + "type": "string" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "IpProtocol" + ], + "type": "object" + }, + "AWS::EC2::SecurityGroup.Ingress": { + "additionalProperties": false, + "properties": { + "CidrIp": { + "type": "string" + }, + "CidrIpv6": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "IpProtocol": { + "type": "string" + }, + "SourcePrefixListId": { + "type": "string" + }, + "SourceSecurityGroupId": { + "type": "string" + }, + "SourceSecurityGroupName": { + "type": "string" + }, + "SourceSecurityGroupOwnerId": { + "type": "string" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "IpProtocol" + ], + "type": "object" + }, + "AWS::EC2::SecurityGroupEgress": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15100,33 +15196,43 @@ "Properties": { "additionalProperties": false, "properties": { - "CidrBlock": { + "CidrIp": { "type": "string" }, - "EnableDnsHostnames": { - "type": "boolean" + "CidrIpv6": { + "type": "string" }, - "EnableDnsSupport": { - "type": "boolean" + "Description": { + "type": "string" }, - "InstanceTenancy": { + "DestinationPrefixListId": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "DestinationSecurityGroupId": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "GroupId": { + "type": "string" + }, + "IpProtocol": { + "type": "string" + }, + "ToPort": { + "type": "number" } }, "required": [ - "CidrBlock" + "GroupId", + "IpProtocol" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPC" + "AWS::EC2::SecurityGroupEgress" ], "type": "string" } @@ -15137,7 +15243,7 @@ ], "type": "object" }, - "AWS::EC2::VPCCidrBlock": { + "AWS::EC2::SecurityGroupIngress": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15169,24 +15275,51 @@ "Properties": { "additionalProperties": false, "properties": { - "AmazonProvidedIpv6CidrBlock": { - "type": "boolean" + "CidrIp": { + "type": "string" }, - "CidrBlock": { + "CidrIpv6": { "type": "string" }, - "VpcId": { + "Description": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "GroupId": { + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "IpProtocol": { + "type": "string" + }, + "SourcePrefixListId": { + "type": "string" + }, + "SourceSecurityGroupId": { + "type": "string" + }, + "SourceSecurityGroupName": { + "type": "string" + }, + "SourceSecurityGroupOwnerId": { "type": "string" + }, + "ToPort": { + "type": "number" } }, "required": [ - "VpcId" + "IpProtocol" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCCidrBlock" + "AWS::EC2::SecurityGroupIngress" ], "type": "string" } @@ -15197,7 +15330,7 @@ ], "type": "object" }, - "AWS::EC2::VPCDHCPOptionsAssociation": { + "AWS::EC2::SpotFleet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15229,22 +15362,18 @@ "Properties": { "additionalProperties": false, "properties": { - "DhcpOptionsId": { - "type": "string" - }, - "VpcId": { - "type": "string" + "SpotFleetRequestConfigData": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetRequestConfigData" } }, "required": [ - "DhcpOptionsId", - "VpcId" + "SpotFleetRequestConfigData" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCDHCPOptionsAssociation" + "AWS::EC2::SpotFleet" ], "type": "string" } @@ -15255,92 +15384,438 @@ ], "type": "object" }, - "AWS::EC2::VPCEndpoint": { + "AWS::EC2::SpotFleet.BlockDeviceMapping": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "DeviceName": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Ebs": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.EbsBlockDevice" }, - "Metadata": { - "type": "object" + "NoDevice": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "PolicyDocument": { - "type": "object" - }, - "PrivateDnsEnabled": { - "type": "boolean" - }, - "RouteTableIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ServiceName": { - "type": "string" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "VPCEndpointType": { - "type": "string" - }, - "VpcId": { - "type": "string" - } + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.ClassicLoadBalancer": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.ClassicLoadBalancersConfig": { + "additionalProperties": false, + "properties": { + "ClassicLoadBalancers": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancer" }, - "required": [ - "ServiceName", - "VpcId" - ], - "type": "object" + "type": "array" + } + }, + "required": [ + "ClassicLoadBalancers" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.EbsBlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Version" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.GroupIdentifier": { + "additionalProperties": false, + "properties": { + "GroupId": { + "type": "string" + } + }, + "required": [ + "GroupId" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.IamInstanceProfileSpecification": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification": { + "additionalProperties": false, + "properties": { + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "number" + }, + "Groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Ipv6AddressCount": { + "type": "number" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceIpv6Address" + }, + "type": "array" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.PrivateIpAddressSpecification" + }, + "type": "array" + }, + "SecondaryPrivateIpAddressCount": { + "type": "number" + }, + "SubnetId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.LaunchTemplateConfig": { + "additionalProperties": false, + "properties": { + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification" + }, + "Overrides": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateOverrides" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.LaunchTemplateOverrides": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "SpotPrice": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.LoadBalancersConfig": { + "additionalProperties": false, + "properties": { + "ClassicLoadBalancersConfig": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancersConfig" + }, + "TargetGroupsConfig": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroupsConfig" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotFleetLaunchSpecification": { + "additionalProperties": false, + "properties": { + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.BlockDeviceMapping" + }, + "type": "array" + }, + "EbsOptimized": { + "type": "boolean" + }, + "IamInstanceProfile": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.IamInstanceProfileSpecification" + }, + "ImageId": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "Monitoring": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetMonitoring" + }, + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification" + }, + "type": "array" + }, + "Placement": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotPlacement" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.GroupIdentifier" + }, + "type": "array" + }, + "SpotPrice": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetTagSpecification" + }, + "type": "array" + }, + "UserData": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "required": [ + "ImageId", + "InstanceType" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotFleetMonitoring": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotFleetRequestConfigData": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "ExcessCapacityTerminationPolicy": { + "type": "string" + }, + "IamFleetRole": { + "type": "string" + }, + "InstanceInterruptionBehavior": { + "type": "string" + }, + "LaunchSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetLaunchSpecification" + }, + "type": "array" + }, + "LaunchTemplateConfigs": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateConfig" + }, + "type": "array" + }, + "LoadBalancersConfig": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.LoadBalancersConfig" + }, + "ReplaceUnhealthyInstances": { + "type": "boolean" + }, + "SpotPrice": { + "type": "string" + }, + "TargetCapacity": { + "type": "number" + }, + "TerminateInstancesWithExpiration": { + "type": "boolean" }, "Type": { - "enum": [ - "AWS::EC2::VPCEndpoint" - ], + "type": "string" + }, + "ValidFrom": { + "type": "string" + }, + "ValidUntil": { "type": "string" } }, "required": [ - "Type", - "Properties" + "IamFleetRole", + "TargetCapacity" ], "type": "object" }, - "AWS::EC2::VPCEndpointConnectionNotification": { + "AWS::EC2::SpotFleet.SpotFleetTagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotPlacement": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "Tenancy": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.TargetGroup": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.TargetGroupsConfig": { + "additionalProperties": false, + "properties": { + "TargetGroups": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroup" + }, + "type": "array" + } + }, + "required": [ + "TargetGroups" + ], + "type": "object" + }, + "AWS::EC2::Subnet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15372,31 +15847,40 @@ "Properties": { "additionalProperties": false, "properties": { - "ConnectionEvents": { - "items": { - "type": "string" - }, - "type": "array" + "AssignIpv6AddressOnCreation": { + "type": "boolean" }, - "ConnectionNotificationArn": { + "AvailabilityZone": { "type": "string" }, - "ServiceId": { + "CidrBlock": { "type": "string" }, - "VPCEndpointId": { + "Ipv6CidrBlock": { + "type": "string" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { "type": "string" } }, "required": [ - "ConnectionEvents", - "ConnectionNotificationArn" + "CidrBlock", + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpointConnectionNotification" + "AWS::EC2::Subnet" ], "type": "string" } @@ -15407,7 +15891,7 @@ ], "type": "object" }, - "AWS::EC2::VPCEndpointServicePermissions": { + "AWS::EC2::SubnetCidrBlock": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15439,24 +15923,22 @@ "Properties": { "additionalProperties": false, "properties": { - "AllowedPrincipals": { - "items": { - "type": "string" - }, - "type": "array" + "Ipv6CidrBlock": { + "type": "string" }, - "ServiceId": { + "SubnetId": { "type": "string" } }, "required": [ - "ServiceId" + "Ipv6CidrBlock", + "SubnetId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpointServicePermissions" + "AWS::EC2::SubnetCidrBlock" ], "type": "string" } @@ -15467,7 +15949,7 @@ ], "type": "object" }, - "AWS::EC2::VPCGatewayAttachment": { + "AWS::EC2::SubnetNetworkAclAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15499,24 +15981,22 @@ "Properties": { "additionalProperties": false, "properties": { - "InternetGatewayId": { + "NetworkAclId": { "type": "string" }, - "VpcId": { - "type": "string" - }, - "VpnGatewayId": { + "SubnetId": { "type": "string" } }, "required": [ - "VpcId" + "NetworkAclId", + "SubnetId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCGatewayAttachment" + "AWS::EC2::SubnetNetworkAclAssociation" ], "type": "string" } @@ -15527,7 +16007,7 @@ ], "type": "object" }, - "AWS::EC2::VPCPeeringConnection": { + "AWS::EC2::SubnetRouteTableAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15559,37 +16039,22 @@ "Properties": { "additionalProperties": false, "properties": { - "PeerOwnerId": { - "type": "string" - }, - "PeerRegion": { - "type": "string" - }, - "PeerRoleArn": { - "type": "string" - }, - "PeerVpcId": { + "RouteTableId": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VpcId": { + "SubnetId": { "type": "string" } }, "required": [ - "PeerVpcId", - "VpcId" + "RouteTableId", + "SubnetId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCPeeringConnection" + "AWS::EC2::SubnetRouteTableAssociation" ], "type": "string" } @@ -15600,7 +16065,7 @@ ], "type": "object" }, - "AWS::EC2::VPNConnection": { + "AWS::EC2::TransitGateway": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15632,64 +16097,49 @@ "Properties": { "additionalProperties": false, "properties": { - "CustomerGatewayId": { + "AmazonSideAsn": { + "type": "number" + }, + "AutoAcceptSharedAttachments": { "type": "string" }, - "StaticRoutesOnly": { - "type": "boolean" + "DefaultRouteTableAssociation": { + "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "DefaultRouteTablePropagation": { + "type": "string" }, - "Type": { + "Description": { "type": "string" }, - "VpnGatewayId": { + "DnsSupport": { "type": "string" }, - "VpnTunnelOptionsSpecifications": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification" + "$ref": "#/definitions/Tag" }, "type": "array" + }, + "VpnEcmpSupport": { + "type": "string" } }, - "required": [ - "CustomerGatewayId", - "Type", - "VpnGatewayId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNConnection" + "AWS::EC2::TransitGateway" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification": { - "additionalProperties": false, - "properties": { - "PreSharedKey": { - "type": "string" - }, - "TunnelInsideCidr": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::VPNConnectionRoute": { + "AWS::EC2::TransitGatewayAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15721,22 +16171,35 @@ "Properties": { "additionalProperties": false, "properties": { - "DestinationCidrBlock": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitGatewayId": { "type": "string" }, - "VpnConnectionId": { + "VpcId": { "type": "string" } }, "required": [ - "DestinationCidrBlock", - "VpnConnectionId" + "SubnetIds", + "TransitGatewayId", + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNConnectionRoute" + "AWS::EC2::TransitGatewayAttachment" ], "type": "string" } @@ -15747,7 +16210,7 @@ ], "type": "object" }, - "AWS::EC2::VPNGateway": { + "AWS::EC2::TransitGatewayRoute": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15779,27 +16242,27 @@ "Properties": { "additionalProperties": false, "properties": { - "AmazonSideAsn": { - "type": "number" + "Blackhole": { + "type": "boolean" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "DestinationCidrBlock": { + "type": "string" }, - "Type": { + "TransitGatewayAttachmentId": { + "type": "string" + }, + "TransitGatewayRouteTableId": { "type": "string" } }, "required": [ - "Type" + "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNGateway" + "AWS::EC2::TransitGatewayRoute" ], "type": "string" } @@ -15810,7 +16273,7 @@ ], "type": "object" }, - "AWS::EC2::VPNGatewayRoutePropagation": { + "AWS::EC2::TransitGatewayRouteTable": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15842,25 +16305,24 @@ "Properties": { "additionalProperties": false, "properties": { - "RouteTableIds": { + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "VpnGatewayId": { + "TransitGatewayId": { "type": "string" } }, "required": [ - "RouteTableIds", - "VpnGatewayId" + "TransitGatewayId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNGatewayRoutePropagation" + "AWS::EC2::TransitGatewayRouteTable" ], "type": "string" } @@ -15871,7 +16333,7 @@ ], "type": "object" }, - "AWS::EC2::Volume": { + "AWS::EC2::TransitGatewayRouteTableAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15903,45 +16365,22 @@ "Properties": { "additionalProperties": false, "properties": { - "AutoEnableIO": { - "type": "boolean" - }, - "AvailabilityZone": { - "type": "string" - }, - "Encrypted": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "KmsKeyId": { - "type": "string" - }, - "Size": { - "type": "number" - }, - "SnapshotId": { + "TransitGatewayAttachmentId": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VolumeType": { + "TransitGatewayRouteTableId": { "type": "string" } }, "required": [ - "AvailabilityZone" + "TransitGatewayAttachmentId", + "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Volume" + "AWS::EC2::TransitGatewayRouteTableAssociation" ], "type": "string" } @@ -15952,7 +16391,7 @@ ], "type": "object" }, - "AWS::EC2::VolumeAttachment": { + "AWS::EC2::TransitGatewayRouteTablePropagation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15984,26 +16423,22 @@ "Properties": { "additionalProperties": false, "properties": { - "Device": { - "type": "string" - }, - "InstanceId": { + "TransitGatewayAttachmentId": { "type": "string" }, - "VolumeId": { + "TransitGatewayRouteTableId": { "type": "string" } }, "required": [ - "Device", - "InstanceId", - "VolumeId" + "TransitGatewayAttachmentId", + "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VolumeAttachment" + "AWS::EC2::TransitGatewayRouteTablePropagation" ], "type": "string" } @@ -16014,7 +16449,7 @@ ], "type": "object" }, - "AWS::ECR::Repository": { + "AWS::EC2::TrunkInterfaceAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -16046,43 +16481,39 @@ "Properties": { "additionalProperties": false, "properties": { - "LifecyclePolicy": { - "$ref": "#/definitions/AWS::ECR::Repository.LifecyclePolicy" + "BranchInterfaceId": { + "type": "string" }, - "RepositoryName": { + "GREKey": { + "type": "number" + }, + "TrunkInterfaceId": { "type": "string" }, - "RepositoryPolicyText": { - "type": "object" + "VLANId": { + "type": "number" } }, + "required": [ + "BranchInterfaceId", + "TrunkInterfaceId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ECR::Repository" + "AWS::EC2::TrunkInterfaceAssociation" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECR::Repository.LifecyclePolicy": { - "additionalProperties": false, - "properties": { - "LifecyclePolicyText": { - "type": "string" - }, - "RegistryId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::Cluster": { + "AWS::EC2::VPC": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -16114,25 +16545,44 @@ "Properties": { "additionalProperties": false, "properties": { - "ClusterName": { + "CidrBlock": { + "type": "string" + }, + "EnableDnsHostnames": { + "type": "boolean" + }, + "EnableDnsSupport": { + "type": "boolean" + }, + "InstanceTenancy": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, + "required": [ + "CidrBlock" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ECS::Cluster" + "AWS::EC2::VPC" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::Service": { + "AWS::EC2::VPCCidrBlock": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -16164,72 +16614,167 @@ "Properties": { "additionalProperties": false, "properties": { - "Cluster": { - "type": "string" + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" }, - "DeploymentConfiguration": { - "$ref": "#/definitions/AWS::ECS::Service.DeploymentConfiguration" + "CidrBlock": { + "type": "string" }, - "DesiredCount": { - "type": "number" + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCCidrBlock" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPCDHCPOptionsAssociation": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, - "HealthCheckGracePeriodSeconds": { - "type": "number" + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DhcpOptionsId": { + "type": "string" }, - "LaunchType": { + "VpcId": { + "type": "string" + } + }, + "required": [ + "DhcpOptionsId", + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCDHCPOptionsAssociation" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPCEndpoint": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - "LoadBalancers": { + { "items": { - "$ref": "#/definitions/AWS::ECS::Service.LoadBalancer" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" }, - "NetworkConfiguration": { - "$ref": "#/definitions/AWS::ECS::Service.NetworkConfiguration" + "PrivateDnsEnabled": { + "type": "boolean" }, - "PlacementConstraints": { + "RouteTableIds": { "items": { - "$ref": "#/definitions/AWS::ECS::Service.PlacementConstraint" + "type": "string" }, "type": "array" }, - "PlacementStrategies": { + "SecurityGroupIds": { "items": { - "$ref": "#/definitions/AWS::ECS::Service.PlacementStrategy" + "type": "string" }, "type": "array" }, - "PlatformVersion": { - "type": "string" - }, - "Role": { - "type": "string" - }, - "SchedulingStrategy": { - "type": "string" - }, "ServiceName": { "type": "string" }, - "ServiceRegistries": { + "SubnetIds": { "items": { - "$ref": "#/definitions/AWS::ECS::Service.ServiceRegistry" + "type": "string" }, "type": "array" }, - "TaskDefinition": { + "VpcEndpointType": { + "type": "string" + }, + "VpcId": { "type": "string" } }, "required": [ - "TaskDefinition" + "ServiceName", + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::ECS::Service" + "AWS::EC2::VPCEndpoint" ], "type": "string" } @@ -16240,121 +16785,267 @@ ], "type": "object" }, - "AWS::ECS::Service.AwsVpcConfiguration": { + "AWS::EC2::VPCEndpointConnectionNotification": { "additionalProperties": false, "properties": { - "AssignPublicIp": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "SecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Subnets": { - "items": { - "type": "string" + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ConnectionEvents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ConnectionNotificationArn": { + "type": "string" + }, + "ServiceId": { + "type": "string" + }, + "VPCEndpointId": { + "type": "string" + } }, - "type": "array" + "required": [ + "ConnectionEvents", + "ConnectionNotificationArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCEndpointConnectionNotification" + ], + "type": "string" } }, "required": [ - "Subnets" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::Service.DeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "MaximumPercent": { - "type": "number" - }, - "MinimumHealthyPercent": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ECS::Service.LoadBalancer": { + "AWS::EC2::VPCEndpointServicePermissions": { "additionalProperties": false, "properties": { - "ContainerName": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "ContainerPort": { - "type": "number" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "LoadBalancerName": { - "type": "string" + "Metadata": { + "type": "object" }, - "TargetGroupArn": { - "type": "string" - } - }, - "required": [ - "ContainerPort" - ], - "type": "object" - }, - "AWS::ECS::Service.NetworkConfiguration": { - "additionalProperties": false, - "properties": { - "AwsvpcConfiguration": { - "$ref": "#/definitions/AWS::ECS::Service.AwsVpcConfiguration" - } - }, - "type": "object" - }, - "AWS::ECS::Service.PlacementConstraint": { - "additionalProperties": false, - "properties": { - "Expression": { - "type": "string" + "Properties": { + "additionalProperties": false, + "properties": { + "AllowedPrincipals": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ServiceId": { + "type": "string" + } + }, + "required": [ + "ServiceId" + ], + "type": "object" }, "Type": { + "enum": [ + "AWS::EC2::VPCEndpointServicePermissions" + ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::Service.PlacementStrategy": { + "AWS::EC2::VPCGatewayAttachment": { "additionalProperties": false, "properties": { - "Field": { + "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": { + "InternetGatewayId": { + "type": "string" + }, + "VpcId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + } + }, + "required": [ + "VpcId" + ], + "type": "object" + }, "Type": { + "enum": [ + "AWS::EC2::VPCGatewayAttachment" + ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::Service.ServiceRegistry": { + "AWS::EC2::VPCPeeringConnection": { "additionalProperties": false, "properties": { - "ContainerName": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "ContainerPort": { - "type": "number" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Port": { - "type": "number" + "Metadata": { + "type": "object" }, - "RegistryArn": { + "Properties": { + "additionalProperties": false, + "properties": { + "PeerOwnerId": { + "type": "string" + }, + "PeerRegion": { + "type": "string" + }, + "PeerRoleArn": { + "type": "string" + }, + "PeerVpcId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "PeerVpcId", + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCPeeringConnection" + ], "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::ECS::TaskDefinition": { + "AWS::EC2::VPNConnection": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -16386,502 +17077,122 @@ "Properties": { "additionalProperties": false, "properties": { - "ContainerDefinitions": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.ContainerDefinition" - }, - "type": "array" - }, - "Cpu": { - "type": "string" - }, - "ExecutionRoleArn": { - "type": "string" - }, - "Family": { - "type": "string" - }, - "Memory": { + "CustomerGatewayId": { "type": "string" }, - "NetworkMode": { - "type": "string" + "StaticRoutesOnly": { + "type": "boolean" }, - "PlacementConstraints": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "RequiresCompatibilities": { - "items": { - "type": "string" - }, - "type": "array" + "Type": { + "type": "string" }, - "TaskRoleArn": { + "VpnGatewayId": { "type": "string" }, - "Volumes": { + "VpnTunnelOptionsSpecifications": { "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.Volume" + "$ref": "#/definitions/AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification" }, "type": "array" } }, + "required": [ + "CustomerGatewayId", + "Type", + "VpnGatewayId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ECS::TaskDefinition" + "AWS::EC2::VPNConnection" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::TaskDefinition.ContainerDefinition": { + "AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification": { "additionalProperties": false, "properties": { - "Command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Cpu": { - "type": "number" + "PreSharedKey": { + "type": "string" }, - "DisableNetworking": { - "type": "boolean" + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::VPNConnectionRoute": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" }, - "DnsSearchDomains": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DnsServers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DockerLabels": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - }, - "type": "object" - }, - "DockerSecurityOptions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EntryPoint": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Environment": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.KeyValuePair" - }, - "type": "array" - }, - "Essential": { - "type": "boolean" - }, - "ExtraHosts": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostEntry" - }, - "type": "array" - }, - "HealthCheck": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.HealthCheck" - }, - "Hostname": { - "type": "string" - }, - "Image": { - "type": "string" - }, - "Links": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LinuxParameters": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.LinuxParameters" - }, - "LogConfiguration": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.LogConfiguration" - }, - "Memory": { - "type": "number" - }, - "MemoryReservation": { - "type": "number" - }, - "MountPoints": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.MountPoint" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "PortMappings": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.PortMapping" - }, - "type": "array" - }, - "Privileged": { - "type": "boolean" - }, - "ReadonlyRootFilesystem": { - "type": "boolean" - }, - "RepositoryCredentials": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.RepositoryCredentials" - }, - "Ulimits": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.Ulimit" - }, - "type": "array" - }, - "User": { - "type": "string" - }, - "VolumesFrom": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.VolumeFrom" - }, - "type": "array" - }, - "WorkingDirectory": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.Device": { - "additionalProperties": false, - "properties": { - "ContainerPath": { - "type": "string" - }, - "HostPath": { - "type": "string" - }, - "Permissions": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "HostPath" - ], - "type": "object" - }, - "AWS::ECS::TaskDefinition.DockerVolumeConfiguration": { - "additionalProperties": false, - "properties": { - "Autoprovision": { - "type": "boolean" - }, - "Driver": { - "type": "string" + ] }, - "DriverOpts": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, + "Metadata": { "type": "object" }, - "Labels": { + "Properties": { "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { + "properties": { + "DestinationCidrBlock": { "type": "string" - } - }, - "type": "object" - }, - "Scope": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.HealthCheck": { - "additionalProperties": false, - "properties": { - "Command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Interval": { - "type": "number" - }, - "Retries": { - "type": "number" - }, - "StartPeriod": { - "type": "number" - }, - "Timeout": { - "type": "number" - } - }, - "required": [ - "Command" - ], - "type": "object" - }, - "AWS::ECS::TaskDefinition.HostEntry": { - "additionalProperties": false, - "properties": { - "Hostname": { - "type": "string" - }, - "IpAddress": { - "type": "string" - } - }, - "required": [ - "Hostname", - "IpAddress" - ], - "type": "object" - }, - "AWS::ECS::TaskDefinition.HostVolumeProperties": { - "additionalProperties": false, - "properties": { - "SourcePath": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.KernelCapabilities": { - "additionalProperties": false, - "properties": { - "Add": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Drop": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.KeyValuePair": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.LinuxParameters": { - "additionalProperties": false, - "properties": { - "Capabilities": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.KernelCapabilities" - }, - "Devices": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.Device" - }, - "type": "array" - }, - "InitProcessEnabled": { - "type": "boolean" - }, - "SharedMemorySize": { - "type": "number" - }, - "Tmpfs": { - "items": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.Tmpfs" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.LogConfiguration": { - "additionalProperties": false, - "properties": { - "LogDriver": { - "type": "string" - }, - "Options": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { + }, + "VpnConnectionId": { "type": "string" } }, + "required": [ + "DestinationCidrBlock", + "VpnConnectionId" + ], "type": "object" - } - }, - "required": [ - "LogDriver" - ], - "type": "object" - }, - "AWS::ECS::TaskDefinition.MountPoint": { - "additionalProperties": false, - "properties": { - "ContainerPath": { - "type": "string" - }, - "ReadOnly": { - "type": "boolean" - }, - "SourceVolume": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.PortMapping": { - "additionalProperties": false, - "properties": { - "ContainerPort": { - "type": "number" - }, - "HostPort": { - "type": "number" - }, - "Protocol": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.RepositoryCredentials": { - "additionalProperties": false, - "properties": { - "CredentialsParameter": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint": { - "additionalProperties": false, - "properties": { - "Expression": { - "type": "string" }, "Type": { + "enum": [ + "AWS::EC2::VPNConnectionRoute" + ], "type": "string" } }, "required": [ - "Type" - ], - "type": "object" - }, - "AWS::ECS::TaskDefinition.Tmpfs": { - "additionalProperties": false, - "properties": { - "ContainerPath": { - "type": "string" - }, - "MountOptions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Size": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.Ulimit": { - "additionalProperties": false, - "properties": { - "HardLimit": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "SoftLimit": { - "type": "number" - } - }, - "required": [ - "HardLimit", - "Name", - "SoftLimit" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECS::TaskDefinition.Volume": { - "additionalProperties": false, - "properties": { - "DockerVolumeConfiguration": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.DockerVolumeConfiguration" - }, - "Host": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostVolumeProperties" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ECS::TaskDefinition.VolumeFrom": { - "additionalProperties": false, - "properties": { - "ReadOnly": { - "type": "boolean" - }, - "SourceContainer": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EFS::FileSystem": { + "AWS::EC2::VPNGateway": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -16913,59 +17224,38 @@ "Properties": { "additionalProperties": false, "properties": { - "Encrypted": { - "type": "boolean" + "AmazonSideAsn": { + "type": "number" }, - "FileSystemTags": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::EFS::FileSystem.ElasticFileSystemTag" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "KmsKeyId": { - "type": "string" - }, - "PerformanceMode": { - "type": "string" - }, - "ProvisionedThroughputInMibps": { - "type": "number" - }, - "ThroughputMode": { + "Type": { "type": "string" } }, + "required": [ + "Type" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EFS::FileSystem" + "AWS::EC2::VPNGateway" ], "type": "string" } }, "required": [ - "Type" - ], - "type": "object" - }, - "AWS::EFS::FileSystem.ElasticFileSystemTag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Key", - "Value" + "Type", + "Properties" ], "type": "object" }, - "AWS::EFS::MountTarget": { + "AWS::EC2::VPNGatewayRoutePropagation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -16997,32 +17287,25 @@ "Properties": { "additionalProperties": false, "properties": { - "FileSystemId": { - "type": "string" - }, - "IpAddress": { - "type": "string" - }, - "SecurityGroups": { + "RouteTableIds": { "items": { "type": "string" }, "type": "array" }, - "SubnetId": { + "VpnGatewayId": { "type": "string" } }, "required": [ - "FileSystemId", - "SecurityGroups", - "SubnetId" + "RouteTableIds", + "VpnGatewayId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EFS::MountTarget" + "AWS::EC2::VPNGatewayRoutePropagation" ], "type": "string" } @@ -17033,7 +17316,7 @@ ], "type": "object" }, - "AWS::EKS::Cluster": { + "AWS::EC2::Volume": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -17065,28 +17348,45 @@ "Properties": { "additionalProperties": false, "properties": { - "Name": { + "AutoEnableIO": { + "type": "boolean" + }, + "AvailabilityZone": { "type": "string" }, - "ResourcesVpcConfig": { - "$ref": "#/definitions/AWS::EKS::Cluster.ResourcesVpcConfig" + "Encrypted": { + "type": "boolean" }, - "RoleArn": { - "type": "string" + "Iops": { + "type": "number" }, - "Version": { + "KmsKeyId": { "type": "string" - } - }, - "required": [ - "ResourcesVpcConfig", - "RoleArn" + }, + "Size": { + "type": "number" + }, + "SnapshotId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "AvailabilityZone" ], "type": "object" }, "Type": { "enum": [ - "AWS::EKS::Cluster" + "AWS::EC2::Volume" ], "type": "string" } @@ -17097,28 +17397,69 @@ ], "type": "object" }, - "AWS::EKS::Cluster.ResourcesVpcConfig": { + "AWS::EC2::VolumeAttachment": { "additionalProperties": false, "properties": { - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" }, - "SubnetIds": { - "items": { - "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": { + "Device": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } }, - "type": "array" + "required": [ + "Device", + "InstanceId", + "VolumeId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VolumeAttachment" + ], + "type": "string" } }, "required": [ - "SubnetIds" + "Type", + "Properties" ], "type": "object" }, - "AWS::EMR::Cluster": { + "AWS::ECR::Repository": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -17150,90 +17491,190 @@ "Properties": { "additionalProperties": false, "properties": { - "AdditionalInfo": { - "type": "object" + "LifecyclePolicy": { + "$ref": "#/definitions/AWS::ECR::Repository.LifecyclePolicy" }, - "Applications": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.Application" - }, - "type": "array" + "RepositoryName": { + "type": "string" }, - "AutoScalingRole": { + "RepositoryPolicyText": { + "type": "object" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECR::Repository" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECR::Repository.LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "type": "string" + }, + "RegistryId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::Cluster": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - "BootstrapActions": { + { "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.BootstrapActionConfig" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECS::Cluster" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECS::Service": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, - "Configurations": { + { "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" - }, - "CustomAmiId": { + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Cluster": { "type": "string" }, - "EbsRootVolumeSize": { + "DeploymentConfiguration": { + "$ref": "#/definitions/AWS::ECS::Service.DeploymentConfiguration" + }, + "DesiredCount": { "type": "number" }, - "Instances": { - "$ref": "#/definitions/AWS::EMR::Cluster.JobFlowInstancesConfig" + "HealthCheckGracePeriodSeconds": { + "type": "number" }, - "JobFlowRole": { + "LaunchType": { "type": "string" }, - "KerberosAttributes": { - "$ref": "#/definitions/AWS::EMR::Cluster.KerberosAttributes" + "LoadBalancers": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.LoadBalancer" + }, + "type": "array" }, - "LogUri": { - "type": "string" + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::ECS::Service.NetworkConfiguration" }, - "Name": { - "type": "string" + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.PlacementConstraint" + }, + "type": "array" }, - "ReleaseLabel": { - "type": "string" + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.PlacementStrategy" + }, + "type": "array" }, - "ScaleDownBehavior": { + "PlatformVersion": { "type": "string" }, - "SecurityConfiguration": { + "Role": { "type": "string" }, - "ServiceRole": { + "SchedulingStrategy": { "type": "string" }, - "Steps": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.StepConfig" - }, - "type": "array" + "ServiceName": { + "type": "string" }, - "Tags": { + "ServiceRegistries": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::ECS::Service.ServiceRegistry" }, "type": "array" }, - "VisibleToAllUsers": { - "type": "boolean" + "TaskDefinition": { + "type": "string" } }, "required": [ - "Instances", - "JobFlowRole", - "Name", - "ServiceRole" + "TaskDefinition" ], "type": "object" }, "Type": { "enum": [ - "AWS::EMR::Cluster" + "AWS::ECS::Service" ], "type": "string" } @@ -17244,576 +17685,4137 @@ ], "type": "object" }, - "AWS::EMR::Cluster.Application": { + "AWS::ECS::Service.AwsVpcConfiguration": { "additionalProperties": false, "properties": { - "AdditionalInfo": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" + "AssignPublicIp": { + "type": "string" }, - "Args": { + "SecurityGroups": { "items": { "type": "string" }, "type": "array" }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EMR::Cluster.AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScalingConstraints" - }, - "Rules": { + "Subnets": { "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScalingRule" + "type": "string" }, "type": "array" } }, "required": [ - "Constraints", - "Rules" + "Subnets" ], "type": "object" }, - "AWS::EMR::Cluster.BootstrapActionConfig": { + "AWS::ECS::Service.DeploymentConfiguration": { "additionalProperties": false, "properties": { - "Name": { - "type": "string" + "MaximumPercent": { + "type": "number" }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScriptBootstrapActionConfig" + "MinimumHealthyPercent": { + "type": "number" } }, - "required": [ - "Name", - "ScriptBootstrapAction" - ], "type": "object" }, - "AWS::EMR::Cluster.CloudWatchAlarmDefinition": { + "AWS::ECS::Service.LoadBalancer": { "additionalProperties": false, "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.MetricDimension" - }, - "type": "array" - }, - "EvaluationPeriods": { - "type": "number" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { + "ContainerName": { "type": "string" }, - "Period": { + "ContainerPort": { "type": "number" }, - "Statistic": { + "LoadBalancerName": { "type": "string" }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "ComparisonOperator", - "MetricName", - "Period", - "Threshold" - ], - "type": "object" - }, - "AWS::EMR::Cluster.Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { + "TargetGroupArn": { "type": "string" - }, - "ConfigurationProperties": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::EMR::Cluster.EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/AWS::EMR::Cluster.VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "number" } }, "required": [ - "VolumeSpecification" + "ContainerPort" ], "type": "object" }, - "AWS::EMR::Cluster.EbsConfiguration": { + "AWS::ECS::Service.NetworkConfiguration": { "additionalProperties": false, "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.EbsBlockDeviceConfig" - }, - "type": "array" - }, - "EbsOptimized": { - "type": "boolean" + "AwsvpcConfiguration": { + "$ref": "#/definitions/AWS::ECS::Service.AwsVpcConfiguration" } }, "type": "object" }, - "AWS::EMR::Cluster.HadoopJarStepConfig": { + "AWS::ECS::Service.PlacementConstraint": { "additionalProperties": false, "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Jar": { + "Expression": { "type": "string" }, - "MainClass": { + "Type": { "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.KeyValue" - }, - "type": "array" } }, "required": [ - "Jar" + "Type" ], "type": "object" }, - "AWS::EMR::Cluster.InstanceFleetConfig": { + "AWS::ECS::Service.PlacementStrategy": { "additionalProperties": false, "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceTypeConfig" - }, - "type": "array" - }, - "LaunchSpecifications": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications" - }, - "Name": { + "Field": { "type": "string" }, - "TargetOnDemandCapacity": { - "type": "number" - }, - "TargetSpotCapacity": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "SpotSpecification": { - "$ref": "#/definitions/AWS::EMR::Cluster.SpotProvisioningSpecification" + "Type": { + "type": "string" } }, "required": [ - "SpotSpecification" + "Type" ], "type": "object" }, - "AWS::EMR::Cluster.InstanceGroupConfig": { + "AWS::ECS::Service.ServiceRegistry": { "additionalProperties": false, "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AWS::EMR::Cluster.AutoScalingPolicy" - }, - "BidPrice": { + "ContainerName": { "type": "string" }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" - }, - "type": "array" - }, - "EbsConfiguration": { - "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration" - }, - "InstanceCount": { + "ContainerPort": { "type": "number" }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" + "Port": { + "type": "number" }, - "Name": { + "RegistryArn": { "type": "string" } }, - "required": [ - "InstanceCount", - "InstanceType" - ], "type": "object" }, - "AWS::EMR::Cluster.InstanceTypeConfig": { + "AWS::ECS::TaskDefinition": { "additionalProperties": false, "properties": { - "BidPrice": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" - }, - "type": "array" - }, - "EbsConfiguration": { - "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration" - }, - "InstanceType": { + "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": { + "ContainerDefinitions": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.ContainerDefinition" + }, + "type": "array" + }, + "Cpu": { + "type": "string" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Memory": { + "type": "string" + }, + "NetworkMode": { + "type": "string" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint" + }, + "type": "array" + }, + "RequiresCompatibilities": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TaskRoleArn": { + "type": "string" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Volume" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECS::TaskDefinition" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.ContainerDefinition": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Cpu": { + "type": "number" + }, + "DisableNetworking": { + "type": "boolean" + }, + "DnsSearchDomains": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DnsServers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DockerLabels": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "DockerSecurityOptions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EntryPoint": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Environment": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.KeyValuePair" + }, + "type": "array" + }, + "Essential": { + "type": "boolean" + }, + "ExtraHosts": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostEntry" + }, + "type": "array" + }, + "HealthCheck": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.HealthCheck" + }, + "Hostname": { + "type": "string" + }, + "Image": { + "type": "string" + }, + "Links": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LinuxParameters": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.LogConfiguration" + }, + "Memory": { + "type": "number" + }, + "MemoryReservation": { + "type": "number" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.MountPoint" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "PortMappings": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.PortMapping" + }, + "type": "array" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.RepositoryCredentials" + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Ulimit" + }, + "type": "array" + }, + "User": { + "type": "string" + }, + "VolumesFrom": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.VolumeFrom" + }, + "type": "array" + }, + "WorkingDirectory": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.Device": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "HostPath": { + "type": "string" + }, + "Permissions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "HostPath" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.DockerVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Autoprovision": { + "type": "boolean" + }, + "Driver": { + "type": "string" + }, + "DriverOpts": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Labels": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Scope": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.HealthCheck": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Interval": { + "type": "number" + }, + "Retries": { + "type": "number" + }, + "StartPeriod": { + "type": "number" + }, + "Timeout": { + "type": "number" + } + }, + "required": [ + "Command" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.HostEntry": { + "additionalProperties": false, + "properties": { + "Hostname": { + "type": "string" + }, + "IpAddress": { + "type": "string" + } + }, + "required": [ + "Hostname", + "IpAddress" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.HostVolumeProperties": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.KernelCapabilities": { + "additionalProperties": false, + "properties": { + "Add": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Drop": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.KeyValuePair": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.LinuxParameters": { + "additionalProperties": false, + "properties": { + "Capabilities": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.KernelCapabilities" + }, + "Devices": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Device" + }, + "type": "array" + }, + "InitProcessEnabled": { + "type": "boolean" + }, + "SharedMemorySize": { + "type": "number" + }, + "Tmpfs": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Tmpfs" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "LogDriver" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.MountPoint": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "ReadOnly": { + "type": "boolean" + }, + "SourceVolume": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.PortMapping": { + "additionalProperties": false, + "properties": { + "ContainerPort": { + "type": "number" + }, + "HostPort": { + "type": "number" + }, + "Protocol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.RepositoryCredentials": { + "additionalProperties": false, + "properties": { + "CredentialsParameter": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.Tmpfs": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "MountOptions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Size": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "SoftLimit": { + "type": "number" + } + }, + "required": [ + "HardLimit", + "Name", + "SoftLimit" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.Volume": { + "additionalProperties": false, + "properties": { + "DockerVolumeConfiguration": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.DockerVolumeConfiguration" + }, + "Host": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostVolumeProperties" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.VolumeFrom": { + "additionalProperties": false, + "properties": { + "ReadOnly": { + "type": "boolean" + }, + "SourceContainer": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EFS::FileSystem": { + "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": { + "Encrypted": { + "type": "boolean" + }, + "FileSystemTags": { + "items": { + "$ref": "#/definitions/AWS::EFS::FileSystem.ElasticFileSystemTag" + }, + "type": "array" + }, + "KmsKeyId": { + "type": "string" + }, + "PerformanceMode": { + "type": "string" + }, + "ProvisionedThroughputInMibps": { + "type": "number" + }, + "ThroughputMode": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EFS::FileSystem" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EFS::FileSystem.ElasticFileSystemTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EFS::MountTarget": { + "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": { + "FileSystemId": { + "type": "string" + }, + "IpAddress": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "FileSystemId", + "SecurityGroups", + "SubnetId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EFS::MountTarget" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EKS::Cluster": { + "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": { + "Name": { + "type": "string" + }, + "ResourcesVpcConfig": { + "$ref": "#/definitions/AWS::EKS::Cluster.ResourcesVpcConfig" + }, + "RoleArn": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "ResourcesVpcConfig", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EKS::Cluster" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EKS::Cluster.ResourcesVpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SubnetIds" + ], + "type": "object" + }, + "AWS::EMR::Cluster": { + "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": { + "AdditionalInfo": { + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Application" + }, + "type": "array" + }, + "AutoScalingRole": { + "type": "string" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.BootstrapActionConfig" + }, + "type": "array" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "type": "array" + }, + "CustomAmiId": { + "type": "string" + }, + "EbsRootVolumeSize": { + "type": "number" + }, + "Instances": { + "$ref": "#/definitions/AWS::EMR::Cluster.JobFlowInstancesConfig" + }, + "JobFlowRole": { + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/AWS::EMR::Cluster.KerberosAttributes" + }, + "LogUri": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ReleaseLabel": { + "type": "string" + }, + "ScaleDownBehavior": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "Steps": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.StepConfig" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VisibleToAllUsers": { + "type": "boolean" + } + }, + "required": [ + "Instances", + "JobFlowRole", + "Name", + "ServiceRole" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::Cluster" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::Cluster.Application": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingRule" + }, + "type": "array" + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AWS::EMR::Cluster.BootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScriptBootstrapActionConfig" + } + }, + "required": [ + "Name", + "ScriptBootstrapAction" + ], + "type": "object" + }, + "AWS::EMR::Cluster.CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.MetricDimension" + }, + "type": "array" + }, + "EvaluationPeriods": { + "type": "number" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "number" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "MetricName", + "Period", + "Threshold" + ], + "type": "object" + }, + "AWS::EMR::Cluster.Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/AWS::EMR::Cluster.VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "number" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "AWS::EMR::Cluster.EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.EbsBlockDeviceConfig" + }, + "type": "array" + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.KeyValue" + }, + "type": "array" + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "AWS::EMR::Cluster.InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceTypeConfig" + }, + "type": "array" + }, + "LaunchSpecifications": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "number" + }, + "TargetSpotCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "SpotSpecification": { + "$ref": "#/definitions/AWS::EMR::Cluster.SpotProvisioningSpecification" + } + }, + "required": [ + "SpotSpecification" + ], + "type": "object" + }, + "AWS::EMR::Cluster.InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AWS::EMR::Cluster.AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "type": "array" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration" + }, + "InstanceCount": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "AWS::EMR::Cluster.InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "type": "array" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration" + }, + "InstanceType": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "AWS::EMR::Cluster.JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + }, + "Ec2KeyName": { + "type": "string" + }, + "Ec2SubnetId": { + "type": "string" + }, + "EmrManagedMasterSecurityGroup": { + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "type": "string" + }, + "HadoopVersion": { + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + }, + "Placement": { + "$ref": "#/definitions/AWS::EMR::Cluster.PlacementType" + }, + "ServiceAccessSecurityGroup": { + "type": "string" + }, + "TerminationProtected": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "type": "string" + }, + "ADDomainJoinUser": { + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "type": "string" + }, + "KdcAdminPassword": { + "type": "string" + }, + "Realm": { + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "AWS::EMR::Cluster.KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EMR::Cluster.PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::EMR::Cluster.SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "required": [ + "MaxCapacity", + "MinCapacity" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingTrigger" + } + }, + "required": [ + "Action", + "Name", + "Trigger" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/AWS::EMR::Cluster.CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "AWS::EMR::Cluster.SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "number" + }, + "ScalingAdjustment": { + "type": "number" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "AWS::EMR::Cluster.SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "BlockDurationMinutes": { + "type": "number" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "number" + } + }, + "required": [ + "TimeoutAction", + "TimeoutDurationMinutes" + ], + "type": "object" + }, + "AWS::EMR::Cluster.StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/AWS::EMR::Cluster.HadoopJarStepConfig" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "AWS::EMR::Cluster.VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "number" + }, + "SizeInGB": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig": { + "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": { + "ClusterId": { + "type": "string" + }, + "InstanceFleetType": { + "type": "string" + }, + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceTypeConfig" + }, + "type": "array" + }, + "LaunchSpecifications": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "number" + }, + "TargetSpotCapacity": { + "type": "number" + } + }, + "required": [ + "ClusterId", + "InstanceFleetType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::InstanceFleetConfig" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "number" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig" + }, + "type": "array" + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "SpotSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification" + } + }, + "required": [ + "SpotSpecification" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration" + }, + "type": "array" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsConfiguration" + }, + "InstanceType": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "BlockDurationMinutes": { + "type": "number" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "number" + } + }, + "required": [ + "TimeoutAction", + "TimeoutDurationMinutes" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "number" + }, + "SizeInGB": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig": { + "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": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration" + }, + "type": "array" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsConfiguration" + }, + "InstanceCount": { + "type": "number" + }, + "InstanceRole": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "JobFlowId": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceRole", + "InstanceType", + "JobFlowId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::InstanceGroupConfig" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingRule" + }, + "type": "array" + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.MetricDimension" + }, + "type": "array" + }, + "EvaluationPeriods": { + "type": "number" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "number" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "MetricName", + "Period", + "Threshold" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "number" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig" + }, + "type": "array" + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "required": [ + "MaxCapacity", + "MinCapacity" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingTrigger" + } + }, + "required": [ + "Action", + "Name", + "Trigger" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "number" + }, + "ScalingAdjustment": { + "type": "number" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "number" + }, + "SizeInGB": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + }, + "AWS::EMR::SecurityConfiguration": { + "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": { + "Name": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "object" + } + }, + "required": [ + "SecurityConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::SecurityConfiguration" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::Step": { + "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": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/AWS::EMR::Step.HadoopJarStepConfig" + }, + "JobFlowId": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "ActionOnFailure", + "HadoopJarStep", + "JobFlowId", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::Step" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::Step.HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/AWS::EMR::Step.KeyValue" + }, + "type": "array" + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "AWS::EMR::Step.KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElastiCache::CacheCluster": { + "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": { + "AZMode": { + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "CacheNodeType": { + "type": "string" + }, + "CacheParameterGroupName": { + "type": "string" + }, + "CacheSecurityGroupNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CacheSubnetGroupName": { + "type": "string" + }, + "ClusterName": { + "type": "string" + }, + "Engine": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "NotificationTopicArn": { + "type": "string" + }, + "NumCacheNodes": { + "type": "number" + }, + "Port": { + "type": "number" + }, + "PreferredAvailabilityZone": { + "type": "string" + }, + "PreferredAvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "SnapshotArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotName": { + "type": "string" + }, + "SnapshotRetentionLimit": { + "type": "number" + }, + "SnapshotWindow": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "CacheNodeType", + "Engine", + "NumCacheNodes" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::CacheCluster" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::ParameterGroup": { + "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": { + "CacheParameterGroupFamily": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Properties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "CacheParameterGroupFamily", + "Description" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::ParameterGroup" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::ReplicationGroup": { + "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": { + "AtRestEncryptionEnabled": { + "type": "boolean" + }, + "AuthToken": { + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AutomaticFailoverEnabled": { + "type": "boolean" + }, + "CacheNodeType": { + "type": "string" + }, + "CacheParameterGroupName": { + "type": "string" + }, + "CacheSecurityGroupNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CacheSubnetGroupName": { + "type": "string" + }, + "Engine": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "NodeGroupConfiguration": { + "items": { + "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration" + }, + "type": "array" + }, + "NotificationTopicArn": { + "type": "string" + }, + "NumCacheClusters": { + "type": "number" + }, + "NumNodeGroups": { + "type": "number" + }, + "Port": { + "type": "number" + }, + "PreferredCacheClusterAZs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PrimaryClusterId": { + "type": "string" + }, + "ReplicasPerNodeGroup": { + "type": "number" + }, + "ReplicationGroupDescription": { + "type": "string" + }, + "ReplicationGroupId": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotName": { + "type": "string" + }, + "SnapshotRetentionLimit": { + "type": "number" + }, + "SnapshotWindow": { + "type": "string" + }, + "SnapshottingClusterId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitEncryptionEnabled": { + "type": "boolean" + } + }, + "required": [ + "ReplicationGroupDescription" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::ReplicationGroup" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration": { + "additionalProperties": false, + "properties": { + "NodeGroupId": { + "type": "string" + }, + "PrimaryAvailabilityZone": { + "type": "string" + }, + "ReplicaAvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ReplicaCount": { + "type": "number" + }, + "Slots": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElastiCache::SecurityGroup": { + "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" + } + }, + "required": [ + "Description" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::SecurityGroup" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::SecurityGroupIngress": { + "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": { + "CacheSecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupOwnerId": { + "type": "string" + } + }, + "required": [ + "CacheSecurityGroupName", + "EC2SecurityGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::SecurityGroupIngress" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::SubnetGroup": { + "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": { + "CacheSubnetGroupName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Description", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::SubnetGroup" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::Application": { + "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": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "ResourceLifecycleConfig": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticBeanstalk::Application" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig": { + "additionalProperties": false, + "properties": { + "ServiceRole": { + "type": "string" + }, + "VersionLifecycleConfig": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig": { + "additionalProperties": false, + "properties": { + "MaxAgeRule": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxAgeRule" + }, + "MaxCountRule": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxCountRule" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.MaxAgeRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxAgeInDays": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.MaxCountRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxCount": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::ApplicationVersion": { + "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": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "SourceBundle": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle" + } + }, + "required": [ + "ApplicationName", + "SourceBundle" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticBeanstalk::ApplicationVersion" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::ConfigurationTemplate": { + "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": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EnvironmentId": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting" + }, + "type": "array" + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "SourceConfiguration": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration" + } + }, + "required": [ + "ApplicationName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticBeanstalk::ConfigurationTemplate" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "OptionName": { + "type": "string" + }, + "ResourceName": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration": { + "additionalProperties": false, + "properties": { + "ApplicationName": { + "type": "string" + }, + "TemplateName": { + "type": "string" + } + }, + "required": [ + "ApplicationName", + "TemplateName" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::Environment": { + "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": { + "ApplicationName": { + "type": "string" + }, + "CNAMEPrefix": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EnvironmentName": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.OptionSetting" + }, + "type": "array" + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TemplateName": { + "type": "string" + }, + "Tier": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.Tier" + }, + "VersionLabel": { + "type": "string" + } + }, + "required": [ + "ApplicationName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticBeanstalk::Environment" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::Environment.OptionSetting": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "OptionName": { + "type": "string" + }, + "ResourceName": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::Environment.Tier": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer": { + "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": { + "AccessLoggingPolicy": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy" + }, + "AppCookieStickinessPolicy": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy" + }, + "type": "array" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ConnectionDrainingPolicy": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy" + }, + "ConnectionSettings": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings" + }, + "CrossZone": { + "type": "boolean" + }, + "HealthCheck": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck" + }, + "Instances": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LBCookieStickinessPolicy": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy" + }, + "type": "array" + }, + "Listeners": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Listeners" + }, + "type": "array" + }, + "LoadBalancerName": { + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Policies" + }, + "type": "array" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Listeners" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticLoadBalancing::LoadBalancer" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy": { + "additionalProperties": false, + "properties": { + "EmitInterval": { + "type": "number" + }, + "Enabled": { + "type": "boolean" + }, + "S3BucketName": { + "type": "string" + }, + "S3BucketPrefix": { + "type": "string" + } + }, + "required": [ + "Enabled", + "S3BucketName" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy": { + "additionalProperties": false, + "properties": { + "CookieName": { + "type": "string" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "CookieName", + "PolicyName" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Timeout": { + "type": "number" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "number" + } + }, + "required": [ + "IdleTimeout" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck": { + "additionalProperties": false, + "properties": { + "HealthyThreshold": { + "type": "string" + }, + "Interval": { + "type": "string" + }, + "Target": { + "type": "string" + }, + "Timeout": { + "type": "string" + }, + "UnhealthyThreshold": { + "type": "string" + } + }, + "required": [ + "HealthyThreshold", + "Interval", + "Target", + "Timeout", + "UnhealthyThreshold" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy": { + "additionalProperties": false, + "properties": { + "CookieExpirationPeriod": { + "type": "string" + }, + "PolicyName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.Listeners": { + "additionalProperties": false, + "properties": { + "InstancePort": { + "type": "string" + }, + "InstanceProtocol": { "type": "string" }, - "WeightedCapacity": { - "type": "number" + "LoadBalancerPort": { + "type": "string" + }, + "PolicyNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Protocol": { + "type": "string" + }, + "SSLCertificateId": { + "type": "string" } }, "required": [ - "InstanceType" + "InstancePort", + "LoadBalancerPort", + "Protocol" ], "type": "object" }, - "AWS::EMR::Cluster.JobFlowInstancesConfig": { + "AWS::ElasticLoadBalancing::LoadBalancer.Policies": { "additionalProperties": false, "properties": { - "AdditionalMasterSecurityGroups": { + "Attributes": { "items": { - "type": "string" + "type": "object" }, "type": "array" }, - "AdditionalSlaveSecurityGroups": { + "InstancePorts": { "items": { "type": "string" }, "type": "array" }, - "CoreInstanceFleet": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + "LoadBalancerPorts": { + "items": { + "type": "string" + }, + "type": "array" }, - "CoreInstanceGroup": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + "PolicyName": { + "type": "string" }, - "Ec2KeyName": { + "PolicyType": { + "type": "string" + } + }, + "required": [ + "Attributes", + "PolicyName", + "PolicyType" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "Ec2SubnetId": { + "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": { + "Certificates": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Certificate" + }, + "type": "array" + }, + "DefaultActions": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Action" + }, + "type": "array" + }, + "LoadBalancerArn": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + }, + "SslPolicy": { + "type": "string" + } + }, + "required": [ + "DefaultActions", + "LoadBalancerArn", + "Port", + "Protocol" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticLoadBalancingV2::Listener" + ], "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.Action": { + "additionalProperties": false, + "properties": { + "AuthenticateCognitoConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig" }, - "EmrManagedMasterSecurityGroup": { + "AuthenticateOidcConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig" + }, + "FixedResponseConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig" + }, + "Order": { + "type": "number" + }, + "RedirectConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.RedirectConfig" + }, + "TargetGroupArn": { "type": "string" }, - "EmrManagedSlaveSecurityGroup": { + "Type": { "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig": { + "additionalProperties": false, + "properties": { + "AuthenticationRequestExtraParams": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" }, - "HadoopVersion": { + "OnUnauthenticatedRequest": { "type": "string" }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" + "Scope": { + "type": "string" }, - "MasterInstanceFleet": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + "SessionCookieName": { + "type": "string" }, - "MasterInstanceGroup": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + "SessionTimeout": { + "type": "number" }, - "Placement": { - "$ref": "#/definitions/AWS::EMR::Cluster.PlacementType" + "UserPoolArn": { + "type": "string" }, - "ServiceAccessSecurityGroup": { + "UserPoolClientId": { "type": "string" }, - "TerminationProtected": { - "type": "boolean" + "UserPoolDomain": { + "type": "string" } }, + "required": [ + "UserPoolArn", + "UserPoolClientId", + "UserPoolDomain" + ], "type": "object" }, - "AWS::EMR::Cluster.KerberosAttributes": { + "AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig": { "additionalProperties": false, "properties": { - "ADDomainJoinPassword": { + "AuthenticationRequestExtraParams": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "AuthorizationEndpoint": { "type": "string" }, - "ADDomainJoinUser": { + "ClientId": { "type": "string" }, - "CrossRealmTrustPrincipalPassword": { + "ClientSecret": { "type": "string" }, - "KdcAdminPassword": { + "Issuer": { "type": "string" }, - "Realm": { + "OnUnauthenticatedRequest": { + "type": "string" + }, + "Scope": { + "type": "string" + }, + "SessionCookieName": { + "type": "string" + }, + "SessionTimeout": { + "type": "number" + }, + "TokenEndpoint": { + "type": "string" + }, + "UserInfoEndpoint": { "type": "string" } }, "required": [ - "KdcAdminPassword", - "Realm" + "AuthorizationEndpoint", + "ClientId", + "ClientSecret", + "Issuer", + "TokenEndpoint", + "UserInfoEndpoint" ], "type": "object" }, - "AWS::EMR::Cluster.KeyValue": { + "AWS::ElasticLoadBalancingV2::Listener.Certificate": { "additionalProperties": false, "properties": { - "Key": { - "type": "string" - }, - "Value": { + "CertificateArn": { "type": "string" } }, "type": "object" }, - "AWS::EMR::Cluster.MetricDimension": { + "AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig": { "additionalProperties": false, "properties": { - "Key": { + "ContentType": { "type": "string" }, - "Value": { + "MessageBody": { + "type": "string" + }, + "StatusCode": { "type": "string" } }, "required": [ - "Key", - "Value" + "StatusCode" ], "type": "object" }, - "AWS::EMR::Cluster.PlacementType": { + "AWS::ElasticLoadBalancingV2::Listener.RedirectConfig": { "additionalProperties": false, "properties": { - "AvailabilityZone": { + "Host": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "Query": { + "type": "string" + }, + "StatusCode": { "type": "string" } }, "required": [ - "AvailabilityZone" + "StatusCode" ], "type": "object" }, - "AWS::EMR::Cluster.ScalingAction": { + "AWS::ElasticLoadBalancingV2::ListenerCertificate": { "additionalProperties": false, "properties": { - "Market": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/AWS::EMR::Cluster.SimpleScalingPolicyConfiguration" + "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": { + "Certificates": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate" + }, + "type": "array" + }, + "ListenerArn": { + "type": "string" + } + }, + "required": [ + "Certificates", + "ListenerArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticLoadBalancingV2::ListenerCertificate" + ], + "type": "string" } }, "required": [ - "SimpleScalingPolicyConfiguration" + "Type", + "Properties" ], "type": "object" }, - "AWS::EMR::Cluster.ScalingConstraints": { + "AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate": { "additionalProperties": false, "properties": { - "MaxCapacity": { - "type": "number" - }, - "MinCapacity": { - "type": "number" + "CertificateArn": { + "type": "string" } }, - "required": [ - "MaxCapacity", - "MinCapacity" - ], "type": "object" }, - "AWS::EMR::Cluster.ScalingRule": { + "AWS::ElasticLoadBalancingV2::ListenerRule": { "additionalProperties": false, "properties": { - "Action": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScalingAction" - }, - "Description": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "Name": { - "type": "string" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Trigger": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScalingTrigger" + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.Action" + }, + "type": "array" + }, + "Conditions": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition" + }, + "type": "array" + }, + "ListenerArn": { + "type": "string" + }, + "Priority": { + "type": "number" + } + }, + "required": [ + "Actions", + "Conditions", + "ListenerArn", + "Priority" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticLoadBalancingV2::ListenerRule" + ], + "type": "string" } }, "required": [ - "Action", - "Name", - "Trigger" + "Type", + "Properties" ], "type": "object" }, - "AWS::EMR::Cluster.ScalingTrigger": { + "AWS::ElasticLoadBalancingV2::ListenerRule.Action": { "additionalProperties": false, "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/AWS::EMR::Cluster.CloudWatchAlarmDefinition" + "AuthenticateCognitoConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig" + }, + "AuthenticateOidcConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig" + }, + "FixedResponseConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig" + }, + "Order": { + "type": "number" + }, + "RedirectConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig" + }, + "TargetGroupArn": { + "type": "string" + }, + "Type": { + "type": "string" } }, "required": [ - "CloudWatchAlarmDefinition" + "Type" ], "type": "object" }, - "AWS::EMR::Cluster.ScriptBootstrapActionConfig": { + "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig": { "additionalProperties": false, "properties": { - "Args": { - "items": { - "type": "string" + "AuthenticationRequestExtraParams": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } }, - "type": "array" + "type": "object" }, - "Path": { + "OnUnauthenticatedRequest": { + "type": "string" + }, + "Scope": { + "type": "string" + }, + "SessionCookieName": { + "type": "string" + }, + "SessionTimeout": { + "type": "number" + }, + "UserPoolArn": { + "type": "string" + }, + "UserPoolClientId": { + "type": "string" + }, + "UserPoolDomain": { "type": "string" } }, "required": [ - "Path" + "UserPoolArn", + "UserPoolClientId", + "UserPoolDomain" ], "type": "object" }, - "AWS::EMR::Cluster.SimpleScalingPolicyConfiguration": { + "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig": { "additionalProperties": false, "properties": { - "AdjustmentType": { + "AuthenticationRequestExtraParams": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "AuthorizationEndpoint": { + "type": "string" + }, + "ClientId": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + }, + "Issuer": { + "type": "string" + }, + "OnUnauthenticatedRequest": { + "type": "string" + }, + "Scope": { "type": "string" }, - "CoolDown": { - "type": "number" + "SessionCookieName": { + "type": "string" }, - "ScalingAdjustment": { + "SessionTimeout": { "type": "number" + }, + "TokenEndpoint": { + "type": "string" + }, + "UserInfoEndpoint": { + "type": "string" } }, "required": [ - "ScalingAdjustment" + "AuthorizationEndpoint", + "ClientId", + "ClientSecret", + "Issuer", + "TokenEndpoint", + "UserInfoEndpoint" ], "type": "object" }, - "AWS::EMR::Cluster.SpotProvisioningSpecification": { + "AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig": { "additionalProperties": false, "properties": { - "BlockDurationMinutes": { - "type": "number" + "ContentType": { + "type": "string" }, - "TimeoutAction": { + "MessageBody": { "type": "string" }, - "TimeoutDurationMinutes": { - "type": "number" + "StatusCode": { + "type": "string" } }, "required": [ - "TimeoutAction", - "TimeoutDurationMinutes" + "StatusCode" ], "type": "object" }, - "AWS::EMR::Cluster.StepConfig": { + "AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig": { "additionalProperties": false, "properties": { - "ActionOnFailure": { + "Host": { "type": "string" }, - "HadoopJarStep": { - "$ref": "#/definitions/AWS::EMR::Cluster.HadoopJarStepConfig" + "Path": { + "type": "string" }, - "Name": { + "Port": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "Query": { + "type": "string" + }, + "StatusCode": { "type": "string" } }, "required": [ - "HadoopJarStep", - "Name" + "StatusCode" ], "type": "object" }, - "AWS::EMR::Cluster.VolumeSpecification": { + "AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition": { "additionalProperties": false, "properties": { - "Iops": { - "type": "number" - }, - "SizeInGB": { - "type": "number" - }, - "VolumeType": { + "Field": { "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "SizeInGB", - "VolumeType" - ], "type": "object" }, - "AWS::EMR::InstanceFleetConfig": { + "AWS::ElasticLoadBalancingV2::LoadBalancer": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -17845,185 +21847,92 @@ "Properties": { "additionalProperties": false, "properties": { - "ClusterId": { + "IpAddressType": { "type": "string" }, - "InstanceFleetType": { + "LoadBalancerAttributes": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute" + }, + "type": "array" + }, + "Name": { "type": "string" }, - "InstanceTypeConfigs": { + "Scheme": { + "type": "string" + }, + "SecurityGroups": { "items": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceTypeConfig" + "type": "string" }, "type": "array" }, - "LaunchSpecifications": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications" + "SubnetMappings": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping" + }, + "type": "array" }, - "Name": { - "type": "string" + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" }, - "TargetOnDemandCapacity": { - "type": "number" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "TargetSpotCapacity": { - "type": "number" + "Type": { + "type": "string" } }, - "required": [ - "ClusterId", - "InstanceFleetType" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EMR::InstanceFleetConfig" + "AWS::ElasticLoadBalancingV2::LoadBalancer" ], "type": "string" } }, "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::EMR::InstanceFleetConfig.Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "number" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "AWS::EMR::InstanceFleetConfig.EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig" - }, - "type": "array" - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "SpotSpecification": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification" - } - }, - "required": [ - "SpotSpecification" + "Type" ], "type": "object" }, - "AWS::EMR::InstanceFleetConfig.InstanceTypeConfig": { + "AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute": { "additionalProperties": false, "properties": { - "BidPrice": { + "Key": { "type": "string" }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration" - }, - "type": "array" - }, - "EbsConfiguration": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsConfiguration" - }, - "InstanceType": { + "Value": { "type": "string" - }, - "WeightedCapacity": { - "type": "number" } }, - "required": [ - "InstanceType" - ], "type": "object" }, - "AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification": { + "AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping": { "additionalProperties": false, "properties": { - "BlockDurationMinutes": { - "type": "number" - }, - "TimeoutAction": { + "AllocationId": { "type": "string" }, - "TimeoutDurationMinutes": { - "type": "number" - } - }, - "required": [ - "TimeoutAction", - "TimeoutDurationMinutes" - ], - "type": "object" - }, - "AWS::EMR::InstanceFleetConfig.VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "number" - }, - "SizeInGB": { - "type": "number" - }, - "VolumeType": { + "SubnetId": { "type": "string" } }, "required": [ - "SizeInGB", - "VolumeType" + "AllocationId", + "SubnetId" ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig": { + "AWS::ElasticLoadBalancingV2::TargetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18055,177 +21964,112 @@ "Properties": { "additionalProperties": false, "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.AutoScalingPolicy" + "HealthCheckEnabled": { + "type": "boolean" }, - "BidPrice": { + "HealthCheckIntervalSeconds": { + "type": "number" + }, + "HealthCheckPath": { "type": "string" }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration" - }, - "type": "array" + "HealthCheckPort": { + "type": "string" }, - "EbsConfiguration": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsConfiguration" + "HealthCheckProtocol": { + "type": "string" }, - "InstanceCount": { + "HealthCheckTimeoutSeconds": { "type": "number" }, - "InstanceRole": { - "type": "string" + "HealthyThresholdCount": { + "type": "number" }, - "InstanceType": { + "Matcher": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.Matcher" + }, + "Name": { "type": "string" }, - "JobFlowId": { + "Port": { + "type": "number" + }, + "Protocol": { "type": "string" }, - "Market": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TargetGroupAttributes": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute" + }, + "type": "array" + }, + "TargetType": { "type": "string" }, - "Name": { + "Targets": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription" + }, + "type": "array" + }, + "UnhealthyThresholdCount": { + "type": "number" + }, + "VpcId": { "type": "string" } }, - "required": [ - "InstanceCount", - "InstanceRole", - "InstanceType", - "JobFlowId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EMR::InstanceGroupConfig" + "AWS::ElasticLoadBalancingV2::TargetGroup" ], "type": "string" } }, "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::EMR::InstanceGroupConfig.AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingRule" - }, - "type": "array" - } - }, - "required": [ - "Constraints", - "Rules" + "Type" ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition": { + "AWS::ElasticLoadBalancingV2::TargetGroup.Matcher": { "additionalProperties": false, "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.MetricDimension" - }, - "type": "array" - }, - "EvaluationPeriods": { - "type": "number" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "number" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { + "HttpCode": { "type": "string" } }, "required": [ - "ComparisonOperator", - "MetricName", - "Period", - "Threshold" + "HttpCode" ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.Configuration": { + "AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription": { "additionalProperties": false, "properties": { - "Classification": { + "AvailabilityZone": { "type": "string" }, - "ConfigurationProperties": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.VolumeSpecification" + "Id": { + "type": "string" }, - "VolumesPerInstance": { + "Port": { "type": "number" } }, "required": [ - "VolumeSpecification" + "Id" ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig" - }, - "type": "array" - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::EMR::InstanceGroupConfig.MetricDimension": { + "AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute": { "additionalProperties": false, "properties": { "Key": { @@ -18235,173 +22079,188 @@ "type": "string" } }, - "required": [ - "Key", - "Value" - ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.ScalingAction": { + "AWS::Elasticsearch::Domain": { "additionalProperties": false, "properties": { - "Market": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration" + "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": { + "AccessPolicies": { + "type": "object" + }, + "AdvancedOptions": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.EBSOptions" + }, + "ElasticsearchClusterConfig": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.ElasticsearchClusterConfig" + }, + "ElasticsearchVersion": { + "type": "string" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.EncryptionAtRestOptions" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.NodeToNodeEncryptionOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.SnapshotOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VPCOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.VPCOptions" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Elasticsearch::Domain" + ], + "type": "string" } }, "required": [ - "SimpleScalingPolicyConfiguration" + "Type" ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.ScalingConstraints": { + "AWS::Elasticsearch::Domain.EBSOptions": { "additionalProperties": false, "properties": { - "MaxCapacity": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { "type": "number" }, - "MinCapacity": { + "VolumeSize": { "type": "number" + }, + "VolumeType": { + "type": "string" } }, - "required": [ - "MaxCapacity", - "MinCapacity" - ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.ScalingRule": { + "AWS::Elasticsearch::Domain.ElasticsearchClusterConfig": { "additionalProperties": false, "properties": { - "Action": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingAction" + "DedicatedMasterCount": { + "type": "number" }, - "Description": { + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { "type": "string" }, - "Name": { + "InstanceCount": { + "type": "number" + }, + "InstanceType": { "type": "string" }, - "Trigger": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingTrigger" + "ZoneAwarenessEnabled": { + "type": "boolean" } }, - "required": [ - "Action", - "Name", - "Trigger" - ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.ScalingTrigger": { + "AWS::Elasticsearch::Domain.EncryptionAtRestOptions": { "additionalProperties": false, "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition" + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" } }, - "required": [ - "CloudWatchAlarmDefinition" - ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration": { + "AWS::Elasticsearch::Domain.NodeToNodeEncryptionOptions": { "additionalProperties": false, "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "number" - }, - "ScalingAdjustment": { - "type": "number" + "Enabled": { + "type": "boolean" } }, - "required": [ - "ScalingAdjustment" - ], "type": "object" }, - "AWS::EMR::InstanceGroupConfig.VolumeSpecification": { + "AWS::Elasticsearch::Domain.SnapshotOptions": { "additionalProperties": false, "properties": { - "Iops": { - "type": "number" - }, - "SizeInGB": { + "AutomatedSnapshotStartHour": { "type": "number" - }, - "VolumeType": { - "type": "string" } }, - "required": [ - "SizeInGB", - "VolumeType" - ], "type": "object" }, - "AWS::EMR::SecurityConfiguration": { + "AWS::Elasticsearch::Domain.VPCOptions": { "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": { - "Name": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "object" - } + "SecurityGroupIds": { + "items": { + "type": "string" }, - "required": [ - "SecurityConfiguration" - ], - "type": "object" + "type": "array" }, - "Type": { - "enum": [ - "AWS::EMR::SecurityConfiguration" - ], - "type": "string" + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::EMR::Step": { + "AWS::Events::EventBusPolicy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18433,30 +22292,29 @@ "Properties": { "additionalProperties": false, "properties": { - "ActionOnFailure": { + "Action": { "type": "string" }, - "HadoopJarStep": { - "$ref": "#/definitions/AWS::EMR::Step.HadoopJarStepConfig" + "Condition": { + "$ref": "#/definitions/AWS::Events::EventBusPolicy.Condition" }, - "JobFlowId": { + "Principal": { "type": "string" }, - "Name": { + "StatementId": { "type": "string" } }, "required": [ - "ActionOnFailure", - "HadoopJarStep", - "JobFlowId", - "Name" + "Action", + "Principal", + "StatementId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EMR::Step" + "AWS::Events::EventBusPolicy" ], "type": "string" } @@ -18467,37 +22325,13 @@ ], "type": "object" }, - "AWS::EMR::Step.HadoopJarStepConfig": { + "AWS::Events::EventBusPolicy.Condition": { "additionalProperties": false, "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Jar": { - "type": "string" - }, - "MainClass": { + "Key": { "type": "string" }, - "StepProperties": { - "items": { - "$ref": "#/definitions/AWS::EMR::Step.KeyValue" - }, - "type": "array" - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "AWS::EMR::Step.KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { + "Type": { "type": "string" }, "Value": { @@ -18506,7 +22340,7 @@ }, "type": "object" }, - "AWS::ElastiCache::CacheCluster": { + "AWS::Events::Rule": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18538,173 +22372,180 @@ "Properties": { "additionalProperties": false, "properties": { - "AZMode": { - "type": "string" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "CacheNodeType": { - "type": "string" - }, - "CacheParameterGroupName": { - "type": "string" - }, - "CacheSecurityGroupNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "CacheSubnetGroupName": { - "type": "string" - }, - "ClusterName": { - "type": "string" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "NotificationTopicArn": { + "Description": { "type": "string" }, - "NumCacheNodes": { - "type": "number" - }, - "Port": { - "type": "number" + "EventPattern": { + "type": "object" }, - "PreferredAvailabilityZone": { + "Name": { "type": "string" }, - "PreferredAvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" - }, - "PreferredMaintenanceWindow": { + "RoleArn": { "type": "string" }, - "SnapshotArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SnapshotName": { + "ScheduleExpression": { "type": "string" }, - "SnapshotRetentionLimit": { - "type": "number" - }, - "SnapshotWindow": { + "State": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VpcSecurityGroupIds": { + "Targets": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::Events::Rule.Target" }, "type": "array" } }, - "required": [ - "CacheNodeType", - "Engine", - "NumCacheNodes" - ], "type": "object" }, "Type": { "enum": [ - "AWS::ElastiCache::CacheCluster" + "AWS::Events::Rule" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::ElastiCache::ParameterGroup": { + "AWS::Events::Rule.EcsParameters": { "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" + "TaskCount": { + "type": "number" }, - "Properties": { + "TaskDefinitionArn": { + "type": "string" + } + }, + "required": [ + "TaskDefinitionArn" + ], + "type": "object" + }, + "AWS::Events::Rule.InputTransformer": { + "additionalProperties": false, + "properties": { + "InputPathsMap": { "additionalProperties": false, - "properties": { - "CacheParameterGroupFamily": { - "type": "string" - }, - "Description": { + "patternProperties": { + "^[a-zA-Z0-9]+$": { "type": "string" - }, - "Properties": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" } }, - "required": [ - "CacheParameterGroupFamily", - "Description" - ], "type": "object" }, - "Type": { - "enum": [ - "AWS::ElastiCache::ParameterGroup" - ], + "InputTemplate": { "type": "string" } }, "required": [ - "Type", - "Properties" + "InputTemplate" ], "type": "object" }, - "AWS::ElastiCache::ReplicationGroup": { + "AWS::Events::Rule.KinesisParameters": { + "additionalProperties": false, + "properties": { + "PartitionKeyPath": { + "type": "string" + } + }, + "required": [ + "PartitionKeyPath" + ], + "type": "object" + }, + "AWS::Events::Rule.RunCommandParameters": { + "additionalProperties": false, + "properties": { + "RunCommandTargets": { + "items": { + "$ref": "#/definitions/AWS::Events::Rule.RunCommandTarget" + }, + "type": "array" + } + }, + "required": [ + "RunCommandTargets" + ], + "type": "object" + }, + "AWS::Events::Rule.RunCommandTarget": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Key", + "Values" + ], + "type": "object" + }, + "AWS::Events::Rule.SqsParameters": { + "additionalProperties": false, + "properties": { + "MessageGroupId": { + "type": "string" + } + }, + "required": [ + "MessageGroupId" + ], + "type": "object" + }, + "AWS::Events::Rule.Target": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "EcsParameters": { + "$ref": "#/definitions/AWS::Events::Rule.EcsParameters" + }, + "Id": { + "type": "string" + }, + "Input": { + "type": "string" + }, + "InputPath": { + "type": "string" + }, + "InputTransformer": { + "$ref": "#/definitions/AWS::Events::Rule.InputTransformer" + }, + "KinesisParameters": { + "$ref": "#/definitions/AWS::Events::Rule.KinesisParameters" + }, + "RoleArn": { + "type": "string" + }, + "RunCommandParameters": { + "$ref": "#/definitions/AWS::Events::Rule.RunCommandParameters" + }, + "SqsParameters": { + "$ref": "#/definitions/AWS::Events::Rule.SqsParameters" + } + }, + "required": [ + "Arn", + "Id" + ], + "type": "object" + }, + "AWS::FSx::FileSystem": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18731,82 +22572,22 @@ ] }, "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "AtRestEncryptionEnabled": { - "type": "boolean" - }, - "AuthToken": { - "type": "string" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticFailoverEnabled": { - "type": "boolean" - }, - "CacheNodeType": { - "type": "string" - }, - "CacheParameterGroupName": { - "type": "string" - }, - "CacheSecurityGroupNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "CacheSubnetGroupName": { - "type": "string" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "NodeGroupConfiguration": { - "items": { - "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration" - }, - "type": "array" - }, - "NotificationTopicArn": { - "type": "string" - }, - "NumCacheClusters": { - "type": "number" - }, - "NumNodeGroups": { - "type": "number" - }, - "Port": { - "type": "number" - }, - "PreferredCacheClusterAZs": { - "items": { - "type": "string" - }, - "type": "array" - }, - "PreferredMaintenanceWindow": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "BackupId": { "type": "string" }, - "PrimaryClusterId": { + "FileSystemType": { "type": "string" }, - "ReplicasPerNodeGroup": { - "type": "number" - }, - "ReplicationGroupDescription": { + "KmsKeyId": { "type": "string" }, - "ReplicationGroupId": { - "type": "string" + "LustreConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.LustreConfiguration" }, "SecurityGroupIds": { "items": { @@ -18814,77 +22595,98 @@ }, "type": "array" }, - "SnapshotArns": { + "StorageCapacity": { + "type": "number" + }, + "SubnetIds": { "items": { "type": "string" }, "type": "array" }, - "SnapshotName": { - "type": "string" - }, - "SnapshotRetentionLimit": { - "type": "number" - }, - "SnapshotWindow": { - "type": "string" - }, - "SnapshottingClusterId": { - "type": "string" - }, "Tags": { "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/AWS::FSx::FileSystem.TagEntry" }, "type": "array" }, - "TransitEncryptionEnabled": { - "type": "boolean" + "WindowsConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.WindowsConfiguration" } }, - "required": [ - "ReplicationGroupDescription" - ], "type": "object" }, "Type": { "enum": [ - "AWS::ElastiCache::ReplicationGroup" + "AWS::FSx::FileSystem" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration": { + "AWS::FSx::FileSystem.LustreConfiguration": { "additionalProperties": false, "properties": { - "NodeGroupId": { + "ExportPath": { "type": "string" }, - "PrimaryAvailabilityZone": { + "ImportPath": { "type": "string" }, - "ReplicaAvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" + "ImportedFileChunkSize": { + "type": "number" }, - "ReplicaCount": { + "WeeklyMaintenanceStartTime": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::FSx::FileSystem.TagEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::FSx::FileSystem.WindowsConfiguration": { + "additionalProperties": false, + "properties": { + "ActiveDirectoryId": { + "type": "string" + }, + "AutomaticBackupRetentionDays": { "type": "number" }, - "Slots": { + "CopyTagsToBackups": { + "type": "boolean" + }, + "DailyAutomaticBackupStartTime": { + "type": "string" + }, + "ThroughputCapacity": { + "type": "number" + }, + "WeeklyMaintenanceStartTime": { "type": "string" } }, "type": "object" }, - "AWS::ElastiCache::SecurityGroup": { + "AWS::GameLift::Alias": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18918,16 +22720,23 @@ "properties": { "Description": { "type": "string" + }, + "Name": { + "type": "string" + }, + "RoutingStrategy": { + "$ref": "#/definitions/AWS::GameLift::Alias.RoutingStrategy" } }, "required": [ - "Description" + "Name", + "RoutingStrategy" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElastiCache::SecurityGroup" + "AWS::GameLift::Alias" ], "type": "string" } @@ -18938,7 +22747,25 @@ ], "type": "object" }, - "AWS::ElastiCache::SecurityGroupIngress": { + "AWS::GameLift::Alias.RoutingStrategy": { + "additionalProperties": false, + "properties": { + "FleetId": { + "type": "string" + }, + "Message": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::GameLift::Build": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -18970,36 +22797,51 @@ "Properties": { "additionalProperties": false, "properties": { - "CacheSecurityGroupName": { + "Name": { "type": "string" }, - "EC2SecurityGroupName": { - "type": "string" + "StorageLocation": { + "$ref": "#/definitions/AWS::GameLift::Build.S3Location" }, - "EC2SecurityGroupOwnerId": { + "Version": { "type": "string" } }, - "required": [ - "CacheSecurityGroupName", - "EC2SecurityGroupName" - ], "type": "object" }, "Type": { "enum": [ - "AWS::ElastiCache::SecurityGroupIngress" + "AWS::GameLift::Build" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::ElastiCache::SubnetGroup": { + "AWS::GameLift::Build.S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key", + "RoleArn" + ], + "type": "object" + }, + "AWS::GameLift::Fleet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19031,28 +22873,58 @@ "Properties": { "additionalProperties": false, "properties": { - "CacheSubnetGroupName": { + "BuildId": { "type": "string" }, "Description": { "type": "string" }, - "SubnetIds": { + "DesiredEC2Instances": { + "type": "number" + }, + "EC2InboundPermissions": { + "items": { + "$ref": "#/definitions/AWS::GameLift::Fleet.IpPermission" + }, + "type": "array" + }, + "EC2InstanceType": { + "type": "string" + }, + "LogPaths": { "items": { "type": "string" }, "type": "array" + }, + "MaxSize": { + "type": "number" + }, + "MinSize": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "ServerLaunchParameters": { + "type": "string" + }, + "ServerLaunchPath": { + "type": "string" } }, "required": [ - "Description", - "SubnetIds" + "BuildId", + "DesiredEC2Instances", + "EC2InstanceType", + "Name", + "ServerLaunchPath" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElastiCache::SubnetGroup" + "AWS::GameLift::Fleet" ], "type": "string" } @@ -19063,7 +22935,31 @@ ], "type": "object" }, - "AWS::ElasticBeanstalk::Application": { + "AWS::GameLift::Fleet.IpPermission": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "number" + }, + "IpRange": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "FromPort", + "IpRange", + "Protocol", + "ToPort" + ], + "type": "object" + }, + "AWS::Glue::Classifier": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19095,21 +22991,21 @@ "Properties": { "additionalProperties": false, "properties": { - "ApplicationName": { - "type": "string" + "GrokClassifier": { + "$ref": "#/definitions/AWS::Glue::Classifier.GrokClassifier" }, - "Description": { - "type": "string" + "JsonClassifier": { + "$ref": "#/definitions/AWS::Glue::Classifier.JsonClassifier" }, - "ResourceLifecycleConfig": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig" + "XMLClassifier": { + "$ref": "#/definitions/AWS::Glue::Classifier.XMLClassifier" } }, "type": "object" }, "Type": { "enum": [ - "AWS::ElasticBeanstalk::Application" + "AWS::Glue::Classifier" ], "type": "string" } @@ -19119,61 +23015,63 @@ ], "type": "object" }, - "AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig": { + "AWS::Glue::Classifier.GrokClassifier": { "additionalProperties": false, "properties": { - "ServiceRole": { + "Classification": { "type": "string" }, - "VersionLifecycleConfig": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig" - } - }, - "type": "object" - }, - "AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig": { - "additionalProperties": false, - "properties": { - "MaxAgeRule": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxAgeRule" + "CustomPatterns": { + "type": "string" }, - "MaxCountRule": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxCountRule" + "GrokPattern": { + "type": "string" + }, + "Name": { + "type": "string" } }, + "required": [ + "Classification", + "GrokPattern" + ], "type": "object" }, - "AWS::ElasticBeanstalk::Application.MaxAgeRule": { + "AWS::Glue::Classifier.JsonClassifier": { "additionalProperties": false, "properties": { - "DeleteSourceFromS3": { - "type": "boolean" - }, - "Enabled": { - "type": "boolean" + "JsonPath": { + "type": "string" }, - "MaxAgeInDays": { - "type": "number" + "Name": { + "type": "string" } }, + "required": [ + "JsonPath" + ], "type": "object" }, - "AWS::ElasticBeanstalk::Application.MaxCountRule": { + "AWS::Glue::Classifier.XMLClassifier": { "additionalProperties": false, "properties": { - "DeleteSourceFromS3": { - "type": "boolean" + "Classification": { + "type": "string" }, - "Enabled": { - "type": "boolean" + "Name": { + "type": "string" }, - "MaxCount": { - "type": "number" + "RowTag": { + "type": "string" } }, + "required": [ + "Classification", + "RowTag" + ], "type": "object" }, - "AWS::ElasticBeanstalk::ApplicationVersion": { + "AWS::Glue::Connection": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19205,25 +23103,22 @@ "Properties": { "additionalProperties": false, "properties": { - "ApplicationName": { - "type": "string" - }, - "Description": { + "CatalogId": { "type": "string" }, - "SourceBundle": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle" + "ConnectionInput": { + "$ref": "#/definitions/AWS::Glue::Connection.ConnectionInput" } }, "required": [ - "ApplicationName", - "SourceBundle" + "CatalogId", + "ConnectionInput" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticBeanstalk::ApplicationVersion" + "AWS::Glue::Connection" ], "type": "string" } @@ -19234,23 +23129,56 @@ ], "type": "object" }, - "AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle": { + "AWS::Glue::Connection.ConnectionInput": { "additionalProperties": false, "properties": { - "S3Bucket": { + "ConnectionProperties": { + "type": "object" + }, + "ConnectionType": { "type": "string" }, - "S3Key": { + "Description": { "type": "string" + }, + "MatchCriteria": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "PhysicalConnectionRequirements": { + "$ref": "#/definitions/AWS::Glue::Connection.PhysicalConnectionRequirements" } }, "required": [ - "S3Bucket", - "S3Key" + "ConnectionProperties", + "ConnectionType" ], "type": "object" }, - "AWS::ElasticBeanstalk::ConfigurationTemplate": { + "AWS::Glue::Connection.PhysicalConnectionRequirements": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "SecurityGroupIdList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19282,39 +23210,180 @@ "Properties": { "additionalProperties": false, "properties": { - "ApplicationName": { + "Classifiers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Configuration": { + "type": "string" + }, + "DatabaseName": { "type": "string" }, "Description": { "type": "string" }, - "EnvironmentId": { + "Name": { "type": "string" }, - "OptionSettings": { - "items": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting" - }, - "type": "array" + "Role": { + "type": "string" }, - "PlatformArn": { + "Schedule": { + "$ref": "#/definitions/AWS::Glue::Crawler.Schedule" + }, + "SchemaChangePolicy": { + "$ref": "#/definitions/AWS::Glue::Crawler.SchemaChangePolicy" + }, + "TablePrefix": { "type": "string" }, - "SolutionStackName": { + "Targets": { + "$ref": "#/definitions/AWS::Glue::Crawler.Targets" + } + }, + "required": [ + "DatabaseName", + "Role", + "Targets" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Crawler" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Crawler.JdbcTarget": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "type": "string" + }, + "Exclusions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.S3Target": { + "additionalProperties": false, + "properties": { + "Exclusions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.Schedule": { + "additionalProperties": false, + "properties": { + "ScheduleExpression": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.SchemaChangePolicy": { + "additionalProperties": false, + "properties": { + "DeleteBehavior": { + "type": "string" + }, + "UpdateBehavior": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.Targets": { + "additionalProperties": false, + "properties": { + "JdbcTargets": { + "items": { + "$ref": "#/definitions/AWS::Glue::Crawler.JdbcTarget" + }, + "type": "array" + }, + "S3Targets": { + "items": { + "$ref": "#/definitions/AWS::Glue::Crawler.S3Target" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Glue::Database": { + "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": { + "CatalogId": { "type": "string" }, - "SourceConfiguration": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration" + "DatabaseInput": { + "$ref": "#/definitions/AWS::Glue::Database.DatabaseInput" } }, "required": [ - "ApplicationName" + "CatalogId", + "DatabaseInput" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticBeanstalk::ConfigurationTemplate" + "AWS::Glue::Database" ], "type": "string" } @@ -19325,45 +23394,25 @@ ], "type": "object" }, - "AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting": { + "AWS::Glue::Database.DatabaseInput": { "additionalProperties": false, "properties": { - "Namespace": { - "type": "string" - }, - "OptionName": { + "Description": { "type": "string" }, - "ResourceName": { + "LocationUri": { "type": "string" }, - "Value": { - "type": "string" - } - }, - "required": [ - "Namespace", - "OptionName" - ], - "type": "object" - }, - "AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration": { - "additionalProperties": false, - "properties": { - "ApplicationName": { + "Name": { "type": "string" }, - "TemplateName": { - "type": "string" + "Parameters": { + "type": "object" } }, - "required": [ - "ApplicationName", - "TemplateName" - ], "type": "object" }, - "AWS::ElasticBeanstalk::Environment": { + "AWS::Glue::DevEndpoint": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19395,54 +23444,43 @@ "Properties": { "additionalProperties": false, "properties": { - "ApplicationName": { - "type": "string" - }, - "CNAMEPrefix": { + "EndpointName": { "type": "string" }, - "Description": { + "ExtraJarsS3Path": { "type": "string" }, - "EnvironmentName": { + "ExtraPythonLibsS3Path": { "type": "string" }, - "OptionSettings": { - "items": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.OptionSetting" - }, - "type": "array" + "NumberOfNodes": { + "type": "number" }, - "PlatformArn": { + "PublicKey": { "type": "string" }, - "SolutionStackName": { + "RoleArn": { "type": "string" }, - "Tags": { + "SecurityGroupIds": { "items": { - "$ref": "#/definitions/Tag" + "type": "string" }, "type": "array" }, - "TemplateName": { - "type": "string" - }, - "Tier": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.Tier" - }, - "VersionLabel": { + "SubnetId": { "type": "string" } }, "required": [ - "ApplicationName" + "PublicKey", + "RoleArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticBeanstalk::Environment" + "AWS::Glue::DevEndpoint" ], "type": "string" } @@ -19453,44 +23491,7 @@ ], "type": "object" }, - "AWS::ElasticBeanstalk::Environment.OptionSetting": { - "additionalProperties": false, - "properties": { - "Namespace": { - "type": "string" - }, - "OptionName": { - "type": "string" - }, - "ResourceName": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Namespace", - "OptionName" - ], - "type": "object" - }, - "AWS::ElasticBeanstalk::Environment.Tier": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer": { + "AWS::Glue::Job": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19522,90 +23523,46 @@ "Properties": { "additionalProperties": false, "properties": { - "AccessLoggingPolicy": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy" - }, - "AppCookieStickinessPolicy": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy" - }, - "type": "array" - }, - "AvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ConnectionDrainingPolicy": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy" - }, - "ConnectionSettings": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings" - }, - "CrossZone": { - "type": "boolean" - }, - "HealthCheck": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck" + "AllocatedCapacity": { + "type": "number" }, - "Instances": { - "items": { - "type": "string" - }, - "type": "array" + "Command": { + "$ref": "#/definitions/AWS::Glue::Job.JobCommand" }, - "LBCookieStickinessPolicy": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy" - }, - "type": "array" + "Connections": { + "$ref": "#/definitions/AWS::Glue::Job.ConnectionsList" }, - "Listeners": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Listeners" - }, - "type": "array" + "DefaultArguments": { + "type": "object" }, - "LoadBalancerName": { + "Description": { "type": "string" }, - "Policies": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Policies" - }, - "type": "array" + "ExecutionProperty": { + "$ref": "#/definitions/AWS::Glue::Job.ExecutionProperty" }, - "Scheme": { + "LogUri": { "type": "string" }, - "SecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" + "MaxRetries": { + "type": "number" }, - "Subnets": { - "items": { - "type": "string" - }, - "type": "array" + "Name": { + "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "Role": { + "type": "string" } }, "required": [ - "Listeners" + "Command", + "Role" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticLoadBalancing::LoadBalancer" + "AWS::Glue::Job" ], "type": "string" } @@ -19616,179 +23573,40 @@ ], "type": "object" }, - "AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy": { - "additionalProperties": false, - "properties": { - "EmitInterval": { - "type": "number" - }, - "Enabled": { - "type": "boolean" - }, - "S3BucketName": { - "type": "string" - }, - "S3BucketPrefix": { - "type": "string" - } - }, - "required": [ - "Enabled", - "S3BucketName" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy": { - "additionalProperties": false, - "properties": { - "CookieName": { - "type": "string" - }, - "PolicyName": { - "type": "string" - } - }, - "required": [ - "CookieName", - "PolicyName" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy": { + "AWS::Glue::Job.ConnectionsList": { "additionalProperties": false, "properties": { - "Enabled": { - "type": "boolean" - }, - "Timeout": { - "type": "number" + "Connections": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "Enabled" - ], "type": "object" }, - "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings": { + "AWS::Glue::Job.ExecutionProperty": { "additionalProperties": false, "properties": { - "IdleTimeout": { + "MaxConcurrentRuns": { "type": "number" } }, - "required": [ - "IdleTimeout" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck": { - "additionalProperties": false, - "properties": { - "HealthyThreshold": { - "type": "string" - }, - "Interval": { - "type": "string" - }, - "Target": { - "type": "string" - }, - "Timeout": { - "type": "string" - }, - "UnhealthyThreshold": { - "type": "string" - } - }, - "required": [ - "HealthyThreshold", - "Interval", - "Target", - "Timeout", - "UnhealthyThreshold" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy": { - "additionalProperties": false, - "properties": { - "CookieExpirationPeriod": { - "type": "string" - }, - "PolicyName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ElasticLoadBalancing::LoadBalancer.Listeners": { - "additionalProperties": false, - "properties": { - "InstancePort": { - "type": "string" - }, - "InstanceProtocol": { - "type": "string" - }, - "LoadBalancerPort": { - "type": "string" - }, - "PolicyNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Protocol": { - "type": "string" - }, - "SSLCertificateId": { - "type": "string" - } - }, - "required": [ - "InstancePort", - "LoadBalancerPort", - "Protocol" - ], "type": "object" }, - "AWS::ElasticLoadBalancing::LoadBalancer.Policies": { + "AWS::Glue::Job.JobCommand": { "additionalProperties": false, "properties": { - "Attributes": { - "items": { - "type": "object" - }, - "type": "array" - }, - "InstancePorts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LoadBalancerPorts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "PolicyName": { + "Name": { "type": "string" }, - "PolicyType": { + "ScriptLocation": { "type": "string" } }, - "required": [ - "Attributes", - "PolicyName", - "PolicyType" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener": { + "AWS::Glue::Partition": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19820,42 +23638,30 @@ "Properties": { "additionalProperties": false, "properties": { - "Certificates": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Certificate" - }, - "type": "array" - }, - "DefaultActions": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Action" - }, - "type": "array" - }, - "LoadBalancerArn": { + "CatalogId": { "type": "string" }, - "Port": { - "type": "number" - }, - "Protocol": { + "DatabaseName": { "type": "string" }, - "SslPolicy": { + "PartitionInput": { + "$ref": "#/definitions/AWS::Glue::Partition.PartitionInput" + }, + "TableName": { "type": "string" } }, "required": [ - "DefaultActions", - "LoadBalancerArn", - "Port", - "Protocol" + "CatalogId", + "DatabaseName", + "PartitionInput", + "TableName" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticLoadBalancingV2::Listener" + "AWS::Glue::Partition" ], "type": "string" } @@ -19866,25 +23672,13 @@ ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.Action": { + "AWS::Glue::Partition.Column": { "additionalProperties": false, "properties": { - "AuthenticateCognitoConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig" - }, - "AuthenticateOidcConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig" - }, - "FixedResponseConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig" - }, - "Order": { - "type": "number" - }, - "RedirectConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.RedirectConfig" + "Comment": { + "type": "string" }, - "TargetGroupArn": { + "Name": { "type": "string" }, "Type": { @@ -19892,159 +23686,134 @@ } }, "required": [ - "Type" + "Name" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig": { + "AWS::Glue::Partition.Order": { "additionalProperties": false, "properties": { - "AuthenticationRequestExtraParams": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "OnUnauthenticatedRequest": { - "type": "string" - }, - "Scope": { - "type": "string" - }, - "SessionCookieName": { + "Column": { "type": "string" }, - "SessionTimeout": { + "SortOrder": { "type": "number" - }, - "UserPoolArn": { - "type": "string" - }, - "UserPoolClientId": { - "type": "string" - }, - "UserPoolDomain": { - "type": "string" } }, "required": [ - "UserPoolArn", - "UserPoolClientId", - "UserPoolDomain" + "Column" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig": { + "AWS::Glue::Partition.PartitionInput": { "additionalProperties": false, "properties": { - "AuthenticationRequestExtraParams": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, + "Parameters": { "type": "object" }, - "AuthorizationEndpoint": { - "type": "string" - }, - "ClientId": { - "type": "string" - }, - "ClientSecret": { - "type": "string" - }, - "Issuer": { - "type": "string" - }, - "OnUnauthenticatedRequest": { - "type": "string" - }, - "Scope": { - "type": "string" - }, - "SessionCookieName": { - "type": "string" - }, - "SessionTimeout": { - "type": "number" - }, - "TokenEndpoint": { - "type": "string" + "StorageDescriptor": { + "$ref": "#/definitions/AWS::Glue::Partition.StorageDescriptor" }, - "UserInfoEndpoint": { - "type": "string" - } - }, - "required": [ - "AuthorizationEndpoint", - "ClientId", - "ClientSecret", - "Issuer", - "TokenEndpoint", - "UserInfoEndpoint" + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Values" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.Certificate": { + "AWS::Glue::Partition.SerdeInfo": { "additionalProperties": false, "properties": { - "CertificateArn": { + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "SerializationLibrary": { "type": "string" } }, "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig": { + "AWS::Glue::Partition.SkewedInfo": { "additionalProperties": false, "properties": { - "ContentType": { - "type": "string" + "SkewedColumnNames": { + "items": { + "type": "string" + }, + "type": "array" }, - "MessageBody": { - "type": "string" + "SkewedColumnValueLocationMaps": { + "type": "object" }, - "StatusCode": { - "type": "string" + "SkewedColumnValues": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "StatusCode" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::Listener.RedirectConfig": { + "AWS::Glue::Partition.StorageDescriptor": { "additionalProperties": false, "properties": { - "Host": { - "type": "string" + "BucketColumns": { + "items": { + "type": "string" + }, + "type": "array" }, - "Path": { - "type": "string" + "Columns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Partition.Column" + }, + "type": "array" }, - "Port": { - "type": "string" + "Compressed": { + "type": "boolean" }, - "Protocol": { + "InputFormat": { "type": "string" }, - "Query": { + "Location": { "type": "string" }, - "StatusCode": { + "NumberOfBuckets": { + "type": "number" + }, + "OutputFormat": { "type": "string" + }, + "Parameters": { + "type": "object" + }, + "SerdeInfo": { + "$ref": "#/definitions/AWS::Glue::Partition.SerdeInfo" + }, + "SkewedInfo": { + "$ref": "#/definitions/AWS::Glue::Partition.SkewedInfo" + }, + "SortColumns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Partition.Order" + }, + "type": "array" + }, + "StoredAsSubDirectories": { + "type": "boolean" } }, - "required": [ - "StatusCode" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerCertificate": { + "AWS::Glue::Table": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20076,25 +23845,26 @@ "Properties": { "additionalProperties": false, "properties": { - "Certificates": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate" - }, - "type": "array" + "CatalogId": { + "type": "string" }, - "ListenerArn": { + "DatabaseName": { "type": "string" + }, + "TableInput": { + "$ref": "#/definitions/AWS::Glue::Table.TableInput" } }, "required": [ - "Certificates", - "ListenerArn" + "CatalogId", + "DatabaseName", + "TableInput" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticLoadBalancingV2::ListenerCertificate" + "AWS::Glue::Table" ], "type": "string" } @@ -20105,272 +23875,167 @@ ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate": { - "additionalProperties": false, - "properties": { - "CertificateArn": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ElasticLoadBalancingV2::ListenerRule": { + "AWS::Glue::Table.Column": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Comment": { "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": { - "Actions": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.Action" - }, - "type": "array" - }, - "Conditions": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition" - }, - "type": "array" - }, - "ListenerArn": { - "type": "string" - }, - "Priority": { - "type": "number" - } - }, - "required": [ - "Actions", - "Conditions", - "ListenerArn", - "Priority" - ], - "type": "object" + "Name": { + "type": "string" }, "Type": { - "enum": [ - "AWS::ElasticLoadBalancingV2::ListenerRule" - ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Name" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerRule.Action": { + "AWS::Glue::Table.Order": { "additionalProperties": false, "properties": { - "AuthenticateCognitoConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig" - }, - "AuthenticateOidcConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig" - }, - "FixedResponseConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig" - }, - "Order": { - "type": "number" - }, - "RedirectConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig" - }, - "TargetGroupArn": { + "Column": { "type": "string" }, - "Type": { - "type": "string" + "SortOrder": { + "type": "number" } }, "required": [ - "Type" + "Column", + "SortOrder" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig": { + "AWS::Glue::Table.SerdeInfo": { "additionalProperties": false, "properties": { - "AuthenticationRequestExtraParams": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "OnUnauthenticatedRequest": { - "type": "string" - }, - "Scope": { - "type": "string" - }, - "SessionCookieName": { + "Name": { "type": "string" }, - "SessionTimeout": { - "type": "number" + "Parameters": { + "type": "object" }, - "UserPoolArn": { + "SerializationLibrary": { "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Table.SkewedInfo": { + "additionalProperties": false, + "properties": { + "SkewedColumnNames": { + "items": { + "type": "string" + }, + "type": "array" }, - "UserPoolClientId": { - "type": "string" + "SkewedColumnValueLocationMaps": { + "type": "object" }, - "UserPoolDomain": { - "type": "string" + "SkewedColumnValues": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "UserPoolArn", - "UserPoolClientId", - "UserPoolDomain" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig": { + "AWS::Glue::Table.StorageDescriptor": { "additionalProperties": false, "properties": { - "AuthenticationRequestExtraParams": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } + "BucketColumns": { + "items": { + "type": "string" }, - "type": "object" + "type": "array" }, - "AuthorizationEndpoint": { - "type": "string" + "Columns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Table.Column" + }, + "type": "array" }, - "ClientId": { - "type": "string" + "Compressed": { + "type": "boolean" }, - "ClientSecret": { + "InputFormat": { "type": "string" }, - "Issuer": { + "Location": { "type": "string" }, - "OnUnauthenticatedRequest": { - "type": "string" + "NumberOfBuckets": { + "type": "number" }, - "Scope": { + "OutputFormat": { "type": "string" }, - "SessionCookieName": { - "type": "string" + "Parameters": { + "type": "object" }, - "SessionTimeout": { - "type": "number" + "SerdeInfo": { + "$ref": "#/definitions/AWS::Glue::Table.SerdeInfo" }, - "TokenEndpoint": { - "type": "string" + "SkewedInfo": { + "$ref": "#/definitions/AWS::Glue::Table.SkewedInfo" }, - "UserInfoEndpoint": { - "type": "string" + "SortColumns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Table.Order" + }, + "type": "array" + }, + "StoredAsSubDirectories": { + "type": "boolean" } }, - "required": [ - "AuthorizationEndpoint", - "ClientId", - "ClientSecret", - "Issuer", - "TokenEndpoint", - "UserInfoEndpoint" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig": { + "AWS::Glue::Table.TableInput": { "additionalProperties": false, "properties": { - "ContentType": { + "Description": { "type": "string" }, - "MessageBody": { + "Name": { "type": "string" }, - "StatusCode": { - "type": "string" - } - }, - "required": [ - "StatusCode" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig": { - "additionalProperties": false, - "properties": { - "Host": { + "Owner": { "type": "string" }, - "Path": { - "type": "string" + "Parameters": { + "type": "object" }, - "Port": { - "type": "string" + "PartitionKeys": { + "items": { + "$ref": "#/definitions/AWS::Glue::Table.Column" + }, + "type": "array" }, - "Protocol": { - "type": "string" + "Retention": { + "type": "number" }, - "Query": { - "type": "string" + "StorageDescriptor": { + "$ref": "#/definitions/AWS::Glue::Table.StorageDescriptor" }, - "StatusCode": { + "TableType": { "type": "string" - } - }, - "required": [ - "StatusCode" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition": { - "additionalProperties": false, - "properties": { - "Field": { + }, + "ViewExpandedText": { "type": "string" }, - "Values": { - "items": { - "type": "string" - }, - "type": "array" + "ViewOriginalText": { + "type": "string" } }, "type": "object" }, - "AWS::ElasticLoadBalancingV2::LoadBalancer": { + "AWS::Glue::Trigger": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20402,92 +24067,147 @@ "Properties": { "additionalProperties": false, "properties": { - "IpAddressType": { - "type": "string" - }, - "LoadBalancerAttributes": { + "Actions": { "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute" + "$ref": "#/definitions/AWS::Glue::Trigger.Action" }, "type": "array" }, - "Name": { + "Description": { "type": "string" }, - "Scheme": { + "Name": { "type": "string" }, - "SecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SubnetMappings": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping" - }, - "type": "array" - }, - "Subnets": { - "items": { - "type": "string" - }, - "type": "array" + "Predicate": { + "$ref": "#/definitions/AWS::Glue::Trigger.Predicate" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "Schedule": { + "type": "string" }, "Type": { "type": "string" } }, + "required": [ + "Actions", + "Type" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticLoadBalancingV2::LoadBalancer" + "AWS::Glue::Trigger" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute": { + "AWS::Glue::Trigger.Action": { "additionalProperties": false, "properties": { - "Key": { + "Arguments": { + "type": "object" + }, + "JobName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Trigger.Condition": { + "additionalProperties": false, + "properties": { + "JobName": { "type": "string" }, - "Value": { + "LogicalOperator": { + "type": "string" + }, + "State": { "type": "string" } }, "type": "object" }, - "AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping": { + "AWS::Glue::Trigger.Predicate": { "additionalProperties": false, "properties": { - "AllocationId": { + "Conditions": { + "items": { + "$ref": "#/definitions/AWS::Glue::Trigger.Condition" + }, + "type": "array" + }, + "Logical": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GuardDuty::Detector": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "SubnetId": { + "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": { + "Enable": { + "type": "boolean" + }, + "FindingPublishingFrequency": { + "type": "string" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GuardDuty::Detector" + ], "type": "string" } }, "required": [ - "AllocationId", - "SubnetId" + "Type", + "Properties" ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::TargetGroup": { + "AWS::GuardDuty::Filter": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20519,74 +24239,37 @@ "Properties": { "additionalProperties": false, "properties": { - "HealthCheckIntervalSeconds": { - "type": "number" - }, - "HealthCheckPath": { + "Action": { "type": "string" }, - "HealthCheckPort": { + "Description": { "type": "string" }, - "HealthCheckProtocol": { + "DetectorId": { "type": "string" }, - "HealthCheckTimeoutSeconds": { - "type": "number" - }, - "HealthyThresholdCount": { - "type": "number" - }, - "Matcher": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.Matcher" + "FindingCriteria": { + "$ref": "#/definitions/AWS::GuardDuty::Filter.FindingCriteria" }, "Name": { "type": "string" }, - "Port": { - "type": "number" - }, - "Protocol": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "TargetGroupAttributes": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute" - }, - "type": "array" - }, - "TargetType": { - "type": "string" - }, - "Targets": { - "items": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription" - }, - "type": "array" - }, - "UnhealthyThresholdCount": { + "Rank": { "type": "number" - }, - "VpcId": { - "type": "string" } }, "required": [ - "Port", - "Protocol", - "VpcId" + "Action", + "Description", + "DetectorId", + "FindingCriteria", + "Rank" ], "type": "object" }, "Type": { "enum": [ - "AWS::ElasticLoadBalancingV2::TargetGroup" + "AWS::GuardDuty::Filter" ], "type": "string" } @@ -20597,49 +24280,46 @@ ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::TargetGroup.Matcher": { - "additionalProperties": false, - "properties": { - "HttpCode": { - "type": "string" - } - }, - "required": [ - "HttpCode" - ], - "type": "object" - }, - "AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription": { + "AWS::GuardDuty::Filter.Condition": { "additionalProperties": false, "properties": { - "AvailabilityZone": { - "type": "string" + "Eq": { + "items": { + "type": "string" + }, + "type": "array" }, - "Id": { - "type": "string" + "Gte": { + "type": "number" }, - "Port": { + "Lt": { "type": "number" + }, + "Lte": { + "type": "number" + }, + "Neq": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "Id" - ], "type": "object" }, - "AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute": { + "AWS::GuardDuty::Filter.FindingCriteria": { "additionalProperties": false, "properties": { - "Key": { - "type": "string" + "Criterion": { + "type": "object" }, - "Value": { - "type": "string" + "ItemType": { + "$ref": "#/definitions/AWS::GuardDuty::Filter.Condition" } }, "type": "object" }, - "AWS::Elasticsearch::Domain": { + "AWS::GuardDuty::IPSet": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20671,142 +24351,44 @@ "Properties": { "additionalProperties": false, "properties": { - "AccessPolicies": { - "type": "object" - }, - "AdvancedOptions": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" + "Activate": { + "type": "boolean" }, - "DomainName": { + "DetectorId": { "type": "string" }, - "EBSOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.EBSOptions" - }, - "ElasticsearchClusterConfig": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.ElasticsearchClusterConfig" - }, - "ElasticsearchVersion": { + "Format": { "type": "string" }, - "EncryptionAtRestOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.EncryptionAtRestOptions" - }, - "SnapshotOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.SnapshotOptions" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "Location": { + "type": "string" }, - "VPCOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.VPCOptions" + "Name": { + "type": "string" } }, + "required": [ + "Activate", + "DetectorId", + "Format", + "Location" + ], "type": "object" }, "Type": { "enum": [ - "AWS::Elasticsearch::Domain" + "AWS::GuardDuty::IPSet" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::Elasticsearch::Domain.EBSOptions": { - "additionalProperties": false, - "properties": { - "EBSEnabled": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "VolumeSize": { - "type": "number" - }, - "VolumeType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Elasticsearch::Domain.ElasticsearchClusterConfig": { - "additionalProperties": false, - "properties": { - "DedicatedMasterCount": { - "type": "number" - }, - "DedicatedMasterEnabled": { - "type": "boolean" - }, - "DedicatedMasterType": { - "type": "string" - }, - "InstanceCount": { - "type": "number" - }, - "InstanceType": { - "type": "string" - }, - "ZoneAwarenessEnabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::Elasticsearch::Domain.EncryptionAtRestOptions": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "KmsKeyId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Elasticsearch::Domain.SnapshotOptions": { - "additionalProperties": false, - "properties": { - "AutomatedSnapshotStartHour": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::Elasticsearch::Domain.VPCOptions": { - "additionalProperties": false, - "properties": { - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Events::EventBusPolicy": { + "AWS::GuardDuty::Master": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20838,29 +24420,25 @@ "Properties": { "additionalProperties": false, "properties": { - "Action": { + "DetectorId": { "type": "string" }, - "Condition": { - "$ref": "#/definitions/AWS::Events::EventBusPolicy.Condition" - }, - "Principal": { + "InvitationId": { "type": "string" }, - "StatementId": { + "MasterId": { "type": "string" } }, "required": [ - "Action", - "Principal", - "StatementId" + "DetectorId", + "MasterId" ], "type": "object" }, "Type": { "enum": [ - "AWS::Events::EventBusPolicy" + "AWS::GuardDuty::Master" ], "type": "string" } @@ -20871,22 +24449,7 @@ ], "type": "object" }, - "AWS::Events::EventBusPolicy.Condition": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Events::Rule": { + "AWS::GuardDuty::Member": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -20918,180 +24481,175 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "DetectorId": { "type": "string" }, - "EventPattern": { - "type": "object" + "DisableEmailNotification": { + "type": "boolean" }, - "Name": { + "Email": { "type": "string" }, - "RoleArn": { + "MemberId": { "type": "string" }, - "ScheduleExpression": { + "Message": { "type": "string" }, - "State": { + "Status": { "type": "string" - }, - "Targets": { - "items": { - "$ref": "#/definitions/AWS::Events::Rule.Target" - }, - "type": "array" } }, + "required": [ + "DetectorId", + "Email", + "MemberId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::Events::Rule" + "AWS::GuardDuty::Member" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::Events::Rule.EcsParameters": { + "AWS::GuardDuty::ThreatIntelSet": { "additionalProperties": false, "properties": { - "TaskCount": { - "type": "number" - }, - "TaskDefinitionArn": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" - } - }, - "required": [ - "TaskDefinitionArn" - ], - "type": "object" - }, - "AWS::Events::Rule.InputTransformer": { - "additionalProperties": false, - "properties": { - "InputPathsMap": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - }, + ] + }, + "Metadata": { "type": "object" }, - "InputTemplate": { - "type": "string" - } - }, - "required": [ - "InputTemplate" - ], - "type": "object" - }, - "AWS::Events::Rule.KinesisParameters": { - "additionalProperties": false, - "properties": { - "PartitionKeyPath": { - "type": "string" - } - }, - "required": [ - "PartitionKeyPath" - ], - "type": "object" - }, - "AWS::Events::Rule.RunCommandParameters": { - "additionalProperties": false, - "properties": { - "RunCommandTargets": { - "items": { - "$ref": "#/definitions/AWS::Events::Rule.RunCommandTarget" + "Properties": { + "additionalProperties": false, + "properties": { + "Activate": { + "type": "boolean" + }, + "DetectorId": { + "type": "string" + }, + "Format": { + "type": "string" + }, + "Location": { + "type": "string" + }, + "Name": { + "type": "string" + } }, - "type": "array" - } - }, - "required": [ - "RunCommandTargets" - ], - "type": "object" - }, - "AWS::Events::Rule.RunCommandTarget": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" + "required": [ + "Activate", + "DetectorId", + "Format", + "Location" + ], + "type": "object" }, - "Values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Key", - "Values" - ], - "type": "object" - }, - "AWS::Events::Rule.SqsParameters": { - "additionalProperties": false, - "properties": { - "MessageGroupId": { + "Type": { + "enum": [ + "AWS::GuardDuty::ThreatIntelSet" + ], "type": "string" } }, "required": [ - "MessageGroupId" + "Type", + "Properties" ], "type": "object" }, - "AWS::Events::Rule.Target": { + "AWS::IAM::AccessKey": { "additionalProperties": false, "properties": { - "Arn": { - "type": "string" - }, - "EcsParameters": { - "$ref": "#/definitions/AWS::Events::Rule.EcsParameters" - }, - "Id": { - "type": "string" - }, - "Input": { - "type": "string" - }, - "InputPath": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "InputTransformer": { - "$ref": "#/definitions/AWS::Events::Rule.InputTransformer" - }, - "KinesisParameters": { - "$ref": "#/definitions/AWS::Events::Rule.KinesisParameters" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "RoleArn": { - "type": "string" + "Metadata": { + "type": "object" }, - "RunCommandParameters": { - "$ref": "#/definitions/AWS::Events::Rule.RunCommandParameters" + "Properties": { + "additionalProperties": false, + "properties": { + "Serial": { + "type": "number" + }, + "Status": { + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "required": [ + "UserName" + ], + "type": "object" }, - "SqsParameters": { - "$ref": "#/definitions/AWS::Events::Rule.SqsParameters" + "Type": { + "enum": [ + "AWS::IAM::AccessKey" + ], + "type": "string" } }, "required": [ - "Arn", - "Id" + "Type", + "Properties" ], "type": "object" }, - "AWS::GameLift::Alias": { + "AWS::IAM::Group": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21123,54 +24681,56 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "GroupName": { "type": "string" }, - "Name": { + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { "type": "string" }, - "RoutingStrategy": { - "$ref": "#/definitions/AWS::GameLift::Alias.RoutingStrategy" + "Policies": { + "items": { + "$ref": "#/definitions/AWS::IAM::Group.Policy" + }, + "type": "array" } }, - "required": [ - "Name", - "RoutingStrategy" - ], "type": "object" }, "Type": { "enum": [ - "AWS::GameLift::Alias" + "AWS::IAM::Group" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::GameLift::Alias.RoutingStrategy": { + "AWS::IAM::Group.Policy": { "additionalProperties": false, "properties": { - "FleetId": { - "type": "string" - }, - "Message": { - "type": "string" + "PolicyDocument": { + "type": "object" }, - "Type": { + "PolicyName": { "type": "string" } }, "required": [ - "Type" + "PolicyDocument", + "PolicyName" ], "type": "object" }, - "AWS::GameLift::Build": { + "AWS::IAM::InstanceProfile": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21202,51 +24762,38 @@ "Properties": { "additionalProperties": false, "properties": { - "Name": { + "InstanceProfileName": { "type": "string" }, - "StorageLocation": { - "$ref": "#/definitions/AWS::GameLift::Build.S3Location" - }, - "Version": { + "Path": { "type": "string" + }, + "Roles": { + "items": { + "type": "string" + }, + "type": "array" } }, + "required": [ + "Roles" + ], "type": "object" }, "Type": { "enum": [ - "AWS::GameLift::Build" + "AWS::IAM::InstanceProfile" ], "type": "string" } }, "required": [ - "Type" - ], - "type": "object" - }, - "AWS::GameLift::Build.S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key", - "RoleArn" + "Type", + "Properties" ], "type": "object" }, - "AWS::GameLift::Fleet": { + "AWS::IAM::ManagedPolicy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21278,58 +24825,45 @@ "Properties": { "additionalProperties": false, "properties": { - "BuildId": { - "type": "string" - }, "Description": { "type": "string" }, - "DesiredEC2Instances": { - "type": "number" - }, - "EC2InboundPermissions": { + "Groups": { "items": { - "$ref": "#/definitions/AWS::GameLift::Fleet.IpPermission" + "type": "string" }, "type": "array" }, - "EC2InstanceType": { + "ManagedPolicyName": { "type": "string" }, - "LogPaths": { + "Path": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "Roles": { "items": { "type": "string" }, "type": "array" }, - "MaxSize": { - "type": "number" - }, - "MinSize": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "ServerLaunchParameters": { - "type": "string" - }, - "ServerLaunchPath": { - "type": "string" + "Users": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "BuildId", - "DesiredEC2Instances", - "EC2InstanceType", - "Name", - "ServerLaunchPath" + "PolicyDocument" ], "type": "object" }, "Type": { "enum": [ - "AWS::GameLift::Fleet" + "AWS::IAM::ManagedPolicy" ], "type": "string" } @@ -21340,31 +24874,7 @@ ], "type": "object" }, - "AWS::GameLift::Fleet.IpPermission": { - "additionalProperties": false, - "properties": { - "FromPort": { - "type": "number" - }, - "IpRange": { - "type": "string" - }, - "Protocol": { - "type": "string" - }, - "ToPort": { - "type": "number" - } - }, - "required": [ - "FromPort", - "IpRange", - "Protocol", - "ToPort" - ], - "type": "object" - }, - "AWS::Glue::Classifier": { + "AWS::IAM::Policy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21396,87 +24906,145 @@ "Properties": { "additionalProperties": false, "properties": { - "GrokClassifier": { - "$ref": "#/definitions/AWS::Glue::Classifier.GrokClassifier" + "Groups": { + "items": { + "type": "string" + }, + "type": "array" }, - "JsonClassifier": { - "$ref": "#/definitions/AWS::Glue::Classifier.JsonClassifier" + "PolicyDocument": { + "type": "object" }, - "XMLClassifier": { - "$ref": "#/definitions/AWS::Glue::Classifier.XMLClassifier" + "PolicyName": { + "type": "string" + }, + "Roles": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array" } }, + "required": [ + "PolicyDocument", + "PolicyName" + ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Classifier" + "AWS::IAM::Policy" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::Glue::Classifier.GrokClassifier": { + "AWS::IAM::Role": { "additionalProperties": false, "properties": { - "Classification": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "CustomPatterns": { - "type": "string" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "GrokPattern": { - "type": "string" + "Metadata": { + "type": "object" }, - "Name": { - "type": "string" - } - }, - "required": [ - "Classification", - "GrokPattern" - ], - "type": "object" - }, - "AWS::Glue::Classifier.JsonClassifier": { - "additionalProperties": false, - "properties": { - "JsonPath": { - "type": "string" + "Properties": { + "additionalProperties": false, + "properties": { + "AssumeRolePolicyDocument": { + "type": "object" + }, + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxSessionDuration": { + "type": "number" + }, + "Path": { + "type": "string" + }, + "PermissionsBoundary": { + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/AWS::IAM::Role.Policy" + }, + "type": "array" + }, + "RoleName": { + "type": "string" + } + }, + "required": [ + "AssumeRolePolicyDocument" + ], + "type": "object" }, - "Name": { + "Type": { + "enum": [ + "AWS::IAM::Role" + ], "type": "string" } }, "required": [ - "JsonPath" + "Type", + "Properties" ], "type": "object" }, - "AWS::Glue::Classifier.XMLClassifier": { + "AWS::IAM::Role.Policy": { "additionalProperties": false, "properties": { - "Classification": { - "type": "string" - }, - "Name": { - "type": "string" + "PolicyDocument": { + "type": "object" }, - "RowTag": { + "PolicyName": { "type": "string" } }, "required": [ - "Classification", - "RowTag" + "PolicyDocument", + "PolicyName" ], "type": "object" }, - "AWS::Glue::Connection": { + "AWS::IAM::ServiceLinkedRole": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21508,22 +25076,24 @@ "Properties": { "additionalProperties": false, "properties": { - "CatalogId": { + "AWSServiceName": { "type": "string" }, - "ConnectionInput": { - "$ref": "#/definitions/AWS::Glue::Connection.ConnectionInput" + "CustomSuffix": { + "type": "string" + }, + "Description": { + "type": "string" } }, "required": [ - "CatalogId", - "ConnectionInput" + "AWSServiceName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Connection" + "AWS::IAM::ServiceLinkedRole" ], "type": "string" } @@ -21534,56 +25104,7 @@ ], "type": "object" }, - "AWS::Glue::Connection.ConnectionInput": { - "additionalProperties": false, - "properties": { - "ConnectionProperties": { - "type": "object" - }, - "ConnectionType": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "MatchCriteria": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "PhysicalConnectionRequirements": { - "$ref": "#/definitions/AWS::Glue::Connection.PhysicalConnectionRequirements" - } - }, - "required": [ - "ConnectionProperties", - "ConnectionType" - ], - "type": "object" - }, - "AWS::Glue::Connection.PhysicalConnectionRequirements": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "type": "string" - }, - "SecurityGroupIdList": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SubnetId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Crawler": { + "AWS::IAM::User": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21615,133 +25136,144 @@ "Properties": { "additionalProperties": false, "properties": { - "Classifiers": { + "Groups": { "items": { "type": "string" }, "type": "array" }, - "Configuration": { - "type": "string" - }, - "DatabaseName": { - "type": "string" + "LoginProfile": { + "$ref": "#/definitions/AWS::IAM::User.LoginProfile" }, - "Description": { - "type": "string" + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" }, - "Name": { + "Path": { "type": "string" }, - "Role": { + "PermissionsBoundary": { "type": "string" }, - "Schedule": { - "$ref": "#/definitions/AWS::Glue::Crawler.Schedule" - }, - "SchemaChangePolicy": { - "$ref": "#/definitions/AWS::Glue::Crawler.SchemaChangePolicy" + "Policies": { + "items": { + "$ref": "#/definitions/AWS::IAM::User.Policy" + }, + "type": "array" }, - "TablePrefix": { + "UserName": { "type": "string" - }, - "Targets": { - "$ref": "#/definitions/AWS::Glue::Crawler.Targets" } }, - "required": [ - "DatabaseName", - "Role", - "Targets" - ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Crawler" + "AWS::IAM::User" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::Glue::Crawler.JdbcTarget": { + "AWS::IAM::User.LoginProfile": { "additionalProperties": false, "properties": { - "ConnectionName": { + "Password": { "type": "string" }, - "Exclusions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Path": { - "type": "string" + "PasswordResetRequired": { + "type": "boolean" } }, + "required": [ + "Password" + ], "type": "object" }, - "AWS::Glue::Crawler.S3Target": { + "AWS::IAM::User.Policy": { "additionalProperties": false, "properties": { - "Exclusions": { - "items": { - "type": "string" - }, - "type": "array" + "PolicyDocument": { + "type": "object" }, - "Path": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Crawler.Schedule": { - "additionalProperties": false, - "properties": { - "ScheduleExpression": { + "PolicyName": { "type": "string" } }, + "required": [ + "PolicyDocument", + "PolicyName" + ], "type": "object" }, - "AWS::Glue::Crawler.SchemaChangePolicy": { + "AWS::IAM::UserToGroupAddition": { "additionalProperties": false, "properties": { - "DeleteBehavior": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "UpdateBehavior": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Crawler.Targets": { - "additionalProperties": false, - "properties": { - "JdbcTargets": { - "items": { - "$ref": "#/definitions/AWS::Glue::Crawler.JdbcTarget" + "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": { + "GroupName": { + "type": "string" + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array" + } }, - "type": "array" + "required": [ + "GroupName", + "Users" + ], + "type": "object" }, - "S3Targets": { - "items": { - "$ref": "#/definitions/AWS::Glue::Crawler.S3Target" - }, - "type": "array" + "Type": { + "enum": [ + "AWS::IAM::UserToGroupAddition" + ], + "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::Glue::Database": { + "AWS::Inspector::AssessmentTarget": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21773,51 +25305,28 @@ "Properties": { "additionalProperties": false, "properties": { - "CatalogId": { + "AssessmentTargetName": { "type": "string" }, - "DatabaseInput": { - "$ref": "#/definitions/AWS::Glue::Database.DatabaseInput" + "ResourceGroupArn": { + "type": "string" } }, - "required": [ - "CatalogId", - "DatabaseInput" - ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Database" + "AWS::Inspector::AssessmentTarget" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::Glue::Database.DatabaseInput": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "type": "object" - } - }, - "type": "object" - }, - "AWS::Glue::DevEndpoint": { + "AWS::Inspector::AssessmentTemplate": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21849,43 +25358,38 @@ "Properties": { "additionalProperties": false, "properties": { - "EndpointName": { - "type": "string" - }, - "ExtraJarsS3Path": { + "AssessmentTargetArn": { "type": "string" }, - "ExtraPythonLibsS3Path": { + "AssessmentTemplateName": { "type": "string" }, - "NumberOfNodes": { + "DurationInSeconds": { "type": "number" }, - "PublicKey": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "SecurityGroupIds": { + "RulesPackageArns": { "items": { "type": "string" }, "type": "array" }, - "SubnetId": { - "type": "string" + "UserAttributesForFindings": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "PublicKey", - "RoleArn" + "AssessmentTargetArn", + "DurationInSeconds", + "RulesPackageArns" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::DevEndpoint" + "AWS::Inspector::AssessmentTemplate" ], "type": "string" } @@ -21896,7 +25400,7 @@ ], "type": "object" }, - "AWS::Glue::Job": { + "AWS::Inspector::ResourceGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -21928,46 +25432,21 @@ "Properties": { "additionalProperties": false, "properties": { - "AllocatedCapacity": { - "type": "number" - }, - "Command": { - "$ref": "#/definitions/AWS::Glue::Job.JobCommand" - }, - "Connections": { - "$ref": "#/definitions/AWS::Glue::Job.ConnectionsList" - }, - "DefaultArguments": { - "type": "object" - }, - "Description": { - "type": "string" - }, - "ExecutionProperty": { - "$ref": "#/definitions/AWS::Glue::Job.ExecutionProperty" - }, - "LogUri": { - "type": "string" - }, - "MaxRetries": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "Role": { - "type": "string" + "ResourceGroupTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "Command", - "Role" + "ResourceGroupTags" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Job" + "AWS::Inspector::ResourceGroup" ], "type": "string" } @@ -21978,40 +25457,7 @@ ], "type": "object" }, - "AWS::Glue::Job.ConnectionsList": { - "additionalProperties": false, - "properties": { - "Connections": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Glue::Job.ExecutionProperty": { - "additionalProperties": false, - "properties": { - "MaxConcurrentRuns": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::Glue::Job.JobCommand": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptLocation": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Partition": { + "AWS::IoT1Click::Device": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22043,30 +25489,22 @@ "Properties": { "additionalProperties": false, "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { + "DeviceId": { "type": "string" }, - "PartitionInput": { - "$ref": "#/definitions/AWS::Glue::Partition.PartitionInput" - }, - "TableName": { - "type": "string" + "Enabled": { + "type": "boolean" } }, "required": [ - "CatalogId", - "DatabaseName", - "PartitionInput", - "TableName" + "DeviceId", + "Enabled" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Partition" + "AWS::IoT1Click::Device" ], "type": "string" } @@ -22077,148 +25515,7 @@ ], "type": "object" }, - "AWS::Glue::Partition.Column": { - "additionalProperties": false, - "properties": { - "Comment": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "AWS::Glue::Partition.Order": { - "additionalProperties": false, - "properties": { - "Column": { - "type": "string" - }, - "SortOrder": { - "type": "number" - } - }, - "required": [ - "Column" - ], - "type": "object" - }, - "AWS::Glue::Partition.PartitionInput": { - "additionalProperties": false, - "properties": { - "Parameters": { - "type": "object" - }, - "StorageDescriptor": { - "$ref": "#/definitions/AWS::Glue::Partition.StorageDescriptor" - }, - "Values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Values" - ], - "type": "object" - }, - "AWS::Glue::Partition.SerdeInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerializationLibrary": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Partition.SkewedInfo": { - "additionalProperties": false, - "properties": { - "SkewedColumnNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SkewedColumnValueLocationMaps": { - "type": "object" - }, - "SkewedColumnValues": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Glue::Partition.StorageDescriptor": { - "additionalProperties": false, - "properties": { - "BucketColumns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Columns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Partition.Column" - }, - "type": "array" - }, - "Compressed": { - "type": "boolean" - }, - "InputFormat": { - "type": "string" - }, - "Location": { - "type": "string" - }, - "NumberOfBuckets": { - "type": "number" - }, - "OutputFormat": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerdeInfo": { - "$ref": "#/definitions/AWS::Glue::Partition.SerdeInfo" - }, - "SkewedInfo": { - "$ref": "#/definitions/AWS::Glue::Partition.SkewedInfo" - }, - "SortColumns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Partition.Order" - }, - "type": "array" - }, - "StoredAsSubDirectories": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::Glue::Table": { + "AWS::IoT1Click::Placement": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22250,26 +25547,27 @@ "Properties": { "additionalProperties": false, "properties": { - "CatalogId": { - "type": "string" + "AssociatedDevices": { + "type": "object" }, - "DatabaseName": { + "Attributes": { + "type": "object" + }, + "PlacementName": { "type": "string" }, - "TableInput": { - "$ref": "#/definitions/AWS::Glue::Table.TableInput" + "ProjectName": { + "type": "string" } }, "required": [ - "CatalogId", - "DatabaseName", - "TableInput" + "ProjectName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Table" + "AWS::IoT1Click::Placement" ], "type": "string" } @@ -22280,167 +25578,7 @@ ], "type": "object" }, - "AWS::Glue::Table.Column": { - "additionalProperties": false, - "properties": { - "Comment": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "AWS::Glue::Table.Order": { - "additionalProperties": false, - "properties": { - "Column": { - "type": "string" - }, - "SortOrder": { - "type": "number" - } - }, - "required": [ - "Column", - "SortOrder" - ], - "type": "object" - }, - "AWS::Glue::Table.SerdeInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerializationLibrary": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Table.SkewedInfo": { - "additionalProperties": false, - "properties": { - "SkewedColumnNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SkewedColumnValueLocationMaps": { - "type": "object" - }, - "SkewedColumnValues": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Glue::Table.StorageDescriptor": { - "additionalProperties": false, - "properties": { - "BucketColumns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Columns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Table.Column" - }, - "type": "array" - }, - "Compressed": { - "type": "boolean" - }, - "InputFormat": { - "type": "string" - }, - "Location": { - "type": "string" - }, - "NumberOfBuckets": { - "type": "number" - }, - "OutputFormat": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerdeInfo": { - "$ref": "#/definitions/AWS::Glue::Table.SerdeInfo" - }, - "SkewedInfo": { - "$ref": "#/definitions/AWS::Glue::Table.SkewedInfo" - }, - "SortColumns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Table.Order" - }, - "type": "array" - }, - "StoredAsSubDirectories": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::Glue::Table.TableInput": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Owner": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "PartitionKeys": { - "items": { - "$ref": "#/definitions/AWS::Glue::Table.Column" - }, - "type": "array" - }, - "Retention": { - "type": "number" - }, - "StorageDescriptor": { - "$ref": "#/definitions/AWS::Glue::Table.StorageDescriptor" - }, - "TableType": { - "type": "string" - }, - "ViewExpandedText": { - "type": "string" - }, - "ViewOriginalText": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Trigger": { + "AWS::IoT1Click::Project": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22472,37 +25610,24 @@ "Properties": { "additionalProperties": false, "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/AWS::Glue::Trigger.Action" - }, - "type": "array" - }, "Description": { "type": "string" }, - "Name": { - "type": "string" - }, - "Predicate": { - "$ref": "#/definitions/AWS::Glue::Trigger.Predicate" - }, - "Schedule": { - "type": "string" + "PlacementTemplate": { + "$ref": "#/definitions/AWS::IoT1Click::Project.PlacementTemplate" }, - "Type": { + "ProjectName": { "type": "string" } }, "required": [ - "Actions", - "Type" + "PlacementTemplate" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Trigger" + "AWS::IoT1Click::Project" ], "type": "string" } @@ -22513,49 +25638,31 @@ ], "type": "object" }, - "AWS::Glue::Trigger.Action": { + "AWS::IoT1Click::Project.DeviceTemplate": { "additionalProperties": false, "properties": { - "Arguments": { + "CallbackOverrides": { "type": "object" }, - "JobName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Trigger.Condition": { - "additionalProperties": false, - "properties": { - "JobName": { - "type": "string" - }, - "LogicalOperator": { - "type": "string" - }, - "State": { + "DeviceType": { "type": "string" } }, "type": "object" }, - "AWS::Glue::Trigger.Predicate": { + "AWS::IoT1Click::Project.PlacementTemplate": { "additionalProperties": false, "properties": { - "Conditions": { - "items": { - "$ref": "#/definitions/AWS::Glue::Trigger.Condition" - }, - "type": "array" + "DefaultAttributes": { + "type": "object" }, - "Logical": { - "type": "string" + "DeviceTemplates": { + "type": "object" } }, "type": "object" }, - "AWS::GuardDuty::Detector": { + "AWS::IoT::Certificate": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22587,21 +25694,22 @@ "Properties": { "additionalProperties": false, "properties": { - "Enable": { - "type": "boolean" + "CertificateSigningRequest": { + "type": "string" }, - "FindingPublishingFrequency": { + "Status": { "type": "string" } }, "required": [ - "Enable" + "CertificateSigningRequest", + "Status" ], "type": "object" }, "Type": { "enum": [ - "AWS::GuardDuty::Detector" + "AWS::IoT::Certificate" ], "type": "string" } @@ -22612,7 +25720,7 @@ ], "type": "object" }, - "AWS::GuardDuty::Filter": { + "AWS::IoT::Policy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22644,37 +25752,21 @@ "Properties": { "additionalProperties": false, "properties": { - "Action": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "DetectorId": { - "type": "string" - }, - "FindingCriteria": { - "$ref": "#/definitions/AWS::GuardDuty::Filter.FindingCriteria" + "PolicyDocument": { + "type": "object" }, - "Name": { + "PolicyName": { "type": "string" - }, - "Rank": { - "type": "number" } }, "required": [ - "Action", - "Description", - "DetectorId", - "FindingCriteria", - "Rank" + "PolicyDocument" ], "type": "object" }, "Type": { "enum": [ - "AWS::GuardDuty::Filter" + "AWS::IoT::Policy" ], "type": "string" } @@ -22685,46 +25777,65 @@ ], "type": "object" }, - "AWS::GuardDuty::Filter.Condition": { + "AWS::IoT::PolicyPrincipalAttachment": { "additionalProperties": false, "properties": { - "Eq": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Gte": { - "type": "number" + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" }, - "Lt": { - "type": "number" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "Lte": { - "type": "number" + "Metadata": { + "type": "object" }, - "Neq": { - "items": { - "type": "string" + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyName": { + "type": "string" + }, + "Principal": { + "type": "string" + } }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::GuardDuty::Filter.FindingCriteria": { - "additionalProperties": false, - "properties": { - "Criterion": { + "required": [ + "PolicyName", + "Principal" + ], "type": "object" }, - "ItemType": { - "$ref": "#/definitions/AWS::GuardDuty::Filter.Condition" + "Type": { + "enum": [ + "AWS::IoT::PolicyPrincipalAttachment" + ], + "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::GuardDuty::IPSet": { + "AWS::IoT::Thing": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22756,44 +25867,43 @@ "Properties": { "additionalProperties": false, "properties": { - "Activate": { - "type": "boolean" - }, - "DetectorId": { - "type": "string" - }, - "Format": { - "type": "string" - }, - "Location": { - "type": "string" + "AttributePayload": { + "$ref": "#/definitions/AWS::IoT::Thing.AttributePayload" }, - "Name": { + "ThingName": { "type": "string" } }, - "required": [ - "Activate", - "DetectorId", - "Format", - "Location" - ], "type": "object" }, "Type": { "enum": [ - "AWS::GuardDuty::IPSet" + "AWS::IoT::Thing" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::GuardDuty::Master": { + "AWS::IoT::Thing.AttributePayload": { + "additionalProperties": false, + "properties": { + "Attributes": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::IoT::ThingPrincipalAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22825,25 +25935,22 @@ "Properties": { "additionalProperties": false, "properties": { - "DetectorId": { - "type": "string" - }, - "InvitationId": { + "Principal": { "type": "string" }, - "MasterId": { + "ThingName": { "type": "string" } }, "required": [ - "DetectorId", - "MasterId" + "Principal", + "ThingName" ], "type": "object" }, "Type": { "enum": [ - "AWS::GuardDuty::Master" + "AWS::IoT::ThingPrincipalAttachment" ], "type": "string" } @@ -22854,7 +25961,7 @@ ], "type": "object" }, - "AWS::GuardDuty::Member": { + "AWS::IoT::TopicRule": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -22886,256 +25993,414 @@ "Properties": { "additionalProperties": false, "properties": { - "DetectorId": { - "type": "string" - }, - "DisableEmailNotification": { - "type": "boolean" - }, - "Email": { - "type": "string" - }, - "MemberId": { - "type": "string" - }, - "Message": { + "RuleName": { "type": "string" }, - "Status": { - "type": "string" + "TopicRulePayload": { + "$ref": "#/definitions/AWS::IoT::TopicRule.TopicRulePayload" } }, "required": [ - "DetectorId", - "Email", - "MemberId" + "TopicRulePayload" ], "type": "object" }, "Type": { "enum": [ - "AWS::GuardDuty::Member" + "AWS::IoT::TopicRule" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.Action": { + "additionalProperties": false, + "properties": { + "CloudwatchAlarm": { + "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchAlarmAction" + }, + "CloudwatchMetric": { + "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchMetricAction" + }, + "DynamoDB": { + "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBAction" + }, + "DynamoDBv2": { + "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBv2Action" + }, + "Elasticsearch": { + "$ref": "#/definitions/AWS::IoT::TopicRule.ElasticsearchAction" + }, + "Firehose": { + "$ref": "#/definitions/AWS::IoT::TopicRule.FirehoseAction" + }, + "IotAnalytics": { + "$ref": "#/definitions/AWS::IoT::TopicRule.IotAnalyticsAction" + }, + "Kinesis": { + "$ref": "#/definitions/AWS::IoT::TopicRule.KinesisAction" + }, + "Lambda": { + "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction" + }, + "Republish": { + "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishAction" + }, + "S3": { + "$ref": "#/definitions/AWS::IoT::TopicRule.S3Action" + }, + "Sns": { + "$ref": "#/definitions/AWS::IoT::TopicRule.SnsAction" + }, + "Sqs": { + "$ref": "#/definitions/AWS::IoT::TopicRule.SqsAction" + }, + "StepFunctions": { + "$ref": "#/definitions/AWS::IoT::TopicRule.StepFunctionsAction" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRule.CloudwatchAlarmAction": { + "additionalProperties": false, + "properties": { + "AlarmName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StateReason": { + "type": "string" + }, + "StateValue": { + "type": "string" + } + }, + "required": [ + "AlarmName", + "RoleArn", + "StateReason", + "StateValue" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.CloudwatchMetricAction": { + "additionalProperties": false, + "properties": { + "MetricName": { + "type": "string" + }, + "MetricNamespace": { + "type": "string" + }, + "MetricTimestamp": { + "type": "string" + }, + "MetricUnit": { + "type": "string" + }, + "MetricValue": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "MetricName", + "MetricNamespace", + "MetricUnit", + "MetricValue", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.DynamoDBAction": { + "additionalProperties": false, + "properties": { + "HashKeyField": { + "type": "string" + }, + "HashKeyType": { + "type": "string" + }, + "HashKeyValue": { + "type": "string" + }, + "PayloadField": { + "type": "string" + }, + "RangeKeyField": { + "type": "string" + }, + "RangeKeyType": { + "type": "string" + }, + "RangeKeyValue": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "HashKeyField", + "HashKeyValue", + "RoleArn", + "TableName" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.DynamoDBv2Action": { + "additionalProperties": false, + "properties": { + "PutItem": { + "$ref": "#/definitions/AWS::IoT::TopicRule.PutItemInput" + }, + "RoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRule.ElasticsearchAction": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Index": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Endpoint", + "Id", + "Index", + "RoleArn", + "Type" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.FirehoseAction": { + "additionalProperties": false, + "properties": { + "DeliveryStreamName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Separator": { + "type": "string" + } + }, + "required": [ + "DeliveryStreamName", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.IotAnalyticsAction": { + "additionalProperties": false, + "properties": { + "ChannelName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "ChannelName", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.KinesisAction": { + "additionalProperties": false, + "properties": { + "PartitionKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StreamName": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "StreamName" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.LambdaAction": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRule.PutItemInput": { + "additionalProperties": false, + "properties": { + "TableName": { + "type": "string" + } + }, + "required": [ + "TableName" ], "type": "object" }, - "AWS::GuardDuty::ThreatIntelSet": { + "AWS::IoT::TopicRule.RepublishAction": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "RoleArn": { "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": { - "Activate": { - "type": "boolean" - }, - "DetectorId": { - "type": "string" - }, - "Format": { - "type": "string" - }, - "Location": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "Activate", - "DetectorId", - "Format", - "Location" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::GuardDuty::ThreatIntelSet" - ], + "Topic": { "type": "string" } }, "required": [ - "Type", - "Properties" + "RoleArn", + "Topic" ], "type": "object" }, - "AWS::IAM::AccessKey": { + "AWS::IoT::TopicRule.S3Action": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "BucketName": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Key": { + "type": "string" }, - "Metadata": { - "type": "object" + "RoleArn": { + "type": "string" + } + }, + "required": [ + "BucketName", + "Key", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.SnsAction": { + "additionalProperties": false, + "properties": { + "MessageFormat": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Serial": { - "type": "number" - }, - "Status": { - "type": "string" - }, - "UserName": { - "type": "string" - } - }, - "required": [ - "UserName" - ], - "type": "object" + "RoleArn": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::IAM::AccessKey" - ], + "TargetArn": { "type": "string" } }, "required": [ - "Type", - "Properties" + "RoleArn", + "TargetArn" ], "type": "object" }, - "AWS::IAM::Group": { + "AWS::IoT::TopicRule.SqsAction": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "QueueUrl": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "RoleArn": { + "type": "string" }, - "Metadata": { - "type": "object" + "UseBase64": { + "type": "boolean" + } + }, + "required": [ + "QueueUrl", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.StepFunctionsAction": { + "additionalProperties": false, + "properties": { + "ExecutionNamePrefix": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "GroupName": { - "type": "string" - }, - "ManagedPolicyArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Path": { - "type": "string" - }, - "Policies": { - "items": { - "$ref": "#/definitions/AWS::IAM::Group.Policy" - }, - "type": "array" - } - }, - "type": "object" + "RoleArn": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::IAM::Group" - ], + "StateMachineName": { "type": "string" } }, "required": [ - "Type" + "RoleArn", + "StateMachineName" ], "type": "object" }, - "AWS::IAM::Group.Policy": { + "AWS::IoT::TopicRule.TopicRulePayload": { "additionalProperties": false, "properties": { - "PolicyDocument": { - "type": "object" + "Actions": { + "items": { + "$ref": "#/definitions/AWS::IoT::TopicRule.Action" + }, + "type": "array" }, - "PolicyName": { + "AwsIotSqlVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "ErrorAction": { + "$ref": "#/definitions/AWS::IoT::TopicRule.Action" + }, + "RuleDisabled": { + "type": "boolean" + }, + "Sql": { "type": "string" } }, "required": [ - "PolicyDocument", - "PolicyName" + "Actions", + "RuleDisabled", + "Sql" ], "type": "object" }, - "AWS::IAM::InstanceProfile": { + "AWS::IoTAnalytics::Channel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23167,38 +26432,46 @@ "Properties": { "additionalProperties": false, "properties": { - "InstanceProfileName": { + "ChannelName": { "type": "string" }, - "Path": { - "type": "string" + "RetentionPeriod": { + "$ref": "#/definitions/AWS::IoTAnalytics::Channel.RetentionPeriod" }, - "Roles": { + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" } }, - "required": [ - "Roles" - ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::InstanceProfile" + "AWS::IoTAnalytics::Channel" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::IAM::ManagedPolicy": { + "AWS::IoTAnalytics::Channel.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "NumberOfDays": { + "type": "number" + }, + "Unlimited": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23230,45 +26503,39 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" - }, - "Groups": { + "Actions": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Action" }, "type": "array" }, - "ManagedPolicyName": { - "type": "string" - }, - "Path": { + "DatasetName": { "type": "string" }, - "PolicyDocument": { - "type": "object" + "RetentionPeriod": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.RetentionPeriod" }, - "Roles": { + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "Users": { + "Triggers": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Trigger" }, "type": "array" } }, "required": [ - "PolicyDocument" + "Actions" ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::ManagedPolicy" + "AWS::IoTAnalytics::Dataset" ], "type": "string" } @@ -23279,177 +26546,204 @@ ], "type": "object" }, - "AWS::IAM::Policy": { + "AWS::IoTAnalytics::Dataset.Action": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "ActionName": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "ContainerAction": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.ContainerAction" }, - "Metadata": { - "type": "object" + "QueryAction": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.QueryAction" + } + }, + "required": [ + "ActionName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.ContainerAction": { + "additionalProperties": false, + "properties": { + "ExecutionRoleArn": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Groups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "PolicyDocument": { - "type": "object" - }, - "PolicyName": { - "type": "string" - }, - "Roles": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Users": { - "items": { - "type": "string" - }, - "type": "array" - } + "Image": { + "type": "string" + }, + "ResourceConfiguration": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.ResourceConfiguration" + }, + "Variables": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Variable" }, - "required": [ - "PolicyDocument", - "PolicyName" - ], - "type": "object" + "type": "array" + } + }, + "required": [ + "ExecutionRoleArn", + "Image", + "ResourceConfiguration" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.DatasetContentVersionValue": { + "additionalProperties": false, + "properties": { + "DatasetName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.DeltaTime": { + "additionalProperties": false, + "properties": { + "OffsetSeconds": { + "type": "number" }, - "Type": { - "enum": [ - "AWS::IAM::Policy" - ], + "TimeExpression": { "type": "string" } }, "required": [ - "Type", - "Properties" + "OffsetSeconds", + "TimeExpression" ], "type": "object" }, - "AWS::IAM::Role": { + "AWS::IoTAnalytics::Dataset.Filter": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "DeltaTime": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DeltaTime" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.OutputFileUriValue": { + "additionalProperties": false, + "properties": { + "FileName": { "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.QueryAction": { + "additionalProperties": false, + "properties": { + "Filters": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Filter" + }, + "type": "array" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "SqlQuery": { + "type": "string" + } + }, + "required": [ + "SqlQuery" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.ResourceConfiguration": { + "additionalProperties": false, + "properties": { + "ComputeType": { + "type": "string" }, - "Metadata": { - "type": "object" + "VolumeSizeInGB": { + "type": "number" + } + }, + "required": [ + "ComputeType", + "VolumeSizeInGB" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "NumberOfDays": { + "type": "number" }, - "Properties": { - "additionalProperties": false, - "properties": { - "AssumeRolePolicyDocument": { - "type": "object" - }, - "ManagedPolicyArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MaxSessionDuration": { - "type": "number" - }, - "Path": { - "type": "string" - }, - "PermissionsBoundary": { - "type": "string" - }, - "Policies": { - "items": { - "$ref": "#/definitions/AWS::IAM::Role.Policy" - }, - "type": "array" - }, - "RoleName": { - "type": "string" - } - }, - "required": [ - "AssumeRolePolicyDocument" - ], - "type": "object" + "Unlimited": { + "type": "boolean" + } + }, + "required": [ + "NumberOfDays", + "Unlimited" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.Schedule": { + "additionalProperties": false, + "properties": { + "ScheduleExpression": { + "type": "string" + } + }, + "required": [ + "ScheduleExpression" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.Trigger": { + "additionalProperties": false, + "properties": { + "Schedule": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Schedule" }, - "Type": { - "enum": [ - "AWS::IAM::Role" - ], + "TriggeringDataset": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.TriggeringDataset" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.TriggeringDataset": { + "additionalProperties": false, + "properties": { + "DatasetName": { "type": "string" } }, "required": [ - "Type", - "Properties" + "DatasetName" ], "type": "object" }, - "AWS::IAM::Role.Policy": { + "AWS::IoTAnalytics::Dataset.Variable": { "additionalProperties": false, "properties": { - "PolicyDocument": { - "type": "object" + "DatasetContentVersionValue": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DatasetContentVersionValue" + }, + "DoubleValue": { + "type": "number" }, - "PolicyName": { + "OutputFileUriValue": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.OutputFileUriValue" + }, + "StringValue": { + "type": "string" + }, + "VariableName": { "type": "string" } }, "required": [ - "PolicyDocument", - "PolicyName" + "VariableName" ], "type": "object" }, - "AWS::IAM::ServiceLinkedRole": { + "AWS::IoTAnalytics::Datastore": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23481,35 +26775,46 @@ "Properties": { "additionalProperties": false, "properties": { - "AWSServiceName": { + "DatastoreName": { "type": "string" }, - "CustomSuffix": { - "type": "string" + "RetentionPeriod": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.RetentionPeriod" }, - "Description": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, - "required": [ - "AWSServiceName" - ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::ServiceLinkedRole" + "AWS::IoTAnalytics::Datastore" ], "type": "string" } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::IAM::User": { + "AWS::IoTAnalytics::Datastore.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "NumberOfDays": { + "type": "number" + }, + "Unlimited": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23541,83 +26846,248 @@ "Properties": { "additionalProperties": false, "properties": { - "Groups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LoginProfile": { - "$ref": "#/definitions/AWS::IAM::User.LoginProfile" - }, - "ManagedPolicyArns": { + "PipelineActivities": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Activity" }, "type": "array" }, - "Path": { - "type": "string" - }, - "PermissionsBoundary": { + "PipelineName": { "type": "string" }, - "Policies": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::IAM::User.Policy" + "$ref": "#/definitions/Tag" }, "type": "array" - }, - "UserName": { - "type": "string" } }, + "required": [ + "PipelineActivities" + ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::User" + "AWS::IoTAnalytics::Pipeline" ], "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::IAM::User.LoginProfile": { + "AWS::IoTAnalytics::Pipeline.Activity": { "additionalProperties": false, "properties": { - "Password": { - "type": "string" + "AddAttributes": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.AddAttributes" }, - "PasswordResetRequired": { - "type": "boolean" + "Channel": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Channel" + }, + "Datastore": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Datastore" + }, + "DeviceRegistryEnrich": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.DeviceRegistryEnrich" + }, + "DeviceShadowEnrich": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.DeviceShadowEnrich" + }, + "Filter": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Filter" + }, + "Lambda": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Lambda" + }, + "Math": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Math" + }, + "RemoveAttributes": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.RemoveAttributes" + }, + "SelectAttributes": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.SelectAttributes" } }, - "required": [ - "Password" - ], "type": "object" }, - "AWS::IAM::User.Policy": { + "AWS::IoTAnalytics::Pipeline.AddAttributes": { "additionalProperties": false, "properties": { - "PolicyDocument": { + "Attributes": { "type": "object" }, - "PolicyName": { + "Name": { + "type": "string" + }, + "Next": { "type": "string" } }, - "required": [ - "PolicyDocument", - "PolicyName" - ], "type": "object" }, - "AWS::IAM::UserToGroupAddition": { + "AWS::IoTAnalytics::Pipeline.Channel": { + "additionalProperties": false, + "properties": { + "ChannelName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Datastore": { + "additionalProperties": false, + "properties": { + "DatastoreName": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.DeviceRegistryEnrich": { + "additionalProperties": false, + "properties": { + "Attribute": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.DeviceShadowEnrich": { + "additionalProperties": false, + "properties": { + "Attribute": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Filter": { + "additionalProperties": false, + "properties": { + "Filter": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Lambda": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "type": "number" + }, + "LambdaName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Math": { + "additionalProperties": false, + "properties": { + "Attribute": { + "type": "string" + }, + "Math": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.RemoveAttributes": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.SelectAttributes": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::KMS::Alias": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23649,25 +27119,22 @@ "Properties": { "additionalProperties": false, "properties": { - "GroupName": { + "AliasName": { "type": "string" }, - "Users": { - "items": { - "type": "string" - }, - "type": "array" + "TargetKeyId": { + "type": "string" } }, "required": [ - "GroupName", - "Users" + "AliasName", + "TargetKeyId" ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::UserToGroupAddition" + "AWS::KMS::Alias" ], "type": "string" } @@ -23678,7 +27145,7 @@ ], "type": "object" }, - "AWS::Inspector::AssessmentTarget": { + "AWS::KMS::Key": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23710,21 +27177,39 @@ "Properties": { "additionalProperties": false, "properties": { - "AssessmentTargetName": { + "Description": { "type": "string" }, - "ResourceGroupArn": { + "EnableKeyRotation": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "KeyPolicy": { + "type": "object" + }, + "KeyUsage": { "type": "string" + }, + "PendingWindowInDays": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "ResourceGroupArn" + "KeyPolicy" ], "type": "object" }, "Type": { "enum": [ - "AWS::Inspector::AssessmentTarget" + "AWS::KMS::Key" ], "type": "string" } @@ -23735,7 +27220,7 @@ ], "type": "object" }, - "AWS::Inspector::AssessmentTemplate": { + "AWS::Kinesis::Stream": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23767,22 +27252,19 @@ "Properties": { "additionalProperties": false, "properties": { - "AssessmentTargetArn": { + "Name": { "type": "string" }, - "AssessmentTemplateName": { - "type": "string" + "RetentionPeriodHours": { + "type": "number" }, - "DurationInSeconds": { + "ShardCount": { "type": "number" }, - "RulesPackageArns": { - "items": { - "type": "string" - }, - "type": "array" + "StreamEncryption": { + "$ref": "#/definitions/AWS::Kinesis::Stream.StreamEncryption" }, - "UserAttributesForFindings": { + "Tags": { "items": { "$ref": "#/definitions/Tag" }, @@ -23790,15 +27272,13 @@ } }, "required": [ - "AssessmentTargetArn", - "DurationInSeconds", - "RulesPackageArns" + "ShardCount" ], "type": "object" }, "Type": { "enum": [ - "AWS::Inspector::AssessmentTemplate" + "AWS::Kinesis::Stream" ], "type": "string" } @@ -23809,7 +27289,23 @@ ], "type": "object" }, - "AWS::Inspector::ResourceGroup": { + "AWS::Kinesis::Stream.StreamEncryption": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "type": "string" + }, + "KeyId": { + "type": "string" + } + }, + "required": [ + "EncryptionType", + "KeyId" + ], + "type": "object" + }, + "AWS::Kinesis::StreamConsumer": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23841,21 +27337,22 @@ "Properties": { "additionalProperties": false, "properties": { - "ResourceGroupTags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "ConsumerName": { + "type": "string" + }, + "StreamARN": { + "type": "string" } }, "required": [ - "ResourceGroupTags" + "ConsumerName", + "StreamARN" ], "type": "object" }, "Type": { "enum": [ - "AWS::Inspector::ResourceGroup" + "AWS::Kinesis::StreamConsumer" ], "type": "string" } @@ -23866,7 +27363,7 @@ ], "type": "object" }, - "AWS::IoT1Click::Device": { + "AWS::KinesisAnalytics::Application": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23898,96 +27395,231 @@ "Properties": { "additionalProperties": false, "properties": { - "DeviceId": { + "ApplicationCode": { "type": "string" }, - "Enabled": { - "type": "boolean" + "ApplicationDescription": { + "type": "string" + }, + "ApplicationName": { + "type": "string" + }, + "Inputs": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.Input" + }, + "type": "array" } }, "required": [ - "DeviceId", - "Enabled" + "Inputs" ], "type": "object" }, - "Type": { - "enum": [ - "AWS::IoT1Click::Device" - ], + "Type": { + "enum": [ + "AWS::KinesisAnalytics::Application" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.CSVMappingParameters": { + "additionalProperties": false, + "properties": { + "RecordColumnDelimiter": { + "type": "string" + }, + "RecordRowDelimiter": { + "type": "string" + } + }, + "required": [ + "RecordColumnDelimiter", + "RecordRowDelimiter" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.Input": { + "additionalProperties": false, + "properties": { + "InputParallelism": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputParallelism" + }, + "InputProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputProcessingConfiguration" + }, + "InputSchema": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputSchema" + }, + "KinesisFirehoseInput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.KinesisFirehoseInput" + }, + "KinesisStreamsInput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.KinesisStreamsInput" + }, + "NamePrefix": { + "type": "string" + } + }, + "required": [ + "InputSchema", + "NamePrefix" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.InputLambdaProcessor": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.InputParallelism": { + "additionalProperties": false, + "properties": { + "Count": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisAnalytics::Application.InputProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "InputLambdaProcessor": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputLambdaProcessor" + } + }, + "type": "object" + }, + "AWS::KinesisAnalytics::Application.InputSchema": { + "additionalProperties": false, + "properties": { + "RecordColumns": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.RecordColumn" + }, + "type": "array" + }, + "RecordEncoding": { + "type": "string" + }, + "RecordFormat": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.RecordFormat" + } + }, + "required": [ + "RecordColumns", + "RecordFormat" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.JSONMappingParameters": { + "additionalProperties": false, + "properties": { + "RecordRowPath": { + "type": "string" + } + }, + "required": [ + "RecordRowPath" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.KinesisFirehoseInput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.KinesisStreamsInput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.MappingParameters": { + "additionalProperties": false, + "properties": { + "CSVMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.CSVMappingParameters" + }, + "JSONMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.JSONMappingParameters" + } + }, + "type": "object" + }, + "AWS::KinesisAnalytics::Application.RecordColumn": { + "additionalProperties": false, + "properties": { + "Mapping": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SqlType": { "type": "string" } }, "required": [ - "Type", - "Properties" + "Name", + "SqlType" ], "type": "object" }, - "AWS::IoT1Click::Placement": { + "AWS::KinesisAnalytics::Application.RecordFormat": { "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": { - "AssociatedDevices": { - "type": "object" - }, - "Attributes": { - "type": "object" - }, - "PlacementName": { - "type": "string" - }, - "ProjectName": { - "type": "string" - } - }, - "required": [ - "ProjectName" - ], - "type": "object" + "MappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.MappingParameters" }, - "Type": { - "enum": [ - "AWS::IoT1Click::Placement" - ], + "RecordFormatType": { "type": "string" } }, "required": [ - "Type", - "Properties" + "RecordFormatType" ], "type": "object" }, - "AWS::IoT1Click::Project": { + "AWS::KinesisAnalytics::ApplicationOutput": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -24019,24 +27651,22 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "ApplicationName": { "type": "string" }, - "PlacementTemplate": { - "$ref": "#/definitions/AWS::IoT1Click::Project.PlacementTemplate" - }, - "ProjectName": { - "type": "string" + "Output": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.Output" } }, "required": [ - "PlacementTemplate" + "ApplicationName", + "Output" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT1Click::Project" + "AWS::KinesisAnalytics::ApplicationOutput" ], "type": "string" } @@ -24047,146 +27677,88 @@ ], "type": "object" }, - "AWS::IoT1Click::Project.DeviceTemplate": { + "AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema": { "additionalProperties": false, "properties": { - "CallbackOverrides": { - "type": "object" - }, - "DeviceType": { + "RecordFormatType": { "type": "string" } }, "type": "object" }, - "AWS::IoT1Click::Project.PlacementTemplate": { + "AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput": { "additionalProperties": false, "properties": { - "DefaultAttributes": { - "type": "object" + "ResourceARN": { + "type": "string" }, - "DeviceTemplates": { - "type": "object" + "RoleARN": { + "type": "string" } }, + "required": [ + "ResourceARN", + "RoleARN" + ], "type": "object" }, - "AWS::IoT::Certificate": { + "AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "ResourceARN": { "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": { - "CertificateSigningRequest": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "required": [ - "CertificateSigningRequest", - "Status" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::IoT::Certificate" - ], + "RoleARN": { "type": "string" } }, "required": [ - "Type", - "Properties" + "ResourceARN", + "RoleARN" ], "type": "object" }, - "AWS::IoT::Policy": { + "AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "ResourceARN": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "RoleARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationOutput.Output": { + "additionalProperties": false, + "properties": { + "DestinationSchema": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema" }, - "Metadata": { - "type": "object" + "KinesisFirehoseOutput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput" }, - "Properties": { - "additionalProperties": false, - "properties": { - "PolicyDocument": { - "type": "object" - }, - "PolicyName": { - "type": "string" - } - }, - "required": [ - "PolicyDocument" - ], - "type": "object" + "KinesisStreamsOutput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput" }, - "Type": { - "enum": [ - "AWS::IoT::Policy" - ], + "LambdaOutput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput" + }, + "Name": { "type": "string" } }, "required": [ - "Type", - "Properties" + "DestinationSchema" ], "type": "object" }, - "AWS::IoT::PolicyPrincipalAttachment": { + "AWS::KinesisAnalytics::ApplicationReferenceDataSource": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -24218,22 +27790,22 @@ "Properties": { "additionalProperties": false, "properties": { - "PolicyName": { + "ApplicationName": { "type": "string" }, - "Principal": { - "type": "string" + "ReferenceDataSource": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource" } }, "required": [ - "PolicyName", - "Principal" + "ApplicationName", + "ReferenceDataSource" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT::PolicyPrincipalAttachment" + "AWS::KinesisAnalytics::ApplicationReferenceDataSource" ], "type": "string" } @@ -24244,133 +27816,141 @@ ], "type": "object" }, - "AWS::IoT::Thing": { + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "RecordColumnDelimiter": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "RecordRowDelimiter": { + "type": "string" + } + }, + "required": [ + "RecordColumnDelimiter", + "RecordRowDelimiter" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters": { + "additionalProperties": false, + "properties": { + "RecordRowPath": { + "type": "string" + } + }, + "required": [ + "RecordRowPath" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters": { + "additionalProperties": false, + "properties": { + "CSVMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters" }, - "Metadata": { - "type": "object" + "JSONMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters" + } + }, + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn": { + "additionalProperties": false, + "properties": { + "Mapping": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "AttributePayload": { - "$ref": "#/definitions/AWS::IoT::Thing.AttributePayload" - }, - "ThingName": { - "type": "string" - } - }, - "type": "object" + "Name": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::IoT::Thing" - ], + "SqlType": { "type": "string" } }, "required": [ - "Type" + "Name", + "SqlType" ], "type": "object" }, - "AWS::IoT::Thing.AttributePayload": { + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat": { "additionalProperties": false, "properties": { - "Attributes": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" + "MappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters" + }, + "RecordFormatType": { + "type": "string" } }, + "required": [ + "RecordFormatType" + ], "type": "object" }, - "AWS::IoT::ThingPrincipalAttachment": { + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "ReferenceSchema": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema" + }, + "S3ReferenceDataSource": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource" + }, + "TableName": { "type": "string" + } + }, + "required": [ + "ReferenceSchema" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema": { + "additionalProperties": false, + "properties": { + "RecordColumns": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn" + }, + "type": "array" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "RecordEncoding": { + "type": "string" }, - "Metadata": { - "type": "object" + "RecordFormat": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat" + } + }, + "required": [ + "RecordColumns", + "RecordFormat" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "Principal": { - "type": "string" - }, - "ThingName": { - "type": "string" - } - }, - "required": [ - "Principal", - "ThingName" - ], - "type": "object" + "FileKey": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::IoT::ThingPrincipalAttachment" - ], + "ReferenceRoleARN": { "type": "string" } }, "required": [ - "Type", - "Properties" + "BucketARN", + "FileKey", + "ReferenceRoleARN" ], "type": "object" }, - "AWS::IoT::TopicRule": { + "AWS::KinesisAnalyticsV2::Application": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -24402,690 +27982,410 @@ "Properties": { "additionalProperties": false, "properties": { - "RuleName": { + "ApplicationConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ApplicationConfiguration" + }, + "ApplicationDescription": { "type": "string" }, - "TopicRulePayload": { - "$ref": "#/definitions/AWS::IoT::TopicRule.TopicRulePayload" - } - }, - "required": [ - "TopicRulePayload" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::IoT::TopicRule" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::IoT::TopicRule.Action": { - "additionalProperties": false, - "properties": { - "CloudwatchAlarm": { - "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchAlarmAction" - }, - "CloudwatchMetric": { - "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchMetricAction" - }, - "DynamoDB": { - "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBAction" - }, - "DynamoDBv2": { - "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBv2Action" - }, - "Elasticsearch": { - "$ref": "#/definitions/AWS::IoT::TopicRule.ElasticsearchAction" - }, - "Firehose": { - "$ref": "#/definitions/AWS::IoT::TopicRule.FirehoseAction" - }, - "IotAnalytics": { - "$ref": "#/definitions/AWS::IoT::TopicRule.IotAnalyticsAction" - }, - "Kinesis": { - "$ref": "#/definitions/AWS::IoT::TopicRule.KinesisAction" - }, - "Lambda": { - "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction" - }, - "Republish": { - "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishAction" - }, - "S3": { - "$ref": "#/definitions/AWS::IoT::TopicRule.S3Action" - }, - "Sns": { - "$ref": "#/definitions/AWS::IoT::TopicRule.SnsAction" - }, - "Sqs": { - "$ref": "#/definitions/AWS::IoT::TopicRule.SqsAction" + "ApplicationName": { + "type": "string" + }, + "RuntimeEnvironment": { + "type": "string" + }, + "ServiceExecutionRole": { + "type": "string" + } + }, + "required": [ + "RuntimeEnvironment", + "ServiceExecutionRole" + ], + "type": "object" }, - "StepFunctions": { - "$ref": "#/definitions/AWS::IoT::TopicRule.StepFunctionsAction" + "Type": { + "enum": [ + "AWS::KinesisAnalyticsV2::Application" + ], + "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::IoT::TopicRule.CloudwatchAlarmAction": { + "AWS::KinesisAnalyticsV2::Application.ApplicationCodeConfiguration": { "additionalProperties": false, "properties": { - "AlarmName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "StateReason": { - "type": "string" + "CodeContent": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CodeContent" }, - "StateValue": { + "CodeContentType": { "type": "string" } }, "required": [ - "AlarmName", - "RoleArn", - "StateReason", - "StateValue" + "CodeContent", + "CodeContentType" ], "type": "object" }, - "AWS::IoT::TopicRule.CloudwatchMetricAction": { + "AWS::KinesisAnalyticsV2::Application.ApplicationConfiguration": { "additionalProperties": false, "properties": { - "MetricName": { - "type": "string" + "ApplicationCodeConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ApplicationCodeConfiguration" }, - "MetricNamespace": { - "type": "string" - }, - "MetricTimestamp": { - "type": "string" + "ApplicationSnapshotConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ApplicationSnapshotConfiguration" }, - "MetricUnit": { - "type": "string" + "EnvironmentProperties": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.EnvironmentProperties" }, - "MetricValue": { - "type": "string" + "FlinkApplicationConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.FlinkApplicationConfiguration" }, - "RoleArn": { - "type": "string" + "SqlApplicationConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.ApplicationSnapshotConfiguration": { + "additionalProperties": false, + "properties": { + "SnapshotsEnabled": { + "type": "boolean" } }, "required": [ - "MetricName", - "MetricNamespace", - "MetricUnit", - "MetricValue", - "RoleArn" + "SnapshotsEnabled" ], "type": "object" }, - "AWS::IoT::TopicRule.DynamoDBAction": { + "AWS::KinesisAnalyticsV2::Application.CSVMappingParameters": { "additionalProperties": false, "properties": { - "HashKeyField": { - "type": "string" - }, - "HashKeyType": { - "type": "string" - }, - "HashKeyValue": { - "type": "string" - }, - "PayloadField": { - "type": "string" - }, - "RangeKeyField": { - "type": "string" - }, - "RangeKeyType": { - "type": "string" - }, - "RangeKeyValue": { - "type": "string" - }, - "RoleArn": { + "RecordColumnDelimiter": { "type": "string" }, - "TableName": { + "RecordRowDelimiter": { "type": "string" } }, "required": [ - "HashKeyField", - "HashKeyValue", - "RoleArn", - "TableName" + "RecordColumnDelimiter", + "RecordRowDelimiter" ], "type": "object" }, - "AWS::IoT::TopicRule.DynamoDBv2Action": { + "AWS::KinesisAnalyticsV2::Application.CheckpointConfiguration": { "additionalProperties": false, "properties": { - "PutItem": { - "$ref": "#/definitions/AWS::IoT::TopicRule.PutItemInput" + "CheckpointInterval": { + "type": "number" }, - "RoleArn": { + "CheckpointingEnabled": { + "type": "boolean" + }, + "ConfigurationType": { "type": "string" + }, + "MinPauseBetweenCheckpoints": { + "type": "number" } }, + "required": [ + "ConfigurationType" + ], "type": "object" }, - "AWS::IoT::TopicRule.ElasticsearchAction": { + "AWS::KinesisAnalyticsV2::Application.CodeContent": { "additionalProperties": false, "properties": { - "Endpoint": { - "type": "string" + "S3ContentLocation": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.S3ContentLocation" }, - "Id": { + "TextContent": { "type": "string" }, - "Index": { + "ZipFileContent": { "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.EnvironmentProperties": { + "additionalProperties": false, + "properties": { + "PropertyGroups": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.PropertyGroup" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.FlinkApplicationConfiguration": { + "additionalProperties": false, + "properties": { + "CheckpointConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CheckpointConfiguration" }, - "RoleArn": { - "type": "string" + "MonitoringConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.MonitoringConfiguration" }, - "Type": { - "type": "string" + "ParallelismConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ParallelismConfiguration" } }, - "required": [ - "Endpoint", - "Id", - "Index", - "RoleArn", - "Type" - ], "type": "object" }, - "AWS::IoT::TopicRule.FirehoseAction": { + "AWS::KinesisAnalyticsV2::Application.Input": { "additionalProperties": false, "properties": { - "DeliveryStreamName": { - "type": "string" + "InputParallelism": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputParallelism" }, - "RoleArn": { - "type": "string" + "InputProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputProcessingConfiguration" }, - "Separator": { + "InputSchema": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputSchema" + }, + "KinesisFirehoseInput": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.KinesisFirehoseInput" + }, + "KinesisStreamsInput": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.KinesisStreamsInput" + }, + "NamePrefix": { "type": "string" } }, "required": [ - "DeliveryStreamName", - "RoleArn" + "InputSchema", + "NamePrefix" ], "type": "object" }, - "AWS::IoT::TopicRule.IotAnalyticsAction": { + "AWS::KinesisAnalyticsV2::Application.InputLambdaProcessor": { "additionalProperties": false, "properties": { - "ChannelName": { - "type": "string" - }, - "RoleArn": { + "ResourceARN": { "type": "string" } }, "required": [ - "ChannelName", - "RoleArn" + "ResourceARN" ], "type": "object" }, - "AWS::IoT::TopicRule.KinesisAction": { + "AWS::KinesisAnalyticsV2::Application.InputParallelism": { "additionalProperties": false, "properties": { - "PartitionKey": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "StreamName": { - "type": "string" + "Count": { + "type": "number" } }, - "required": [ - "RoleArn", - "StreamName" - ], "type": "object" }, - "AWS::IoT::TopicRule.LambdaAction": { + "AWS::KinesisAnalyticsV2::Application.InputProcessingConfiguration": { "additionalProperties": false, "properties": { - "FunctionArn": { - "type": "string" + "InputLambdaProcessor": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputLambdaProcessor" } }, "type": "object" }, - "AWS::IoT::TopicRule.PutItemInput": { + "AWS::KinesisAnalyticsV2::Application.InputSchema": { "additionalProperties": false, "properties": { - "TableName": { + "RecordColumns": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.RecordColumn" + }, + "type": "array" + }, + "RecordEncoding": { "type": "string" + }, + "RecordFormat": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.RecordFormat" } }, "required": [ - "TableName" + "RecordColumns", + "RecordFormat" ], "type": "object" }, - "AWS::IoT::TopicRule.RepublishAction": { + "AWS::KinesisAnalyticsV2::Application.JSONMappingParameters": { "additionalProperties": false, "properties": { - "RoleArn": { - "type": "string" - }, - "Topic": { + "RecordRowPath": { "type": "string" } }, "required": [ - "RoleArn", - "Topic" + "RecordRowPath" ], "type": "object" }, - "AWS::IoT::TopicRule.S3Action": { + "AWS::KinesisAnalyticsV2::Application.KinesisFirehoseInput": { "additionalProperties": false, "properties": { - "BucketName": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "RoleArn": { + "ResourceARN": { "type": "string" } }, "required": [ - "BucketName", - "Key", - "RoleArn" + "ResourceARN" ], "type": "object" }, - "AWS::IoT::TopicRule.SnsAction": { + "AWS::KinesisAnalyticsV2::Application.KinesisStreamsInput": { "additionalProperties": false, "properties": { - "MessageFormat": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "TargetArn": { + "ResourceARN": { "type": "string" } }, "required": [ - "RoleArn", - "TargetArn" + "ResourceARN" ], "type": "object" }, - "AWS::IoT::TopicRule.SqsAction": { + "AWS::KinesisAnalyticsV2::Application.MappingParameters": { "additionalProperties": false, "properties": { - "QueueUrl": { - "type": "string" - }, - "RoleArn": { - "type": "string" + "CSVMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CSVMappingParameters" }, - "UseBase64": { - "type": "boolean" + "JSONMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.JSONMappingParameters" } }, - "required": [ - "QueueUrl", - "RoleArn" - ], "type": "object" }, - "AWS::IoT::TopicRule.StepFunctionsAction": { + "AWS::KinesisAnalyticsV2::Application.MonitoringConfiguration": { "additionalProperties": false, "properties": { - "ExecutionNamePrefix": { + "ConfigurationType": { "type": "string" }, - "RoleArn": { + "LogLevel": { "type": "string" }, - "StateMachineName": { + "MetricsLevel": { "type": "string" } }, "required": [ - "RoleArn", - "StateMachineName" + "ConfigurationType" ], "type": "object" }, - "AWS::IoT::TopicRule.TopicRulePayload": { + "AWS::KinesisAnalyticsV2::Application.ParallelismConfiguration": { "additionalProperties": false, "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/AWS::IoT::TopicRule.Action" - }, - "type": "array" - }, - "AwsIotSqlVersion": { - "type": "string" + "AutoScalingEnabled": { + "type": "boolean" }, - "Description": { + "ConfigurationType": { "type": "string" }, - "ErrorAction": { - "$ref": "#/definitions/AWS::IoT::TopicRule.Action" - }, - "RuleDisabled": { - "type": "boolean" + "Parallelism": { + "type": "number" }, - "Sql": { - "type": "string" + "ParallelismPerKPU": { + "type": "number" } }, "required": [ - "Actions", - "RuleDisabled", - "Sql" + "ConfigurationType" ], "type": "object" }, - "AWS::KMS::Alias": { + "AWS::KinesisAnalyticsV2::Application.PropertyGroup": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "PropertyGroupId": { "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": { - "AliasName": { - "type": "string" - }, - "TargetKeyId": { - "type": "string" - } - }, - "required": [ - "AliasName", - "TargetKeyId" - ], + "PropertyMap": { "type": "object" - }, - "Type": { - "enum": [ - "AWS::KMS::Alias" - ], - "type": "string" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::KMS::Key": { + "AWS::KinesisAnalyticsV2::Application.RecordColumn": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Mapping": { "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" - }, - "EnableKeyRotation": { - "type": "boolean" - }, - "Enabled": { - "type": "boolean" - }, - "KeyPolicy": { - "type": "object" - }, - "KeyUsage": { - "type": "string" - }, - "PendingWindowInDays": { - "type": "number" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "required": [ - "KeyPolicy" - ], - "type": "object" + "Name": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::KMS::Key" - ], + "SqlType": { "type": "string" } }, "required": [ - "Type", - "Properties" + "Name", + "SqlType" ], "type": "object" }, - "AWS::Kinesis::Stream": { + "AWS::KinesisAnalyticsV2::Application.RecordFormat": { "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": { - "Name": { - "type": "string" - }, - "RetentionPeriodHours": { - "type": "number" - }, - "ShardCount": { - "type": "number" - }, - "StreamEncryption": { - "$ref": "#/definitions/AWS::Kinesis::Stream.StreamEncryption" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "required": [ - "ShardCount" - ], - "type": "object" + "MappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.MappingParameters" }, - "Type": { - "enum": [ - "AWS::Kinesis::Stream" - ], + "RecordFormatType": { "type": "string" } }, "required": [ - "Type", - "Properties" + "RecordFormatType" ], "type": "object" }, - "AWS::Kinesis::Stream.StreamEncryption": { + "AWS::KinesisAnalyticsV2::Application.S3ContentLocation": { "additionalProperties": false, "properties": { - "EncryptionType": { + "BucketARN": { "type": "string" }, - "KeyId": { + "FileKey": { + "type": "string" + }, + "ObjectVersion": { "type": "string" } }, - "required": [ - "EncryptionType", - "KeyId" - ], "type": "object" }, - "AWS::Kinesis::StreamConsumer": { + "AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration": { "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": { - "ConsumerName": { - "type": "string" - }, - "StreamARN": { - "type": "string" - } + "Inputs": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.Input" }, - "required": [ - "ConsumerName", - "StreamARN" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Kinesis::StreamConsumer" - ], - "type": "string" + "type": "array" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::KinesisAnalytics::Application": { + "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -25117,30 +28417,22 @@ "Properties": { "additionalProperties": false, "properties": { - "ApplicationCode": { - "type": "string" - }, - "ApplicationDescription": { - "type": "string" - }, "ApplicationName": { "type": "string" }, - "Inputs": { - "items": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.Input" - }, - "type": "array" + "CloudWatchLoggingOption": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption.CloudWatchLoggingOption" } }, "required": [ - "Inputs" + "ApplicationName", + "CloudWatchLoggingOption" ], "type": "object" }, "Type": { "enum": [ - "AWS::KinesisAnalytics::Application" + "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption" ], "type": "string" } @@ -25151,197 +28443,19 @@ ], "type": "object" }, - "AWS::KinesisAnalytics::Application.CSVMappingParameters": { + "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption.CloudWatchLoggingOption": { "additionalProperties": false, "properties": { - "RecordColumnDelimiter": { - "type": "string" - }, - "RecordRowDelimiter": { - "type": "string" - } - }, - "required": [ - "RecordColumnDelimiter", - "RecordRowDelimiter" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.Input": { - "additionalProperties": false, - "properties": { - "InputParallelism": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputParallelism" - }, - "InputProcessingConfiguration": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputProcessingConfiguration" - }, - "InputSchema": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputSchema" - }, - "KinesisFirehoseInput": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.KinesisFirehoseInput" - }, - "KinesisStreamsInput": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.KinesisStreamsInput" - }, - "NamePrefix": { - "type": "string" - } - }, - "required": [ - "InputSchema", - "NamePrefix" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.InputLambdaProcessor": { - "additionalProperties": false, - "properties": { - "ResourceARN": { - "type": "string" - }, - "RoleARN": { - "type": "string" - } - }, - "required": [ - "ResourceARN", - "RoleARN" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.InputParallelism": { - "additionalProperties": false, - "properties": { - "Count": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::KinesisAnalytics::Application.InputProcessingConfiguration": { - "additionalProperties": false, - "properties": { - "InputLambdaProcessor": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputLambdaProcessor" - } - }, - "type": "object" - }, - "AWS::KinesisAnalytics::Application.InputSchema": { - "additionalProperties": false, - "properties": { - "RecordColumns": { - "items": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.RecordColumn" - }, - "type": "array" - }, - "RecordEncoding": { - "type": "string" - }, - "RecordFormat": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.RecordFormat" - } - }, - "required": [ - "RecordColumns", - "RecordFormat" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.JSONMappingParameters": { - "additionalProperties": false, - "properties": { - "RecordRowPath": { - "type": "string" - } - }, - "required": [ - "RecordRowPath" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.KinesisFirehoseInput": { - "additionalProperties": false, - "properties": { - "ResourceARN": { - "type": "string" - }, - "RoleARN": { - "type": "string" - } - }, - "required": [ - "ResourceARN", - "RoleARN" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.KinesisStreamsInput": { - "additionalProperties": false, - "properties": { - "ResourceARN": { - "type": "string" - }, - "RoleARN": { - "type": "string" - } - }, - "required": [ - "ResourceARN", - "RoleARN" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.MappingParameters": { - "additionalProperties": false, - "properties": { - "CSVMappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.CSVMappingParameters" - }, - "JSONMappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.JSONMappingParameters" - } - }, - "type": "object" - }, - "AWS::KinesisAnalytics::Application.RecordColumn": { - "additionalProperties": false, - "properties": { - "Mapping": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "SqlType": { - "type": "string" - } - }, - "required": [ - "Name", - "SqlType" - ], - "type": "object" - }, - "AWS::KinesisAnalytics::Application.RecordFormat": { - "additionalProperties": false, - "properties": { - "MappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::Application.MappingParameters" - }, - "RecordFormatType": { + "LogStreamARN": { "type": "string" } }, "required": [ - "RecordFormatType" + "LogStreamARN" ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput": { + "AWS::KinesisAnalyticsV2::ApplicationOutput": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -25377,7 +28491,7 @@ "type": "string" }, "Output": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.Output" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.Output" } }, "required": [ @@ -25388,7 +28502,7 @@ }, "Type": { "enum": [ - "AWS::KinesisAnalytics::ApplicationOutput" + "AWS::KinesisAnalyticsV2::ApplicationOutput" ], "type": "string" } @@ -25399,7 +28513,7 @@ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema": { + "AWS::KinesisAnalyticsV2::ApplicationOutput.DestinationSchema": { "additionalProperties": false, "properties": { "RecordFormatType": { @@ -25408,68 +28522,56 @@ }, "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput": { + "AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisFirehoseOutput": { "additionalProperties": false, "properties": { "ResourceARN": { "type": "string" - }, - "RoleARN": { - "type": "string" } }, "required": [ - "ResourceARN", - "RoleARN" + "ResourceARN" ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput": { + "AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisStreamsOutput": { "additionalProperties": false, "properties": { "ResourceARN": { "type": "string" - }, - "RoleARN": { - "type": "string" } }, "required": [ - "ResourceARN", - "RoleARN" + "ResourceARN" ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput": { + "AWS::KinesisAnalyticsV2::ApplicationOutput.LambdaOutput": { "additionalProperties": false, "properties": { "ResourceARN": { "type": "string" - }, - "RoleARN": { - "type": "string" } }, "required": [ - "ResourceARN", - "RoleARN" + "ResourceARN" ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationOutput.Output": { + "AWS::KinesisAnalyticsV2::ApplicationOutput.Output": { "additionalProperties": false, "properties": { "DestinationSchema": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.DestinationSchema" }, "KinesisFirehoseOutput": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisFirehoseOutput" }, "KinesisStreamsOutput": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisStreamsOutput" }, "LambdaOutput": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.LambdaOutput" }, "Name": { "type": "string" @@ -25480,7 +28582,7 @@ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -25516,7 +28618,7 @@ "type": "string" }, "ReferenceDataSource": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceDataSource" } }, "required": [ @@ -25527,7 +28629,7 @@ }, "Type": { "enum": [ - "AWS::KinesisAnalytics::ApplicationReferenceDataSource" + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource" ], "type": "string" } @@ -25538,7 +28640,7 @@ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.CSVMappingParameters": { "additionalProperties": false, "properties": { "RecordColumnDelimiter": { @@ -25554,7 +28656,7 @@ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.JSONMappingParameters": { "additionalProperties": false, "properties": { "RecordRowPath": { @@ -25566,19 +28668,19 @@ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.MappingParameters": { "additionalProperties": false, "properties": { "CSVMappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.CSVMappingParameters" }, "JSONMappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.JSONMappingParameters" } }, "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordColumn": { "additionalProperties": false, "properties": { "Mapping": { @@ -25597,11 +28699,11 @@ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordFormat": { "additionalProperties": false, "properties": { "MappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.MappingParameters" }, "RecordFormatType": { "type": "string" @@ -25612,14 +28714,14 @@ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceDataSource": { "additionalProperties": false, "properties": { "ReferenceSchema": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceSchema" }, "S3ReferenceDataSource": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.S3ReferenceDataSource" }, "TableName": { "type": "string" @@ -25630,12 +28732,12 @@ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceSchema": { "additionalProperties": false, "properties": { "RecordColumns": { "items": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordColumn" }, "type": "array" }, @@ -25643,7 +28745,7 @@ "type": "string" }, "RecordFormat": { - "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordFormat" } }, "required": [ @@ -25652,7 +28754,7 @@ ], "type": "object" }, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource": { + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.S3ReferenceDataSource": { "additionalProperties": false, "properties": { "BucketARN": { @@ -25660,15 +28762,11 @@ }, "FileKey": { "type": "string" - }, - "ReferenceRoleARN": { - "type": "string" } }, "required": [ "BucketARN", - "FileKey", - "ReferenceRoleARN" + "FileKey" ], "type": "object" }, @@ -26472,6 +29570,159 @@ ], "type": "object" }, + "AWS::Lambda::LayerVersion": { + "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": { + "CompatibleRuntimes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Content": { + "$ref": "#/definitions/AWS::Lambda::LayerVersion.Content" + }, + "Description": { + "type": "string" + }, + "LayerName": { + "type": "string" + }, + "LicenseInfo": { + "type": "string" + } + }, + "required": [ + "Content" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lambda::LayerVersion" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lambda::LayerVersion.Content": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + }, + "S3ObjectVersion": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::Lambda::LayerVersionPermission": { + "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": { + "Action": { + "type": "string" + }, + "LayerVersionArn": { + "type": "string" + }, + "OrganizationId": { + "type": "string" + }, + "Principal": { + "type": "string" + } + }, + "required": [ + "Action", + "LayerVersionArn", + "Principal" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lambda::LayerVersionPermission" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Lambda::Permission": { "additionalProperties": false, "properties": { @@ -28087,110 +31338,320 @@ "Properties": { "additionalProperties": false, "properties": { - "AgentVersion": { - "type": "string" - }, - "Attributes": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "ChefConfiguration": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.ChefConfiguration" - }, - "CloneAppIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ClonePermissions": { - "type": "boolean" - }, - "ConfigurationManager": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.StackConfigurationManager" - }, - "CustomCookbooksSource": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.Source" - }, - "CustomJson": { - "type": "object" - }, - "DefaultAvailabilityZone": { - "type": "string" - }, - "DefaultInstanceProfileArn": { - "type": "string" - }, - "DefaultOs": { - "type": "string" - }, - "DefaultRootDeviceType": { - "type": "string" - }, - "DefaultSshKeyName": { - "type": "string" - }, - "DefaultSubnetId": { - "type": "string" - }, - "EcsClusterArn": { + "AgentVersion": { + "type": "string" + }, + "Attributes": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "ChefConfiguration": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.ChefConfiguration" + }, + "CloneAppIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ClonePermissions": { + "type": "boolean" + }, + "ConfigurationManager": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.StackConfigurationManager" + }, + "CustomCookbooksSource": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.Source" + }, + "CustomJson": { + "type": "object" + }, + "DefaultAvailabilityZone": { + "type": "string" + }, + "DefaultInstanceProfileArn": { + "type": "string" + }, + "DefaultOs": { + "type": "string" + }, + "DefaultRootDeviceType": { + "type": "string" + }, + "DefaultSshKeyName": { + "type": "string" + }, + "DefaultSubnetId": { + "type": "string" + }, + "EcsClusterArn": { + "type": "string" + }, + "ElasticIps": { + "items": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.ElasticIp" + }, + "type": "array" + }, + "HostnameTheme": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RdsDbInstances": { + "items": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.RdsDbInstance" + }, + "type": "array" + }, + "ServiceRoleArn": { + "type": "string" + }, + "SourceStackId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UseCustomCookbooks": { + "type": "boolean" + }, + "UseOpsworksSecurityGroups": { + "type": "boolean" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "DefaultInstanceProfileArn", + "Name", + "ServiceRoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OpsWorks::Stack" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OpsWorks::Stack.ChefConfiguration": { + "additionalProperties": false, + "properties": { + "BerkshelfVersion": { + "type": "string" + }, + "ManageBerkshelf": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Stack.ElasticIp": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Ip" + ], + "type": "object" + }, + "AWS::OpsWorks::Stack.RdsDbInstance": { + "additionalProperties": false, + "properties": { + "DbPassword": { + "type": "string" + }, + "DbUser": { + "type": "string" + }, + "RdsDbInstanceArn": { + "type": "string" + } + }, + "required": [ + "DbPassword", + "DbUser", + "RdsDbInstanceArn" + ], + "type": "object" + }, + "AWS::OpsWorks::Stack.Source": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "Revision": { + "type": "string" + }, + "SshKey": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Stack.StackConfigurationManager": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpsWorks::UserProfile": { + "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": { + "AllowSelfManagement": { + "type": "boolean" + }, + "IamUserArn": { + "type": "string" + }, + "SshPublicKey": { + "type": "string" + }, + "SshUsername": { + "type": "string" + } + }, + "required": [ + "IamUserArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OpsWorks::UserProfile" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OpsWorks::Volume": { + "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": { + "Ec2VolumeId": { "type": "string" }, - "ElasticIps": { - "items": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.ElasticIp" - }, - "type": "array" - }, - "HostnameTheme": { + "MountPoint": { "type": "string" }, "Name": { "type": "string" }, - "RdsDbInstances": { - "items": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.RdsDbInstance" - }, - "type": "array" - }, - "ServiceRoleArn": { - "type": "string" - }, - "SourceStackId": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "UseCustomCookbooks": { - "type": "boolean" - }, - "UseOpsworksSecurityGroups": { - "type": "boolean" - }, - "VpcId": { + "StackId": { "type": "string" } }, "required": [ - "DefaultInstanceProfileArn", - "Name", - "ServiceRoleArn" + "Ec2VolumeId", + "StackId" ], "type": "object" }, "Type": { "enum": [ - "AWS::OpsWorks::Stack" + "AWS::OpsWorks::Volume" ], "type": "string" } @@ -28201,90 +31662,7 @@ ], "type": "object" }, - "AWS::OpsWorks::Stack.ChefConfiguration": { - "additionalProperties": false, - "properties": { - "BerkshelfVersion": { - "type": "string" - }, - "ManageBerkshelf": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::OpsWorks::Stack.ElasticIp": { - "additionalProperties": false, - "properties": { - "Ip": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "Ip" - ], - "type": "object" - }, - "AWS::OpsWorks::Stack.RdsDbInstance": { - "additionalProperties": false, - "properties": { - "DbPassword": { - "type": "string" - }, - "DbUser": { - "type": "string" - }, - "RdsDbInstanceArn": { - "type": "string" - } - }, - "required": [ - "DbPassword", - "DbUser", - "RdsDbInstanceArn" - ], - "type": "object" - }, - "AWS::OpsWorks::Stack.Source": { - "additionalProperties": false, - "properties": { - "Password": { - "type": "string" - }, - "Revision": { - "type": "string" - }, - "SshKey": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Url": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::OpsWorks::Stack.StackConfigurationManager": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::OpsWorks::UserProfile": { + "AWS::OpsWorksCM::Server": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -28316,27 +31694,77 @@ "Properties": { "additionalProperties": false, "properties": { - "AllowSelfManagement": { + "AssociatePublicIpAddress": { "type": "boolean" }, - "IamUserArn": { + "BackupId": { "type": "string" }, - "SshPublicKey": { + "BackupRetentionCount": { + "type": "number" + }, + "DisableAutomatedBackup": { + "type": "boolean" + }, + "Engine": { "type": "string" }, - "SshUsername": { + "EngineAttributes": { + "items": { + "$ref": "#/definitions/AWS::OpsWorksCM::Server.EngineAttribute" + }, + "type": "array" + }, + "EngineModel": { "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "InstanceProfileArn": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "KeyPair": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ServerName": { + "type": "string" + }, + "ServiceRoleArn": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "IamUserArn" + "InstanceProfileArn", + "InstanceType", + "ServiceRoleArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::OpsWorks::UserProfile" + "AWS::OpsWorksCM::Server" ], "type": "string" } @@ -28347,7 +31775,19 @@ ], "type": "object" }, - "AWS::OpsWorks::Volume": { + "AWS::OpsWorksCM::Server.EngineAttribute": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RAM::ResourceShare": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -28379,28 +31819,39 @@ "Properties": { "additionalProperties": false, "properties": { - "Ec2VolumeId": { - "type": "string" - }, - "MountPoint": { - "type": "string" + "AllowExternalPrincipals": { + "type": "boolean" }, "Name": { "type": "string" }, - "StackId": { - "type": "string" + "Principals": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ResourceArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "Ec2VolumeId", - "StackId" + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::OpsWorks::Volume" + "AWS::RAM::ResourceShare" ], "type": "string" } @@ -28515,6 +31966,9 @@ "SnapshotIdentifier": { "type": "string" }, + "SourceRegion": { + "type": "string" + }, "StorageEncrypted": { "type": "boolean" }, @@ -28820,6 +32274,9 @@ "Timezone": { "type": "string" }, + "UseDefaultProcessorFeatures": { + "type": "boolean" + }, "VPCSecurityGroups": { "items": { "type": "string" @@ -29759,31 +33216,517 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "Description": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::ClusterSubnetGroup" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::Fleet": { + "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": { + "Name": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::Fleet" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RoboMaker::Robot": { + "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": { + "Architecture": { + "type": "string" + }, + "Fleet": { + "type": "string" + }, + "GreengrassGroupId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "required": [ + "Architecture", + "GreengrassGroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::Robot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::RobotApplication": { + "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": { + "CurrentRevisionId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RobotSoftwareSuite": { + "$ref": "#/definitions/AWS::RoboMaker::RobotApplication.RobotSoftwareSuite" + }, + "Sources": { + "items": { + "$ref": "#/definitions/AWS::RoboMaker::RobotApplication.SourceConfig" + }, + "type": "array" + }, + "Tags": { + "type": "object" + } + }, + "required": [ + "RobotSoftwareSuite", + "Sources" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::RobotApplication" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::RobotApplication.RobotSoftwareSuite": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "Version" + ], + "type": "object" + }, + "AWS::RoboMaker::RobotApplication.SourceConfig": { + "additionalProperties": false, + "properties": { + "Architecture": { + "type": "string" + }, + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "Architecture", + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::RoboMaker::RobotApplicationVersion": { + "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": { + "Application": { "type": "string" }, - "SubnetIds": { + "CurrentRevisionId": { + "type": "string" + } + }, + "required": [ + "Application" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::RobotApplicationVersion" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication": { + "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": { + "CurrentRevisionId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RenderingEngine": { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.RenderingEngine" + }, + "RobotSoftwareSuite": { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.RobotSoftwareSuite" + }, + "SimulationSoftwareSuite": { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.SimulationSoftwareSuite" + }, + "Sources": { + "items": { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.SourceConfig" + }, + "type": "array" }, "Tags": { + "type": "object" + } + }, + "required": [ + "RenderingEngine", + "RobotSoftwareSuite", + "SimulationSoftwareSuite", + "Sources" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::SimulationApplication" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.RenderingEngine": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "Version" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.RobotSoftwareSuite": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "Version" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.SimulationSoftwareSuite": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "Version" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.SourceConfig": { + "additionalProperties": false, + "properties": { + "Architecture": { + "type": "string" + }, + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "Architecture", + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplicationVersion": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { "items": { - "$ref": "#/definitions/Tag" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Application": { + "type": "string" + }, + "CurrentRevisionId": { + "type": "string" + } }, "required": [ - "Description", - "SubnetIds" + "Application" ], "type": "object" }, "Type": { "enum": [ - "AWS::Redshift::ClusterSubnetGroup" + "AWS::RoboMaker::SimulationApplicationVersion" ], "type": "string" } @@ -30546,6 +34489,67 @@ ], "type": "object" }, + "AWS::Route53Resolver::ResolverRuleAssociation": { + "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": { + "Name": { + "type": "string" + }, + "ResolverRuleId": { + "type": "string" + }, + "VPCId": { + "type": "string" + } + }, + "required": [ + "ResolverRuleId", + "VPCId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::ResolverRuleAssociation" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::S3::Bucket": { "additionalProperties": false, "properties": { @@ -32176,6 +36180,10 @@ "type": "string" } }, + "required": [ + "Protocol", + "TopicArn" + ], "type": "object" }, "Type": { @@ -32186,7 +36194,8 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -32736,6 +36745,12 @@ }, "StartDate": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ @@ -33455,6 +37470,9 @@ "AWS::SageMaker::EndpointConfig.ProductionVariant": { "additionalProperties": false, "properties": { + "AcceleratorType": { + "type": "string" + }, "InitialInstanceCount": { "type": "number" }, @@ -33512,6 +37530,12 @@ "Properties": { "additionalProperties": false, "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::Model.ContainerDefinition" + }, + "type": "array" + }, "ExecutionRoleArn": { "type": "string" }, @@ -33532,8 +37556,7 @@ } }, "required": [ - "ExecutionRoleArn", - "PrimaryContainer" + "ExecutionRoleArn" ], "type": "object" }, @@ -34077,12 +38100,24 @@ "Properties": { "additionalProperties": false, "properties": { + "Auth": { + "$ref": "#/definitions/AWS::Serverless::Api.Auth" + }, + "BinaryMediaTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, "CacheClusterEnabled": { "type": "boolean" }, "CacheClusterSize": { "type": "string" }, + "Cors": { + "type": "string" + }, "DefinitionBody": { "type": "object" }, @@ -34098,6 +38133,9 @@ } ] }, + "EndpointConfiguration": { + "type": "string" + }, "MethodSettings": { "type": "object" }, @@ -34135,6 +38173,18 @@ ], "type": "object" }, + "AWS::Serverless::Api.Auth": { + "additionalProperties": false, + "properties": { + "Authorizers": { + "type": "string" + }, + "DefaultAuthorizer": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Serverless::Api.S3Location": { "additionalProperties": false, "properties": { @@ -34155,6 +38205,107 @@ ], "type": "object" }, + "AWS::Serverless::Application": { + "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": { + "Location": { + "anyOf": [ + { + "$ref": "#/definitions/AWS::Serverless::Application.ApplicationLocation" + } + ] + }, + "NotificationArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Parameters": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutInMinutes": { + "type": "number" + } + }, + "required": [ + "Location" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Serverless::Application" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Serverless::Application.ApplicationLocation": { + "additionalProperties": false, + "properties": { + "ApplicationId": { + "type": "string" + }, + "SemanticVersion": { + "type": "string" + } + }, + "required": [ + "ApplicationId", + "SemanticVersion" + ], + "type": "object" + }, "AWS::Serverless::Function": { "additionalProperties": false, "properties": { @@ -34187,6 +38338,9 @@ "Properties": { "additionalProperties": false, "properties": { + "AutoPublishAlias": { + "type": "string" + }, "CodeUri": { "anyOf": [ { @@ -34202,6 +38356,9 @@ "DeadLetterQueue": { "$ref": "#/definitions/AWS::Serverless::Function.DeadLetterQueue" }, + "DeploymentPreference": { + "$ref": "#/definitions/AWS::Serverless::Function.DeploymentPreference" + }, "Description": { "type": "string" }, @@ -34226,6 +38383,12 @@ "KmsKeyArn": { "type": "string" }, + "Layers": { + "items": { + "type": "string" + }, + "type": "array" + }, "MemorySize": { "type": "number" }, @@ -34253,6 +38416,9 @@ } ] }, + "ReservedConcurrentExecutions": { + "type": "number" + }, "Role": { "type": "string" }, @@ -34366,6 +38532,36 @@ ], "type": "object" }, + "AWS::Serverless::Function.DeploymentPreference": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enabled": { + "type": "boolean" + }, + "Hooks": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Role": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Serverless::Function.DynamoDBEvent": { "additionalProperties": false, "properties": { @@ -34624,6 +38820,74 @@ ], "type": "object" }, + "AWS::Serverless::LayerVersion": { + "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": { + "CompatibleRuntimes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ContentUri": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "LayerName": { + "type": "string" + }, + "LicenseInfo": { + "type": "string" + }, + "RetentionPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Serverless::LayerVersion" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, "AWS::Serverless::SimpleTable": { "additionalProperties": false, "properties": { @@ -34661,6 +38925,21 @@ }, "ProvisionedThroughput": { "$ref": "#/definitions/AWS::Serverless::SimpleTable.ProvisionedThroughput" + }, + "SSESpecification": { + "$ref": "#/definitions/AWS::Serverless::SimpleTable.SSESpecification" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" } }, "type": "object" @@ -34707,6 +38986,15 @@ ], "type": "object" }, + "AWS::Serverless::SimpleTable.SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, "AWS::ServiceCatalog::AcceptedPortfolioShare": { "additionalProperties": false, "properties": { @@ -37770,6 +42058,9 @@ { "$ref": "#/definitions/AWS::AmazonMQ::Configuration" }, + { + "$ref": "#/definitions/AWS::AmazonMQ::ConfigurationAssociation" + }, { "$ref": "#/definitions/AWS::ApiGateway::Account" }, @@ -37827,6 +42118,33 @@ { "$ref": "#/definitions/AWS::ApiGateway::VpcLink" }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Api" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Authorizer" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Deployment" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Integration" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::IntegrationResponse" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Model" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Route" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::RouteResponse" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Stage" + }, { "$ref": "#/definitions/AWS::AppStream::DirectoryConfig" }, @@ -38043,6 +42361,18 @@ { "$ref": "#/definitions/AWS::DirectoryService::SimpleAD" }, + { + "$ref": "#/definitions/AWS::DocDB::DBCluster" + }, + { + "$ref": "#/definitions/AWS::DocDB::DBClusterParameterGroup" + }, + { + "$ref": "#/definitions/AWS::DocDB::DBInstance" + }, + { + "$ref": "#/definitions/AWS::DocDB::DBSubnetGroup" + }, { "$ref": "#/definitions/AWS::DynamoDB::Table" }, @@ -38286,6 +42616,9 @@ { "$ref": "#/definitions/AWS::Events::Rule" }, + { + "$ref": "#/definitions/AWS::FSx::FileSystem" + }, { "$ref": "#/definitions/AWS::GameLift::Alias" }, @@ -38403,6 +42736,18 @@ { "$ref": "#/definitions/AWS::IoT::TopicRule" }, + { + "$ref": "#/definitions/AWS::IoTAnalytics::Channel" + }, + { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset" + }, + { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore" + }, + { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline" + }, { "$ref": "#/definitions/AWS::KMS::Alias" }, @@ -38424,6 +42769,18 @@ { "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource" }, + { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application" + }, + { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption" + }, + { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput" + }, + { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource" + }, { "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream" }, @@ -38436,6 +42793,12 @@ { "$ref": "#/definitions/AWS::Lambda::Function" }, + { + "$ref": "#/definitions/AWS::Lambda::LayerVersion" + }, + { + "$ref": "#/definitions/AWS::Lambda::LayerVersionPermission" + }, { "$ref": "#/definitions/AWS::Lambda::Permission" }, @@ -38493,6 +42856,12 @@ { "$ref": "#/definitions/AWS::OpsWorks::Volume" }, + { + "$ref": "#/definitions/AWS::OpsWorksCM::Server" + }, + { + "$ref": "#/definitions/AWS::RAM::ResourceShare" + }, { "$ref": "#/definitions/AWS::RDS::DBCluster" }, @@ -38535,6 +42904,24 @@ { "$ref": "#/definitions/AWS::Redshift::ClusterSubnetGroup" }, + { + "$ref": "#/definitions/AWS::RoboMaker::Fleet" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::Robot" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::RobotApplication" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::RobotApplicationVersion" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplicationVersion" + }, { "$ref": "#/definitions/AWS::Route53::HealthCheck" }, @@ -38553,6 +42940,9 @@ { "$ref": "#/definitions/AWS::Route53Resolver::ResolverRule" }, + { + "$ref": "#/definitions/AWS::Route53Resolver::ResolverRuleAssociation" + }, { "$ref": "#/definitions/AWS::S3::Bucket" }, @@ -38646,9 +43036,15 @@ { "$ref": "#/definitions/AWS::Serverless::Api" }, + { + "$ref": "#/definitions/AWS::Serverless::Application" + }, { "$ref": "#/definitions/AWS::Serverless::Function" }, + { + "$ref": "#/definitions/AWS::Serverless::LayerVersion" + }, { "$ref": "#/definitions/AWS::Serverless::SimpleTable" }, From e6b095eeee4f87c030e22e392891ffbb116a88a6 Mon Sep 17 00:00:00 2001 From: Paul Maddox Date: Sat, 9 Mar 2019 07:46:01 +0400 Subject: [PATCH 04/37] Fixed pointer related issues blocking tests, and regenerated resources --- cloudformation/alexa-ask-skill.go | 8 ++- cloudformation/aws-amazonmq-broker.go | 8 ++- cloudformation/aws-amazonmq-configuration.go | 8 ++- .../aws-amazonmq-configurationassociation.go | 8 ++- cloudformation/aws-apigateway-account.go | 8 ++- cloudformation/aws-apigateway-apikey.go | 8 ++- cloudformation/aws-apigateway-authorizer.go | 8 ++- .../aws-apigateway-basepathmapping.go | 8 ++- .../aws-apigateway-clientcertificate.go | 8 ++- cloudformation/aws-apigateway-deployment.go | 8 ++- .../aws-apigateway-documentationpart.go | 8 ++- .../aws-apigateway-documentationversion.go | 8 ++- cloudformation/aws-apigateway-domainname.go | 8 ++- .../aws-apigateway-gatewayresponse.go | 8 ++- cloudformation/aws-apigateway-method.go | 8 ++- cloudformation/aws-apigateway-model.go | 8 ++- .../aws-apigateway-requestvalidator.go | 8 ++- cloudformation/aws-apigateway-resource.go | 8 ++- cloudformation/aws-apigateway-restapi.go | 8 ++- cloudformation/aws-apigateway-stage.go | 8 ++- cloudformation/aws-apigateway-usageplan.go | 8 ++- cloudformation/aws-apigateway-usageplankey.go | 8 ++- cloudformation/aws-apigateway-vpclink.go | 8 ++- cloudformation/aws-apigatewayv2-api.go | 8 ++- cloudformation/aws-apigatewayv2-authorizer.go | 8 ++- cloudformation/aws-apigatewayv2-deployment.go | 8 ++- .../aws-apigatewayv2-integration.go | 8 ++- .../aws-apigatewayv2-integrationresponse.go | 8 ++- cloudformation/aws-apigatewayv2-model.go | 8 ++- cloudformation/aws-apigatewayv2-route.go | 8 ++- .../aws-apigatewayv2-routeresponse.go | 8 ++- cloudformation/aws-apigatewayv2-stage.go | 8 ++- ...s-applicationautoscaling-scalabletarget.go | 8 ++- ...ws-applicationautoscaling-scalingpolicy.go | 8 ++- .../aws-appstream-directoryconfig.go | 8 ++- cloudformation/aws-appstream-fleet.go | 8 ++- cloudformation/aws-appstream-imagebuilder.go | 8 ++- cloudformation/aws-appstream-stack.go | 8 ++- .../aws-appstream-stackfleetassociation.go | 8 ++- .../aws-appstream-stackuserassociation.go | 8 ++- cloudformation/aws-appstream-user.go | 8 ++- cloudformation/aws-appsync-apikey.go | 8 ++- cloudformation/aws-appsync-datasource.go | 8 ++- .../aws-appsync-functionconfiguration.go | 8 ++- cloudformation/aws-appsync-graphqlapi.go | 8 ++- cloudformation/aws-appsync-graphqlschema.go | 8 ++- cloudformation/aws-appsync-resolver.go | 8 ++- cloudformation/aws-athena-namedquery.go | 8 ++- .../aws-autoscaling-autoscalinggroup.go | 8 ++- .../aws-autoscaling-launchconfiguration.go | 8 ++- .../aws-autoscaling-lifecyclehook.go | 8 ++- .../aws-autoscaling-scalingpolicy.go | 8 ++- .../aws-autoscaling-scheduledaction.go | 8 ++- .../aws-autoscalingplans-scalingplan.go | 8 ++- .../aws-batch-computeenvironment.go | 8 ++- cloudformation/aws-batch-jobdefinition.go | 8 ++- cloudformation/aws-batch-jobqueue.go | 8 ++- cloudformation/aws-budgets-budget.go | 8 ++- .../aws-certificatemanager-certificate.go | 8 ++- cloudformation/aws-cloud9-environmentec2.go | 8 ++- .../aws-cloudformation-customresource.go | 8 ++- cloudformation/aws-cloudformation-macro.go | 8 ++- cloudformation/aws-cloudformation-stack.go | 8 ++- .../aws-cloudformation-waitcondition.go | 8 ++- .../aws-cloudformation-waitconditionhandle.go | 8 ++- ...oudfront-cloudfrontoriginaccessidentity.go | 8 ++- cloudformation/aws-cloudfront-distribution.go | 8 ++- .../aws-cloudfront-streamingdistribution.go | 8 ++- cloudformation/aws-cloudtrail-trail.go | 8 ++- cloudformation/aws-cloudwatch-alarm.go | 8 ++- cloudformation/aws-cloudwatch-dashboard.go | 8 ++- cloudformation/aws-codebuild-project.go | 8 ++- cloudformation/aws-codecommit-repository.go | 8 ++- cloudformation/aws-codedeploy-application.go | 8 ++- .../aws-codedeploy-deploymentconfig.go | 8 ++- .../aws-codedeploy-deploymentgroup.go | 8 ++- .../aws-codepipeline-customactiontype.go | 8 ++- cloudformation/aws-codepipeline-pipeline.go | 8 ++- cloudformation/aws-codepipeline-webhook.go | 8 ++- cloudformation/aws-cognito-identitypool.go | 8 ++- .../aws-cognito-identitypoolroleattachment.go | 8 ++- cloudformation/aws-cognito-userpool.go | 8 ++- cloudformation/aws-cognito-userpoolclient.go | 8 ++- cloudformation/aws-cognito-userpoolgroup.go | 8 ++- cloudformation/aws-cognito-userpooluser.go | 8 ++- ...s-cognito-userpoolusertogroupattachment.go | 8 ++- .../aws-config-aggregationauthorization.go | 8 ++- cloudformation/aws-config-configrule.go | 8 ++- .../aws-config-configurationaggregator.go | 8 ++- .../aws-config-configurationrecorder.go | 8 ++- cloudformation/aws-config-deliverychannel.go | 8 ++- cloudformation/aws-datapipeline-pipeline.go | 8 ++- cloudformation/aws-dax-cluster.go | 8 ++- cloudformation/aws-dax-parametergroup.go | 8 ++- cloudformation/aws-dax-subnetgroup.go | 8 ++- .../aws-directoryservice-microsoftad.go | 8 ++- .../aws-directoryservice-simplead.go | 8 ++- cloudformation/aws-dlm-lifecyclepolicy.go | 8 ++- cloudformation/aws-dms-certificate.go | 8 ++- cloudformation/aws-dms-endpoint.go | 8 ++- cloudformation/aws-dms-eventsubscription.go | 8 ++- cloudformation/aws-dms-replicationinstance.go | 8 ++- .../aws-dms-replicationsubnetgroup.go | 8 ++- cloudformation/aws-dms-replicationtask.go | 8 ++- cloudformation/aws-docdb-dbcluster.go | 8 ++- .../aws-docdb-dbclusterparametergroup.go | 8 ++- cloudformation/aws-docdb-dbinstance.go | 8 ++- cloudformation/aws-docdb-dbsubnetgroup.go | 8 ++- cloudformation/aws-dynamodb-table.go | 8 ++- cloudformation/aws-ec2-customergateway.go | 8 ++- cloudformation/aws-ec2-dhcpoptions.go | 8 ++- cloudformation/aws-ec2-ec2fleet.go | 8 ++- .../aws-ec2-egressonlyinternetgateway.go | 8 ++- cloudformation/aws-ec2-eip.go | 8 ++- cloudformation/aws-ec2-eipassociation.go | 8 ++- cloudformation/aws-ec2-flowlog.go | 8 ++- cloudformation/aws-ec2-host.go | 8 ++- cloudformation/aws-ec2-instance.go | 8 ++- cloudformation/aws-ec2-internetgateway.go | 8 ++- cloudformation/aws-ec2-launchtemplate.go | 8 ++- cloudformation/aws-ec2-natgateway.go | 8 ++- cloudformation/aws-ec2-networkacl.go | 8 ++- cloudformation/aws-ec2-networkaclentry.go | 8 ++- cloudformation/aws-ec2-networkinterface.go | 8 ++- .../aws-ec2-networkinterfaceattachment.go | 8 ++- .../aws-ec2-networkinterfacepermission.go | 8 ++- cloudformation/aws-ec2-placementgroup.go | 8 ++- cloudformation/aws-ec2-route.go | 8 ++- cloudformation/aws-ec2-routetable.go | 8 ++- cloudformation/aws-ec2-securitygroup.go | 8 ++- cloudformation/aws-ec2-securitygroupegress.go | 8 ++- .../aws-ec2-securitygroupingress.go | 8 ++- cloudformation/aws-ec2-spotfleet.go | 8 ++- cloudformation/aws-ec2-subnet.go | 8 ++- cloudformation/aws-ec2-subnetcidrblock.go | 8 ++- .../aws-ec2-subnetnetworkaclassociation.go | 8 ++- .../aws-ec2-subnetroutetableassociation.go | 8 ++- cloudformation/aws-ec2-transitgateway.go | 8 ++- .../aws-ec2-transitgatewayattachment.go | 8 ++- cloudformation/aws-ec2-transitgatewayroute.go | 8 ++- .../aws-ec2-transitgatewayroutetable.go | 8 ++- ...ec2-transitgatewayroutetableassociation.go | 8 ++- ...ec2-transitgatewayroutetablepropagation.go | 8 ++- .../aws-ec2-trunkinterfaceassociation.go | 8 ++- cloudformation/aws-ec2-volume.go | 8 ++- cloudformation/aws-ec2-volumeattachment.go | 8 ++- cloudformation/aws-ec2-vpc.go | 8 ++- cloudformation/aws-ec2-vpccidrblock.go | 8 ++- .../aws-ec2-vpcdhcpoptionsassociation.go | 8 ++- cloudformation/aws-ec2-vpcendpoint.go | 8 ++- ...s-ec2-vpcendpointconnectionnotification.go | 8 ++- .../aws-ec2-vpcendpointservicepermissions.go | 8 ++- .../aws-ec2-vpcgatewayattachment.go | 8 ++- .../aws-ec2-vpcpeeringconnection.go | 8 ++- cloudformation/aws-ec2-vpnconnection.go | 8 ++- cloudformation/aws-ec2-vpnconnectionroute.go | 8 ++- cloudformation/aws-ec2-vpngateway.go | 8 ++- .../aws-ec2-vpngatewayroutepropagation.go | 8 ++- cloudformation/aws-ecr-repository.go | 8 ++- cloudformation/aws-ecs-cluster.go | 8 ++- cloudformation/aws-ecs-service.go | 8 ++- cloudformation/aws-ecs-taskdefinition.go | 8 ++- cloudformation/aws-efs-filesystem.go | 8 ++- cloudformation/aws-efs-mounttarget.go | 8 ++- cloudformation/aws-eks-cluster.go | 8 ++- .../aws-elasticache-cachecluster.go | 8 ++- .../aws-elasticache-parametergroup.go | 8 ++- .../aws-elasticache-replicationgroup.go | 8 ++- .../aws-elasticache-securitygroup.go | 8 ++- .../aws-elasticache-securitygroupingress.go | 8 ++- cloudformation/aws-elasticache-subnetgroup.go | 8 ++- .../aws-elasticbeanstalk-application.go | 8 ++- ...aws-elasticbeanstalk-applicationversion.go | 8 ++- ...-elasticbeanstalk-configurationtemplate.go | 8 ++- .../aws-elasticbeanstalk-environment.go | 8 ++- .../aws-elasticloadbalancing-loadbalancer.go | 8 ++- .../aws-elasticloadbalancingv2-listener.go | 8 ++- ...sticloadbalancingv2-listenercertificate.go | 8 ++- ...aws-elasticloadbalancingv2-listenerrule.go | 8 ++- ...aws-elasticloadbalancingv2-loadbalancer.go | 8 ++- .../aws-elasticloadbalancingv2-targetgroup.go | 8 ++- cloudformation/aws-elasticsearch-domain.go | 8 ++- cloudformation/aws-emr-cluster.go | 8 ++- cloudformation/aws-emr-instancefleetconfig.go | 8 ++- cloudformation/aws-emr-instancegroupconfig.go | 8 ++- .../aws-emr-securityconfiguration.go | 8 ++- cloudformation/aws-emr-step.go | 8 ++- cloudformation/aws-events-eventbuspolicy.go | 8 ++- cloudformation/aws-events-rule.go | 8 ++- cloudformation/aws-fsx-filesystem.go | 8 ++- cloudformation/aws-gamelift-alias.go | 8 ++- cloudformation/aws-gamelift-build.go | 8 ++- cloudformation/aws-gamelift-fleet.go | 8 ++- cloudformation/aws-glue-classifier.go | 8 ++- cloudformation/aws-glue-connection.go | 8 ++- cloudformation/aws-glue-crawler.go | 8 ++- cloudformation/aws-glue-database.go | 8 ++- cloudformation/aws-glue-devendpoint.go | 8 ++- cloudformation/aws-glue-job.go | 8 ++- cloudformation/aws-glue-partition.go | 8 ++- cloudformation/aws-glue-table.go | 8 ++- cloudformation/aws-glue-trigger.go | 8 ++- cloudformation/aws-guardduty-detector.go | 8 ++- cloudformation/aws-guardduty-filter.go | 8 ++- cloudformation/aws-guardduty-ipset.go | 8 ++- cloudformation/aws-guardduty-master.go | 8 ++- cloudformation/aws-guardduty-member.go | 8 ++- .../aws-guardduty-threatintelset.go | 8 ++- cloudformation/aws-iam-accesskey.go | 8 ++- cloudformation/aws-iam-group.go | 8 ++- cloudformation/aws-iam-instanceprofile.go | 8 ++- cloudformation/aws-iam-managedpolicy.go | 8 ++- cloudformation/aws-iam-policy.go | 8 ++- cloudformation/aws-iam-role.go | 8 ++- cloudformation/aws-iam-servicelinkedrole.go | 8 ++- cloudformation/aws-iam-user.go | 8 ++- cloudformation/aws-iam-usertogroupaddition.go | 8 ++- .../aws-inspector-assessmenttarget.go | 8 ++- .../aws-inspector-assessmenttemplate.go | 8 ++- cloudformation/aws-inspector-resourcegroup.go | 8 ++- cloudformation/aws-iot-certificate.go | 8 ++- cloudformation/aws-iot-policy.go | 8 ++- .../aws-iot-policyprincipalattachment.go | 8 ++- cloudformation/aws-iot-thing.go | 8 ++- .../aws-iot-thingprincipalattachment.go | 8 ++- cloudformation/aws-iot-topicrule.go | 8 ++- cloudformation/aws-iot1click-device.go | 8 ++- cloudformation/aws-iot1click-placement.go | 8 ++- cloudformation/aws-iot1click-project.go | 8 ++- cloudformation/aws-iotanalytics-channel.go | 8 ++- cloudformation/aws-iotanalytics-dataset.go | 8 ++- cloudformation/aws-iotanalytics-datastore.go | 8 ++- cloudformation/aws-iotanalytics-pipeline.go | 8 ++- cloudformation/aws-kinesis-stream.go | 8 ++- cloudformation/aws-kinesis-streamconsumer.go | 8 ++- .../aws-kinesisanalytics-application.go | 8 ++- .../aws-kinesisanalytics-applicationoutput.go | 8 ++- ...nalytics-applicationreferencedatasource.go | 8 ++- .../aws-kinesisanalyticsv2-application.go | 8 ++- ...csv2-applicationcloudwatchloggingoption.go | 8 ++- ...ws-kinesisanalyticsv2-applicationoutput.go | 8 ++- ...lyticsv2-applicationreferencedatasource.go | 8 ++- .../aws-kinesisfirehose-deliverystream.go | 8 ++- cloudformation/aws-kms-alias.go | 8 ++- cloudformation/aws-kms-key.go | 8 ++- cloudformation/aws-lambda-alias.go | 8 ++- .../aws-lambda-eventsourcemapping.go | 8 ++- cloudformation/aws-lambda-function.go | 8 ++- cloudformation/aws-lambda-layerversion.go | 8 ++- .../aws-lambda-layerversionpermission.go | 8 ++- cloudformation/aws-lambda-permission.go | 8 ++- cloudformation/aws-lambda-version.go | 8 ++- cloudformation/aws-logs-destination.go | 8 ++- cloudformation/aws-logs-loggroup.go | 8 ++- cloudformation/aws-logs-logstream.go | 8 ++- cloudformation/aws-logs-metricfilter.go | 8 ++- cloudformation/aws-logs-subscriptionfilter.go | 8 ++- cloudformation/aws-neptune-dbcluster.go | 8 ++- .../aws-neptune-dbclusterparametergroup.go | 8 ++- cloudformation/aws-neptune-dbinstance.go | 8 ++- .../aws-neptune-dbparametergroup.go | 8 ++- cloudformation/aws-neptune-dbsubnetgroup.go | 8 ++- cloudformation/aws-opsworks-app.go | 8 ++- ...-opsworks-elasticloadbalancerattachment.go | 8 ++- cloudformation/aws-opsworks-instance.go | 8 ++- cloudformation/aws-opsworks-layer.go | 8 ++- cloudformation/aws-opsworks-stack.go | 8 ++- cloudformation/aws-opsworks-userprofile.go | 8 ++- cloudformation/aws-opsworks-volume.go | 8 ++- cloudformation/aws-opsworkscm-server.go | 8 ++- cloudformation/aws-ram-resourceshare.go | 8 ++- cloudformation/aws-rds-dbcluster.go | 8 ++- .../aws-rds-dbclusterparametergroup.go | 8 ++- cloudformation/aws-rds-dbinstance.go | 8 ++- cloudformation/aws-rds-dbparametergroup.go | 8 ++- cloudformation/aws-rds-dbsecuritygroup.go | 8 ++- .../aws-rds-dbsecuritygroupingress.go | 8 ++- cloudformation/aws-rds-dbsubnetgroup.go | 8 ++- cloudformation/aws-rds-eventsubscription.go | 8 ++- cloudformation/aws-rds-optiongroup.go | 8 ++- cloudformation/aws-redshift-cluster.go | 8 ++- .../aws-redshift-clusterparametergroup.go | 8 ++- .../aws-redshift-clustersecuritygroup.go | 8 ++- ...ws-redshift-clustersecuritygroupingress.go | 8 ++- .../aws-redshift-clustersubnetgroup.go | 8 ++- cloudformation/aws-robomaker-fleet.go | 8 ++- cloudformation/aws-robomaker-robot.go | 8 ++- .../aws-robomaker-robotapplication.go | 8 ++- .../aws-robomaker-robotapplicationversion.go | 8 ++- .../aws-robomaker-simulationapplication.go | 8 ++- ...-robomaker-simulationapplicationversion.go | 8 ++- cloudformation/aws-route53-healthcheck.go | 8 ++- cloudformation/aws-route53-hostedzone.go | 8 ++- cloudformation/aws-route53-recordset.go | 8 ++- cloudformation/aws-route53-recordsetgroup.go | 8 ++- .../aws-route53resolver-resolverendpoint.go | 8 ++- .../aws-route53resolver-resolverrule.go | 8 ++- ...route53resolver-resolverruleassociation.go | 8 ++- cloudformation/aws-s3-bucket.go | 8 ++- cloudformation/aws-s3-bucketpolicy.go | 8 ++- cloudformation/aws-sagemaker-endpoint.go | 8 ++- .../aws-sagemaker-endpointconfig.go | 8 ++- cloudformation/aws-sagemaker-model.go | 8 ++- .../aws-sagemaker-notebookinstance.go | 8 ++- ...gemaker-notebookinstancelifecycleconfig.go | 8 ++- cloudformation/aws-sdb-domain.go | 8 ++- .../aws-secretsmanager-resourcepolicy.go | 8 ++- .../aws-secretsmanager-rotationschedule.go | 8 ++- cloudformation/aws-secretsmanager-secret.go | 8 ++- ...s-secretsmanager-secrettargetattachment.go | 8 ++- cloudformation/aws-serverless-api.go | 8 ++- cloudformation/aws-serverless-application.go | 8 ++- cloudformation/aws-serverless-function.go | 8 ++- cloudformation/aws-serverless-layerversion.go | 8 ++- cloudformation/aws-serverless-simpletable.go | 8 ++- ...s-servicecatalog-acceptedportfolioshare.go | 8 ++- ...ws-servicecatalog-cloudformationproduct.go | 8 ++- ...atalog-cloudformationprovisionedproduct.go | 8 ++- ...icecatalog-launchnotificationconstraint.go | 8 ++- ...aws-servicecatalog-launchroleconstraint.go | 8 ++- ...servicecatalog-launchtemplateconstraint.go | 8 ++- .../aws-servicecatalog-portfolio.go | 8 ++- ...cecatalog-portfolioprincipalassociation.go | 8 ++- ...vicecatalog-portfolioproductassociation.go | 8 ++- .../aws-servicecatalog-portfolioshare.go | 8 ++- .../aws-servicecatalog-tagoption.go | 8 ++- ...aws-servicecatalog-tagoptionassociation.go | 8 ++- .../aws-servicediscovery-httpnamespace.go | 8 ++- .../aws-servicediscovery-instance.go | 8 ++- ...ws-servicediscovery-privatednsnamespace.go | 8 ++- ...aws-servicediscovery-publicdnsnamespace.go | 8 ++- .../aws-servicediscovery-service.go | 8 ++- cloudformation/aws-ses-configurationset.go | 8 ++- ...ws-ses-configurationseteventdestination.go | 8 ++- cloudformation/aws-ses-receiptfilter.go | 8 ++- cloudformation/aws-ses-receiptrule.go | 8 ++- cloudformation/aws-ses-receiptruleset.go | 8 ++- cloudformation/aws-ses-template.go | 8 ++- cloudformation/aws-sns-subscription.go | 8 ++- cloudformation/aws-sns-topic.go | 8 ++- cloudformation/aws-sns-topicpolicy.go | 8 ++- cloudformation/aws-sqs-queue.go | 8 ++- cloudformation/aws-sqs-queuepolicy.go | 8 ++- cloudformation/aws-ssm-association.go | 8 ++- cloudformation/aws-ssm-document.go | 8 ++- cloudformation/aws-ssm-maintenancewindow.go | 8 ++- .../aws-ssm-maintenancewindowtask.go | 8 ++- cloudformation/aws-ssm-parameter.go | 8 ++- cloudformation/aws-ssm-patchbaseline.go | 13 +++- cloudformation/aws-ssm-resourcedatasync.go | 8 ++- cloudformation/aws-stepfunctions-activity.go | 13 +++- .../aws-stepfunctions-activity_tagsentry.go | 60 +++++++++++++++++++ .../aws-stepfunctions-statemachine.go | 13 +++- ...ws-stepfunctions-statemachine_tagsentry.go | 60 +++++++++++++++++++ cloudformation/aws-waf-bytematchset.go | 8 ++- cloudformation/aws-waf-ipset.go | 8 ++- cloudformation/aws-waf-rule.go | 8 ++- cloudformation/aws-waf-sizeconstraintset.go | 8 ++- .../aws-waf-sqlinjectionmatchset.go | 8 ++- cloudformation/aws-waf-webacl.go | 8 ++- cloudformation/aws-waf-xssmatchset.go | 8 ++- .../aws-wafregional-bytematchset.go | 8 ++- cloudformation/aws-wafregional-ipset.go | 8 ++- cloudformation/aws-wafregional-rule.go | 8 ++- .../aws-wafregional-sizeconstraintset.go | 8 ++- .../aws-wafregional-sqlinjectionmatchset.go | 8 ++- cloudformation/aws-wafregional-webacl.go | 8 ++- .../aws-wafregional-webaclassociation.go | 8 ++- cloudformation/aws-wafregional-xssmatchset.go | 8 ++- cloudformation/aws-workspaces-workspace.go | 8 ++- cloudformation/tag.go | 10 ++-- generate/templates/resource.template | 8 ++- goformation_test.go | 2 +- schema/cloudformation.go | 54 +++++++++++++++-- schema/cloudformation.schema.json | 54 +++++++++++++++-- schema/sam.go | 54 +++++++++++++++-- schema/sam.schema.json | 54 +++++++++++++++-- 377 files changed, 2555 insertions(+), 760 deletions(-) create mode 100644 cloudformation/aws-stepfunctions-activity_tagsentry.go create mode 100644 cloudformation/aws-stepfunctions-statemachine_tagsentry.go diff --git a/cloudformation/alexa-ask-skill.go b/cloudformation/alexa-ask-skill.go index f6925261f8..df3265e4ba 100644 --- a/cloudformation/alexa-ask-skill.go +++ b/cloudformation/alexa-ask-skill.go @@ -73,7 +73,7 @@ func (r *AlexaASKSkill) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AlexaASKSkill) MarshalJSON() ([]byte, error) { +func (r AlexaASKSkill) MarshalJSON() ([]byte, error) { type Properties AlexaASKSkill return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AlexaASKSkill) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAlexaASKSkillResources() map[string]*AlexaASKSkill { results := map[string]*AlexaASKSkill{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AlexaASKSkill: + results[name] = &resource case *AlexaASKSkill: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAlexaASKSkillResources() map[string]*AlexaASKSkill { func (t *Template) GetAlexaASKSkillWithName(name string) (*AlexaASKSkill, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AlexaASKSkill: + return &resource, nil case *AlexaASKSkill: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-amazonmq-broker.go b/cloudformation/aws-amazonmq-broker.go index 922f0def10..d236670344 100644 --- a/cloudformation/aws-amazonmq-broker.go +++ b/cloudformation/aws-amazonmq-broker.go @@ -128,7 +128,7 @@ func (r *AWSAmazonMQBroker) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSAmazonMQBroker) MarshalJSON() ([]byte, error) { +func (r AWSAmazonMQBroker) MarshalJSON() ([]byte, error) { type Properties AWSAmazonMQBroker return json.Marshal(&struct { Type string @@ -138,7 +138,7 @@ func (r *AWSAmazonMQBroker) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -183,6 +183,8 @@ func (t *Template) GetAllAWSAmazonMQBrokerResources() map[string]*AWSAmazonMQBro results := map[string]*AWSAmazonMQBroker{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAmazonMQBroker: + results[name] = &resource case *AWSAmazonMQBroker: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -211,6 +213,8 @@ func (t *Template) GetAllAWSAmazonMQBrokerResources() map[string]*AWSAmazonMQBro func (t *Template) GetAWSAmazonMQBrokerWithName(name string) (*AWSAmazonMQBroker, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAmazonMQBroker: + return &resource, nil case *AWSAmazonMQBroker: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-amazonmq-configuration.go b/cloudformation/aws-amazonmq-configuration.go index 554823a00d..895bf6d819 100644 --- a/cloudformation/aws-amazonmq-configuration.go +++ b/cloudformation/aws-amazonmq-configuration.go @@ -88,7 +88,7 @@ func (r *AWSAmazonMQConfiguration) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSAmazonMQConfiguration) MarshalJSON() ([]byte, error) { +func (r AWSAmazonMQConfiguration) MarshalJSON() ([]byte, error) { type Properties AWSAmazonMQConfiguration return json.Marshal(&struct { Type string @@ -98,7 +98,7 @@ func (r *AWSAmazonMQConfiguration) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -143,6 +143,8 @@ func (t *Template) GetAllAWSAmazonMQConfigurationResources() map[string]*AWSAmaz results := map[string]*AWSAmazonMQConfiguration{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAmazonMQConfiguration: + results[name] = &resource case *AWSAmazonMQConfiguration: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -171,6 +173,8 @@ func (t *Template) GetAllAWSAmazonMQConfigurationResources() map[string]*AWSAmaz func (t *Template) GetAWSAmazonMQConfigurationWithName(name string) (*AWSAmazonMQConfiguration, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAmazonMQConfiguration: + return &resource, nil case *AWSAmazonMQConfiguration: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-amazonmq-configurationassociation.go b/cloudformation/aws-amazonmq-configurationassociation.go index ba36bfef76..667c1791c4 100644 --- a/cloudformation/aws-amazonmq-configurationassociation.go +++ b/cloudformation/aws-amazonmq-configurationassociation.go @@ -68,7 +68,7 @@ func (r *AWSAmazonMQConfigurationAssociation) SetDeletionPolicy(policy DeletionP // 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 *AWSAmazonMQConfigurationAssociation) MarshalJSON() ([]byte, error) { +func (r AWSAmazonMQConfigurationAssociation) MarshalJSON() ([]byte, error) { type Properties AWSAmazonMQConfigurationAssociation return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSAmazonMQConfigurationAssociation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSAmazonMQConfigurationAssociationResources() map[stri results := map[string]*AWSAmazonMQConfigurationAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAmazonMQConfigurationAssociation: + results[name] = &resource case *AWSAmazonMQConfigurationAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSAmazonMQConfigurationAssociationResources() map[stri func (t *Template) GetAWSAmazonMQConfigurationAssociationWithName(name string) (*AWSAmazonMQConfigurationAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAmazonMQConfigurationAssociation: + return &resource, nil case *AWSAmazonMQConfigurationAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigateway-account.go b/cloudformation/aws-apigateway-account.go index 60000a3881..b61516f453 100644 --- a/cloudformation/aws-apigateway-account.go +++ b/cloudformation/aws-apigateway-account.go @@ -63,7 +63,7 @@ func (r *AWSApiGatewayAccount) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSApiGatewayAccount) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayAccount) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayAccount return json.Marshal(&struct { Type string @@ -73,7 +73,7 @@ func (r *AWSApiGatewayAccount) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -118,6 +118,8 @@ func (t *Template) GetAllAWSApiGatewayAccountResources() map[string]*AWSApiGatew results := map[string]*AWSApiGatewayAccount{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayAccount: + results[name] = &resource case *AWSApiGatewayAccount: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -146,6 +148,8 @@ func (t *Template) GetAllAWSApiGatewayAccountResources() map[string]*AWSApiGatew func (t *Template) GetAWSApiGatewayAccountWithName(name string) (*AWSApiGatewayAccount, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayAccount: + return &resource, nil case *AWSApiGatewayAccount: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigateway-apikey.go b/cloudformation/aws-apigateway-apikey.go index 28cf3b9ef1..49775a51cc 100644 --- a/cloudformation/aws-apigateway-apikey.go +++ b/cloudformation/aws-apigateway-apikey.go @@ -93,7 +93,7 @@ func (r *AWSApiGatewayApiKey) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSApiGatewayApiKey) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayApiKey) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayApiKey return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSApiGatewayApiKey) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSApiGatewayApiKeyResources() map[string]*AWSApiGatewa results := map[string]*AWSApiGatewayApiKey{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayApiKey: + results[name] = &resource case *AWSApiGatewayApiKey: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSApiGatewayApiKeyResources() map[string]*AWSApiGatewa func (t *Template) GetAWSApiGatewayApiKeyWithName(name string) (*AWSApiGatewayApiKey, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayApiKey: + return &resource, nil case *AWSApiGatewayApiKey: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigateway-authorizer.go b/cloudformation/aws-apigateway-authorizer.go index aa06afb803..e9b47fd162 100644 --- a/cloudformation/aws-apigateway-authorizer.go +++ b/cloudformation/aws-apigateway-authorizer.go @@ -108,7 +108,7 @@ func (r *AWSApiGatewayAuthorizer) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSApiGatewayAuthorizer) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayAuthorizer) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayAuthorizer return json.Marshal(&struct { Type string @@ -118,7 +118,7 @@ func (r *AWSApiGatewayAuthorizer) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -163,6 +163,8 @@ func (t *Template) GetAllAWSApiGatewayAuthorizerResources() map[string]*AWSApiGa results := map[string]*AWSApiGatewayAuthorizer{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayAuthorizer: + results[name] = &resource case *AWSApiGatewayAuthorizer: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -191,6 +193,8 @@ func (t *Template) GetAllAWSApiGatewayAuthorizerResources() map[string]*AWSApiGa func (t *Template) GetAWSApiGatewayAuthorizerWithName(name string) (*AWSApiGatewayAuthorizer, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayAuthorizer: + return &resource, nil case *AWSApiGatewayAuthorizer: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigateway-basepathmapping.go b/cloudformation/aws-apigateway-basepathmapping.go index 843a42cb6e..b0befdfb67 100644 --- a/cloudformation/aws-apigateway-basepathmapping.go +++ b/cloudformation/aws-apigateway-basepathmapping.go @@ -78,7 +78,7 @@ func (r *AWSApiGatewayBasePathMapping) SetDeletionPolicy(policy DeletionPolicy) // 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 *AWSApiGatewayBasePathMapping) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayBasePathMapping) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayBasePathMapping return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSApiGatewayBasePathMapping) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSApiGatewayBasePathMappingResources() map[string]*AWS results := map[string]*AWSApiGatewayBasePathMapping{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayBasePathMapping: + results[name] = &resource case *AWSApiGatewayBasePathMapping: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSApiGatewayBasePathMappingResources() map[string]*AWS func (t *Template) GetAWSApiGatewayBasePathMappingWithName(name string) (*AWSApiGatewayBasePathMapping, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayBasePathMapping: + return &resource, nil case *AWSApiGatewayBasePathMapping: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigateway-clientcertificate.go b/cloudformation/aws-apigateway-clientcertificate.go index d7c33c1b54..11cfd59189 100644 --- a/cloudformation/aws-apigateway-clientcertificate.go +++ b/cloudformation/aws-apigateway-clientcertificate.go @@ -63,7 +63,7 @@ func (r *AWSApiGatewayClientCertificate) SetDeletionPolicy(policy DeletionPolicy // 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 *AWSApiGatewayClientCertificate) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayClientCertificate) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayClientCertificate return json.Marshal(&struct { Type string @@ -73,7 +73,7 @@ func (r *AWSApiGatewayClientCertificate) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -118,6 +118,8 @@ func (t *Template) GetAllAWSApiGatewayClientCertificateResources() map[string]*A results := map[string]*AWSApiGatewayClientCertificate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayClientCertificate: + results[name] = &resource case *AWSApiGatewayClientCertificate: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -146,6 +148,8 @@ func (t *Template) GetAllAWSApiGatewayClientCertificateResources() map[string]*A func (t *Template) GetAWSApiGatewayClientCertificateWithName(name string) (*AWSApiGatewayClientCertificate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayClientCertificate: + return &resource, nil case *AWSApiGatewayClientCertificate: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigateway-deployment.go b/cloudformation/aws-apigateway-deployment.go index f9564cd0e3..69f9b47e7d 100644 --- a/cloudformation/aws-apigateway-deployment.go +++ b/cloudformation/aws-apigateway-deployment.go @@ -83,7 +83,7 @@ func (r *AWSApiGatewayDeployment) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSApiGatewayDeployment) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayDeployment) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayDeployment return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSApiGatewayDeployment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSApiGatewayDeploymentResources() map[string]*AWSApiGa results := map[string]*AWSApiGatewayDeployment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayDeployment: + results[name] = &resource case *AWSApiGatewayDeployment: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSApiGatewayDeploymentResources() map[string]*AWSApiGa func (t *Template) GetAWSApiGatewayDeploymentWithName(name string) (*AWSApiGatewayDeployment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayDeployment: + return &resource, nil case *AWSApiGatewayDeployment: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigateway-documentationpart.go b/cloudformation/aws-apigateway-documentationpart.go index a672a6e1e6..4fb43bc409 100644 --- a/cloudformation/aws-apigateway-documentationpart.go +++ b/cloudformation/aws-apigateway-documentationpart.go @@ -73,7 +73,7 @@ func (r *AWSApiGatewayDocumentationPart) SetDeletionPolicy(policy DeletionPolicy // 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 *AWSApiGatewayDocumentationPart) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayDocumentationPart) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayDocumentationPart return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSApiGatewayDocumentationPart) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSApiGatewayDocumentationPartResources() map[string]*A results := map[string]*AWSApiGatewayDocumentationPart{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayDocumentationPart: + results[name] = &resource case *AWSApiGatewayDocumentationPart: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSApiGatewayDocumentationPartResources() map[string]*A func (t *Template) GetAWSApiGatewayDocumentationPartWithName(name string) (*AWSApiGatewayDocumentationPart, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayDocumentationPart: + return &resource, nil case *AWSApiGatewayDocumentationPart: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigateway-documentationversion.go b/cloudformation/aws-apigateway-documentationversion.go index 763a137241..2a44b798df 100644 --- a/cloudformation/aws-apigateway-documentationversion.go +++ b/cloudformation/aws-apigateway-documentationversion.go @@ -73,7 +73,7 @@ func (r *AWSApiGatewayDocumentationVersion) SetDeletionPolicy(policy DeletionPol // 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 *AWSApiGatewayDocumentationVersion) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayDocumentationVersion) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayDocumentationVersion return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSApiGatewayDocumentationVersion) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSApiGatewayDocumentationVersionResources() map[string results := map[string]*AWSApiGatewayDocumentationVersion{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayDocumentationVersion: + results[name] = &resource case *AWSApiGatewayDocumentationVersion: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSApiGatewayDocumentationVersionResources() map[string func (t *Template) GetAWSApiGatewayDocumentationVersionWithName(name string) (*AWSApiGatewayDocumentationVersion, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayDocumentationVersion: + return &resource, nil case *AWSApiGatewayDocumentationVersion: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigateway-domainname.go b/cloudformation/aws-apigateway-domainname.go index 22accef38f..f86756aa60 100644 --- a/cloudformation/aws-apigateway-domainname.go +++ b/cloudformation/aws-apigateway-domainname.go @@ -78,7 +78,7 @@ func (r *AWSApiGatewayDomainName) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSApiGatewayDomainName) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayDomainName) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayDomainName return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSApiGatewayDomainName) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSApiGatewayDomainNameResources() map[string]*AWSApiGa results := map[string]*AWSApiGatewayDomainName{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayDomainName: + results[name] = &resource case *AWSApiGatewayDomainName: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSApiGatewayDomainNameResources() map[string]*AWSApiGa func (t *Template) GetAWSApiGatewayDomainNameWithName(name string) (*AWSApiGatewayDomainName, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayDomainName: + return &resource, nil case *AWSApiGatewayDomainName: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigateway-gatewayresponse.go b/cloudformation/aws-apigateway-gatewayresponse.go index 1fbf10b217..110a060d80 100644 --- a/cloudformation/aws-apigateway-gatewayresponse.go +++ b/cloudformation/aws-apigateway-gatewayresponse.go @@ -83,7 +83,7 @@ func (r *AWSApiGatewayGatewayResponse) SetDeletionPolicy(policy DeletionPolicy) // 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 *AWSApiGatewayGatewayResponse) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayGatewayResponse) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayGatewayResponse return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSApiGatewayGatewayResponse) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSApiGatewayGatewayResponseResources() map[string]*AWS results := map[string]*AWSApiGatewayGatewayResponse{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayGatewayResponse: + results[name] = &resource case *AWSApiGatewayGatewayResponse: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSApiGatewayGatewayResponseResources() map[string]*AWS func (t *Template) GetAWSApiGatewayGatewayResponseWithName(name string) (*AWSApiGatewayGatewayResponse, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayGatewayResponse: + return &resource, nil case *AWSApiGatewayGatewayResponse: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigateway-method.go b/cloudformation/aws-apigateway-method.go index 796b176d37..ea0bf53b0e 100644 --- a/cloudformation/aws-apigateway-method.go +++ b/cloudformation/aws-apigateway-method.go @@ -123,7 +123,7 @@ func (r *AWSApiGatewayMethod) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSApiGatewayMethod) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayMethod) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayMethod return json.Marshal(&struct { Type string @@ -133,7 +133,7 @@ func (r *AWSApiGatewayMethod) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -178,6 +178,8 @@ func (t *Template) GetAllAWSApiGatewayMethodResources() map[string]*AWSApiGatewa results := map[string]*AWSApiGatewayMethod{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayMethod: + results[name] = &resource case *AWSApiGatewayMethod: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -206,6 +208,8 @@ func (t *Template) GetAllAWSApiGatewayMethodResources() map[string]*AWSApiGatewa func (t *Template) GetAWSApiGatewayMethodWithName(name string) (*AWSApiGatewayMethod, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayMethod: + return &resource, nil case *AWSApiGatewayMethod: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigateway-model.go b/cloudformation/aws-apigateway-model.go index ff7ebe18f2..529abbad66 100644 --- a/cloudformation/aws-apigateway-model.go +++ b/cloudformation/aws-apigateway-model.go @@ -83,7 +83,7 @@ func (r *AWSApiGatewayModel) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSApiGatewayModel) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayModel) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayModel return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSApiGatewayModel) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSApiGatewayModelResources() map[string]*AWSApiGateway results := map[string]*AWSApiGatewayModel{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayModel: + results[name] = &resource case *AWSApiGatewayModel: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSApiGatewayModelResources() map[string]*AWSApiGateway func (t *Template) GetAWSApiGatewayModelWithName(name string) (*AWSApiGatewayModel, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayModel: + return &resource, nil case *AWSApiGatewayModel: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigateway-requestvalidator.go b/cloudformation/aws-apigateway-requestvalidator.go index b993079c1a..bdea89f5cb 100644 --- a/cloudformation/aws-apigateway-requestvalidator.go +++ b/cloudformation/aws-apigateway-requestvalidator.go @@ -78,7 +78,7 @@ func (r *AWSApiGatewayRequestValidator) SetDeletionPolicy(policy DeletionPolicy) // 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 *AWSApiGatewayRequestValidator) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayRequestValidator) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayRequestValidator return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSApiGatewayRequestValidator) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSApiGatewayRequestValidatorResources() map[string]*AW results := map[string]*AWSApiGatewayRequestValidator{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayRequestValidator: + results[name] = &resource case *AWSApiGatewayRequestValidator: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSApiGatewayRequestValidatorResources() map[string]*AW func (t *Template) GetAWSApiGatewayRequestValidatorWithName(name string) (*AWSApiGatewayRequestValidator, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayRequestValidator: + return &resource, nil case *AWSApiGatewayRequestValidator: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigateway-resource.go b/cloudformation/aws-apigateway-resource.go index 325175f58d..fdd990b4e1 100644 --- a/cloudformation/aws-apigateway-resource.go +++ b/cloudformation/aws-apigateway-resource.go @@ -73,7 +73,7 @@ func (r *AWSApiGatewayResource) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSApiGatewayResource) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayResource) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayResource return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSApiGatewayResource) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSApiGatewayResourceResources() map[string]*AWSApiGate results := map[string]*AWSApiGatewayResource{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayResource: + results[name] = &resource case *AWSApiGatewayResource: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSApiGatewayResourceResources() map[string]*AWSApiGate func (t *Template) GetAWSApiGatewayResourceWithName(name string) (*AWSApiGatewayResource, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayResource: + return &resource, nil case *AWSApiGatewayResource: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigateway-restapi.go b/cloudformation/aws-apigateway-restapi.go index b1dcd84818..89d1f89d66 100644 --- a/cloudformation/aws-apigateway-restapi.go +++ b/cloudformation/aws-apigateway-restapi.go @@ -118,7 +118,7 @@ func (r *AWSApiGatewayRestApi) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSApiGatewayRestApi) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayRestApi) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayRestApi return json.Marshal(&struct { Type string @@ -128,7 +128,7 @@ func (r *AWSApiGatewayRestApi) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -173,6 +173,8 @@ func (t *Template) GetAllAWSApiGatewayRestApiResources() map[string]*AWSApiGatew results := map[string]*AWSApiGatewayRestApi{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayRestApi: + results[name] = &resource case *AWSApiGatewayRestApi: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -201,6 +203,8 @@ func (t *Template) GetAllAWSApiGatewayRestApiResources() map[string]*AWSApiGatew func (t *Template) GetAWSApiGatewayRestApiWithName(name string) (*AWSApiGatewayRestApi, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayRestApi: + return &resource, nil case *AWSApiGatewayRestApi: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigateway-stage.go b/cloudformation/aws-apigateway-stage.go index 3947989918..343896df29 100644 --- a/cloudformation/aws-apigateway-stage.go +++ b/cloudformation/aws-apigateway-stage.go @@ -128,7 +128,7 @@ func (r *AWSApiGatewayStage) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSApiGatewayStage) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayStage) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayStage return json.Marshal(&struct { Type string @@ -138,7 +138,7 @@ func (r *AWSApiGatewayStage) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -183,6 +183,8 @@ func (t *Template) GetAllAWSApiGatewayStageResources() map[string]*AWSApiGateway results := map[string]*AWSApiGatewayStage{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayStage: + results[name] = &resource case *AWSApiGatewayStage: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -211,6 +213,8 @@ func (t *Template) GetAllAWSApiGatewayStageResources() map[string]*AWSApiGateway func (t *Template) GetAWSApiGatewayStageWithName(name string) (*AWSApiGatewayStage, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayStage: + return &resource, nil case *AWSApiGatewayStage: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigateway-usageplan.go b/cloudformation/aws-apigateway-usageplan.go index 100fe7d46b..8c053b304b 100644 --- a/cloudformation/aws-apigateway-usageplan.go +++ b/cloudformation/aws-apigateway-usageplan.go @@ -83,7 +83,7 @@ func (r *AWSApiGatewayUsagePlan) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSApiGatewayUsagePlan) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayUsagePlan) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayUsagePlan return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSApiGatewayUsagePlan) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSApiGatewayUsagePlanResources() map[string]*AWSApiGat results := map[string]*AWSApiGatewayUsagePlan{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayUsagePlan: + results[name] = &resource case *AWSApiGatewayUsagePlan: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSApiGatewayUsagePlanResources() map[string]*AWSApiGat func (t *Template) GetAWSApiGatewayUsagePlanWithName(name string) (*AWSApiGatewayUsagePlan, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayUsagePlan: + return &resource, nil case *AWSApiGatewayUsagePlan: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigateway-usageplankey.go b/cloudformation/aws-apigateway-usageplankey.go index 9edff276c1..91d9a7bcdf 100644 --- a/cloudformation/aws-apigateway-usageplankey.go +++ b/cloudformation/aws-apigateway-usageplankey.go @@ -73,7 +73,7 @@ func (r *AWSApiGatewayUsagePlanKey) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSApiGatewayUsagePlanKey) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayUsagePlanKey) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayUsagePlanKey return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSApiGatewayUsagePlanKey) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSApiGatewayUsagePlanKeyResources() map[string]*AWSApi results := map[string]*AWSApiGatewayUsagePlanKey{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayUsagePlanKey: + results[name] = &resource case *AWSApiGatewayUsagePlanKey: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSApiGatewayUsagePlanKeyResources() map[string]*AWSApi func (t *Template) GetAWSApiGatewayUsagePlanKeyWithName(name string) (*AWSApiGatewayUsagePlanKey, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayUsagePlanKey: + return &resource, nil case *AWSApiGatewayUsagePlanKey: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigateway-vpclink.go b/cloudformation/aws-apigateway-vpclink.go index b5d2de0bd4..4623d273eb 100644 --- a/cloudformation/aws-apigateway-vpclink.go +++ b/cloudformation/aws-apigateway-vpclink.go @@ -73,7 +73,7 @@ func (r *AWSApiGatewayVpcLink) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSApiGatewayVpcLink) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayVpcLink) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayVpcLink return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSApiGatewayVpcLink) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSApiGatewayVpcLinkResources() map[string]*AWSApiGatew results := map[string]*AWSApiGatewayVpcLink{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayVpcLink: + results[name] = &resource case *AWSApiGatewayVpcLink: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSApiGatewayVpcLinkResources() map[string]*AWSApiGatew func (t *Template) GetAWSApiGatewayVpcLinkWithName(name string) (*AWSApiGatewayVpcLink, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayVpcLink: + return &resource, nil case *AWSApiGatewayVpcLink: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigatewayv2-api.go b/cloudformation/aws-apigatewayv2-api.go index e5ca7f5bc6..8ff7456b6f 100644 --- a/cloudformation/aws-apigatewayv2-api.go +++ b/cloudformation/aws-apigatewayv2-api.go @@ -93,7 +93,7 @@ func (r *AWSApiGatewayV2Api) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSApiGatewayV2Api) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayV2Api) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayV2Api return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSApiGatewayV2Api) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSApiGatewayV2ApiResources() map[string]*AWSApiGateway results := map[string]*AWSApiGatewayV2Api{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayV2Api: + results[name] = &resource case *AWSApiGatewayV2Api: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSApiGatewayV2ApiResources() map[string]*AWSApiGateway func (t *Template) GetAWSApiGatewayV2ApiWithName(name string) (*AWSApiGatewayV2Api, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayV2Api: + return &resource, nil case *AWSApiGatewayV2Api: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigatewayv2-authorizer.go b/cloudformation/aws-apigatewayv2-authorizer.go index a160986d04..07303dfdec 100644 --- a/cloudformation/aws-apigatewayv2-authorizer.go +++ b/cloudformation/aws-apigatewayv2-authorizer.go @@ -98,7 +98,7 @@ func (r *AWSApiGatewayV2Authorizer) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSApiGatewayV2Authorizer) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayV2Authorizer) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayV2Authorizer return json.Marshal(&struct { Type string @@ -108,7 +108,7 @@ func (r *AWSApiGatewayV2Authorizer) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -153,6 +153,8 @@ func (t *Template) GetAllAWSApiGatewayV2AuthorizerResources() map[string]*AWSApi results := map[string]*AWSApiGatewayV2Authorizer{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayV2Authorizer: + results[name] = &resource case *AWSApiGatewayV2Authorizer: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -181,6 +183,8 @@ func (t *Template) GetAllAWSApiGatewayV2AuthorizerResources() map[string]*AWSApi func (t *Template) GetAWSApiGatewayV2AuthorizerWithName(name string) (*AWSApiGatewayV2Authorizer, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayV2Authorizer: + return &resource, nil case *AWSApiGatewayV2Authorizer: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigatewayv2-deployment.go b/cloudformation/aws-apigatewayv2-deployment.go index 5960e463d7..de8fa26945 100644 --- a/cloudformation/aws-apigatewayv2-deployment.go +++ b/cloudformation/aws-apigatewayv2-deployment.go @@ -73,7 +73,7 @@ func (r *AWSApiGatewayV2Deployment) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSApiGatewayV2Deployment) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayV2Deployment) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayV2Deployment return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSApiGatewayV2Deployment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSApiGatewayV2DeploymentResources() map[string]*AWSApi results := map[string]*AWSApiGatewayV2Deployment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayV2Deployment: + results[name] = &resource case *AWSApiGatewayV2Deployment: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSApiGatewayV2DeploymentResources() map[string]*AWSApi func (t *Template) GetAWSApiGatewayV2DeploymentWithName(name string) (*AWSApiGatewayV2Deployment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayV2Deployment: + return &resource, nil case *AWSApiGatewayV2Deployment: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigatewayv2-integration.go b/cloudformation/aws-apigatewayv2-integration.go index 0be17b1094..7d49f923e6 100644 --- a/cloudformation/aws-apigatewayv2-integration.go +++ b/cloudformation/aws-apigatewayv2-integration.go @@ -123,7 +123,7 @@ func (r *AWSApiGatewayV2Integration) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSApiGatewayV2Integration) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayV2Integration) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayV2Integration return json.Marshal(&struct { Type string @@ -133,7 +133,7 @@ func (r *AWSApiGatewayV2Integration) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -178,6 +178,8 @@ func (t *Template) GetAllAWSApiGatewayV2IntegrationResources() map[string]*AWSAp results := map[string]*AWSApiGatewayV2Integration{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayV2Integration: + results[name] = &resource case *AWSApiGatewayV2Integration: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -206,6 +208,8 @@ func (t *Template) GetAllAWSApiGatewayV2IntegrationResources() map[string]*AWSAp func (t *Template) GetAWSApiGatewayV2IntegrationWithName(name string) (*AWSApiGatewayV2Integration, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayV2Integration: + return &resource, nil case *AWSApiGatewayV2Integration: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigatewayv2-integrationresponse.go b/cloudformation/aws-apigatewayv2-integrationresponse.go index 5e4a723b7c..18a64c45cb 100644 --- a/cloudformation/aws-apigatewayv2-integrationresponse.go +++ b/cloudformation/aws-apigatewayv2-integrationresponse.go @@ -93,7 +93,7 @@ func (r *AWSApiGatewayV2IntegrationResponse) SetDeletionPolicy(policy DeletionPo // 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 *AWSApiGatewayV2IntegrationResponse) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayV2IntegrationResponse) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayV2IntegrationResponse return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSApiGatewayV2IntegrationResponse) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSApiGatewayV2IntegrationResponseResources() map[strin results := map[string]*AWSApiGatewayV2IntegrationResponse{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayV2IntegrationResponse: + results[name] = &resource case *AWSApiGatewayV2IntegrationResponse: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSApiGatewayV2IntegrationResponseResources() map[strin func (t *Template) GetAWSApiGatewayV2IntegrationResponseWithName(name string) (*AWSApiGatewayV2IntegrationResponse, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayV2IntegrationResponse: + return &resource, nil case *AWSApiGatewayV2IntegrationResponse: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigatewayv2-model.go b/cloudformation/aws-apigatewayv2-model.go index b33babfdcf..943cfac582 100644 --- a/cloudformation/aws-apigatewayv2-model.go +++ b/cloudformation/aws-apigatewayv2-model.go @@ -83,7 +83,7 @@ func (r *AWSApiGatewayV2Model) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSApiGatewayV2Model) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayV2Model) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayV2Model return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSApiGatewayV2Model) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSApiGatewayV2ModelResources() map[string]*AWSApiGatew results := map[string]*AWSApiGatewayV2Model{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayV2Model: + results[name] = &resource case *AWSApiGatewayV2Model: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSApiGatewayV2ModelResources() map[string]*AWSApiGatew func (t *Template) GetAWSApiGatewayV2ModelWithName(name string) (*AWSApiGatewayV2Model, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayV2Model: + return &resource, nil case *AWSApiGatewayV2Model: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigatewayv2-route.go b/cloudformation/aws-apigatewayv2-route.go index 2cd9753165..e665a8aeea 100644 --- a/cloudformation/aws-apigatewayv2-route.go +++ b/cloudformation/aws-apigatewayv2-route.go @@ -118,7 +118,7 @@ func (r *AWSApiGatewayV2Route) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSApiGatewayV2Route) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayV2Route) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayV2Route return json.Marshal(&struct { Type string @@ -128,7 +128,7 @@ func (r *AWSApiGatewayV2Route) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -173,6 +173,8 @@ func (t *Template) GetAllAWSApiGatewayV2RouteResources() map[string]*AWSApiGatew results := map[string]*AWSApiGatewayV2Route{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayV2Route: + results[name] = &resource case *AWSApiGatewayV2Route: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -201,6 +203,8 @@ func (t *Template) GetAllAWSApiGatewayV2RouteResources() map[string]*AWSApiGatew func (t *Template) GetAWSApiGatewayV2RouteWithName(name string) (*AWSApiGatewayV2Route, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayV2Route: + return &resource, nil case *AWSApiGatewayV2Route: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigatewayv2-routeresponse.go b/cloudformation/aws-apigatewayv2-routeresponse.go index 9fd29bc540..d171462552 100644 --- a/cloudformation/aws-apigatewayv2-routeresponse.go +++ b/cloudformation/aws-apigatewayv2-routeresponse.go @@ -88,7 +88,7 @@ func (r *AWSApiGatewayV2RouteResponse) SetDeletionPolicy(policy DeletionPolicy) // 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 *AWSApiGatewayV2RouteResponse) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayV2RouteResponse) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayV2RouteResponse return json.Marshal(&struct { Type string @@ -98,7 +98,7 @@ func (r *AWSApiGatewayV2RouteResponse) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -143,6 +143,8 @@ func (t *Template) GetAllAWSApiGatewayV2RouteResponseResources() map[string]*AWS results := map[string]*AWSApiGatewayV2RouteResponse{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayV2RouteResponse: + results[name] = &resource case *AWSApiGatewayV2RouteResponse: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -171,6 +173,8 @@ func (t *Template) GetAllAWSApiGatewayV2RouteResponseResources() map[string]*AWS func (t *Template) GetAWSApiGatewayV2RouteResponseWithName(name string) (*AWSApiGatewayV2RouteResponse, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayV2RouteResponse: + return &resource, nil case *AWSApiGatewayV2RouteResponse: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-apigatewayv2-stage.go b/cloudformation/aws-apigatewayv2-stage.go index c8036d87e3..4c3ef35526 100644 --- a/cloudformation/aws-apigatewayv2-stage.go +++ b/cloudformation/aws-apigatewayv2-stage.go @@ -103,7 +103,7 @@ func (r *AWSApiGatewayV2Stage) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSApiGatewayV2Stage) MarshalJSON() ([]byte, error) { +func (r AWSApiGatewayV2Stage) MarshalJSON() ([]byte, error) { type Properties AWSApiGatewayV2Stage return json.Marshal(&struct { Type string @@ -113,7 +113,7 @@ func (r *AWSApiGatewayV2Stage) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -158,6 +158,8 @@ func (t *Template) GetAllAWSApiGatewayV2StageResources() map[string]*AWSApiGatew results := map[string]*AWSApiGatewayV2Stage{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApiGatewayV2Stage: + results[name] = &resource case *AWSApiGatewayV2Stage: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -186,6 +188,8 @@ func (t *Template) GetAllAWSApiGatewayV2StageResources() map[string]*AWSApiGatew func (t *Template) GetAWSApiGatewayV2StageWithName(name string) (*AWSApiGatewayV2Stage, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApiGatewayV2Stage: + return &resource, nil case *AWSApiGatewayV2Stage: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-applicationautoscaling-scalabletarget.go b/cloudformation/aws-applicationautoscaling-scalabletarget.go index 2b5e52e80d..0578b4dbd0 100644 --- a/cloudformation/aws-applicationautoscaling-scalabletarget.go +++ b/cloudformation/aws-applicationautoscaling-scalabletarget.go @@ -93,7 +93,7 @@ func (r *AWSApplicationAutoScalingScalableTarget) SetDeletionPolicy(policy Delet // 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 *AWSApplicationAutoScalingScalableTarget) MarshalJSON() ([]byte, error) { +func (r AWSApplicationAutoScalingScalableTarget) MarshalJSON() ([]byte, error) { type Properties AWSApplicationAutoScalingScalableTarget return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSApplicationAutoScalingScalableTarget) MarshalJSON() ([]byte, error) DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSApplicationAutoScalingScalableTargetResources() map[ results := map[string]*AWSApplicationAutoScalingScalableTarget{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApplicationAutoScalingScalableTarget: + results[name] = &resource case *AWSApplicationAutoScalingScalableTarget: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSApplicationAutoScalingScalableTargetResources() map[ func (t *Template) GetAWSApplicationAutoScalingScalableTargetWithName(name string) (*AWSApplicationAutoScalingScalableTarget, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApplicationAutoScalingScalableTarget: + return &resource, nil case *AWSApplicationAutoScalingScalableTarget: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-applicationautoscaling-scalingpolicy.go b/cloudformation/aws-applicationautoscaling-scalingpolicy.go index 63e588a08a..1ba53a12c6 100644 --- a/cloudformation/aws-applicationautoscaling-scalingpolicy.go +++ b/cloudformation/aws-applicationautoscaling-scalingpolicy.go @@ -98,7 +98,7 @@ func (r *AWSApplicationAutoScalingScalingPolicy) SetDeletionPolicy(policy Deleti // 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 *AWSApplicationAutoScalingScalingPolicy) MarshalJSON() ([]byte, error) { +func (r AWSApplicationAutoScalingScalingPolicy) MarshalJSON() ([]byte, error) { type Properties AWSApplicationAutoScalingScalingPolicy return json.Marshal(&struct { Type string @@ -108,7 +108,7 @@ func (r *AWSApplicationAutoScalingScalingPolicy) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -153,6 +153,8 @@ func (t *Template) GetAllAWSApplicationAutoScalingScalingPolicyResources() map[s results := map[string]*AWSApplicationAutoScalingScalingPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSApplicationAutoScalingScalingPolicy: + results[name] = &resource case *AWSApplicationAutoScalingScalingPolicy: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -181,6 +183,8 @@ func (t *Template) GetAllAWSApplicationAutoScalingScalingPolicyResources() map[s func (t *Template) GetAWSApplicationAutoScalingScalingPolicyWithName(name string) (*AWSApplicationAutoScalingScalingPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSApplicationAutoScalingScalingPolicy: + return &resource, nil case *AWSApplicationAutoScalingScalingPolicy: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-appstream-directoryconfig.go b/cloudformation/aws-appstream-directoryconfig.go index d58b9654a4..7efc9277ba 100644 --- a/cloudformation/aws-appstream-directoryconfig.go +++ b/cloudformation/aws-appstream-directoryconfig.go @@ -73,7 +73,7 @@ func (r *AWSAppStreamDirectoryConfig) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSAppStreamDirectoryConfig) MarshalJSON() ([]byte, error) { +func (r AWSAppStreamDirectoryConfig) MarshalJSON() ([]byte, error) { type Properties AWSAppStreamDirectoryConfig return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSAppStreamDirectoryConfig) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSAppStreamDirectoryConfigResources() map[string]*AWSA results := map[string]*AWSAppStreamDirectoryConfig{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAppStreamDirectoryConfig: + results[name] = &resource case *AWSAppStreamDirectoryConfig: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSAppStreamDirectoryConfigResources() map[string]*AWSA func (t *Template) GetAWSAppStreamDirectoryConfigWithName(name string) (*AWSAppStreamDirectoryConfig, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAppStreamDirectoryConfig: + return &resource, nil case *AWSAppStreamDirectoryConfig: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-appstream-fleet.go b/cloudformation/aws-appstream-fleet.go index abc9fb145a..94dfd7891a 100644 --- a/cloudformation/aws-appstream-fleet.go +++ b/cloudformation/aws-appstream-fleet.go @@ -123,7 +123,7 @@ func (r *AWSAppStreamFleet) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSAppStreamFleet) MarshalJSON() ([]byte, error) { +func (r AWSAppStreamFleet) MarshalJSON() ([]byte, error) { type Properties AWSAppStreamFleet return json.Marshal(&struct { Type string @@ -133,7 +133,7 @@ func (r *AWSAppStreamFleet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -178,6 +178,8 @@ func (t *Template) GetAllAWSAppStreamFleetResources() map[string]*AWSAppStreamFl results := map[string]*AWSAppStreamFleet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAppStreamFleet: + results[name] = &resource case *AWSAppStreamFleet: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -206,6 +208,8 @@ func (t *Template) GetAllAWSAppStreamFleetResources() map[string]*AWSAppStreamFl func (t *Template) GetAWSAppStreamFleetWithName(name string) (*AWSAppStreamFleet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAppStreamFleet: + return &resource, nil case *AWSAppStreamFleet: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-appstream-imagebuilder.go b/cloudformation/aws-appstream-imagebuilder.go index 059de1a470..68f3fc7e17 100644 --- a/cloudformation/aws-appstream-imagebuilder.go +++ b/cloudformation/aws-appstream-imagebuilder.go @@ -108,7 +108,7 @@ func (r *AWSAppStreamImageBuilder) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSAppStreamImageBuilder) MarshalJSON() ([]byte, error) { +func (r AWSAppStreamImageBuilder) MarshalJSON() ([]byte, error) { type Properties AWSAppStreamImageBuilder return json.Marshal(&struct { Type string @@ -118,7 +118,7 @@ func (r *AWSAppStreamImageBuilder) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -163,6 +163,8 @@ func (t *Template) GetAllAWSAppStreamImageBuilderResources() map[string]*AWSAppS results := map[string]*AWSAppStreamImageBuilder{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAppStreamImageBuilder: + results[name] = &resource case *AWSAppStreamImageBuilder: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -191,6 +193,8 @@ func (t *Template) GetAllAWSAppStreamImageBuilderResources() map[string]*AWSAppS func (t *Template) GetAWSAppStreamImageBuilderWithName(name string) (*AWSAppStreamImageBuilder, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAppStreamImageBuilder: + return &resource, nil case *AWSAppStreamImageBuilder: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-appstream-stack.go b/cloudformation/aws-appstream-stack.go index 0ed826026c..0099576657 100644 --- a/cloudformation/aws-appstream-stack.go +++ b/cloudformation/aws-appstream-stack.go @@ -108,7 +108,7 @@ func (r *AWSAppStreamStack) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSAppStreamStack) MarshalJSON() ([]byte, error) { +func (r AWSAppStreamStack) MarshalJSON() ([]byte, error) { type Properties AWSAppStreamStack return json.Marshal(&struct { Type string @@ -118,7 +118,7 @@ func (r *AWSAppStreamStack) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -163,6 +163,8 @@ func (t *Template) GetAllAWSAppStreamStackResources() map[string]*AWSAppStreamSt results := map[string]*AWSAppStreamStack{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAppStreamStack: + results[name] = &resource case *AWSAppStreamStack: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -191,6 +193,8 @@ func (t *Template) GetAllAWSAppStreamStackResources() map[string]*AWSAppStreamSt func (t *Template) GetAWSAppStreamStackWithName(name string) (*AWSAppStreamStack, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAppStreamStack: + return &resource, nil case *AWSAppStreamStack: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-appstream-stackfleetassociation.go b/cloudformation/aws-appstream-stackfleetassociation.go index 98d7fcf7d4..e35abab60e 100644 --- a/cloudformation/aws-appstream-stackfleetassociation.go +++ b/cloudformation/aws-appstream-stackfleetassociation.go @@ -68,7 +68,7 @@ func (r *AWSAppStreamStackFleetAssociation) SetDeletionPolicy(policy DeletionPol // 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 *AWSAppStreamStackFleetAssociation) MarshalJSON() ([]byte, error) { +func (r AWSAppStreamStackFleetAssociation) MarshalJSON() ([]byte, error) { type Properties AWSAppStreamStackFleetAssociation return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSAppStreamStackFleetAssociation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSAppStreamStackFleetAssociationResources() map[string results := map[string]*AWSAppStreamStackFleetAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAppStreamStackFleetAssociation: + results[name] = &resource case *AWSAppStreamStackFleetAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSAppStreamStackFleetAssociationResources() map[string func (t *Template) GetAWSAppStreamStackFleetAssociationWithName(name string) (*AWSAppStreamStackFleetAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAppStreamStackFleetAssociation: + return &resource, nil case *AWSAppStreamStackFleetAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-appstream-stackuserassociation.go b/cloudformation/aws-appstream-stackuserassociation.go index 20eb59ad59..44cdcafd70 100644 --- a/cloudformation/aws-appstream-stackuserassociation.go +++ b/cloudformation/aws-appstream-stackuserassociation.go @@ -78,7 +78,7 @@ func (r *AWSAppStreamStackUserAssociation) SetDeletionPolicy(policy DeletionPoli // 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 *AWSAppStreamStackUserAssociation) MarshalJSON() ([]byte, error) { +func (r AWSAppStreamStackUserAssociation) MarshalJSON() ([]byte, error) { type Properties AWSAppStreamStackUserAssociation return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSAppStreamStackUserAssociation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSAppStreamStackUserAssociationResources() map[string] results := map[string]*AWSAppStreamStackUserAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAppStreamStackUserAssociation: + results[name] = &resource case *AWSAppStreamStackUserAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSAppStreamStackUserAssociationResources() map[string] func (t *Template) GetAWSAppStreamStackUserAssociationWithName(name string) (*AWSAppStreamStackUserAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAppStreamStackUserAssociation: + return &resource, nil case *AWSAppStreamStackUserAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-appstream-user.go b/cloudformation/aws-appstream-user.go index 2aba13637a..7264094e2a 100644 --- a/cloudformation/aws-appstream-user.go +++ b/cloudformation/aws-appstream-user.go @@ -83,7 +83,7 @@ func (r *AWSAppStreamUser) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSAppStreamUser) MarshalJSON() ([]byte, error) { +func (r AWSAppStreamUser) MarshalJSON() ([]byte, error) { type Properties AWSAppStreamUser return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSAppStreamUser) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSAppStreamUserResources() map[string]*AWSAppStreamUse results := map[string]*AWSAppStreamUser{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAppStreamUser: + results[name] = &resource case *AWSAppStreamUser: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSAppStreamUserResources() map[string]*AWSAppStreamUse func (t *Template) GetAWSAppStreamUserWithName(name string) (*AWSAppStreamUser, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAppStreamUser: + return &resource, nil case *AWSAppStreamUser: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-appsync-apikey.go b/cloudformation/aws-appsync-apikey.go index f9287becc8..f5b36cd837 100644 --- a/cloudformation/aws-appsync-apikey.go +++ b/cloudformation/aws-appsync-apikey.go @@ -73,7 +73,7 @@ func (r *AWSAppSyncApiKey) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSAppSyncApiKey) MarshalJSON() ([]byte, error) { +func (r AWSAppSyncApiKey) MarshalJSON() ([]byte, error) { type Properties AWSAppSyncApiKey return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSAppSyncApiKey) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSAppSyncApiKeyResources() map[string]*AWSAppSyncApiKe results := map[string]*AWSAppSyncApiKey{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAppSyncApiKey: + results[name] = &resource case *AWSAppSyncApiKey: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSAppSyncApiKeyResources() map[string]*AWSAppSyncApiKe func (t *Template) GetAWSAppSyncApiKeyWithName(name string) (*AWSAppSyncApiKey, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAppSyncApiKey: + return &resource, nil case *AWSAppSyncApiKey: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-appsync-datasource.go b/cloudformation/aws-appsync-datasource.go index b46ef3c009..86bfd78eeb 100644 --- a/cloudformation/aws-appsync-datasource.go +++ b/cloudformation/aws-appsync-datasource.go @@ -108,7 +108,7 @@ func (r *AWSAppSyncDataSource) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSAppSyncDataSource) MarshalJSON() ([]byte, error) { +func (r AWSAppSyncDataSource) MarshalJSON() ([]byte, error) { type Properties AWSAppSyncDataSource return json.Marshal(&struct { Type string @@ -118,7 +118,7 @@ func (r *AWSAppSyncDataSource) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -163,6 +163,8 @@ func (t *Template) GetAllAWSAppSyncDataSourceResources() map[string]*AWSAppSyncD results := map[string]*AWSAppSyncDataSource{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAppSyncDataSource: + results[name] = &resource case *AWSAppSyncDataSource: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -191,6 +193,8 @@ func (t *Template) GetAllAWSAppSyncDataSourceResources() map[string]*AWSAppSyncD func (t *Template) GetAWSAppSyncDataSourceWithName(name string) (*AWSAppSyncDataSource, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAppSyncDataSource: + return &resource, nil case *AWSAppSyncDataSource: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-appsync-functionconfiguration.go b/cloudformation/aws-appsync-functionconfiguration.go index 943543679d..27faba362a 100644 --- a/cloudformation/aws-appsync-functionconfiguration.go +++ b/cloudformation/aws-appsync-functionconfiguration.go @@ -103,7 +103,7 @@ func (r *AWSAppSyncFunctionConfiguration) SetDeletionPolicy(policy DeletionPolic // 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 *AWSAppSyncFunctionConfiguration) MarshalJSON() ([]byte, error) { +func (r AWSAppSyncFunctionConfiguration) MarshalJSON() ([]byte, error) { type Properties AWSAppSyncFunctionConfiguration return json.Marshal(&struct { Type string @@ -113,7 +113,7 @@ func (r *AWSAppSyncFunctionConfiguration) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -158,6 +158,8 @@ func (t *Template) GetAllAWSAppSyncFunctionConfigurationResources() map[string]* results := map[string]*AWSAppSyncFunctionConfiguration{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAppSyncFunctionConfiguration: + results[name] = &resource case *AWSAppSyncFunctionConfiguration: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -186,6 +188,8 @@ func (t *Template) GetAllAWSAppSyncFunctionConfigurationResources() map[string]* func (t *Template) GetAWSAppSyncFunctionConfigurationWithName(name string) (*AWSAppSyncFunctionConfiguration, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAppSyncFunctionConfiguration: + return &resource, nil case *AWSAppSyncFunctionConfiguration: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-appsync-graphqlapi.go b/cloudformation/aws-appsync-graphqlapi.go index c8122e2ce4..3b541ee8e9 100644 --- a/cloudformation/aws-appsync-graphqlapi.go +++ b/cloudformation/aws-appsync-graphqlapi.go @@ -83,7 +83,7 @@ func (r *AWSAppSyncGraphQLApi) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSAppSyncGraphQLApi) MarshalJSON() ([]byte, error) { +func (r AWSAppSyncGraphQLApi) MarshalJSON() ([]byte, error) { type Properties AWSAppSyncGraphQLApi return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSAppSyncGraphQLApi) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSAppSyncGraphQLApiResources() map[string]*AWSAppSyncG results := map[string]*AWSAppSyncGraphQLApi{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAppSyncGraphQLApi: + results[name] = &resource case *AWSAppSyncGraphQLApi: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSAppSyncGraphQLApiResources() map[string]*AWSAppSyncG func (t *Template) GetAWSAppSyncGraphQLApiWithName(name string) (*AWSAppSyncGraphQLApi, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAppSyncGraphQLApi: + return &resource, nil case *AWSAppSyncGraphQLApi: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-appsync-graphqlschema.go b/cloudformation/aws-appsync-graphqlschema.go index f02dc62725..c933483589 100644 --- a/cloudformation/aws-appsync-graphqlschema.go +++ b/cloudformation/aws-appsync-graphqlschema.go @@ -73,7 +73,7 @@ func (r *AWSAppSyncGraphQLSchema) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSAppSyncGraphQLSchema) MarshalJSON() ([]byte, error) { +func (r AWSAppSyncGraphQLSchema) MarshalJSON() ([]byte, error) { type Properties AWSAppSyncGraphQLSchema return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSAppSyncGraphQLSchema) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSAppSyncGraphQLSchemaResources() map[string]*AWSAppSy results := map[string]*AWSAppSyncGraphQLSchema{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAppSyncGraphQLSchema: + results[name] = &resource case *AWSAppSyncGraphQLSchema: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSAppSyncGraphQLSchemaResources() map[string]*AWSAppSy func (t *Template) GetAWSAppSyncGraphQLSchemaWithName(name string) (*AWSAppSyncGraphQLSchema, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAppSyncGraphQLSchema: + return &resource, nil case *AWSAppSyncGraphQLSchema: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-appsync-resolver.go b/cloudformation/aws-appsync-resolver.go index dfb6a2b63d..7bc3390ea3 100644 --- a/cloudformation/aws-appsync-resolver.go +++ b/cloudformation/aws-appsync-resolver.go @@ -108,7 +108,7 @@ func (r *AWSAppSyncResolver) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSAppSyncResolver) MarshalJSON() ([]byte, error) { +func (r AWSAppSyncResolver) MarshalJSON() ([]byte, error) { type Properties AWSAppSyncResolver return json.Marshal(&struct { Type string @@ -118,7 +118,7 @@ func (r *AWSAppSyncResolver) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -163,6 +163,8 @@ func (t *Template) GetAllAWSAppSyncResolverResources() map[string]*AWSAppSyncRes results := map[string]*AWSAppSyncResolver{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAppSyncResolver: + results[name] = &resource case *AWSAppSyncResolver: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -191,6 +193,8 @@ func (t *Template) GetAllAWSAppSyncResolverResources() map[string]*AWSAppSyncRes func (t *Template) GetAWSAppSyncResolverWithName(name string) (*AWSAppSyncResolver, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAppSyncResolver: + return &resource, nil case *AWSAppSyncResolver: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-athena-namedquery.go b/cloudformation/aws-athena-namedquery.go index 840aa4ba5d..6b9bf9b3e2 100644 --- a/cloudformation/aws-athena-namedquery.go +++ b/cloudformation/aws-athena-namedquery.go @@ -78,7 +78,7 @@ func (r *AWSAthenaNamedQuery) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSAthenaNamedQuery) MarshalJSON() ([]byte, error) { +func (r AWSAthenaNamedQuery) MarshalJSON() ([]byte, error) { type Properties AWSAthenaNamedQuery return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSAthenaNamedQuery) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSAthenaNamedQueryResources() map[string]*AWSAthenaNam results := map[string]*AWSAthenaNamedQuery{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAthenaNamedQuery: + results[name] = &resource case *AWSAthenaNamedQuery: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSAthenaNamedQueryResources() map[string]*AWSAthenaNam func (t *Template) GetAWSAthenaNamedQueryWithName(name string) (*AWSAthenaNamedQuery, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAthenaNamedQuery: + return &resource, nil case *AWSAthenaNamedQuery: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-autoscaling-autoscalinggroup.go b/cloudformation/aws-autoscaling-autoscalinggroup.go index 721dcdb80a..466a3769bc 100644 --- a/cloudformation/aws-autoscaling-autoscalinggroup.go +++ b/cloudformation/aws-autoscaling-autoscalinggroup.go @@ -186,7 +186,7 @@ func (r *AWSAutoScalingAutoScalingGroup) SetCreationPolicy(policy *CreationPolic // 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 *AWSAutoScalingAutoScalingGroup) MarshalJSON() ([]byte, error) { +func (r AWSAutoScalingAutoScalingGroup) MarshalJSON() ([]byte, error) { type Properties AWSAutoScalingAutoScalingGroup return json.Marshal(&struct { Type string @@ -198,7 +198,7 @@ func (r *AWSAutoScalingAutoScalingGroup) MarshalJSON() ([]byte, error) { CreationPolicy *CreationPolicy `json:"CreationPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -245,6 +245,8 @@ func (t *Template) GetAllAWSAutoScalingAutoScalingGroupResources() map[string]*A results := map[string]*AWSAutoScalingAutoScalingGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAutoScalingAutoScalingGroup: + results[name] = &resource case *AWSAutoScalingAutoScalingGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -273,6 +275,8 @@ func (t *Template) GetAllAWSAutoScalingAutoScalingGroupResources() map[string]*A func (t *Template) GetAWSAutoScalingAutoScalingGroupWithName(name string) (*AWSAutoScalingAutoScalingGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAutoScalingAutoScalingGroup: + return &resource, nil case *AWSAutoScalingAutoScalingGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-autoscaling-launchconfiguration.go b/cloudformation/aws-autoscaling-launchconfiguration.go index a0d2cd0b0d..6827754258 100644 --- a/cloudformation/aws-autoscaling-launchconfiguration.go +++ b/cloudformation/aws-autoscaling-launchconfiguration.go @@ -148,7 +148,7 @@ func (r *AWSAutoScalingLaunchConfiguration) SetDeletionPolicy(policy DeletionPol // 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 *AWSAutoScalingLaunchConfiguration) MarshalJSON() ([]byte, error) { +func (r AWSAutoScalingLaunchConfiguration) MarshalJSON() ([]byte, error) { type Properties AWSAutoScalingLaunchConfiguration return json.Marshal(&struct { Type string @@ -158,7 +158,7 @@ func (r *AWSAutoScalingLaunchConfiguration) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -203,6 +203,8 @@ func (t *Template) GetAllAWSAutoScalingLaunchConfigurationResources() map[string results := map[string]*AWSAutoScalingLaunchConfiguration{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAutoScalingLaunchConfiguration: + results[name] = &resource case *AWSAutoScalingLaunchConfiguration: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -231,6 +233,8 @@ func (t *Template) GetAllAWSAutoScalingLaunchConfigurationResources() map[string func (t *Template) GetAWSAutoScalingLaunchConfigurationWithName(name string) (*AWSAutoScalingLaunchConfiguration, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAutoScalingLaunchConfiguration: + return &resource, nil case *AWSAutoScalingLaunchConfiguration: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-autoscaling-lifecyclehook.go b/cloudformation/aws-autoscaling-lifecyclehook.go index ca877b3887..1a5016b57f 100644 --- a/cloudformation/aws-autoscaling-lifecyclehook.go +++ b/cloudformation/aws-autoscaling-lifecyclehook.go @@ -98,7 +98,7 @@ func (r *AWSAutoScalingLifecycleHook) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSAutoScalingLifecycleHook) MarshalJSON() ([]byte, error) { +func (r AWSAutoScalingLifecycleHook) MarshalJSON() ([]byte, error) { type Properties AWSAutoScalingLifecycleHook return json.Marshal(&struct { Type string @@ -108,7 +108,7 @@ func (r *AWSAutoScalingLifecycleHook) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -153,6 +153,8 @@ func (t *Template) GetAllAWSAutoScalingLifecycleHookResources() map[string]*AWSA results := map[string]*AWSAutoScalingLifecycleHook{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAutoScalingLifecycleHook: + results[name] = &resource case *AWSAutoScalingLifecycleHook: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -181,6 +183,8 @@ func (t *Template) GetAllAWSAutoScalingLifecycleHookResources() map[string]*AWSA func (t *Template) GetAWSAutoScalingLifecycleHookWithName(name string) (*AWSAutoScalingLifecycleHook, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAutoScalingLifecycleHook: + return &resource, nil case *AWSAutoScalingLifecycleHook: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-autoscaling-scalingpolicy.go b/cloudformation/aws-autoscaling-scalingpolicy.go index b81ffe38c8..fc337037c0 100644 --- a/cloudformation/aws-autoscaling-scalingpolicy.go +++ b/cloudformation/aws-autoscaling-scalingpolicy.go @@ -108,7 +108,7 @@ func (r *AWSAutoScalingScalingPolicy) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSAutoScalingScalingPolicy) MarshalJSON() ([]byte, error) { +func (r AWSAutoScalingScalingPolicy) MarshalJSON() ([]byte, error) { type Properties AWSAutoScalingScalingPolicy return json.Marshal(&struct { Type string @@ -118,7 +118,7 @@ func (r *AWSAutoScalingScalingPolicy) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -163,6 +163,8 @@ func (t *Template) GetAllAWSAutoScalingScalingPolicyResources() map[string]*AWSA results := map[string]*AWSAutoScalingScalingPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAutoScalingScalingPolicy: + results[name] = &resource case *AWSAutoScalingScalingPolicy: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -191,6 +193,8 @@ func (t *Template) GetAllAWSAutoScalingScalingPolicyResources() map[string]*AWSA func (t *Template) GetAWSAutoScalingScalingPolicyWithName(name string) (*AWSAutoScalingScalingPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAutoScalingScalingPolicy: + return &resource, nil case *AWSAutoScalingScalingPolicy: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-autoscaling-scheduledaction.go b/cloudformation/aws-autoscaling-scheduledaction.go index ca6abf387c..30991b4548 100644 --- a/cloudformation/aws-autoscaling-scheduledaction.go +++ b/cloudformation/aws-autoscaling-scheduledaction.go @@ -93,7 +93,7 @@ func (r *AWSAutoScalingScheduledAction) SetDeletionPolicy(policy DeletionPolicy) // 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 *AWSAutoScalingScheduledAction) MarshalJSON() ([]byte, error) { +func (r AWSAutoScalingScheduledAction) MarshalJSON() ([]byte, error) { type Properties AWSAutoScalingScheduledAction return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSAutoScalingScheduledAction) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSAutoScalingScheduledActionResources() map[string]*AW results := map[string]*AWSAutoScalingScheduledAction{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAutoScalingScheduledAction: + results[name] = &resource case *AWSAutoScalingScheduledAction: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSAutoScalingScheduledActionResources() map[string]*AW func (t *Template) GetAWSAutoScalingScheduledActionWithName(name string) (*AWSAutoScalingScheduledAction, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAutoScalingScheduledAction: + return &resource, nil case *AWSAutoScalingScheduledAction: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-autoscalingplans-scalingplan.go b/cloudformation/aws-autoscalingplans-scalingplan.go index 3c29e7130f..9a6109a328 100644 --- a/cloudformation/aws-autoscalingplans-scalingplan.go +++ b/cloudformation/aws-autoscalingplans-scalingplan.go @@ -68,7 +68,7 @@ func (r *AWSAutoScalingPlansScalingPlan) SetDeletionPolicy(policy DeletionPolicy // 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 *AWSAutoScalingPlansScalingPlan) MarshalJSON() ([]byte, error) { +func (r AWSAutoScalingPlansScalingPlan) MarshalJSON() ([]byte, error) { type Properties AWSAutoScalingPlansScalingPlan return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSAutoScalingPlansScalingPlan) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSAutoScalingPlansScalingPlanResources() map[string]*A results := map[string]*AWSAutoScalingPlansScalingPlan{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSAutoScalingPlansScalingPlan: + results[name] = &resource case *AWSAutoScalingPlansScalingPlan: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSAutoScalingPlansScalingPlanResources() map[string]*A func (t *Template) GetAWSAutoScalingPlansScalingPlanWithName(name string) (*AWSAutoScalingPlansScalingPlan, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSAutoScalingPlansScalingPlan: + return &resource, nil case *AWSAutoScalingPlansScalingPlan: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-batch-computeenvironment.go b/cloudformation/aws-batch-computeenvironment.go index 07b439c20e..df827e7578 100644 --- a/cloudformation/aws-batch-computeenvironment.go +++ b/cloudformation/aws-batch-computeenvironment.go @@ -83,7 +83,7 @@ func (r *AWSBatchComputeEnvironment) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSBatchComputeEnvironment) MarshalJSON() ([]byte, error) { +func (r AWSBatchComputeEnvironment) MarshalJSON() ([]byte, error) { type Properties AWSBatchComputeEnvironment return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSBatchComputeEnvironment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSBatchComputeEnvironmentResources() map[string]*AWSBa results := map[string]*AWSBatchComputeEnvironment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSBatchComputeEnvironment: + results[name] = &resource case *AWSBatchComputeEnvironment: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSBatchComputeEnvironmentResources() map[string]*AWSBa func (t *Template) GetAWSBatchComputeEnvironmentWithName(name string) (*AWSBatchComputeEnvironment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSBatchComputeEnvironment: + return &resource, nil case *AWSBatchComputeEnvironment: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-batch-jobdefinition.go b/cloudformation/aws-batch-jobdefinition.go index 50c70d4f52..7bc587fe64 100644 --- a/cloudformation/aws-batch-jobdefinition.go +++ b/cloudformation/aws-batch-jobdefinition.go @@ -93,7 +93,7 @@ func (r *AWSBatchJobDefinition) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSBatchJobDefinition) MarshalJSON() ([]byte, error) { +func (r AWSBatchJobDefinition) MarshalJSON() ([]byte, error) { type Properties AWSBatchJobDefinition return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSBatchJobDefinition) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSBatchJobDefinitionResources() map[string]*AWSBatchJo results := map[string]*AWSBatchJobDefinition{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSBatchJobDefinition: + results[name] = &resource case *AWSBatchJobDefinition: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSBatchJobDefinitionResources() map[string]*AWSBatchJo func (t *Template) GetAWSBatchJobDefinitionWithName(name string) (*AWSBatchJobDefinition, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSBatchJobDefinition: + return &resource, nil case *AWSBatchJobDefinition: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-batch-jobqueue.go b/cloudformation/aws-batch-jobqueue.go index 8966010555..fbce7061ba 100644 --- a/cloudformation/aws-batch-jobqueue.go +++ b/cloudformation/aws-batch-jobqueue.go @@ -78,7 +78,7 @@ func (r *AWSBatchJobQueue) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSBatchJobQueue) MarshalJSON() ([]byte, error) { +func (r AWSBatchJobQueue) MarshalJSON() ([]byte, error) { type Properties AWSBatchJobQueue return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSBatchJobQueue) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSBatchJobQueueResources() map[string]*AWSBatchJobQueu results := map[string]*AWSBatchJobQueue{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSBatchJobQueue: + results[name] = &resource case *AWSBatchJobQueue: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSBatchJobQueueResources() map[string]*AWSBatchJobQueu func (t *Template) GetAWSBatchJobQueueWithName(name string) (*AWSBatchJobQueue, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSBatchJobQueue: + return &resource, nil case *AWSBatchJobQueue: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-budgets-budget.go b/cloudformation/aws-budgets-budget.go index 764745a9df..cba9bf0f92 100644 --- a/cloudformation/aws-budgets-budget.go +++ b/cloudformation/aws-budgets-budget.go @@ -68,7 +68,7 @@ func (r *AWSBudgetsBudget) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSBudgetsBudget) MarshalJSON() ([]byte, error) { +func (r AWSBudgetsBudget) MarshalJSON() ([]byte, error) { type Properties AWSBudgetsBudget return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSBudgetsBudget) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSBudgetsBudgetResources() map[string]*AWSBudgetsBudge results := map[string]*AWSBudgetsBudget{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSBudgetsBudget: + results[name] = &resource case *AWSBudgetsBudget: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSBudgetsBudgetResources() map[string]*AWSBudgetsBudge func (t *Template) GetAWSBudgetsBudgetWithName(name string) (*AWSBudgetsBudget, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSBudgetsBudget: + return &resource, nil case *AWSBudgetsBudget: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-certificatemanager-certificate.go b/cloudformation/aws-certificatemanager-certificate.go index 3001d44090..236631b903 100644 --- a/cloudformation/aws-certificatemanager-certificate.go +++ b/cloudformation/aws-certificatemanager-certificate.go @@ -83,7 +83,7 @@ func (r *AWSCertificateManagerCertificate) SetDeletionPolicy(policy DeletionPoli // 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 *AWSCertificateManagerCertificate) MarshalJSON() ([]byte, error) { +func (r AWSCertificateManagerCertificate) MarshalJSON() ([]byte, error) { type Properties AWSCertificateManagerCertificate return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSCertificateManagerCertificate) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSCertificateManagerCertificateResources() map[string] results := map[string]*AWSCertificateManagerCertificate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCertificateManagerCertificate: + results[name] = &resource case *AWSCertificateManagerCertificate: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSCertificateManagerCertificateResources() map[string] func (t *Template) GetAWSCertificateManagerCertificateWithName(name string) (*AWSCertificateManagerCertificate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCertificateManagerCertificate: + return &resource, nil case *AWSCertificateManagerCertificate: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-cloud9-environmentec2.go b/cloudformation/aws-cloud9-environmentec2.go index 9dc516728e..f8190b6828 100644 --- a/cloudformation/aws-cloud9-environmentec2.go +++ b/cloudformation/aws-cloud9-environmentec2.go @@ -93,7 +93,7 @@ func (r *AWSCloud9EnvironmentEC2) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSCloud9EnvironmentEC2) MarshalJSON() ([]byte, error) { +func (r AWSCloud9EnvironmentEC2) MarshalJSON() ([]byte, error) { type Properties AWSCloud9EnvironmentEC2 return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSCloud9EnvironmentEC2) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSCloud9EnvironmentEC2Resources() map[string]*AWSCloud results := map[string]*AWSCloud9EnvironmentEC2{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCloud9EnvironmentEC2: + results[name] = &resource case *AWSCloud9EnvironmentEC2: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSCloud9EnvironmentEC2Resources() map[string]*AWSCloud func (t *Template) GetAWSCloud9EnvironmentEC2WithName(name string) (*AWSCloud9EnvironmentEC2, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCloud9EnvironmentEC2: + return &resource, nil case *AWSCloud9EnvironmentEC2: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-cloudformation-customresource.go b/cloudformation/aws-cloudformation-customresource.go index c94504d5b7..1b047d51a1 100644 --- a/cloudformation/aws-cloudformation-customresource.go +++ b/cloudformation/aws-cloudformation-customresource.go @@ -63,7 +63,7 @@ func (r *AWSCloudFormationCustomResource) SetDeletionPolicy(policy DeletionPolic // 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 *AWSCloudFormationCustomResource) MarshalJSON() ([]byte, error) { +func (r AWSCloudFormationCustomResource) MarshalJSON() ([]byte, error) { type Properties AWSCloudFormationCustomResource return json.Marshal(&struct { Type string @@ -73,7 +73,7 @@ func (r *AWSCloudFormationCustomResource) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -118,6 +118,8 @@ func (t *Template) GetAllAWSCloudFormationCustomResourceResources() map[string]* results := map[string]*AWSCloudFormationCustomResource{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCloudFormationCustomResource: + results[name] = &resource case *AWSCloudFormationCustomResource: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -146,6 +148,8 @@ func (t *Template) GetAllAWSCloudFormationCustomResourceResources() map[string]* func (t *Template) GetAWSCloudFormationCustomResourceWithName(name string) (*AWSCloudFormationCustomResource, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCloudFormationCustomResource: + return &resource, nil case *AWSCloudFormationCustomResource: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-cloudformation-macro.go b/cloudformation/aws-cloudformation-macro.go index 83509ed58e..0647115958 100644 --- a/cloudformation/aws-cloudformation-macro.go +++ b/cloudformation/aws-cloudformation-macro.go @@ -83,7 +83,7 @@ func (r *AWSCloudFormationMacro) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSCloudFormationMacro) MarshalJSON() ([]byte, error) { +func (r AWSCloudFormationMacro) MarshalJSON() ([]byte, error) { type Properties AWSCloudFormationMacro return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSCloudFormationMacro) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSCloudFormationMacroResources() map[string]*AWSCloudF results := map[string]*AWSCloudFormationMacro{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCloudFormationMacro: + results[name] = &resource case *AWSCloudFormationMacro: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSCloudFormationMacroResources() map[string]*AWSCloudF func (t *Template) GetAWSCloudFormationMacroWithName(name string) (*AWSCloudFormationMacro, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCloudFormationMacro: + return &resource, nil case *AWSCloudFormationMacro: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-cloudformation-stack.go b/cloudformation/aws-cloudformation-stack.go index f9b59be511..9f878d2b20 100644 --- a/cloudformation/aws-cloudformation-stack.go +++ b/cloudformation/aws-cloudformation-stack.go @@ -83,7 +83,7 @@ func (r *AWSCloudFormationStack) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSCloudFormationStack) MarshalJSON() ([]byte, error) { +func (r AWSCloudFormationStack) MarshalJSON() ([]byte, error) { type Properties AWSCloudFormationStack return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSCloudFormationStack) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSCloudFormationStackResources() map[string]*AWSCloudF results := map[string]*AWSCloudFormationStack{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCloudFormationStack: + results[name] = &resource case *AWSCloudFormationStack: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSCloudFormationStackResources() map[string]*AWSCloudF func (t *Template) GetAWSCloudFormationStackWithName(name string) (*AWSCloudFormationStack, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCloudFormationStack: + return &resource, nil case *AWSCloudFormationStack: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-cloudformation-waitcondition.go b/cloudformation/aws-cloudformation-waitcondition.go index e1e71ecfe4..c353c23c8c 100644 --- a/cloudformation/aws-cloudformation-waitcondition.go +++ b/cloudformation/aws-cloudformation-waitcondition.go @@ -82,7 +82,7 @@ func (r *AWSCloudFormationWaitCondition) SetCreationPolicy(policy *CreationPolic // 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 *AWSCloudFormationWaitCondition) MarshalJSON() ([]byte, error) { +func (r AWSCloudFormationWaitCondition) MarshalJSON() ([]byte, error) { type Properties AWSCloudFormationWaitCondition return json.Marshal(&struct { Type string @@ -94,7 +94,7 @@ func (r *AWSCloudFormationWaitCondition) MarshalJSON() ([]byte, error) { CreationPolicy *CreationPolicy `json:"CreationPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -141,6 +141,8 @@ func (t *Template) GetAllAWSCloudFormationWaitConditionResources() map[string]*A results := map[string]*AWSCloudFormationWaitCondition{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCloudFormationWaitCondition: + results[name] = &resource case *AWSCloudFormationWaitCondition: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -169,6 +171,8 @@ func (t *Template) GetAllAWSCloudFormationWaitConditionResources() map[string]*A func (t *Template) GetAWSCloudFormationWaitConditionWithName(name string) (*AWSCloudFormationWaitCondition, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCloudFormationWaitCondition: + return &resource, nil case *AWSCloudFormationWaitCondition: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-cloudformation-waitconditionhandle.go b/cloudformation/aws-cloudformation-waitconditionhandle.go index 53e8b9a3d6..79b30e92c4 100644 --- a/cloudformation/aws-cloudformation-waitconditionhandle.go +++ b/cloudformation/aws-cloudformation-waitconditionhandle.go @@ -58,7 +58,7 @@ func (r *AWSCloudFormationWaitConditionHandle) SetDeletionPolicy(policy Deletion // 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 *AWSCloudFormationWaitConditionHandle) MarshalJSON() ([]byte, error) { +func (r AWSCloudFormationWaitConditionHandle) MarshalJSON() ([]byte, error) { type Properties AWSCloudFormationWaitConditionHandle return json.Marshal(&struct { Type string @@ -68,7 +68,7 @@ func (r *AWSCloudFormationWaitConditionHandle) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -113,6 +113,8 @@ func (t *Template) GetAllAWSCloudFormationWaitConditionHandleResources() map[str results := map[string]*AWSCloudFormationWaitConditionHandle{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCloudFormationWaitConditionHandle: + results[name] = &resource case *AWSCloudFormationWaitConditionHandle: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -141,6 +143,8 @@ func (t *Template) GetAllAWSCloudFormationWaitConditionHandleResources() map[str func (t *Template) GetAWSCloudFormationWaitConditionHandleWithName(name string) (*AWSCloudFormationWaitConditionHandle, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCloudFormationWaitConditionHandle: + return &resource, nil case *AWSCloudFormationWaitConditionHandle: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-cloudfront-cloudfrontoriginaccessidentity.go b/cloudformation/aws-cloudfront-cloudfrontoriginaccessidentity.go index de261eee6e..8114932278 100644 --- a/cloudformation/aws-cloudfront-cloudfrontoriginaccessidentity.go +++ b/cloudformation/aws-cloudfront-cloudfrontoriginaccessidentity.go @@ -63,7 +63,7 @@ func (r *AWSCloudFrontCloudFrontOriginAccessIdentity) SetDeletionPolicy(policy D // 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 *AWSCloudFrontCloudFrontOriginAccessIdentity) MarshalJSON() ([]byte, error) { +func (r AWSCloudFrontCloudFrontOriginAccessIdentity) MarshalJSON() ([]byte, error) { type Properties AWSCloudFrontCloudFrontOriginAccessIdentity return json.Marshal(&struct { Type string @@ -73,7 +73,7 @@ func (r *AWSCloudFrontCloudFrontOriginAccessIdentity) MarshalJSON() ([]byte, err DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -118,6 +118,8 @@ func (t *Template) GetAllAWSCloudFrontCloudFrontOriginAccessIdentityResources() results := map[string]*AWSCloudFrontCloudFrontOriginAccessIdentity{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCloudFrontCloudFrontOriginAccessIdentity: + results[name] = &resource case *AWSCloudFrontCloudFrontOriginAccessIdentity: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -146,6 +148,8 @@ func (t *Template) GetAllAWSCloudFrontCloudFrontOriginAccessIdentityResources() func (t *Template) GetAWSCloudFrontCloudFrontOriginAccessIdentityWithName(name string) (*AWSCloudFrontCloudFrontOriginAccessIdentity, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCloudFrontCloudFrontOriginAccessIdentity: + return &resource, nil case *AWSCloudFrontCloudFrontOriginAccessIdentity: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-cloudfront-distribution.go b/cloudformation/aws-cloudfront-distribution.go index 8e7249a9d1..e938c411c4 100644 --- a/cloudformation/aws-cloudfront-distribution.go +++ b/cloudformation/aws-cloudfront-distribution.go @@ -68,7 +68,7 @@ func (r *AWSCloudFrontDistribution) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSCloudFrontDistribution) MarshalJSON() ([]byte, error) { +func (r AWSCloudFrontDistribution) MarshalJSON() ([]byte, error) { type Properties AWSCloudFrontDistribution return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSCloudFrontDistribution) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSCloudFrontDistributionResources() map[string]*AWSClo results := map[string]*AWSCloudFrontDistribution{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCloudFrontDistribution: + results[name] = &resource case *AWSCloudFrontDistribution: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSCloudFrontDistributionResources() map[string]*AWSClo func (t *Template) GetAWSCloudFrontDistributionWithName(name string) (*AWSCloudFrontDistribution, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCloudFrontDistribution: + return &resource, nil case *AWSCloudFrontDistribution: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-cloudfront-streamingdistribution.go b/cloudformation/aws-cloudfront-streamingdistribution.go index e5e2e35890..9613027415 100644 --- a/cloudformation/aws-cloudfront-streamingdistribution.go +++ b/cloudformation/aws-cloudfront-streamingdistribution.go @@ -68,7 +68,7 @@ func (r *AWSCloudFrontStreamingDistribution) SetDeletionPolicy(policy DeletionPo // 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 *AWSCloudFrontStreamingDistribution) MarshalJSON() ([]byte, error) { +func (r AWSCloudFrontStreamingDistribution) MarshalJSON() ([]byte, error) { type Properties AWSCloudFrontStreamingDistribution return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSCloudFrontStreamingDistribution) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSCloudFrontStreamingDistributionResources() map[strin results := map[string]*AWSCloudFrontStreamingDistribution{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCloudFrontStreamingDistribution: + results[name] = &resource case *AWSCloudFrontStreamingDistribution: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSCloudFrontStreamingDistributionResources() map[strin func (t *Template) GetAWSCloudFrontStreamingDistributionWithName(name string) (*AWSCloudFrontStreamingDistribution, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCloudFrontStreamingDistribution: + return &resource, nil case *AWSCloudFrontStreamingDistribution: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-cloudtrail-trail.go b/cloudformation/aws-cloudtrail-trail.go index 15f817b455..cdbbb5fe1d 100644 --- a/cloudformation/aws-cloudtrail-trail.go +++ b/cloudformation/aws-cloudtrail-trail.go @@ -123,7 +123,7 @@ func (r *AWSCloudTrailTrail) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSCloudTrailTrail) MarshalJSON() ([]byte, error) { +func (r AWSCloudTrailTrail) MarshalJSON() ([]byte, error) { type Properties AWSCloudTrailTrail return json.Marshal(&struct { Type string @@ -133,7 +133,7 @@ func (r *AWSCloudTrailTrail) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -178,6 +178,8 @@ func (t *Template) GetAllAWSCloudTrailTrailResources() map[string]*AWSCloudTrail results := map[string]*AWSCloudTrailTrail{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCloudTrailTrail: + results[name] = &resource case *AWSCloudTrailTrail: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -206,6 +208,8 @@ func (t *Template) GetAllAWSCloudTrailTrailResources() map[string]*AWSCloudTrail func (t *Template) GetAWSCloudTrailTrailWithName(name string) (*AWSCloudTrailTrail, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCloudTrailTrail: + return &resource, nil case *AWSCloudTrailTrail: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-cloudwatch-alarm.go b/cloudformation/aws-cloudwatch-alarm.go index 43ea4bdf6c..83caa4d9ad 100644 --- a/cloudformation/aws-cloudwatch-alarm.go +++ b/cloudformation/aws-cloudwatch-alarm.go @@ -158,7 +158,7 @@ func (r *AWSCloudWatchAlarm) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSCloudWatchAlarm) MarshalJSON() ([]byte, error) { +func (r AWSCloudWatchAlarm) MarshalJSON() ([]byte, error) { type Properties AWSCloudWatchAlarm return json.Marshal(&struct { Type string @@ -168,7 +168,7 @@ func (r *AWSCloudWatchAlarm) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -213,6 +213,8 @@ func (t *Template) GetAllAWSCloudWatchAlarmResources() map[string]*AWSCloudWatch results := map[string]*AWSCloudWatchAlarm{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCloudWatchAlarm: + results[name] = &resource case *AWSCloudWatchAlarm: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -241,6 +243,8 @@ func (t *Template) GetAllAWSCloudWatchAlarmResources() map[string]*AWSCloudWatch func (t *Template) GetAWSCloudWatchAlarmWithName(name string) (*AWSCloudWatchAlarm, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCloudWatchAlarm: + return &resource, nil case *AWSCloudWatchAlarm: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-cloudwatch-dashboard.go b/cloudformation/aws-cloudwatch-dashboard.go index 5d6a06a64f..5c642dac4c 100644 --- a/cloudformation/aws-cloudwatch-dashboard.go +++ b/cloudformation/aws-cloudwatch-dashboard.go @@ -68,7 +68,7 @@ func (r *AWSCloudWatchDashboard) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSCloudWatchDashboard) MarshalJSON() ([]byte, error) { +func (r AWSCloudWatchDashboard) MarshalJSON() ([]byte, error) { type Properties AWSCloudWatchDashboard return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSCloudWatchDashboard) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSCloudWatchDashboardResources() map[string]*AWSCloudW results := map[string]*AWSCloudWatchDashboard{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCloudWatchDashboard: + results[name] = &resource case *AWSCloudWatchDashboard: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSCloudWatchDashboardResources() map[string]*AWSCloudW func (t *Template) GetAWSCloudWatchDashboardWithName(name string) (*AWSCloudWatchDashboard, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCloudWatchDashboard: + return &resource, nil case *AWSCloudWatchDashboard: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-codebuild-project.go b/cloudformation/aws-codebuild-project.go index b5da3dd322..d95f97e9ef 100644 --- a/cloudformation/aws-codebuild-project.go +++ b/cloudformation/aws-codebuild-project.go @@ -143,7 +143,7 @@ func (r *AWSCodeBuildProject) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSCodeBuildProject) MarshalJSON() ([]byte, error) { +func (r AWSCodeBuildProject) MarshalJSON() ([]byte, error) { type Properties AWSCodeBuildProject return json.Marshal(&struct { Type string @@ -153,7 +153,7 @@ func (r *AWSCodeBuildProject) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -198,6 +198,8 @@ func (t *Template) GetAllAWSCodeBuildProjectResources() map[string]*AWSCodeBuild results := map[string]*AWSCodeBuildProject{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCodeBuildProject: + results[name] = &resource case *AWSCodeBuildProject: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -226,6 +228,8 @@ func (t *Template) GetAllAWSCodeBuildProjectResources() map[string]*AWSCodeBuild func (t *Template) GetAWSCodeBuildProjectWithName(name string) (*AWSCodeBuildProject, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCodeBuildProject: + return &resource, nil case *AWSCodeBuildProject: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-codecommit-repository.go b/cloudformation/aws-codecommit-repository.go index 0eeaacbccf..207d4b609e 100644 --- a/cloudformation/aws-codecommit-repository.go +++ b/cloudformation/aws-codecommit-repository.go @@ -73,7 +73,7 @@ func (r *AWSCodeCommitRepository) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSCodeCommitRepository) MarshalJSON() ([]byte, error) { +func (r AWSCodeCommitRepository) MarshalJSON() ([]byte, error) { type Properties AWSCodeCommitRepository return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSCodeCommitRepository) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSCodeCommitRepositoryResources() map[string]*AWSCodeC results := map[string]*AWSCodeCommitRepository{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCodeCommitRepository: + results[name] = &resource case *AWSCodeCommitRepository: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSCodeCommitRepositoryResources() map[string]*AWSCodeC func (t *Template) GetAWSCodeCommitRepositoryWithName(name string) (*AWSCodeCommitRepository, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCodeCommitRepository: + return &resource, nil case *AWSCodeCommitRepository: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-codedeploy-application.go b/cloudformation/aws-codedeploy-application.go index 28b3736758..41409f37ab 100644 --- a/cloudformation/aws-codedeploy-application.go +++ b/cloudformation/aws-codedeploy-application.go @@ -68,7 +68,7 @@ func (r *AWSCodeDeployApplication) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSCodeDeployApplication) MarshalJSON() ([]byte, error) { +func (r AWSCodeDeployApplication) MarshalJSON() ([]byte, error) { type Properties AWSCodeDeployApplication return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSCodeDeployApplication) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSCodeDeployApplicationResources() map[string]*AWSCode results := map[string]*AWSCodeDeployApplication{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCodeDeployApplication: + results[name] = &resource case *AWSCodeDeployApplication: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSCodeDeployApplicationResources() map[string]*AWSCode func (t *Template) GetAWSCodeDeployApplicationWithName(name string) (*AWSCodeDeployApplication, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCodeDeployApplication: + return &resource, nil case *AWSCodeDeployApplication: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-codedeploy-deploymentconfig.go b/cloudformation/aws-codedeploy-deploymentconfig.go index 66e552f13e..0f5f7f2dcd 100644 --- a/cloudformation/aws-codedeploy-deploymentconfig.go +++ b/cloudformation/aws-codedeploy-deploymentconfig.go @@ -68,7 +68,7 @@ func (r *AWSCodeDeployDeploymentConfig) SetDeletionPolicy(policy DeletionPolicy) // 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 *AWSCodeDeployDeploymentConfig) MarshalJSON() ([]byte, error) { +func (r AWSCodeDeployDeploymentConfig) MarshalJSON() ([]byte, error) { type Properties AWSCodeDeployDeploymentConfig return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSCodeDeployDeploymentConfig) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSCodeDeployDeploymentConfigResources() map[string]*AW results := map[string]*AWSCodeDeployDeploymentConfig{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCodeDeployDeploymentConfig: + results[name] = &resource case *AWSCodeDeployDeploymentConfig: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSCodeDeployDeploymentConfigResources() map[string]*AW func (t *Template) GetAWSCodeDeployDeploymentConfigWithName(name string) (*AWSCodeDeployDeploymentConfig, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCodeDeployDeploymentConfig: + return &resource, nil case *AWSCodeDeployDeploymentConfig: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-codedeploy-deploymentgroup.go b/cloudformation/aws-codedeploy-deploymentgroup.go index e09a84077e..4a75b883db 100644 --- a/cloudformation/aws-codedeploy-deploymentgroup.go +++ b/cloudformation/aws-codedeploy-deploymentgroup.go @@ -133,7 +133,7 @@ func (r *AWSCodeDeployDeploymentGroup) SetDeletionPolicy(policy DeletionPolicy) // 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 *AWSCodeDeployDeploymentGroup) MarshalJSON() ([]byte, error) { +func (r AWSCodeDeployDeploymentGroup) MarshalJSON() ([]byte, error) { type Properties AWSCodeDeployDeploymentGroup return json.Marshal(&struct { Type string @@ -143,7 +143,7 @@ func (r *AWSCodeDeployDeploymentGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -188,6 +188,8 @@ func (t *Template) GetAllAWSCodeDeployDeploymentGroupResources() map[string]*AWS results := map[string]*AWSCodeDeployDeploymentGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCodeDeployDeploymentGroup: + results[name] = &resource case *AWSCodeDeployDeploymentGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -216,6 +218,8 @@ func (t *Template) GetAllAWSCodeDeployDeploymentGroupResources() map[string]*AWS func (t *Template) GetAWSCodeDeployDeploymentGroupWithName(name string) (*AWSCodeDeployDeploymentGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCodeDeployDeploymentGroup: + return &resource, nil case *AWSCodeDeployDeploymentGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-codepipeline-customactiontype.go b/cloudformation/aws-codepipeline-customactiontype.go index 100af9b0de..b9b14c568c 100644 --- a/cloudformation/aws-codepipeline-customactiontype.go +++ b/cloudformation/aws-codepipeline-customactiontype.go @@ -93,7 +93,7 @@ func (r *AWSCodePipelineCustomActionType) SetDeletionPolicy(policy DeletionPolic // 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 *AWSCodePipelineCustomActionType) MarshalJSON() ([]byte, error) { +func (r AWSCodePipelineCustomActionType) MarshalJSON() ([]byte, error) { type Properties AWSCodePipelineCustomActionType return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSCodePipelineCustomActionType) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSCodePipelineCustomActionTypeResources() map[string]* results := map[string]*AWSCodePipelineCustomActionType{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCodePipelineCustomActionType: + results[name] = &resource case *AWSCodePipelineCustomActionType: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSCodePipelineCustomActionTypeResources() map[string]* func (t *Template) GetAWSCodePipelineCustomActionTypeWithName(name string) (*AWSCodePipelineCustomActionType, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCodePipelineCustomActionType: + return &resource, nil case *AWSCodePipelineCustomActionType: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-codepipeline-pipeline.go b/cloudformation/aws-codepipeline-pipeline.go index 999ea1374c..3ae4e4ad73 100644 --- a/cloudformation/aws-codepipeline-pipeline.go +++ b/cloudformation/aws-codepipeline-pipeline.go @@ -93,7 +93,7 @@ func (r *AWSCodePipelinePipeline) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSCodePipelinePipeline) MarshalJSON() ([]byte, error) { +func (r AWSCodePipelinePipeline) MarshalJSON() ([]byte, error) { type Properties AWSCodePipelinePipeline return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSCodePipelinePipeline) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSCodePipelinePipelineResources() map[string]*AWSCodeP results := map[string]*AWSCodePipelinePipeline{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCodePipelinePipeline: + results[name] = &resource case *AWSCodePipelinePipeline: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSCodePipelinePipelineResources() map[string]*AWSCodeP func (t *Template) GetAWSCodePipelinePipelineWithName(name string) (*AWSCodePipelinePipeline, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCodePipelinePipeline: + return &resource, nil case *AWSCodePipelinePipeline: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-codepipeline-webhook.go b/cloudformation/aws-codepipeline-webhook.go index fe7ea7b096..292b0287fa 100644 --- a/cloudformation/aws-codepipeline-webhook.go +++ b/cloudformation/aws-codepipeline-webhook.go @@ -98,7 +98,7 @@ func (r *AWSCodePipelineWebhook) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSCodePipelineWebhook) MarshalJSON() ([]byte, error) { +func (r AWSCodePipelineWebhook) MarshalJSON() ([]byte, error) { type Properties AWSCodePipelineWebhook return json.Marshal(&struct { Type string @@ -108,7 +108,7 @@ func (r *AWSCodePipelineWebhook) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -153,6 +153,8 @@ func (t *Template) GetAllAWSCodePipelineWebhookResources() map[string]*AWSCodePi results := map[string]*AWSCodePipelineWebhook{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCodePipelineWebhook: + results[name] = &resource case *AWSCodePipelineWebhook: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -181,6 +183,8 @@ func (t *Template) GetAllAWSCodePipelineWebhookResources() map[string]*AWSCodePi func (t *Template) GetAWSCodePipelineWebhookWithName(name string) (*AWSCodePipelineWebhook, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCodePipelineWebhook: + return &resource, nil case *AWSCodePipelineWebhook: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-cognito-identitypool.go b/cloudformation/aws-cognito-identitypool.go index 443487f750..eb0f8dc17a 100644 --- a/cloudformation/aws-cognito-identitypool.go +++ b/cloudformation/aws-cognito-identitypool.go @@ -108,7 +108,7 @@ func (r *AWSCognitoIdentityPool) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSCognitoIdentityPool) MarshalJSON() ([]byte, error) { +func (r AWSCognitoIdentityPool) MarshalJSON() ([]byte, error) { type Properties AWSCognitoIdentityPool return json.Marshal(&struct { Type string @@ -118,7 +118,7 @@ func (r *AWSCognitoIdentityPool) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -163,6 +163,8 @@ func (t *Template) GetAllAWSCognitoIdentityPoolResources() map[string]*AWSCognit results := map[string]*AWSCognitoIdentityPool{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCognitoIdentityPool: + results[name] = &resource case *AWSCognitoIdentityPool: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -191,6 +193,8 @@ func (t *Template) GetAllAWSCognitoIdentityPoolResources() map[string]*AWSCognit func (t *Template) GetAWSCognitoIdentityPoolWithName(name string) (*AWSCognitoIdentityPool, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCognitoIdentityPool: + return &resource, nil case *AWSCognitoIdentityPool: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-cognito-identitypoolroleattachment.go b/cloudformation/aws-cognito-identitypoolroleattachment.go index 805976a61b..3242ee9474 100644 --- a/cloudformation/aws-cognito-identitypoolroleattachment.go +++ b/cloudformation/aws-cognito-identitypoolroleattachment.go @@ -73,7 +73,7 @@ func (r *AWSCognitoIdentityPoolRoleAttachment) SetDeletionPolicy(policy Deletion // 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 *AWSCognitoIdentityPoolRoleAttachment) MarshalJSON() ([]byte, error) { +func (r AWSCognitoIdentityPoolRoleAttachment) MarshalJSON() ([]byte, error) { type Properties AWSCognitoIdentityPoolRoleAttachment return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSCognitoIdentityPoolRoleAttachment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSCognitoIdentityPoolRoleAttachmentResources() map[str results := map[string]*AWSCognitoIdentityPoolRoleAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCognitoIdentityPoolRoleAttachment: + results[name] = &resource case *AWSCognitoIdentityPoolRoleAttachment: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSCognitoIdentityPoolRoleAttachmentResources() map[str func (t *Template) GetAWSCognitoIdentityPoolRoleAttachmentWithName(name string) (*AWSCognitoIdentityPoolRoleAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCognitoIdentityPoolRoleAttachment: + return &resource, nil case *AWSCognitoIdentityPoolRoleAttachment: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-cognito-userpool.go b/cloudformation/aws-cognito-userpool.go index d6e3996877..fe6d2081c8 100644 --- a/cloudformation/aws-cognito-userpool.go +++ b/cloudformation/aws-cognito-userpool.go @@ -143,7 +143,7 @@ func (r *AWSCognitoUserPool) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSCognitoUserPool) MarshalJSON() ([]byte, error) { +func (r AWSCognitoUserPool) MarshalJSON() ([]byte, error) { type Properties AWSCognitoUserPool return json.Marshal(&struct { Type string @@ -153,7 +153,7 @@ func (r *AWSCognitoUserPool) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -198,6 +198,8 @@ func (t *Template) GetAllAWSCognitoUserPoolResources() map[string]*AWSCognitoUse results := map[string]*AWSCognitoUserPool{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCognitoUserPool: + results[name] = &resource case *AWSCognitoUserPool: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -226,6 +228,8 @@ func (t *Template) GetAllAWSCognitoUserPoolResources() map[string]*AWSCognitoUse func (t *Template) GetAWSCognitoUserPoolWithName(name string) (*AWSCognitoUserPool, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCognitoUserPool: + return &resource, nil case *AWSCognitoUserPool: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-cognito-userpoolclient.go b/cloudformation/aws-cognito-userpoolclient.go index 87037b21dc..f728d48dc9 100644 --- a/cloudformation/aws-cognito-userpoolclient.go +++ b/cloudformation/aws-cognito-userpoolclient.go @@ -93,7 +93,7 @@ func (r *AWSCognitoUserPoolClient) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSCognitoUserPoolClient) MarshalJSON() ([]byte, error) { +func (r AWSCognitoUserPoolClient) MarshalJSON() ([]byte, error) { type Properties AWSCognitoUserPoolClient return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSCognitoUserPoolClient) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSCognitoUserPoolClientResources() map[string]*AWSCogn results := map[string]*AWSCognitoUserPoolClient{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCognitoUserPoolClient: + results[name] = &resource case *AWSCognitoUserPoolClient: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSCognitoUserPoolClientResources() map[string]*AWSCogn func (t *Template) GetAWSCognitoUserPoolClientWithName(name string) (*AWSCognitoUserPoolClient, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCognitoUserPoolClient: + return &resource, nil case *AWSCognitoUserPoolClient: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-cognito-userpoolgroup.go b/cloudformation/aws-cognito-userpoolgroup.go index 4d7e82a5aa..d29c350be8 100644 --- a/cloudformation/aws-cognito-userpoolgroup.go +++ b/cloudformation/aws-cognito-userpoolgroup.go @@ -83,7 +83,7 @@ func (r *AWSCognitoUserPoolGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSCognitoUserPoolGroup) MarshalJSON() ([]byte, error) { +func (r AWSCognitoUserPoolGroup) MarshalJSON() ([]byte, error) { type Properties AWSCognitoUserPoolGroup return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSCognitoUserPoolGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSCognitoUserPoolGroupResources() map[string]*AWSCogni results := map[string]*AWSCognitoUserPoolGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCognitoUserPoolGroup: + results[name] = &resource case *AWSCognitoUserPoolGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSCognitoUserPoolGroupResources() map[string]*AWSCogni func (t *Template) GetAWSCognitoUserPoolGroupWithName(name string) (*AWSCognitoUserPoolGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCognitoUserPoolGroup: + return &resource, nil case *AWSCognitoUserPoolGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-cognito-userpooluser.go b/cloudformation/aws-cognito-userpooluser.go index f53fb789e2..8c2623be65 100644 --- a/cloudformation/aws-cognito-userpooluser.go +++ b/cloudformation/aws-cognito-userpooluser.go @@ -93,7 +93,7 @@ func (r *AWSCognitoUserPoolUser) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSCognitoUserPoolUser) MarshalJSON() ([]byte, error) { +func (r AWSCognitoUserPoolUser) MarshalJSON() ([]byte, error) { type Properties AWSCognitoUserPoolUser return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSCognitoUserPoolUser) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSCognitoUserPoolUserResources() map[string]*AWSCognit results := map[string]*AWSCognitoUserPoolUser{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCognitoUserPoolUser: + results[name] = &resource case *AWSCognitoUserPoolUser: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSCognitoUserPoolUserResources() map[string]*AWSCognit func (t *Template) GetAWSCognitoUserPoolUserWithName(name string) (*AWSCognitoUserPoolUser, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCognitoUserPoolUser: + return &resource, nil case *AWSCognitoUserPoolUser: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-cognito-userpoolusertogroupattachment.go b/cloudformation/aws-cognito-userpoolusertogroupattachment.go index 84a9d26c51..d14c1d8a81 100644 --- a/cloudformation/aws-cognito-userpoolusertogroupattachment.go +++ b/cloudformation/aws-cognito-userpoolusertogroupattachment.go @@ -73,7 +73,7 @@ func (r *AWSCognitoUserPoolUserToGroupAttachment) SetDeletionPolicy(policy Delet // 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 *AWSCognitoUserPoolUserToGroupAttachment) MarshalJSON() ([]byte, error) { +func (r AWSCognitoUserPoolUserToGroupAttachment) MarshalJSON() ([]byte, error) { type Properties AWSCognitoUserPoolUserToGroupAttachment return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSCognitoUserPoolUserToGroupAttachment) MarshalJSON() ([]byte, error) DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSCognitoUserPoolUserToGroupAttachmentResources() map[ results := map[string]*AWSCognitoUserPoolUserToGroupAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSCognitoUserPoolUserToGroupAttachment: + results[name] = &resource case *AWSCognitoUserPoolUserToGroupAttachment: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSCognitoUserPoolUserToGroupAttachmentResources() map[ func (t *Template) GetAWSCognitoUserPoolUserToGroupAttachmentWithName(name string) (*AWSCognitoUserPoolUserToGroupAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSCognitoUserPoolUserToGroupAttachment: + return &resource, nil case *AWSCognitoUserPoolUserToGroupAttachment: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-config-aggregationauthorization.go b/cloudformation/aws-config-aggregationauthorization.go index 7318286629..4d416e221f 100644 --- a/cloudformation/aws-config-aggregationauthorization.go +++ b/cloudformation/aws-config-aggregationauthorization.go @@ -68,7 +68,7 @@ func (r *AWSConfigAggregationAuthorization) SetDeletionPolicy(policy DeletionPol // 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 *AWSConfigAggregationAuthorization) MarshalJSON() ([]byte, error) { +func (r AWSConfigAggregationAuthorization) MarshalJSON() ([]byte, error) { type Properties AWSConfigAggregationAuthorization return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSConfigAggregationAuthorization) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSConfigAggregationAuthorizationResources() map[string results := map[string]*AWSConfigAggregationAuthorization{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSConfigAggregationAuthorization: + results[name] = &resource case *AWSConfigAggregationAuthorization: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSConfigAggregationAuthorizationResources() map[string func (t *Template) GetAWSConfigAggregationAuthorizationWithName(name string) (*AWSConfigAggregationAuthorization, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSConfigAggregationAuthorization: + return &resource, nil case *AWSConfigAggregationAuthorization: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-config-configrule.go b/cloudformation/aws-config-configrule.go index 2f61e8f14b..c646db7ac1 100644 --- a/cloudformation/aws-config-configrule.go +++ b/cloudformation/aws-config-configrule.go @@ -88,7 +88,7 @@ func (r *AWSConfigConfigRule) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSConfigConfigRule) MarshalJSON() ([]byte, error) { +func (r AWSConfigConfigRule) MarshalJSON() ([]byte, error) { type Properties AWSConfigConfigRule return json.Marshal(&struct { Type string @@ -98,7 +98,7 @@ func (r *AWSConfigConfigRule) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -143,6 +143,8 @@ func (t *Template) GetAllAWSConfigConfigRuleResources() map[string]*AWSConfigCon results := map[string]*AWSConfigConfigRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSConfigConfigRule: + results[name] = &resource case *AWSConfigConfigRule: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -171,6 +173,8 @@ func (t *Template) GetAllAWSConfigConfigRuleResources() map[string]*AWSConfigCon func (t *Template) GetAWSConfigConfigRuleWithName(name string) (*AWSConfigConfigRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSConfigConfigRule: + return &resource, nil case *AWSConfigConfigRule: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-config-configurationaggregator.go b/cloudformation/aws-config-configurationaggregator.go index cb8123f746..656859126c 100644 --- a/cloudformation/aws-config-configurationaggregator.go +++ b/cloudformation/aws-config-configurationaggregator.go @@ -73,7 +73,7 @@ func (r *AWSConfigConfigurationAggregator) SetDeletionPolicy(policy DeletionPoli // 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 *AWSConfigConfigurationAggregator) MarshalJSON() ([]byte, error) { +func (r AWSConfigConfigurationAggregator) MarshalJSON() ([]byte, error) { type Properties AWSConfigConfigurationAggregator return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSConfigConfigurationAggregator) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSConfigConfigurationAggregatorResources() map[string] results := map[string]*AWSConfigConfigurationAggregator{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSConfigConfigurationAggregator: + results[name] = &resource case *AWSConfigConfigurationAggregator: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSConfigConfigurationAggregatorResources() map[string] func (t *Template) GetAWSConfigConfigurationAggregatorWithName(name string) (*AWSConfigConfigurationAggregator, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSConfigConfigurationAggregator: + return &resource, nil case *AWSConfigConfigurationAggregator: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-config-configurationrecorder.go b/cloudformation/aws-config-configurationrecorder.go index aeb472452c..b327d999be 100644 --- a/cloudformation/aws-config-configurationrecorder.go +++ b/cloudformation/aws-config-configurationrecorder.go @@ -73,7 +73,7 @@ func (r *AWSConfigConfigurationRecorder) SetDeletionPolicy(policy DeletionPolicy // 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 *AWSConfigConfigurationRecorder) MarshalJSON() ([]byte, error) { +func (r AWSConfigConfigurationRecorder) MarshalJSON() ([]byte, error) { type Properties AWSConfigConfigurationRecorder return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSConfigConfigurationRecorder) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSConfigConfigurationRecorderResources() map[string]*A results := map[string]*AWSConfigConfigurationRecorder{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSConfigConfigurationRecorder: + results[name] = &resource case *AWSConfigConfigurationRecorder: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSConfigConfigurationRecorderResources() map[string]*A func (t *Template) GetAWSConfigConfigurationRecorderWithName(name string) (*AWSConfigConfigurationRecorder, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSConfigConfigurationRecorder: + return &resource, nil case *AWSConfigConfigurationRecorder: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-config-deliverychannel.go b/cloudformation/aws-config-deliverychannel.go index 9b163b50c6..8ea417d9b6 100644 --- a/cloudformation/aws-config-deliverychannel.go +++ b/cloudformation/aws-config-deliverychannel.go @@ -83,7 +83,7 @@ func (r *AWSConfigDeliveryChannel) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSConfigDeliveryChannel) MarshalJSON() ([]byte, error) { +func (r AWSConfigDeliveryChannel) MarshalJSON() ([]byte, error) { type Properties AWSConfigDeliveryChannel return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSConfigDeliveryChannel) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSConfigDeliveryChannelResources() map[string]*AWSConf results := map[string]*AWSConfigDeliveryChannel{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSConfigDeliveryChannel: + results[name] = &resource case *AWSConfigDeliveryChannel: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSConfigDeliveryChannelResources() map[string]*AWSConf func (t *Template) GetAWSConfigDeliveryChannelWithName(name string) (*AWSConfigDeliveryChannel, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSConfigDeliveryChannel: + return &resource, nil case *AWSConfigDeliveryChannel: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-datapipeline-pipeline.go b/cloudformation/aws-datapipeline-pipeline.go index 09d30c0d73..de2eb8e5ca 100644 --- a/cloudformation/aws-datapipeline-pipeline.go +++ b/cloudformation/aws-datapipeline-pipeline.go @@ -93,7 +93,7 @@ func (r *AWSDataPipelinePipeline) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSDataPipelinePipeline) MarshalJSON() ([]byte, error) { +func (r AWSDataPipelinePipeline) MarshalJSON() ([]byte, error) { type Properties AWSDataPipelinePipeline return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSDataPipelinePipeline) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSDataPipelinePipelineResources() map[string]*AWSDataP results := map[string]*AWSDataPipelinePipeline{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSDataPipelinePipeline: + results[name] = &resource case *AWSDataPipelinePipeline: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSDataPipelinePipelineResources() map[string]*AWSDataP func (t *Template) GetAWSDataPipelinePipelineWithName(name string) (*AWSDataPipelinePipeline, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSDataPipelinePipeline: + return &resource, nil case *AWSDataPipelinePipeline: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-dax-cluster.go b/cloudformation/aws-dax-cluster.go index ced8df44a5..1275eac20c 100644 --- a/cloudformation/aws-dax-cluster.go +++ b/cloudformation/aws-dax-cluster.go @@ -123,7 +123,7 @@ func (r *AWSDAXCluster) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSDAXCluster) MarshalJSON() ([]byte, error) { +func (r AWSDAXCluster) MarshalJSON() ([]byte, error) { type Properties AWSDAXCluster return json.Marshal(&struct { Type string @@ -133,7 +133,7 @@ func (r *AWSDAXCluster) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -178,6 +178,8 @@ func (t *Template) GetAllAWSDAXClusterResources() map[string]*AWSDAXCluster { results := map[string]*AWSDAXCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSDAXCluster: + results[name] = &resource case *AWSDAXCluster: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -206,6 +208,8 @@ func (t *Template) GetAllAWSDAXClusterResources() map[string]*AWSDAXCluster { func (t *Template) GetAWSDAXClusterWithName(name string) (*AWSDAXCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSDAXCluster: + return &resource, nil case *AWSDAXCluster: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-dax-parametergroup.go b/cloudformation/aws-dax-parametergroup.go index 813a11bf6a..b8f5625d91 100644 --- a/cloudformation/aws-dax-parametergroup.go +++ b/cloudformation/aws-dax-parametergroup.go @@ -73,7 +73,7 @@ func (r *AWSDAXParameterGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSDAXParameterGroup) MarshalJSON() ([]byte, error) { +func (r AWSDAXParameterGroup) MarshalJSON() ([]byte, error) { type Properties AWSDAXParameterGroup return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSDAXParameterGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSDAXParameterGroupResources() map[string]*AWSDAXParam results := map[string]*AWSDAXParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSDAXParameterGroup: + results[name] = &resource case *AWSDAXParameterGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSDAXParameterGroupResources() map[string]*AWSDAXParam func (t *Template) GetAWSDAXParameterGroupWithName(name string) (*AWSDAXParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSDAXParameterGroup: + return &resource, nil case *AWSDAXParameterGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-dax-subnetgroup.go b/cloudformation/aws-dax-subnetgroup.go index 35c7ef65f8..bad7c5bf3b 100644 --- a/cloudformation/aws-dax-subnetgroup.go +++ b/cloudformation/aws-dax-subnetgroup.go @@ -73,7 +73,7 @@ func (r *AWSDAXSubnetGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSDAXSubnetGroup) MarshalJSON() ([]byte, error) { +func (r AWSDAXSubnetGroup) MarshalJSON() ([]byte, error) { type Properties AWSDAXSubnetGroup return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSDAXSubnetGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSDAXSubnetGroupResources() map[string]*AWSDAXSubnetGr results := map[string]*AWSDAXSubnetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSDAXSubnetGroup: + results[name] = &resource case *AWSDAXSubnetGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSDAXSubnetGroupResources() map[string]*AWSDAXSubnetGr func (t *Template) GetAWSDAXSubnetGroupWithName(name string) (*AWSDAXSubnetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSDAXSubnetGroup: + return &resource, nil case *AWSDAXSubnetGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-directoryservice-microsoftad.go b/cloudformation/aws-directoryservice-microsoftad.go index 2799506be0..612c5c576e 100644 --- a/cloudformation/aws-directoryservice-microsoftad.go +++ b/cloudformation/aws-directoryservice-microsoftad.go @@ -93,7 +93,7 @@ func (r *AWSDirectoryServiceMicrosoftAD) SetDeletionPolicy(policy DeletionPolicy // 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 *AWSDirectoryServiceMicrosoftAD) MarshalJSON() ([]byte, error) { +func (r AWSDirectoryServiceMicrosoftAD) MarshalJSON() ([]byte, error) { type Properties AWSDirectoryServiceMicrosoftAD return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSDirectoryServiceMicrosoftAD) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSDirectoryServiceMicrosoftADResources() map[string]*A results := map[string]*AWSDirectoryServiceMicrosoftAD{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSDirectoryServiceMicrosoftAD: + results[name] = &resource case *AWSDirectoryServiceMicrosoftAD: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSDirectoryServiceMicrosoftADResources() map[string]*A func (t *Template) GetAWSDirectoryServiceMicrosoftADWithName(name string) (*AWSDirectoryServiceMicrosoftAD, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSDirectoryServiceMicrosoftAD: + return &resource, nil case *AWSDirectoryServiceMicrosoftAD: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-directoryservice-simplead.go b/cloudformation/aws-directoryservice-simplead.go index e88bd2916e..cb70fe4ece 100644 --- a/cloudformation/aws-directoryservice-simplead.go +++ b/cloudformation/aws-directoryservice-simplead.go @@ -98,7 +98,7 @@ func (r *AWSDirectoryServiceSimpleAD) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSDirectoryServiceSimpleAD) MarshalJSON() ([]byte, error) { +func (r AWSDirectoryServiceSimpleAD) MarshalJSON() ([]byte, error) { type Properties AWSDirectoryServiceSimpleAD return json.Marshal(&struct { Type string @@ -108,7 +108,7 @@ func (r *AWSDirectoryServiceSimpleAD) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -153,6 +153,8 @@ func (t *Template) GetAllAWSDirectoryServiceSimpleADResources() map[string]*AWSD results := map[string]*AWSDirectoryServiceSimpleAD{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSDirectoryServiceSimpleAD: + results[name] = &resource case *AWSDirectoryServiceSimpleAD: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -181,6 +183,8 @@ func (t *Template) GetAllAWSDirectoryServiceSimpleADResources() map[string]*AWSD func (t *Template) GetAWSDirectoryServiceSimpleADWithName(name string) (*AWSDirectoryServiceSimpleAD, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSDirectoryServiceSimpleAD: + return &resource, nil case *AWSDirectoryServiceSimpleAD: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-dlm-lifecyclepolicy.go b/cloudformation/aws-dlm-lifecyclepolicy.go index 601df969c8..7e926b0abe 100644 --- a/cloudformation/aws-dlm-lifecyclepolicy.go +++ b/cloudformation/aws-dlm-lifecyclepolicy.go @@ -78,7 +78,7 @@ func (r *AWSDLMLifecyclePolicy) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSDLMLifecyclePolicy) MarshalJSON() ([]byte, error) { +func (r AWSDLMLifecyclePolicy) MarshalJSON() ([]byte, error) { type Properties AWSDLMLifecyclePolicy return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSDLMLifecyclePolicy) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSDLMLifecyclePolicyResources() map[string]*AWSDLMLife results := map[string]*AWSDLMLifecyclePolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSDLMLifecyclePolicy: + results[name] = &resource case *AWSDLMLifecyclePolicy: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSDLMLifecyclePolicyResources() map[string]*AWSDLMLife func (t *Template) GetAWSDLMLifecyclePolicyWithName(name string) (*AWSDLMLifecyclePolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSDLMLifecyclePolicy: + return &resource, nil case *AWSDLMLifecyclePolicy: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-dms-certificate.go b/cloudformation/aws-dms-certificate.go index e2ae4ca9cc..71281de46f 100644 --- a/cloudformation/aws-dms-certificate.go +++ b/cloudformation/aws-dms-certificate.go @@ -73,7 +73,7 @@ func (r *AWSDMSCertificate) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSDMSCertificate) MarshalJSON() ([]byte, error) { +func (r AWSDMSCertificate) MarshalJSON() ([]byte, error) { type Properties AWSDMSCertificate return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSDMSCertificate) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSDMSCertificateResources() map[string]*AWSDMSCertific results := map[string]*AWSDMSCertificate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSDMSCertificate: + results[name] = &resource case *AWSDMSCertificate: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSDMSCertificateResources() map[string]*AWSDMSCertific func (t *Template) GetAWSDMSCertificateWithName(name string) (*AWSDMSCertificate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSDMSCertificate: + return &resource, nil case *AWSDMSCertificate: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-dms-endpoint.go b/cloudformation/aws-dms-endpoint.go index 9912ca36d4..30c44c7bda 100644 --- a/cloudformation/aws-dms-endpoint.go +++ b/cloudformation/aws-dms-endpoint.go @@ -148,7 +148,7 @@ func (r *AWSDMSEndpoint) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSDMSEndpoint) MarshalJSON() ([]byte, error) { +func (r AWSDMSEndpoint) MarshalJSON() ([]byte, error) { type Properties AWSDMSEndpoint return json.Marshal(&struct { Type string @@ -158,7 +158,7 @@ func (r *AWSDMSEndpoint) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -203,6 +203,8 @@ func (t *Template) GetAllAWSDMSEndpointResources() map[string]*AWSDMSEndpoint { results := map[string]*AWSDMSEndpoint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSDMSEndpoint: + results[name] = &resource case *AWSDMSEndpoint: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -231,6 +233,8 @@ func (t *Template) GetAllAWSDMSEndpointResources() map[string]*AWSDMSEndpoint { func (t *Template) GetAWSDMSEndpointWithName(name string) (*AWSDMSEndpoint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSDMSEndpoint: + return &resource, nil case *AWSDMSEndpoint: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-dms-eventsubscription.go b/cloudformation/aws-dms-eventsubscription.go index 1332635a00..7c8cda85b6 100644 --- a/cloudformation/aws-dms-eventsubscription.go +++ b/cloudformation/aws-dms-eventsubscription.go @@ -93,7 +93,7 @@ func (r *AWSDMSEventSubscription) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSDMSEventSubscription) MarshalJSON() ([]byte, error) { +func (r AWSDMSEventSubscription) MarshalJSON() ([]byte, error) { type Properties AWSDMSEventSubscription return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSDMSEventSubscription) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSDMSEventSubscriptionResources() map[string]*AWSDMSEv results := map[string]*AWSDMSEventSubscription{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSDMSEventSubscription: + results[name] = &resource case *AWSDMSEventSubscription: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSDMSEventSubscriptionResources() map[string]*AWSDMSEv func (t *Template) GetAWSDMSEventSubscriptionWithName(name string) (*AWSDMSEventSubscription, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSDMSEventSubscription: + return &resource, nil case *AWSDMSEventSubscription: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-dms-replicationinstance.go b/cloudformation/aws-dms-replicationinstance.go index a5ea44634b..3b70a013e4 100644 --- a/cloudformation/aws-dms-replicationinstance.go +++ b/cloudformation/aws-dms-replicationinstance.go @@ -128,7 +128,7 @@ func (r *AWSDMSReplicationInstance) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSDMSReplicationInstance) MarshalJSON() ([]byte, error) { +func (r AWSDMSReplicationInstance) MarshalJSON() ([]byte, error) { type Properties AWSDMSReplicationInstance return json.Marshal(&struct { Type string @@ -138,7 +138,7 @@ func (r *AWSDMSReplicationInstance) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -183,6 +183,8 @@ func (t *Template) GetAllAWSDMSReplicationInstanceResources() map[string]*AWSDMS results := map[string]*AWSDMSReplicationInstance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSDMSReplicationInstance: + results[name] = &resource case *AWSDMSReplicationInstance: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -211,6 +213,8 @@ func (t *Template) GetAllAWSDMSReplicationInstanceResources() map[string]*AWSDMS func (t *Template) GetAWSDMSReplicationInstanceWithName(name string) (*AWSDMSReplicationInstance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSDMSReplicationInstance: + return &resource, nil case *AWSDMSReplicationInstance: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-dms-replicationsubnetgroup.go b/cloudformation/aws-dms-replicationsubnetgroup.go index 246a157664..78d0092633 100644 --- a/cloudformation/aws-dms-replicationsubnetgroup.go +++ b/cloudformation/aws-dms-replicationsubnetgroup.go @@ -78,7 +78,7 @@ func (r *AWSDMSReplicationSubnetGroup) SetDeletionPolicy(policy DeletionPolicy) // 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 *AWSDMSReplicationSubnetGroup) MarshalJSON() ([]byte, error) { +func (r AWSDMSReplicationSubnetGroup) MarshalJSON() ([]byte, error) { type Properties AWSDMSReplicationSubnetGroup return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSDMSReplicationSubnetGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSDMSReplicationSubnetGroupResources() map[string]*AWS results := map[string]*AWSDMSReplicationSubnetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSDMSReplicationSubnetGroup: + results[name] = &resource case *AWSDMSReplicationSubnetGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSDMSReplicationSubnetGroupResources() map[string]*AWS func (t *Template) GetAWSDMSReplicationSubnetGroupWithName(name string) (*AWSDMSReplicationSubnetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSDMSReplicationSubnetGroup: + return &resource, nil case *AWSDMSReplicationSubnetGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-dms-replicationtask.go b/cloudformation/aws-dms-replicationtask.go index 549813b50a..200e3019ce 100644 --- a/cloudformation/aws-dms-replicationtask.go +++ b/cloudformation/aws-dms-replicationtask.go @@ -103,7 +103,7 @@ func (r *AWSDMSReplicationTask) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSDMSReplicationTask) MarshalJSON() ([]byte, error) { +func (r AWSDMSReplicationTask) MarshalJSON() ([]byte, error) { type Properties AWSDMSReplicationTask return json.Marshal(&struct { Type string @@ -113,7 +113,7 @@ func (r *AWSDMSReplicationTask) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -158,6 +158,8 @@ func (t *Template) GetAllAWSDMSReplicationTaskResources() map[string]*AWSDMSRepl results := map[string]*AWSDMSReplicationTask{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSDMSReplicationTask: + results[name] = &resource case *AWSDMSReplicationTask: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -186,6 +188,8 @@ func (t *Template) GetAllAWSDMSReplicationTaskResources() map[string]*AWSDMSRepl func (t *Template) GetAWSDMSReplicationTaskWithName(name string) (*AWSDMSReplicationTask, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSDMSReplicationTask: + return &resource, nil case *AWSDMSReplicationTask: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-docdb-dbcluster.go b/cloudformation/aws-docdb-dbcluster.go index e93ed702b5..e5fcb5eafc 100644 --- a/cloudformation/aws-docdb-dbcluster.go +++ b/cloudformation/aws-docdb-dbcluster.go @@ -138,7 +138,7 @@ func (r *AWSDocDBDBCluster) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSDocDBDBCluster) MarshalJSON() ([]byte, error) { +func (r AWSDocDBDBCluster) MarshalJSON() ([]byte, error) { type Properties AWSDocDBDBCluster return json.Marshal(&struct { Type string @@ -148,7 +148,7 @@ func (r *AWSDocDBDBCluster) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -193,6 +193,8 @@ func (t *Template) GetAllAWSDocDBDBClusterResources() map[string]*AWSDocDBDBClus results := map[string]*AWSDocDBDBCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSDocDBDBCluster: + results[name] = &resource case *AWSDocDBDBCluster: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -221,6 +223,8 @@ func (t *Template) GetAllAWSDocDBDBClusterResources() map[string]*AWSDocDBDBClus func (t *Template) GetAWSDocDBDBClusterWithName(name string) (*AWSDocDBDBCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSDocDBDBCluster: + return &resource, nil case *AWSDocDBDBCluster: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-docdb-dbclusterparametergroup.go b/cloudformation/aws-docdb-dbclusterparametergroup.go index 6c5674040c..5744874672 100644 --- a/cloudformation/aws-docdb-dbclusterparametergroup.go +++ b/cloudformation/aws-docdb-dbclusterparametergroup.go @@ -83,7 +83,7 @@ func (r *AWSDocDBDBClusterParameterGroup) SetDeletionPolicy(policy DeletionPolic // 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 *AWSDocDBDBClusterParameterGroup) MarshalJSON() ([]byte, error) { +func (r AWSDocDBDBClusterParameterGroup) MarshalJSON() ([]byte, error) { type Properties AWSDocDBDBClusterParameterGroup return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSDocDBDBClusterParameterGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSDocDBDBClusterParameterGroupResources() map[string]* results := map[string]*AWSDocDBDBClusterParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSDocDBDBClusterParameterGroup: + results[name] = &resource case *AWSDocDBDBClusterParameterGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSDocDBDBClusterParameterGroupResources() map[string]* func (t *Template) GetAWSDocDBDBClusterParameterGroupWithName(name string) (*AWSDocDBDBClusterParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSDocDBDBClusterParameterGroup: + return &resource, nil case *AWSDocDBDBClusterParameterGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-docdb-dbinstance.go b/cloudformation/aws-docdb-dbinstance.go index 82e4b01ed7..0cb87de8ba 100644 --- a/cloudformation/aws-docdb-dbinstance.go +++ b/cloudformation/aws-docdb-dbinstance.go @@ -93,7 +93,7 @@ func (r *AWSDocDBDBInstance) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSDocDBDBInstance) MarshalJSON() ([]byte, error) { +func (r AWSDocDBDBInstance) MarshalJSON() ([]byte, error) { type Properties AWSDocDBDBInstance return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSDocDBDBInstance) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSDocDBDBInstanceResources() map[string]*AWSDocDBDBIns results := map[string]*AWSDocDBDBInstance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSDocDBDBInstance: + results[name] = &resource case *AWSDocDBDBInstance: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSDocDBDBInstanceResources() map[string]*AWSDocDBDBIns func (t *Template) GetAWSDocDBDBInstanceWithName(name string) (*AWSDocDBDBInstance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSDocDBDBInstance: + return &resource, nil case *AWSDocDBDBInstance: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-docdb-dbsubnetgroup.go b/cloudformation/aws-docdb-dbsubnetgroup.go index 8777adf658..dd089496f4 100644 --- a/cloudformation/aws-docdb-dbsubnetgroup.go +++ b/cloudformation/aws-docdb-dbsubnetgroup.go @@ -78,7 +78,7 @@ func (r *AWSDocDBDBSubnetGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSDocDBDBSubnetGroup) MarshalJSON() ([]byte, error) { +func (r AWSDocDBDBSubnetGroup) MarshalJSON() ([]byte, error) { type Properties AWSDocDBDBSubnetGroup return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSDocDBDBSubnetGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSDocDBDBSubnetGroupResources() map[string]*AWSDocDBDB results := map[string]*AWSDocDBDBSubnetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSDocDBDBSubnetGroup: + results[name] = &resource case *AWSDocDBDBSubnetGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSDocDBDBSubnetGroupResources() map[string]*AWSDocDBDB func (t *Template) GetAWSDocDBDBSubnetGroupWithName(name string) (*AWSDocDBDBSubnetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSDocDBDBSubnetGroup: + return &resource, nil case *AWSDocDBDBSubnetGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-dynamodb-table.go b/cloudformation/aws-dynamodb-table.go index dcc81e5746..eacb1b6d8a 100644 --- a/cloudformation/aws-dynamodb-table.go +++ b/cloudformation/aws-dynamodb-table.go @@ -118,7 +118,7 @@ func (r *AWSDynamoDBTable) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSDynamoDBTable) MarshalJSON() ([]byte, error) { +func (r AWSDynamoDBTable) MarshalJSON() ([]byte, error) { type Properties AWSDynamoDBTable return json.Marshal(&struct { Type string @@ -128,7 +128,7 @@ func (r *AWSDynamoDBTable) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -173,6 +173,8 @@ func (t *Template) GetAllAWSDynamoDBTableResources() map[string]*AWSDynamoDBTabl results := map[string]*AWSDynamoDBTable{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSDynamoDBTable: + results[name] = &resource case *AWSDynamoDBTable: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -201,6 +203,8 @@ func (t *Template) GetAllAWSDynamoDBTableResources() map[string]*AWSDynamoDBTabl func (t *Template) GetAWSDynamoDBTableWithName(name string) (*AWSDynamoDBTable, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSDynamoDBTable: + return &resource, nil case *AWSDynamoDBTable: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-customergateway.go b/cloudformation/aws-ec2-customergateway.go index 3e4307b497..3eee1c13a8 100644 --- a/cloudformation/aws-ec2-customergateway.go +++ b/cloudformation/aws-ec2-customergateway.go @@ -78,7 +78,7 @@ func (r *AWSEC2CustomerGateway) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2CustomerGateway) MarshalJSON() ([]byte, error) { +func (r AWSEC2CustomerGateway) MarshalJSON() ([]byte, error) { type Properties AWSEC2CustomerGateway return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSEC2CustomerGateway) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSEC2CustomerGatewayResources() map[string]*AWSEC2Cust results := map[string]*AWSEC2CustomerGateway{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2CustomerGateway: + results[name] = &resource case *AWSEC2CustomerGateway: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSEC2CustomerGatewayResources() map[string]*AWSEC2Cust func (t *Template) GetAWSEC2CustomerGatewayWithName(name string) (*AWSEC2CustomerGateway, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2CustomerGateway: + return &resource, nil case *AWSEC2CustomerGateway: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-dhcpoptions.go b/cloudformation/aws-ec2-dhcpoptions.go index a7aaafe9f3..0b5ae20b22 100644 --- a/cloudformation/aws-ec2-dhcpoptions.go +++ b/cloudformation/aws-ec2-dhcpoptions.go @@ -88,7 +88,7 @@ func (r *AWSEC2DHCPOptions) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2DHCPOptions) MarshalJSON() ([]byte, error) { +func (r AWSEC2DHCPOptions) MarshalJSON() ([]byte, error) { type Properties AWSEC2DHCPOptions return json.Marshal(&struct { Type string @@ -98,7 +98,7 @@ func (r *AWSEC2DHCPOptions) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -143,6 +143,8 @@ func (t *Template) GetAllAWSEC2DHCPOptionsResources() map[string]*AWSEC2DHCPOpti results := map[string]*AWSEC2DHCPOptions{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2DHCPOptions: + results[name] = &resource case *AWSEC2DHCPOptions: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -171,6 +173,8 @@ func (t *Template) GetAllAWSEC2DHCPOptionsResources() map[string]*AWSEC2DHCPOpti func (t *Template) GetAWSEC2DHCPOptionsWithName(name string) (*AWSEC2DHCPOptions, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2DHCPOptions: + return &resource, nil case *AWSEC2DHCPOptions: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-ec2fleet.go b/cloudformation/aws-ec2-ec2fleet.go index 2c40d26390..697234a196 100644 --- a/cloudformation/aws-ec2-ec2fleet.go +++ b/cloudformation/aws-ec2-ec2fleet.go @@ -113,7 +113,7 @@ func (r *AWSEC2EC2Fleet) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2EC2Fleet) MarshalJSON() ([]byte, error) { +func (r AWSEC2EC2Fleet) MarshalJSON() ([]byte, error) { type Properties AWSEC2EC2Fleet return json.Marshal(&struct { Type string @@ -123,7 +123,7 @@ func (r *AWSEC2EC2Fleet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -168,6 +168,8 @@ func (t *Template) GetAllAWSEC2EC2FleetResources() map[string]*AWSEC2EC2Fleet { results := map[string]*AWSEC2EC2Fleet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2EC2Fleet: + results[name] = &resource case *AWSEC2EC2Fleet: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -196,6 +198,8 @@ func (t *Template) GetAllAWSEC2EC2FleetResources() map[string]*AWSEC2EC2Fleet { func (t *Template) GetAWSEC2EC2FleetWithName(name string) (*AWSEC2EC2Fleet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2EC2Fleet: + return &resource, nil case *AWSEC2EC2Fleet: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-egressonlyinternetgateway.go b/cloudformation/aws-ec2-egressonlyinternetgateway.go index 81a478d108..c69266137f 100644 --- a/cloudformation/aws-ec2-egressonlyinternetgateway.go +++ b/cloudformation/aws-ec2-egressonlyinternetgateway.go @@ -63,7 +63,7 @@ func (r *AWSEC2EgressOnlyInternetGateway) SetDeletionPolicy(policy DeletionPolic // 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 *AWSEC2EgressOnlyInternetGateway) MarshalJSON() ([]byte, error) { +func (r AWSEC2EgressOnlyInternetGateway) MarshalJSON() ([]byte, error) { type Properties AWSEC2EgressOnlyInternetGateway return json.Marshal(&struct { Type string @@ -73,7 +73,7 @@ func (r *AWSEC2EgressOnlyInternetGateway) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -118,6 +118,8 @@ func (t *Template) GetAllAWSEC2EgressOnlyInternetGatewayResources() map[string]* results := map[string]*AWSEC2EgressOnlyInternetGateway{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2EgressOnlyInternetGateway: + results[name] = &resource case *AWSEC2EgressOnlyInternetGateway: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -146,6 +148,8 @@ func (t *Template) GetAllAWSEC2EgressOnlyInternetGatewayResources() map[string]* func (t *Template) GetAWSEC2EgressOnlyInternetGatewayWithName(name string) (*AWSEC2EgressOnlyInternetGateway, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2EgressOnlyInternetGateway: + return &resource, nil case *AWSEC2EgressOnlyInternetGateway: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-eip.go b/cloudformation/aws-ec2-eip.go index 4f0a6dd67b..021d5fe229 100644 --- a/cloudformation/aws-ec2-eip.go +++ b/cloudformation/aws-ec2-eip.go @@ -73,7 +73,7 @@ func (r *AWSEC2EIP) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2EIP) MarshalJSON() ([]byte, error) { +func (r AWSEC2EIP) MarshalJSON() ([]byte, error) { type Properties AWSEC2EIP return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSEC2EIP) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSEC2EIPResources() map[string]*AWSEC2EIP { results := map[string]*AWSEC2EIP{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2EIP: + results[name] = &resource case *AWSEC2EIP: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSEC2EIPResources() map[string]*AWSEC2EIP { func (t *Template) GetAWSEC2EIPWithName(name string) (*AWSEC2EIP, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2EIP: + return &resource, nil case *AWSEC2EIP: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-eipassociation.go b/cloudformation/aws-ec2-eipassociation.go index 2fc9157467..7c6a76a47f 100644 --- a/cloudformation/aws-ec2-eipassociation.go +++ b/cloudformation/aws-ec2-eipassociation.go @@ -83,7 +83,7 @@ func (r *AWSEC2EIPAssociation) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2EIPAssociation) MarshalJSON() ([]byte, error) { +func (r AWSEC2EIPAssociation) MarshalJSON() ([]byte, error) { type Properties AWSEC2EIPAssociation return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSEC2EIPAssociation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSEC2EIPAssociationResources() map[string]*AWSEC2EIPAs results := map[string]*AWSEC2EIPAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2EIPAssociation: + results[name] = &resource case *AWSEC2EIPAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSEC2EIPAssociationResources() map[string]*AWSEC2EIPAs func (t *Template) GetAWSEC2EIPAssociationWithName(name string) (*AWSEC2EIPAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2EIPAssociation: + return &resource, nil case *AWSEC2EIPAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-flowlog.go b/cloudformation/aws-ec2-flowlog.go index 90ca45bce0..123fdb3edf 100644 --- a/cloudformation/aws-ec2-flowlog.go +++ b/cloudformation/aws-ec2-flowlog.go @@ -93,7 +93,7 @@ func (r *AWSEC2FlowLog) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2FlowLog) MarshalJSON() ([]byte, error) { +func (r AWSEC2FlowLog) MarshalJSON() ([]byte, error) { type Properties AWSEC2FlowLog return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSEC2FlowLog) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSEC2FlowLogResources() map[string]*AWSEC2FlowLog { results := map[string]*AWSEC2FlowLog{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2FlowLog: + results[name] = &resource case *AWSEC2FlowLog: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSEC2FlowLogResources() map[string]*AWSEC2FlowLog { func (t *Template) GetAWSEC2FlowLogWithName(name string) (*AWSEC2FlowLog, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2FlowLog: + return &resource, nil case *AWSEC2FlowLog: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-host.go b/cloudformation/aws-ec2-host.go index 3292b523cf..bda0183ab2 100644 --- a/cloudformation/aws-ec2-host.go +++ b/cloudformation/aws-ec2-host.go @@ -73,7 +73,7 @@ func (r *AWSEC2Host) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2Host) MarshalJSON() ([]byte, error) { +func (r AWSEC2Host) MarshalJSON() ([]byte, error) { type Properties AWSEC2Host return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSEC2Host) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSEC2HostResources() map[string]*AWSEC2Host { results := map[string]*AWSEC2Host{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2Host: + results[name] = &resource case *AWSEC2Host: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSEC2HostResources() map[string]*AWSEC2Host { func (t *Template) GetAWSEC2HostWithName(name string) (*AWSEC2Host, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2Host: + return &resource, nil case *AWSEC2Host: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-instance.go b/cloudformation/aws-ec2-instance.go index db1dc74091..581c1126c6 100644 --- a/cloudformation/aws-ec2-instance.go +++ b/cloudformation/aws-ec2-instance.go @@ -237,7 +237,7 @@ func (r *AWSEC2Instance) SetCreationPolicy(policy *CreationPolicy) { // 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 *AWSEC2Instance) MarshalJSON() ([]byte, error) { +func (r AWSEC2Instance) MarshalJSON() ([]byte, error) { type Properties AWSEC2Instance return json.Marshal(&struct { Type string @@ -249,7 +249,7 @@ func (r *AWSEC2Instance) MarshalJSON() ([]byte, error) { CreationPolicy *CreationPolicy `json:"CreationPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -296,6 +296,8 @@ func (t *Template) GetAllAWSEC2InstanceResources() map[string]*AWSEC2Instance { results := map[string]*AWSEC2Instance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2Instance: + results[name] = &resource case *AWSEC2Instance: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -324,6 +326,8 @@ func (t *Template) GetAllAWSEC2InstanceResources() map[string]*AWSEC2Instance { func (t *Template) GetAWSEC2InstanceWithName(name string) (*AWSEC2Instance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2Instance: + return &resource, nil case *AWSEC2Instance: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-internetgateway.go b/cloudformation/aws-ec2-internetgateway.go index 046605f9f1..98f17b2738 100644 --- a/cloudformation/aws-ec2-internetgateway.go +++ b/cloudformation/aws-ec2-internetgateway.go @@ -63,7 +63,7 @@ func (r *AWSEC2InternetGateway) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2InternetGateway) MarshalJSON() ([]byte, error) { +func (r AWSEC2InternetGateway) MarshalJSON() ([]byte, error) { type Properties AWSEC2InternetGateway return json.Marshal(&struct { Type string @@ -73,7 +73,7 @@ func (r *AWSEC2InternetGateway) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -118,6 +118,8 @@ func (t *Template) GetAllAWSEC2InternetGatewayResources() map[string]*AWSEC2Inte results := map[string]*AWSEC2InternetGateway{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2InternetGateway: + results[name] = &resource case *AWSEC2InternetGateway: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -146,6 +148,8 @@ func (t *Template) GetAllAWSEC2InternetGatewayResources() map[string]*AWSEC2Inte func (t *Template) GetAWSEC2InternetGatewayWithName(name string) (*AWSEC2InternetGateway, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2InternetGateway: + return &resource, nil case *AWSEC2InternetGateway: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-launchtemplate.go b/cloudformation/aws-ec2-launchtemplate.go index ef3d36f2ed..223fd791d4 100644 --- a/cloudformation/aws-ec2-launchtemplate.go +++ b/cloudformation/aws-ec2-launchtemplate.go @@ -68,7 +68,7 @@ func (r *AWSEC2LaunchTemplate) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2LaunchTemplate) MarshalJSON() ([]byte, error) { +func (r AWSEC2LaunchTemplate) MarshalJSON() ([]byte, error) { type Properties AWSEC2LaunchTemplate return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSEC2LaunchTemplate) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSEC2LaunchTemplateResources() map[string]*AWSEC2Launc results := map[string]*AWSEC2LaunchTemplate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2LaunchTemplate: + results[name] = &resource case *AWSEC2LaunchTemplate: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSEC2LaunchTemplateResources() map[string]*AWSEC2Launc func (t *Template) GetAWSEC2LaunchTemplateWithName(name string) (*AWSEC2LaunchTemplate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2LaunchTemplate: + return &resource, nil case *AWSEC2LaunchTemplate: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-natgateway.go b/cloudformation/aws-ec2-natgateway.go index fc5ed49714..1e5e38a9e2 100644 --- a/cloudformation/aws-ec2-natgateway.go +++ b/cloudformation/aws-ec2-natgateway.go @@ -73,7 +73,7 @@ func (r *AWSEC2NatGateway) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2NatGateway) MarshalJSON() ([]byte, error) { +func (r AWSEC2NatGateway) MarshalJSON() ([]byte, error) { type Properties AWSEC2NatGateway return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSEC2NatGateway) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSEC2NatGatewayResources() map[string]*AWSEC2NatGatewa results := map[string]*AWSEC2NatGateway{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2NatGateway: + results[name] = &resource case *AWSEC2NatGateway: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSEC2NatGatewayResources() map[string]*AWSEC2NatGatewa func (t *Template) GetAWSEC2NatGatewayWithName(name string) (*AWSEC2NatGateway, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2NatGateway: + return &resource, nil case *AWSEC2NatGateway: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-networkacl.go b/cloudformation/aws-ec2-networkacl.go index a65b4e5bf4..4058d21092 100644 --- a/cloudformation/aws-ec2-networkacl.go +++ b/cloudformation/aws-ec2-networkacl.go @@ -68,7 +68,7 @@ func (r *AWSEC2NetworkAcl) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2NetworkAcl) MarshalJSON() ([]byte, error) { +func (r AWSEC2NetworkAcl) MarshalJSON() ([]byte, error) { type Properties AWSEC2NetworkAcl return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSEC2NetworkAcl) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSEC2NetworkAclResources() map[string]*AWSEC2NetworkAc results := map[string]*AWSEC2NetworkAcl{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2NetworkAcl: + results[name] = &resource case *AWSEC2NetworkAcl: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSEC2NetworkAclResources() map[string]*AWSEC2NetworkAc func (t *Template) GetAWSEC2NetworkAclWithName(name string) (*AWSEC2NetworkAcl, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2NetworkAcl: + return &resource, nil case *AWSEC2NetworkAcl: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-networkaclentry.go b/cloudformation/aws-ec2-networkaclentry.go index 8d9c1dc1b2..07a71e7444 100644 --- a/cloudformation/aws-ec2-networkaclentry.go +++ b/cloudformation/aws-ec2-networkaclentry.go @@ -103,7 +103,7 @@ func (r *AWSEC2NetworkAclEntry) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2NetworkAclEntry) MarshalJSON() ([]byte, error) { +func (r AWSEC2NetworkAclEntry) MarshalJSON() ([]byte, error) { type Properties AWSEC2NetworkAclEntry return json.Marshal(&struct { Type string @@ -113,7 +113,7 @@ func (r *AWSEC2NetworkAclEntry) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -158,6 +158,8 @@ func (t *Template) GetAllAWSEC2NetworkAclEntryResources() map[string]*AWSEC2Netw results := map[string]*AWSEC2NetworkAclEntry{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2NetworkAclEntry: + results[name] = &resource case *AWSEC2NetworkAclEntry: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -186,6 +188,8 @@ func (t *Template) GetAllAWSEC2NetworkAclEntryResources() map[string]*AWSEC2Netw func (t *Template) GetAWSEC2NetworkAclEntryWithName(name string) (*AWSEC2NetworkAclEntry, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2NetworkAclEntry: + return &resource, nil case *AWSEC2NetworkAclEntry: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-networkinterface.go b/cloudformation/aws-ec2-networkinterface.go index f4d68a2dbb..c58e3ec212 100644 --- a/cloudformation/aws-ec2-networkinterface.go +++ b/cloudformation/aws-ec2-networkinterface.go @@ -113,7 +113,7 @@ func (r *AWSEC2NetworkInterface) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2NetworkInterface) MarshalJSON() ([]byte, error) { +func (r AWSEC2NetworkInterface) MarshalJSON() ([]byte, error) { type Properties AWSEC2NetworkInterface return json.Marshal(&struct { Type string @@ -123,7 +123,7 @@ func (r *AWSEC2NetworkInterface) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -168,6 +168,8 @@ func (t *Template) GetAllAWSEC2NetworkInterfaceResources() map[string]*AWSEC2Net results := map[string]*AWSEC2NetworkInterface{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2NetworkInterface: + results[name] = &resource case *AWSEC2NetworkInterface: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -196,6 +198,8 @@ func (t *Template) GetAllAWSEC2NetworkInterfaceResources() map[string]*AWSEC2Net func (t *Template) GetAWSEC2NetworkInterfaceWithName(name string) (*AWSEC2NetworkInterface, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2NetworkInterface: + return &resource, nil case *AWSEC2NetworkInterface: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-networkinterfaceattachment.go b/cloudformation/aws-ec2-networkinterfaceattachment.go index bda06ab790..cadefee84e 100644 --- a/cloudformation/aws-ec2-networkinterfaceattachment.go +++ b/cloudformation/aws-ec2-networkinterfaceattachment.go @@ -78,7 +78,7 @@ func (r *AWSEC2NetworkInterfaceAttachment) SetDeletionPolicy(policy DeletionPoli // 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 *AWSEC2NetworkInterfaceAttachment) MarshalJSON() ([]byte, error) { +func (r AWSEC2NetworkInterfaceAttachment) MarshalJSON() ([]byte, error) { type Properties AWSEC2NetworkInterfaceAttachment return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSEC2NetworkInterfaceAttachment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSEC2NetworkInterfaceAttachmentResources() map[string] results := map[string]*AWSEC2NetworkInterfaceAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2NetworkInterfaceAttachment: + results[name] = &resource case *AWSEC2NetworkInterfaceAttachment: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSEC2NetworkInterfaceAttachmentResources() map[string] func (t *Template) GetAWSEC2NetworkInterfaceAttachmentWithName(name string) (*AWSEC2NetworkInterfaceAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2NetworkInterfaceAttachment: + return &resource, nil case *AWSEC2NetworkInterfaceAttachment: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-networkinterfacepermission.go b/cloudformation/aws-ec2-networkinterfacepermission.go index 6250f01772..f03422b467 100644 --- a/cloudformation/aws-ec2-networkinterfacepermission.go +++ b/cloudformation/aws-ec2-networkinterfacepermission.go @@ -73,7 +73,7 @@ func (r *AWSEC2NetworkInterfacePermission) SetDeletionPolicy(policy DeletionPoli // 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 *AWSEC2NetworkInterfacePermission) MarshalJSON() ([]byte, error) { +func (r AWSEC2NetworkInterfacePermission) MarshalJSON() ([]byte, error) { type Properties AWSEC2NetworkInterfacePermission return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSEC2NetworkInterfacePermission) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSEC2NetworkInterfacePermissionResources() map[string] results := map[string]*AWSEC2NetworkInterfacePermission{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2NetworkInterfacePermission: + results[name] = &resource case *AWSEC2NetworkInterfacePermission: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSEC2NetworkInterfacePermissionResources() map[string] func (t *Template) GetAWSEC2NetworkInterfacePermissionWithName(name string) (*AWSEC2NetworkInterfacePermission, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2NetworkInterfacePermission: + return &resource, nil case *AWSEC2NetworkInterfacePermission: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-placementgroup.go b/cloudformation/aws-ec2-placementgroup.go index e98c8311e4..30b88b5e42 100644 --- a/cloudformation/aws-ec2-placementgroup.go +++ b/cloudformation/aws-ec2-placementgroup.go @@ -63,7 +63,7 @@ func (r *AWSEC2PlacementGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2PlacementGroup) MarshalJSON() ([]byte, error) { +func (r AWSEC2PlacementGroup) MarshalJSON() ([]byte, error) { type Properties AWSEC2PlacementGroup return json.Marshal(&struct { Type string @@ -73,7 +73,7 @@ func (r *AWSEC2PlacementGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -118,6 +118,8 @@ func (t *Template) GetAllAWSEC2PlacementGroupResources() map[string]*AWSEC2Place results := map[string]*AWSEC2PlacementGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2PlacementGroup: + results[name] = &resource case *AWSEC2PlacementGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -146,6 +148,8 @@ func (t *Template) GetAllAWSEC2PlacementGroupResources() map[string]*AWSEC2Place func (t *Template) GetAWSEC2PlacementGroupWithName(name string) (*AWSEC2PlacementGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2PlacementGroup: + return &resource, nil case *AWSEC2PlacementGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-route.go b/cloudformation/aws-ec2-route.go index 88a84da938..d9f93ede94 100644 --- a/cloudformation/aws-ec2-route.go +++ b/cloudformation/aws-ec2-route.go @@ -103,7 +103,7 @@ func (r *AWSEC2Route) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2Route) MarshalJSON() ([]byte, error) { +func (r AWSEC2Route) MarshalJSON() ([]byte, error) { type Properties AWSEC2Route return json.Marshal(&struct { Type string @@ -113,7 +113,7 @@ func (r *AWSEC2Route) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -158,6 +158,8 @@ func (t *Template) GetAllAWSEC2RouteResources() map[string]*AWSEC2Route { results := map[string]*AWSEC2Route{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2Route: + results[name] = &resource case *AWSEC2Route: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -186,6 +188,8 @@ func (t *Template) GetAllAWSEC2RouteResources() map[string]*AWSEC2Route { func (t *Template) GetAWSEC2RouteWithName(name string) (*AWSEC2Route, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2Route: + return &resource, nil case *AWSEC2Route: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-routetable.go b/cloudformation/aws-ec2-routetable.go index 1529bfef7d..56efd1510d 100644 --- a/cloudformation/aws-ec2-routetable.go +++ b/cloudformation/aws-ec2-routetable.go @@ -68,7 +68,7 @@ func (r *AWSEC2RouteTable) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2RouteTable) MarshalJSON() ([]byte, error) { +func (r AWSEC2RouteTable) MarshalJSON() ([]byte, error) { type Properties AWSEC2RouteTable return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSEC2RouteTable) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSEC2RouteTableResources() map[string]*AWSEC2RouteTabl results := map[string]*AWSEC2RouteTable{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2RouteTable: + results[name] = &resource case *AWSEC2RouteTable: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSEC2RouteTableResources() map[string]*AWSEC2RouteTabl func (t *Template) GetAWSEC2RouteTableWithName(name string) (*AWSEC2RouteTable, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2RouteTable: + return &resource, nil case *AWSEC2RouteTable: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-securitygroup.go b/cloudformation/aws-ec2-securitygroup.go index 46cf05a3b8..3c33b7e8ae 100644 --- a/cloudformation/aws-ec2-securitygroup.go +++ b/cloudformation/aws-ec2-securitygroup.go @@ -88,7 +88,7 @@ func (r *AWSEC2SecurityGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2SecurityGroup) MarshalJSON() ([]byte, error) { +func (r AWSEC2SecurityGroup) MarshalJSON() ([]byte, error) { type Properties AWSEC2SecurityGroup return json.Marshal(&struct { Type string @@ -98,7 +98,7 @@ func (r *AWSEC2SecurityGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -143,6 +143,8 @@ func (t *Template) GetAllAWSEC2SecurityGroupResources() map[string]*AWSEC2Securi results := map[string]*AWSEC2SecurityGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2SecurityGroup: + results[name] = &resource case *AWSEC2SecurityGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -171,6 +173,8 @@ func (t *Template) GetAllAWSEC2SecurityGroupResources() map[string]*AWSEC2Securi func (t *Template) GetAWSEC2SecurityGroupWithName(name string) (*AWSEC2SecurityGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2SecurityGroup: + return &resource, nil case *AWSEC2SecurityGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-securitygroupegress.go b/cloudformation/aws-ec2-securitygroupegress.go index 48047030ef..f90063e55f 100644 --- a/cloudformation/aws-ec2-securitygroupegress.go +++ b/cloudformation/aws-ec2-securitygroupegress.go @@ -103,7 +103,7 @@ func (r *AWSEC2SecurityGroupEgress) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2SecurityGroupEgress) MarshalJSON() ([]byte, error) { +func (r AWSEC2SecurityGroupEgress) MarshalJSON() ([]byte, error) { type Properties AWSEC2SecurityGroupEgress return json.Marshal(&struct { Type string @@ -113,7 +113,7 @@ func (r *AWSEC2SecurityGroupEgress) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -158,6 +158,8 @@ func (t *Template) GetAllAWSEC2SecurityGroupEgressResources() map[string]*AWSEC2 results := map[string]*AWSEC2SecurityGroupEgress{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2SecurityGroupEgress: + results[name] = &resource case *AWSEC2SecurityGroupEgress: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -186,6 +188,8 @@ func (t *Template) GetAllAWSEC2SecurityGroupEgressResources() map[string]*AWSEC2 func (t *Template) GetAWSEC2SecurityGroupEgressWithName(name string) (*AWSEC2SecurityGroupEgress, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2SecurityGroupEgress: + return &resource, nil case *AWSEC2SecurityGroupEgress: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-securitygroupingress.go b/cloudformation/aws-ec2-securitygroupingress.go index a2a458cac6..f0756e1d29 100644 --- a/cloudformation/aws-ec2-securitygroupingress.go +++ b/cloudformation/aws-ec2-securitygroupingress.go @@ -118,7 +118,7 @@ func (r *AWSEC2SecurityGroupIngress) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2SecurityGroupIngress) MarshalJSON() ([]byte, error) { +func (r AWSEC2SecurityGroupIngress) MarshalJSON() ([]byte, error) { type Properties AWSEC2SecurityGroupIngress return json.Marshal(&struct { Type string @@ -128,7 +128,7 @@ func (r *AWSEC2SecurityGroupIngress) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -173,6 +173,8 @@ func (t *Template) GetAllAWSEC2SecurityGroupIngressResources() map[string]*AWSEC results := map[string]*AWSEC2SecurityGroupIngress{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2SecurityGroupIngress: + results[name] = &resource case *AWSEC2SecurityGroupIngress: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -201,6 +203,8 @@ func (t *Template) GetAllAWSEC2SecurityGroupIngressResources() map[string]*AWSEC func (t *Template) GetAWSEC2SecurityGroupIngressWithName(name string) (*AWSEC2SecurityGroupIngress, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2SecurityGroupIngress: + return &resource, nil case *AWSEC2SecurityGroupIngress: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-spotfleet.go b/cloudformation/aws-ec2-spotfleet.go index 699109e9c2..57ca86d0ba 100644 --- a/cloudformation/aws-ec2-spotfleet.go +++ b/cloudformation/aws-ec2-spotfleet.go @@ -63,7 +63,7 @@ func (r *AWSEC2SpotFleet) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2SpotFleet) MarshalJSON() ([]byte, error) { +func (r AWSEC2SpotFleet) MarshalJSON() ([]byte, error) { type Properties AWSEC2SpotFleet return json.Marshal(&struct { Type string @@ -73,7 +73,7 @@ func (r *AWSEC2SpotFleet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -118,6 +118,8 @@ func (t *Template) GetAllAWSEC2SpotFleetResources() map[string]*AWSEC2SpotFleet results := map[string]*AWSEC2SpotFleet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2SpotFleet: + results[name] = &resource case *AWSEC2SpotFleet: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -146,6 +148,8 @@ func (t *Template) GetAllAWSEC2SpotFleetResources() map[string]*AWSEC2SpotFleet func (t *Template) GetAWSEC2SpotFleetWithName(name string) (*AWSEC2SpotFleet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2SpotFleet: + return &resource, nil case *AWSEC2SpotFleet: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-subnet.go b/cloudformation/aws-ec2-subnet.go index f230a77121..638b6fa986 100644 --- a/cloudformation/aws-ec2-subnet.go +++ b/cloudformation/aws-ec2-subnet.go @@ -93,7 +93,7 @@ func (r *AWSEC2Subnet) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2Subnet) MarshalJSON() ([]byte, error) { +func (r AWSEC2Subnet) MarshalJSON() ([]byte, error) { type Properties AWSEC2Subnet return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSEC2Subnet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSEC2SubnetResources() map[string]*AWSEC2Subnet { results := map[string]*AWSEC2Subnet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2Subnet: + results[name] = &resource case *AWSEC2Subnet: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSEC2SubnetResources() map[string]*AWSEC2Subnet { func (t *Template) GetAWSEC2SubnetWithName(name string) (*AWSEC2Subnet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2Subnet: + return &resource, nil case *AWSEC2Subnet: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-subnetcidrblock.go b/cloudformation/aws-ec2-subnetcidrblock.go index 702cb3a982..40da646dcb 100644 --- a/cloudformation/aws-ec2-subnetcidrblock.go +++ b/cloudformation/aws-ec2-subnetcidrblock.go @@ -68,7 +68,7 @@ func (r *AWSEC2SubnetCidrBlock) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2SubnetCidrBlock) MarshalJSON() ([]byte, error) { +func (r AWSEC2SubnetCidrBlock) MarshalJSON() ([]byte, error) { type Properties AWSEC2SubnetCidrBlock return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSEC2SubnetCidrBlock) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSEC2SubnetCidrBlockResources() map[string]*AWSEC2Subn results := map[string]*AWSEC2SubnetCidrBlock{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2SubnetCidrBlock: + results[name] = &resource case *AWSEC2SubnetCidrBlock: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSEC2SubnetCidrBlockResources() map[string]*AWSEC2Subn func (t *Template) GetAWSEC2SubnetCidrBlockWithName(name string) (*AWSEC2SubnetCidrBlock, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2SubnetCidrBlock: + return &resource, nil case *AWSEC2SubnetCidrBlock: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-subnetnetworkaclassociation.go b/cloudformation/aws-ec2-subnetnetworkaclassociation.go index 806f711ec0..9ba280b40f 100644 --- a/cloudformation/aws-ec2-subnetnetworkaclassociation.go +++ b/cloudformation/aws-ec2-subnetnetworkaclassociation.go @@ -68,7 +68,7 @@ func (r *AWSEC2SubnetNetworkAclAssociation) SetDeletionPolicy(policy DeletionPol // 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 *AWSEC2SubnetNetworkAclAssociation) MarshalJSON() ([]byte, error) { +func (r AWSEC2SubnetNetworkAclAssociation) MarshalJSON() ([]byte, error) { type Properties AWSEC2SubnetNetworkAclAssociation return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSEC2SubnetNetworkAclAssociation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSEC2SubnetNetworkAclAssociationResources() map[string results := map[string]*AWSEC2SubnetNetworkAclAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2SubnetNetworkAclAssociation: + results[name] = &resource case *AWSEC2SubnetNetworkAclAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSEC2SubnetNetworkAclAssociationResources() map[string func (t *Template) GetAWSEC2SubnetNetworkAclAssociationWithName(name string) (*AWSEC2SubnetNetworkAclAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2SubnetNetworkAclAssociation: + return &resource, nil case *AWSEC2SubnetNetworkAclAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-subnetroutetableassociation.go b/cloudformation/aws-ec2-subnetroutetableassociation.go index 368cf0c6f7..4c4b1c9ddc 100644 --- a/cloudformation/aws-ec2-subnetroutetableassociation.go +++ b/cloudformation/aws-ec2-subnetroutetableassociation.go @@ -68,7 +68,7 @@ func (r *AWSEC2SubnetRouteTableAssociation) SetDeletionPolicy(policy DeletionPol // 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 *AWSEC2SubnetRouteTableAssociation) MarshalJSON() ([]byte, error) { +func (r AWSEC2SubnetRouteTableAssociation) MarshalJSON() ([]byte, error) { type Properties AWSEC2SubnetRouteTableAssociation return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSEC2SubnetRouteTableAssociation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSEC2SubnetRouteTableAssociationResources() map[string results := map[string]*AWSEC2SubnetRouteTableAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2SubnetRouteTableAssociation: + results[name] = &resource case *AWSEC2SubnetRouteTableAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSEC2SubnetRouteTableAssociationResources() map[string func (t *Template) GetAWSEC2SubnetRouteTableAssociationWithName(name string) (*AWSEC2SubnetRouteTableAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2SubnetRouteTableAssociation: + return &resource, nil case *AWSEC2SubnetRouteTableAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-transitgateway.go b/cloudformation/aws-ec2-transitgateway.go index c1acbb4949..a95132d8da 100644 --- a/cloudformation/aws-ec2-transitgateway.go +++ b/cloudformation/aws-ec2-transitgateway.go @@ -98,7 +98,7 @@ func (r *AWSEC2TransitGateway) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2TransitGateway) MarshalJSON() ([]byte, error) { +func (r AWSEC2TransitGateway) MarshalJSON() ([]byte, error) { type Properties AWSEC2TransitGateway return json.Marshal(&struct { Type string @@ -108,7 +108,7 @@ func (r *AWSEC2TransitGateway) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -153,6 +153,8 @@ func (t *Template) GetAllAWSEC2TransitGatewayResources() map[string]*AWSEC2Trans results := map[string]*AWSEC2TransitGateway{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2TransitGateway: + results[name] = &resource case *AWSEC2TransitGateway: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -181,6 +183,8 @@ func (t *Template) GetAllAWSEC2TransitGatewayResources() map[string]*AWSEC2Trans func (t *Template) GetAWSEC2TransitGatewayWithName(name string) (*AWSEC2TransitGateway, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2TransitGateway: + return &resource, nil case *AWSEC2TransitGateway: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-transitgatewayattachment.go b/cloudformation/aws-ec2-transitgatewayattachment.go index 9d61f22660..ee413f88d7 100644 --- a/cloudformation/aws-ec2-transitgatewayattachment.go +++ b/cloudformation/aws-ec2-transitgatewayattachment.go @@ -78,7 +78,7 @@ func (r *AWSEC2TransitGatewayAttachment) SetDeletionPolicy(policy DeletionPolicy // 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 *AWSEC2TransitGatewayAttachment) MarshalJSON() ([]byte, error) { +func (r AWSEC2TransitGatewayAttachment) MarshalJSON() ([]byte, error) { type Properties AWSEC2TransitGatewayAttachment return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSEC2TransitGatewayAttachment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSEC2TransitGatewayAttachmentResources() map[string]*A results := map[string]*AWSEC2TransitGatewayAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2TransitGatewayAttachment: + results[name] = &resource case *AWSEC2TransitGatewayAttachment: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSEC2TransitGatewayAttachmentResources() map[string]*A func (t *Template) GetAWSEC2TransitGatewayAttachmentWithName(name string) (*AWSEC2TransitGatewayAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2TransitGatewayAttachment: + return &resource, nil case *AWSEC2TransitGatewayAttachment: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-transitgatewayroute.go b/cloudformation/aws-ec2-transitgatewayroute.go index 894d781e92..e341963a63 100644 --- a/cloudformation/aws-ec2-transitgatewayroute.go +++ b/cloudformation/aws-ec2-transitgatewayroute.go @@ -78,7 +78,7 @@ func (r *AWSEC2TransitGatewayRoute) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2TransitGatewayRoute) MarshalJSON() ([]byte, error) { +func (r AWSEC2TransitGatewayRoute) MarshalJSON() ([]byte, error) { type Properties AWSEC2TransitGatewayRoute return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSEC2TransitGatewayRoute) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSEC2TransitGatewayRouteResources() map[string]*AWSEC2 results := map[string]*AWSEC2TransitGatewayRoute{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2TransitGatewayRoute: + results[name] = &resource case *AWSEC2TransitGatewayRoute: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSEC2TransitGatewayRouteResources() map[string]*AWSEC2 func (t *Template) GetAWSEC2TransitGatewayRouteWithName(name string) (*AWSEC2TransitGatewayRoute, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2TransitGatewayRoute: + return &resource, nil case *AWSEC2TransitGatewayRoute: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-transitgatewayroutetable.go b/cloudformation/aws-ec2-transitgatewayroutetable.go index e4d0dc7c85..aeab04ae24 100644 --- a/cloudformation/aws-ec2-transitgatewayroutetable.go +++ b/cloudformation/aws-ec2-transitgatewayroutetable.go @@ -68,7 +68,7 @@ func (r *AWSEC2TransitGatewayRouteTable) SetDeletionPolicy(policy DeletionPolicy // 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 *AWSEC2TransitGatewayRouteTable) MarshalJSON() ([]byte, error) { +func (r AWSEC2TransitGatewayRouteTable) MarshalJSON() ([]byte, error) { type Properties AWSEC2TransitGatewayRouteTable return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSEC2TransitGatewayRouteTable) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSEC2TransitGatewayRouteTableResources() map[string]*A results := map[string]*AWSEC2TransitGatewayRouteTable{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2TransitGatewayRouteTable: + results[name] = &resource case *AWSEC2TransitGatewayRouteTable: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSEC2TransitGatewayRouteTableResources() map[string]*A func (t *Template) GetAWSEC2TransitGatewayRouteTableWithName(name string) (*AWSEC2TransitGatewayRouteTable, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2TransitGatewayRouteTable: + return &resource, nil case *AWSEC2TransitGatewayRouteTable: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-transitgatewayroutetableassociation.go b/cloudformation/aws-ec2-transitgatewayroutetableassociation.go index c2116625ae..8f9e03ae5f 100644 --- a/cloudformation/aws-ec2-transitgatewayroutetableassociation.go +++ b/cloudformation/aws-ec2-transitgatewayroutetableassociation.go @@ -68,7 +68,7 @@ func (r *AWSEC2TransitGatewayRouteTableAssociation) SetDeletionPolicy(policy Del // 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 *AWSEC2TransitGatewayRouteTableAssociation) MarshalJSON() ([]byte, error) { +func (r AWSEC2TransitGatewayRouteTableAssociation) MarshalJSON() ([]byte, error) { type Properties AWSEC2TransitGatewayRouteTableAssociation return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSEC2TransitGatewayRouteTableAssociation) MarshalJSON() ([]byte, error DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSEC2TransitGatewayRouteTableAssociationResources() ma results := map[string]*AWSEC2TransitGatewayRouteTableAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2TransitGatewayRouteTableAssociation: + results[name] = &resource case *AWSEC2TransitGatewayRouteTableAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSEC2TransitGatewayRouteTableAssociationResources() ma func (t *Template) GetAWSEC2TransitGatewayRouteTableAssociationWithName(name string) (*AWSEC2TransitGatewayRouteTableAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2TransitGatewayRouteTableAssociation: + return &resource, nil case *AWSEC2TransitGatewayRouteTableAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-transitgatewayroutetablepropagation.go b/cloudformation/aws-ec2-transitgatewayroutetablepropagation.go index ae848175a4..05f43ccc04 100644 --- a/cloudformation/aws-ec2-transitgatewayroutetablepropagation.go +++ b/cloudformation/aws-ec2-transitgatewayroutetablepropagation.go @@ -68,7 +68,7 @@ func (r *AWSEC2TransitGatewayRouteTablePropagation) SetDeletionPolicy(policy Del // 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 *AWSEC2TransitGatewayRouteTablePropagation) MarshalJSON() ([]byte, error) { +func (r AWSEC2TransitGatewayRouteTablePropagation) MarshalJSON() ([]byte, error) { type Properties AWSEC2TransitGatewayRouteTablePropagation return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSEC2TransitGatewayRouteTablePropagation) MarshalJSON() ([]byte, error DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSEC2TransitGatewayRouteTablePropagationResources() ma results := map[string]*AWSEC2TransitGatewayRouteTablePropagation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2TransitGatewayRouteTablePropagation: + results[name] = &resource case *AWSEC2TransitGatewayRouteTablePropagation: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSEC2TransitGatewayRouteTablePropagationResources() ma func (t *Template) GetAWSEC2TransitGatewayRouteTablePropagationWithName(name string) (*AWSEC2TransitGatewayRouteTablePropagation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2TransitGatewayRouteTablePropagation: + return &resource, nil case *AWSEC2TransitGatewayRouteTablePropagation: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-trunkinterfaceassociation.go b/cloudformation/aws-ec2-trunkinterfaceassociation.go index 05d6624732..dfc3a16820 100644 --- a/cloudformation/aws-ec2-trunkinterfaceassociation.go +++ b/cloudformation/aws-ec2-trunkinterfaceassociation.go @@ -78,7 +78,7 @@ func (r *AWSEC2TrunkInterfaceAssociation) SetDeletionPolicy(policy DeletionPolic // 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 *AWSEC2TrunkInterfaceAssociation) MarshalJSON() ([]byte, error) { +func (r AWSEC2TrunkInterfaceAssociation) MarshalJSON() ([]byte, error) { type Properties AWSEC2TrunkInterfaceAssociation return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSEC2TrunkInterfaceAssociation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSEC2TrunkInterfaceAssociationResources() map[string]* results := map[string]*AWSEC2TrunkInterfaceAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2TrunkInterfaceAssociation: + results[name] = &resource case *AWSEC2TrunkInterfaceAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSEC2TrunkInterfaceAssociationResources() map[string]* func (t *Template) GetAWSEC2TrunkInterfaceAssociationWithName(name string) (*AWSEC2TrunkInterfaceAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2TrunkInterfaceAssociation: + return &resource, nil case *AWSEC2TrunkInterfaceAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-volume.go b/cloudformation/aws-ec2-volume.go index f25aa28399..cb64e3c53f 100644 --- a/cloudformation/aws-ec2-volume.go +++ b/cloudformation/aws-ec2-volume.go @@ -103,7 +103,7 @@ func (r *AWSEC2Volume) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2Volume) MarshalJSON() ([]byte, error) { +func (r AWSEC2Volume) MarshalJSON() ([]byte, error) { type Properties AWSEC2Volume return json.Marshal(&struct { Type string @@ -113,7 +113,7 @@ func (r *AWSEC2Volume) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -158,6 +158,8 @@ func (t *Template) GetAllAWSEC2VolumeResources() map[string]*AWSEC2Volume { results := map[string]*AWSEC2Volume{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2Volume: + results[name] = &resource case *AWSEC2Volume: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -186,6 +188,8 @@ func (t *Template) GetAllAWSEC2VolumeResources() map[string]*AWSEC2Volume { func (t *Template) GetAWSEC2VolumeWithName(name string) (*AWSEC2Volume, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2Volume: + return &resource, nil case *AWSEC2Volume: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-volumeattachment.go b/cloudformation/aws-ec2-volumeattachment.go index b589c92304..ba126904e6 100644 --- a/cloudformation/aws-ec2-volumeattachment.go +++ b/cloudformation/aws-ec2-volumeattachment.go @@ -73,7 +73,7 @@ func (r *AWSEC2VolumeAttachment) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2VolumeAttachment) MarshalJSON() ([]byte, error) { +func (r AWSEC2VolumeAttachment) MarshalJSON() ([]byte, error) { type Properties AWSEC2VolumeAttachment return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSEC2VolumeAttachment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSEC2VolumeAttachmentResources() map[string]*AWSEC2Vol results := map[string]*AWSEC2VolumeAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2VolumeAttachment: + results[name] = &resource case *AWSEC2VolumeAttachment: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSEC2VolumeAttachmentResources() map[string]*AWSEC2Vol func (t *Template) GetAWSEC2VolumeAttachmentWithName(name string) (*AWSEC2VolumeAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2VolumeAttachment: + return &resource, nil case *AWSEC2VolumeAttachment: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-vpc.go b/cloudformation/aws-ec2-vpc.go index 8e10fd189a..65c856b504 100644 --- a/cloudformation/aws-ec2-vpc.go +++ b/cloudformation/aws-ec2-vpc.go @@ -83,7 +83,7 @@ func (r *AWSEC2VPC) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2VPC) MarshalJSON() ([]byte, error) { +func (r AWSEC2VPC) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPC return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSEC2VPC) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSEC2VPCResources() map[string]*AWSEC2VPC { results := map[string]*AWSEC2VPC{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2VPC: + results[name] = &resource case *AWSEC2VPC: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSEC2VPCResources() map[string]*AWSEC2VPC { func (t *Template) GetAWSEC2VPCWithName(name string) (*AWSEC2VPC, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2VPC: + return &resource, nil case *AWSEC2VPC: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-vpccidrblock.go b/cloudformation/aws-ec2-vpccidrblock.go index b24a54ef06..19345df1fe 100644 --- a/cloudformation/aws-ec2-vpccidrblock.go +++ b/cloudformation/aws-ec2-vpccidrblock.go @@ -73,7 +73,7 @@ func (r *AWSEC2VPCCidrBlock) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2VPCCidrBlock) MarshalJSON() ([]byte, error) { +func (r AWSEC2VPCCidrBlock) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPCCidrBlock return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSEC2VPCCidrBlock) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSEC2VPCCidrBlockResources() map[string]*AWSEC2VPCCidr results := map[string]*AWSEC2VPCCidrBlock{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2VPCCidrBlock: + results[name] = &resource case *AWSEC2VPCCidrBlock: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSEC2VPCCidrBlockResources() map[string]*AWSEC2VPCCidr func (t *Template) GetAWSEC2VPCCidrBlockWithName(name string) (*AWSEC2VPCCidrBlock, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2VPCCidrBlock: + return &resource, nil case *AWSEC2VPCCidrBlock: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-vpcdhcpoptionsassociation.go b/cloudformation/aws-ec2-vpcdhcpoptionsassociation.go index 8852fb1682..8263ecbd68 100644 --- a/cloudformation/aws-ec2-vpcdhcpoptionsassociation.go +++ b/cloudformation/aws-ec2-vpcdhcpoptionsassociation.go @@ -68,7 +68,7 @@ func (r *AWSEC2VPCDHCPOptionsAssociation) SetDeletionPolicy(policy DeletionPolic // 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 *AWSEC2VPCDHCPOptionsAssociation) MarshalJSON() ([]byte, error) { +func (r AWSEC2VPCDHCPOptionsAssociation) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPCDHCPOptionsAssociation return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSEC2VPCDHCPOptionsAssociation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSEC2VPCDHCPOptionsAssociationResources() map[string]* results := map[string]*AWSEC2VPCDHCPOptionsAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2VPCDHCPOptionsAssociation: + results[name] = &resource case *AWSEC2VPCDHCPOptionsAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSEC2VPCDHCPOptionsAssociationResources() map[string]* func (t *Template) GetAWSEC2VPCDHCPOptionsAssociationWithName(name string) (*AWSEC2VPCDHCPOptionsAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2VPCDHCPOptionsAssociation: + return &resource, nil case *AWSEC2VPCDHCPOptionsAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-vpcendpoint.go b/cloudformation/aws-ec2-vpcendpoint.go index c3f37c76a9..3d3b6ba61d 100644 --- a/cloudformation/aws-ec2-vpcendpoint.go +++ b/cloudformation/aws-ec2-vpcendpoint.go @@ -98,7 +98,7 @@ func (r *AWSEC2VPCEndpoint) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2VPCEndpoint) MarshalJSON() ([]byte, error) { +func (r AWSEC2VPCEndpoint) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPCEndpoint return json.Marshal(&struct { Type string @@ -108,7 +108,7 @@ func (r *AWSEC2VPCEndpoint) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -153,6 +153,8 @@ func (t *Template) GetAllAWSEC2VPCEndpointResources() map[string]*AWSEC2VPCEndpo results := map[string]*AWSEC2VPCEndpoint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2VPCEndpoint: + results[name] = &resource case *AWSEC2VPCEndpoint: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -181,6 +183,8 @@ func (t *Template) GetAllAWSEC2VPCEndpointResources() map[string]*AWSEC2VPCEndpo func (t *Template) GetAWSEC2VPCEndpointWithName(name string) (*AWSEC2VPCEndpoint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2VPCEndpoint: + return &resource, nil case *AWSEC2VPCEndpoint: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-vpcendpointconnectionnotification.go b/cloudformation/aws-ec2-vpcendpointconnectionnotification.go index 56d9668e04..a9cc2a16ca 100644 --- a/cloudformation/aws-ec2-vpcendpointconnectionnotification.go +++ b/cloudformation/aws-ec2-vpcendpointconnectionnotification.go @@ -78,7 +78,7 @@ func (r *AWSEC2VPCEndpointConnectionNotification) SetDeletionPolicy(policy Delet // 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 *AWSEC2VPCEndpointConnectionNotification) MarshalJSON() ([]byte, error) { +func (r AWSEC2VPCEndpointConnectionNotification) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPCEndpointConnectionNotification return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSEC2VPCEndpointConnectionNotification) MarshalJSON() ([]byte, error) DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSEC2VPCEndpointConnectionNotificationResources() map[ results := map[string]*AWSEC2VPCEndpointConnectionNotification{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2VPCEndpointConnectionNotification: + results[name] = &resource case *AWSEC2VPCEndpointConnectionNotification: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSEC2VPCEndpointConnectionNotificationResources() map[ func (t *Template) GetAWSEC2VPCEndpointConnectionNotificationWithName(name string) (*AWSEC2VPCEndpointConnectionNotification, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2VPCEndpointConnectionNotification: + return &resource, nil case *AWSEC2VPCEndpointConnectionNotification: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-vpcendpointservicepermissions.go b/cloudformation/aws-ec2-vpcendpointservicepermissions.go index f0cd49933a..1d0d63d51c 100644 --- a/cloudformation/aws-ec2-vpcendpointservicepermissions.go +++ b/cloudformation/aws-ec2-vpcendpointservicepermissions.go @@ -68,7 +68,7 @@ func (r *AWSEC2VPCEndpointServicePermissions) SetDeletionPolicy(policy DeletionP // 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 *AWSEC2VPCEndpointServicePermissions) MarshalJSON() ([]byte, error) { +func (r AWSEC2VPCEndpointServicePermissions) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPCEndpointServicePermissions return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSEC2VPCEndpointServicePermissions) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSEC2VPCEndpointServicePermissionsResources() map[stri results := map[string]*AWSEC2VPCEndpointServicePermissions{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2VPCEndpointServicePermissions: + results[name] = &resource case *AWSEC2VPCEndpointServicePermissions: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSEC2VPCEndpointServicePermissionsResources() map[stri func (t *Template) GetAWSEC2VPCEndpointServicePermissionsWithName(name string) (*AWSEC2VPCEndpointServicePermissions, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2VPCEndpointServicePermissions: + return &resource, nil case *AWSEC2VPCEndpointServicePermissions: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-vpcgatewayattachment.go b/cloudformation/aws-ec2-vpcgatewayattachment.go index 7031bc9b81..9f240a50cb 100644 --- a/cloudformation/aws-ec2-vpcgatewayattachment.go +++ b/cloudformation/aws-ec2-vpcgatewayattachment.go @@ -73,7 +73,7 @@ func (r *AWSEC2VPCGatewayAttachment) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2VPCGatewayAttachment) MarshalJSON() ([]byte, error) { +func (r AWSEC2VPCGatewayAttachment) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPCGatewayAttachment return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSEC2VPCGatewayAttachment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSEC2VPCGatewayAttachmentResources() map[string]*AWSEC results := map[string]*AWSEC2VPCGatewayAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2VPCGatewayAttachment: + results[name] = &resource case *AWSEC2VPCGatewayAttachment: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSEC2VPCGatewayAttachmentResources() map[string]*AWSEC func (t *Template) GetAWSEC2VPCGatewayAttachmentWithName(name string) (*AWSEC2VPCGatewayAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2VPCGatewayAttachment: + return &resource, nil case *AWSEC2VPCGatewayAttachment: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-vpcpeeringconnection.go b/cloudformation/aws-ec2-vpcpeeringconnection.go index 0daff768d7..a26ebbc1d2 100644 --- a/cloudformation/aws-ec2-vpcpeeringconnection.go +++ b/cloudformation/aws-ec2-vpcpeeringconnection.go @@ -88,7 +88,7 @@ func (r *AWSEC2VPCPeeringConnection) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2VPCPeeringConnection) MarshalJSON() ([]byte, error) { +func (r AWSEC2VPCPeeringConnection) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPCPeeringConnection return json.Marshal(&struct { Type string @@ -98,7 +98,7 @@ func (r *AWSEC2VPCPeeringConnection) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -143,6 +143,8 @@ func (t *Template) GetAllAWSEC2VPCPeeringConnectionResources() map[string]*AWSEC results := map[string]*AWSEC2VPCPeeringConnection{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2VPCPeeringConnection: + results[name] = &resource case *AWSEC2VPCPeeringConnection: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -171,6 +173,8 @@ func (t *Template) GetAllAWSEC2VPCPeeringConnectionResources() map[string]*AWSEC func (t *Template) GetAWSEC2VPCPeeringConnectionWithName(name string) (*AWSEC2VPCPeeringConnection, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2VPCPeeringConnection: + return &resource, nil case *AWSEC2VPCPeeringConnection: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-vpnconnection.go b/cloudformation/aws-ec2-vpnconnection.go index ec7ccea1ab..8097dba11a 100644 --- a/cloudformation/aws-ec2-vpnconnection.go +++ b/cloudformation/aws-ec2-vpnconnection.go @@ -88,7 +88,7 @@ func (r *AWSEC2VPNConnection) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2VPNConnection) MarshalJSON() ([]byte, error) { +func (r AWSEC2VPNConnection) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPNConnection return json.Marshal(&struct { Type string @@ -98,7 +98,7 @@ func (r *AWSEC2VPNConnection) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -143,6 +143,8 @@ func (t *Template) GetAllAWSEC2VPNConnectionResources() map[string]*AWSEC2VPNCon results := map[string]*AWSEC2VPNConnection{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2VPNConnection: + results[name] = &resource case *AWSEC2VPNConnection: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -171,6 +173,8 @@ func (t *Template) GetAllAWSEC2VPNConnectionResources() map[string]*AWSEC2VPNCon func (t *Template) GetAWSEC2VPNConnectionWithName(name string) (*AWSEC2VPNConnection, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2VPNConnection: + return &resource, nil case *AWSEC2VPNConnection: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-vpnconnectionroute.go b/cloudformation/aws-ec2-vpnconnectionroute.go index e5074fcd25..dce90b785a 100644 --- a/cloudformation/aws-ec2-vpnconnectionroute.go +++ b/cloudformation/aws-ec2-vpnconnectionroute.go @@ -68,7 +68,7 @@ func (r *AWSEC2VPNConnectionRoute) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2VPNConnectionRoute) MarshalJSON() ([]byte, error) { +func (r AWSEC2VPNConnectionRoute) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPNConnectionRoute return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSEC2VPNConnectionRoute) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSEC2VPNConnectionRouteResources() map[string]*AWSEC2V results := map[string]*AWSEC2VPNConnectionRoute{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2VPNConnectionRoute: + results[name] = &resource case *AWSEC2VPNConnectionRoute: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSEC2VPNConnectionRouteResources() map[string]*AWSEC2V func (t *Template) GetAWSEC2VPNConnectionRouteWithName(name string) (*AWSEC2VPNConnectionRoute, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2VPNConnectionRoute: + return &resource, nil case *AWSEC2VPNConnectionRoute: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-vpngateway.go b/cloudformation/aws-ec2-vpngateway.go index 12f972dbec..dc489b0355 100644 --- a/cloudformation/aws-ec2-vpngateway.go +++ b/cloudformation/aws-ec2-vpngateway.go @@ -73,7 +73,7 @@ func (r *AWSEC2VPNGateway) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEC2VPNGateway) MarshalJSON() ([]byte, error) { +func (r AWSEC2VPNGateway) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPNGateway return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSEC2VPNGateway) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSEC2VPNGatewayResources() map[string]*AWSEC2VPNGatewa results := map[string]*AWSEC2VPNGateway{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2VPNGateway: + results[name] = &resource case *AWSEC2VPNGateway: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSEC2VPNGatewayResources() map[string]*AWSEC2VPNGatewa func (t *Template) GetAWSEC2VPNGatewayWithName(name string) (*AWSEC2VPNGateway, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2VPNGateway: + return &resource, nil case *AWSEC2VPNGateway: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ec2-vpngatewayroutepropagation.go b/cloudformation/aws-ec2-vpngatewayroutepropagation.go index b0d3c708fd..61af4c57c5 100644 --- a/cloudformation/aws-ec2-vpngatewayroutepropagation.go +++ b/cloudformation/aws-ec2-vpngatewayroutepropagation.go @@ -68,7 +68,7 @@ func (r *AWSEC2VPNGatewayRoutePropagation) SetDeletionPolicy(policy DeletionPoli // 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 *AWSEC2VPNGatewayRoutePropagation) MarshalJSON() ([]byte, error) { +func (r AWSEC2VPNGatewayRoutePropagation) MarshalJSON() ([]byte, error) { type Properties AWSEC2VPNGatewayRoutePropagation return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSEC2VPNGatewayRoutePropagation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSEC2VPNGatewayRoutePropagationResources() map[string] results := map[string]*AWSEC2VPNGatewayRoutePropagation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEC2VPNGatewayRoutePropagation: + results[name] = &resource case *AWSEC2VPNGatewayRoutePropagation: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSEC2VPNGatewayRoutePropagationResources() map[string] func (t *Template) GetAWSEC2VPNGatewayRoutePropagationWithName(name string) (*AWSEC2VPNGatewayRoutePropagation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEC2VPNGatewayRoutePropagation: + return &resource, nil case *AWSEC2VPNGatewayRoutePropagation: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ecr-repository.go b/cloudformation/aws-ecr-repository.go index 924a387709..d5ab7f4e4d 100644 --- a/cloudformation/aws-ecr-repository.go +++ b/cloudformation/aws-ecr-repository.go @@ -73,7 +73,7 @@ func (r *AWSECRRepository) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSECRRepository) MarshalJSON() ([]byte, error) { +func (r AWSECRRepository) MarshalJSON() ([]byte, error) { type Properties AWSECRRepository return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSECRRepository) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSECRRepositoryResources() map[string]*AWSECRRepositor results := map[string]*AWSECRRepository{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSECRRepository: + results[name] = &resource case *AWSECRRepository: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSECRRepositoryResources() map[string]*AWSECRRepositor func (t *Template) GetAWSECRRepositoryWithName(name string) (*AWSECRRepository, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSECRRepository: + return &resource, nil case *AWSECRRepository: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ecs-cluster.go b/cloudformation/aws-ecs-cluster.go index 0cbd59862a..676422b633 100644 --- a/cloudformation/aws-ecs-cluster.go +++ b/cloudformation/aws-ecs-cluster.go @@ -63,7 +63,7 @@ func (r *AWSECSCluster) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSECSCluster) MarshalJSON() ([]byte, error) { +func (r AWSECSCluster) MarshalJSON() ([]byte, error) { type Properties AWSECSCluster return json.Marshal(&struct { Type string @@ -73,7 +73,7 @@ func (r *AWSECSCluster) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -118,6 +118,8 @@ func (t *Template) GetAllAWSECSClusterResources() map[string]*AWSECSCluster { results := map[string]*AWSECSCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSECSCluster: + results[name] = &resource case *AWSECSCluster: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -146,6 +148,8 @@ func (t *Template) GetAllAWSECSClusterResources() map[string]*AWSECSCluster { func (t *Template) GetAWSECSClusterWithName(name string) (*AWSECSCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSECSCluster: + return &resource, nil case *AWSECSCluster: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ecs-service.go b/cloudformation/aws-ecs-service.go index 47757918be..58f346dcbb 100644 --- a/cloudformation/aws-ecs-service.go +++ b/cloudformation/aws-ecs-service.go @@ -133,7 +133,7 @@ func (r *AWSECSService) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSECSService) MarshalJSON() ([]byte, error) { +func (r AWSECSService) MarshalJSON() ([]byte, error) { type Properties AWSECSService return json.Marshal(&struct { Type string @@ -143,7 +143,7 @@ func (r *AWSECSService) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -188,6 +188,8 @@ func (t *Template) GetAllAWSECSServiceResources() map[string]*AWSECSService { results := map[string]*AWSECSService{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSECSService: + results[name] = &resource case *AWSECSService: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -216,6 +218,8 @@ func (t *Template) GetAllAWSECSServiceResources() map[string]*AWSECSService { func (t *Template) GetAWSECSServiceWithName(name string) (*AWSECSService, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSECSService: + return &resource, nil case *AWSECSService: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ecs-taskdefinition.go b/cloudformation/aws-ecs-taskdefinition.go index f162e7ee42..58e9bfc110 100644 --- a/cloudformation/aws-ecs-taskdefinition.go +++ b/cloudformation/aws-ecs-taskdefinition.go @@ -108,7 +108,7 @@ func (r *AWSECSTaskDefinition) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSECSTaskDefinition) MarshalJSON() ([]byte, error) { +func (r AWSECSTaskDefinition) MarshalJSON() ([]byte, error) { type Properties AWSECSTaskDefinition return json.Marshal(&struct { Type string @@ -118,7 +118,7 @@ func (r *AWSECSTaskDefinition) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -163,6 +163,8 @@ func (t *Template) GetAllAWSECSTaskDefinitionResources() map[string]*AWSECSTaskD results := map[string]*AWSECSTaskDefinition{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSECSTaskDefinition: + results[name] = &resource case *AWSECSTaskDefinition: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -191,6 +193,8 @@ func (t *Template) GetAllAWSECSTaskDefinitionResources() map[string]*AWSECSTaskD func (t *Template) GetAWSECSTaskDefinitionWithName(name string) (*AWSECSTaskDefinition, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSECSTaskDefinition: + return &resource, nil case *AWSECSTaskDefinition: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-efs-filesystem.go b/cloudformation/aws-efs-filesystem.go index a87b0b2afb..71bc03dcaf 100644 --- a/cloudformation/aws-efs-filesystem.go +++ b/cloudformation/aws-efs-filesystem.go @@ -88,7 +88,7 @@ func (r *AWSEFSFileSystem) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEFSFileSystem) MarshalJSON() ([]byte, error) { +func (r AWSEFSFileSystem) MarshalJSON() ([]byte, error) { type Properties AWSEFSFileSystem return json.Marshal(&struct { Type string @@ -98,7 +98,7 @@ func (r *AWSEFSFileSystem) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -143,6 +143,8 @@ func (t *Template) GetAllAWSEFSFileSystemResources() map[string]*AWSEFSFileSyste results := map[string]*AWSEFSFileSystem{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEFSFileSystem: + results[name] = &resource case *AWSEFSFileSystem: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -171,6 +173,8 @@ func (t *Template) GetAllAWSEFSFileSystemResources() map[string]*AWSEFSFileSyste func (t *Template) GetAWSEFSFileSystemWithName(name string) (*AWSEFSFileSystem, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEFSFileSystem: + return &resource, nil case *AWSEFSFileSystem: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-efs-mounttarget.go b/cloudformation/aws-efs-mounttarget.go index f9d83da588..84feb41915 100644 --- a/cloudformation/aws-efs-mounttarget.go +++ b/cloudformation/aws-efs-mounttarget.go @@ -78,7 +78,7 @@ func (r *AWSEFSMountTarget) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEFSMountTarget) MarshalJSON() ([]byte, error) { +func (r AWSEFSMountTarget) MarshalJSON() ([]byte, error) { type Properties AWSEFSMountTarget return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSEFSMountTarget) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSEFSMountTargetResources() map[string]*AWSEFSMountTar results := map[string]*AWSEFSMountTarget{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEFSMountTarget: + results[name] = &resource case *AWSEFSMountTarget: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSEFSMountTargetResources() map[string]*AWSEFSMountTar func (t *Template) GetAWSEFSMountTargetWithName(name string) (*AWSEFSMountTarget, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEFSMountTarget: + return &resource, nil case *AWSEFSMountTarget: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-eks-cluster.go b/cloudformation/aws-eks-cluster.go index e24d786380..c69881894b 100644 --- a/cloudformation/aws-eks-cluster.go +++ b/cloudformation/aws-eks-cluster.go @@ -78,7 +78,7 @@ func (r *AWSEKSCluster) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEKSCluster) MarshalJSON() ([]byte, error) { +func (r AWSEKSCluster) MarshalJSON() ([]byte, error) { type Properties AWSEKSCluster return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSEKSCluster) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSEKSClusterResources() map[string]*AWSEKSCluster { results := map[string]*AWSEKSCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEKSCluster: + results[name] = &resource case *AWSEKSCluster: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSEKSClusterResources() map[string]*AWSEKSCluster { func (t *Template) GetAWSEKSClusterWithName(name string) (*AWSEKSCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEKSCluster: + return &resource, nil case *AWSEKSCluster: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-elasticache-cachecluster.go b/cloudformation/aws-elasticache-cachecluster.go index 637bf9d393..a436e574a6 100644 --- a/cloudformation/aws-elasticache-cachecluster.go +++ b/cloudformation/aws-elasticache-cachecluster.go @@ -163,7 +163,7 @@ func (r *AWSElastiCacheCacheCluster) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSElastiCacheCacheCluster) MarshalJSON() ([]byte, error) { +func (r AWSElastiCacheCacheCluster) MarshalJSON() ([]byte, error) { type Properties AWSElastiCacheCacheCluster return json.Marshal(&struct { Type string @@ -173,7 +173,7 @@ func (r *AWSElastiCacheCacheCluster) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -218,6 +218,8 @@ func (t *Template) GetAllAWSElastiCacheCacheClusterResources() map[string]*AWSEl results := map[string]*AWSElastiCacheCacheCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSElastiCacheCacheCluster: + results[name] = &resource case *AWSElastiCacheCacheCluster: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -246,6 +248,8 @@ func (t *Template) GetAllAWSElastiCacheCacheClusterResources() map[string]*AWSEl func (t *Template) GetAWSElastiCacheCacheClusterWithName(name string) (*AWSElastiCacheCacheCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSElastiCacheCacheCluster: + return &resource, nil case *AWSElastiCacheCacheCluster: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-elasticache-parametergroup.go b/cloudformation/aws-elasticache-parametergroup.go index 20bfb6611e..d7af5aba5b 100644 --- a/cloudformation/aws-elasticache-parametergroup.go +++ b/cloudformation/aws-elasticache-parametergroup.go @@ -73,7 +73,7 @@ func (r *AWSElastiCacheParameterGroup) SetDeletionPolicy(policy DeletionPolicy) // 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 *AWSElastiCacheParameterGroup) MarshalJSON() ([]byte, error) { +func (r AWSElastiCacheParameterGroup) MarshalJSON() ([]byte, error) { type Properties AWSElastiCacheParameterGroup return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSElastiCacheParameterGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSElastiCacheParameterGroupResources() map[string]*AWS results := map[string]*AWSElastiCacheParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSElastiCacheParameterGroup: + results[name] = &resource case *AWSElastiCacheParameterGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSElastiCacheParameterGroupResources() map[string]*AWS func (t *Template) GetAWSElastiCacheParameterGroupWithName(name string) (*AWSElastiCacheParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSElastiCacheParameterGroup: + return &resource, nil case *AWSElastiCacheParameterGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-elasticache-replicationgroup.go b/cloudformation/aws-elasticache-replicationgroup.go index 19b2290965..84f63cd235 100644 --- a/cloudformation/aws-elasticache-replicationgroup.go +++ b/cloudformation/aws-elasticache-replicationgroup.go @@ -203,7 +203,7 @@ func (r *AWSElastiCacheReplicationGroup) SetDeletionPolicy(policy DeletionPolicy // 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 *AWSElastiCacheReplicationGroup) MarshalJSON() ([]byte, error) { +func (r AWSElastiCacheReplicationGroup) MarshalJSON() ([]byte, error) { type Properties AWSElastiCacheReplicationGroup return json.Marshal(&struct { Type string @@ -213,7 +213,7 @@ func (r *AWSElastiCacheReplicationGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -258,6 +258,8 @@ func (t *Template) GetAllAWSElastiCacheReplicationGroupResources() map[string]*A results := map[string]*AWSElastiCacheReplicationGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSElastiCacheReplicationGroup: + results[name] = &resource case *AWSElastiCacheReplicationGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -286,6 +288,8 @@ func (t *Template) GetAllAWSElastiCacheReplicationGroupResources() map[string]*A func (t *Template) GetAWSElastiCacheReplicationGroupWithName(name string) (*AWSElastiCacheReplicationGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSElastiCacheReplicationGroup: + return &resource, nil case *AWSElastiCacheReplicationGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-elasticache-securitygroup.go b/cloudformation/aws-elasticache-securitygroup.go index 18b8cdbec0..becf675b56 100644 --- a/cloudformation/aws-elasticache-securitygroup.go +++ b/cloudformation/aws-elasticache-securitygroup.go @@ -63,7 +63,7 @@ func (r *AWSElastiCacheSecurityGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSElastiCacheSecurityGroup) MarshalJSON() ([]byte, error) { +func (r AWSElastiCacheSecurityGroup) MarshalJSON() ([]byte, error) { type Properties AWSElastiCacheSecurityGroup return json.Marshal(&struct { Type string @@ -73,7 +73,7 @@ func (r *AWSElastiCacheSecurityGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -118,6 +118,8 @@ func (t *Template) GetAllAWSElastiCacheSecurityGroupResources() map[string]*AWSE results := map[string]*AWSElastiCacheSecurityGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSElastiCacheSecurityGroup: + results[name] = &resource case *AWSElastiCacheSecurityGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -146,6 +148,8 @@ func (t *Template) GetAllAWSElastiCacheSecurityGroupResources() map[string]*AWSE func (t *Template) GetAWSElastiCacheSecurityGroupWithName(name string) (*AWSElastiCacheSecurityGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSElastiCacheSecurityGroup: + return &resource, nil case *AWSElastiCacheSecurityGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-elasticache-securitygroupingress.go b/cloudformation/aws-elasticache-securitygroupingress.go index 903f63c6dd..32f03cdc1e 100644 --- a/cloudformation/aws-elasticache-securitygroupingress.go +++ b/cloudformation/aws-elasticache-securitygroupingress.go @@ -73,7 +73,7 @@ func (r *AWSElastiCacheSecurityGroupIngress) SetDeletionPolicy(policy DeletionPo // 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 *AWSElastiCacheSecurityGroupIngress) MarshalJSON() ([]byte, error) { +func (r AWSElastiCacheSecurityGroupIngress) MarshalJSON() ([]byte, error) { type Properties AWSElastiCacheSecurityGroupIngress return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSElastiCacheSecurityGroupIngress) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSElastiCacheSecurityGroupIngressResources() map[strin results := map[string]*AWSElastiCacheSecurityGroupIngress{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSElastiCacheSecurityGroupIngress: + results[name] = &resource case *AWSElastiCacheSecurityGroupIngress: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSElastiCacheSecurityGroupIngressResources() map[strin func (t *Template) GetAWSElastiCacheSecurityGroupIngressWithName(name string) (*AWSElastiCacheSecurityGroupIngress, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSElastiCacheSecurityGroupIngress: + return &resource, nil case *AWSElastiCacheSecurityGroupIngress: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-elasticache-subnetgroup.go b/cloudformation/aws-elasticache-subnetgroup.go index 906d08d810..070e418810 100644 --- a/cloudformation/aws-elasticache-subnetgroup.go +++ b/cloudformation/aws-elasticache-subnetgroup.go @@ -73,7 +73,7 @@ func (r *AWSElastiCacheSubnetGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSElastiCacheSubnetGroup) MarshalJSON() ([]byte, error) { +func (r AWSElastiCacheSubnetGroup) MarshalJSON() ([]byte, error) { type Properties AWSElastiCacheSubnetGroup return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSElastiCacheSubnetGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSElastiCacheSubnetGroupResources() map[string]*AWSEla results := map[string]*AWSElastiCacheSubnetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSElastiCacheSubnetGroup: + results[name] = &resource case *AWSElastiCacheSubnetGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSElastiCacheSubnetGroupResources() map[string]*AWSEla func (t *Template) GetAWSElastiCacheSubnetGroupWithName(name string) (*AWSElastiCacheSubnetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSElastiCacheSubnetGroup: + return &resource, nil case *AWSElastiCacheSubnetGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-elasticbeanstalk-application.go b/cloudformation/aws-elasticbeanstalk-application.go index 1f9be8ce79..2afd9467cf 100644 --- a/cloudformation/aws-elasticbeanstalk-application.go +++ b/cloudformation/aws-elasticbeanstalk-application.go @@ -73,7 +73,7 @@ func (r *AWSElasticBeanstalkApplication) SetDeletionPolicy(policy DeletionPolicy // 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 *AWSElasticBeanstalkApplication) MarshalJSON() ([]byte, error) { +func (r AWSElasticBeanstalkApplication) MarshalJSON() ([]byte, error) { type Properties AWSElasticBeanstalkApplication return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSElasticBeanstalkApplication) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSElasticBeanstalkApplicationResources() map[string]*A results := map[string]*AWSElasticBeanstalkApplication{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSElasticBeanstalkApplication: + results[name] = &resource case *AWSElasticBeanstalkApplication: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSElasticBeanstalkApplicationResources() map[string]*A func (t *Template) GetAWSElasticBeanstalkApplicationWithName(name string) (*AWSElasticBeanstalkApplication, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSElasticBeanstalkApplication: + return &resource, nil case *AWSElasticBeanstalkApplication: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-elasticbeanstalk-applicationversion.go b/cloudformation/aws-elasticbeanstalk-applicationversion.go index 038c991694..138fba7f44 100644 --- a/cloudformation/aws-elasticbeanstalk-applicationversion.go +++ b/cloudformation/aws-elasticbeanstalk-applicationversion.go @@ -73,7 +73,7 @@ func (r *AWSElasticBeanstalkApplicationVersion) SetDeletionPolicy(policy Deletio // 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 *AWSElasticBeanstalkApplicationVersion) MarshalJSON() ([]byte, error) { +func (r AWSElasticBeanstalkApplicationVersion) MarshalJSON() ([]byte, error) { type Properties AWSElasticBeanstalkApplicationVersion return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSElasticBeanstalkApplicationVersion) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSElasticBeanstalkApplicationVersionResources() map[st results := map[string]*AWSElasticBeanstalkApplicationVersion{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSElasticBeanstalkApplicationVersion: + results[name] = &resource case *AWSElasticBeanstalkApplicationVersion: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSElasticBeanstalkApplicationVersionResources() map[st func (t *Template) GetAWSElasticBeanstalkApplicationVersionWithName(name string) (*AWSElasticBeanstalkApplicationVersion, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSElasticBeanstalkApplicationVersion: + return &resource, nil case *AWSElasticBeanstalkApplicationVersion: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-elasticbeanstalk-configurationtemplate.go b/cloudformation/aws-elasticbeanstalk-configurationtemplate.go index 8f8add633c..e1bda0bb5c 100644 --- a/cloudformation/aws-elasticbeanstalk-configurationtemplate.go +++ b/cloudformation/aws-elasticbeanstalk-configurationtemplate.go @@ -93,7 +93,7 @@ func (r *AWSElasticBeanstalkConfigurationTemplate) SetDeletionPolicy(policy Dele // 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 *AWSElasticBeanstalkConfigurationTemplate) MarshalJSON() ([]byte, error) { +func (r AWSElasticBeanstalkConfigurationTemplate) MarshalJSON() ([]byte, error) { type Properties AWSElasticBeanstalkConfigurationTemplate return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSElasticBeanstalkConfigurationTemplate) MarshalJSON() ([]byte, error) DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSElasticBeanstalkConfigurationTemplateResources() map results := map[string]*AWSElasticBeanstalkConfigurationTemplate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSElasticBeanstalkConfigurationTemplate: + results[name] = &resource case *AWSElasticBeanstalkConfigurationTemplate: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSElasticBeanstalkConfigurationTemplateResources() map func (t *Template) GetAWSElasticBeanstalkConfigurationTemplateWithName(name string) (*AWSElasticBeanstalkConfigurationTemplate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSElasticBeanstalkConfigurationTemplate: + return &resource, nil case *AWSElasticBeanstalkConfigurationTemplate: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-elasticbeanstalk-environment.go b/cloudformation/aws-elasticbeanstalk-environment.go index 47d20db5d4..b91da5d511 100644 --- a/cloudformation/aws-elasticbeanstalk-environment.go +++ b/cloudformation/aws-elasticbeanstalk-environment.go @@ -113,7 +113,7 @@ func (r *AWSElasticBeanstalkEnvironment) SetDeletionPolicy(policy DeletionPolicy // 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 *AWSElasticBeanstalkEnvironment) MarshalJSON() ([]byte, error) { +func (r AWSElasticBeanstalkEnvironment) MarshalJSON() ([]byte, error) { type Properties AWSElasticBeanstalkEnvironment return json.Marshal(&struct { Type string @@ -123,7 +123,7 @@ func (r *AWSElasticBeanstalkEnvironment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -168,6 +168,8 @@ func (t *Template) GetAllAWSElasticBeanstalkEnvironmentResources() map[string]*A results := map[string]*AWSElasticBeanstalkEnvironment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSElasticBeanstalkEnvironment: + results[name] = &resource case *AWSElasticBeanstalkEnvironment: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -196,6 +198,8 @@ func (t *Template) GetAllAWSElasticBeanstalkEnvironmentResources() map[string]*A func (t *Template) GetAWSElasticBeanstalkEnvironmentWithName(name string) (*AWSElasticBeanstalkEnvironment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSElasticBeanstalkEnvironment: + return &resource, nil case *AWSElasticBeanstalkEnvironment: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-elasticloadbalancing-loadbalancer.go b/cloudformation/aws-elasticloadbalancing-loadbalancer.go index b3f85136cf..c4f1615f45 100644 --- a/cloudformation/aws-elasticloadbalancing-loadbalancer.go +++ b/cloudformation/aws-elasticloadbalancing-loadbalancer.go @@ -138,7 +138,7 @@ func (r *AWSElasticLoadBalancingLoadBalancer) SetDeletionPolicy(policy DeletionP // 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 *AWSElasticLoadBalancingLoadBalancer) MarshalJSON() ([]byte, error) { +func (r AWSElasticLoadBalancingLoadBalancer) MarshalJSON() ([]byte, error) { type Properties AWSElasticLoadBalancingLoadBalancer return json.Marshal(&struct { Type string @@ -148,7 +148,7 @@ func (r *AWSElasticLoadBalancingLoadBalancer) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -193,6 +193,8 @@ func (t *Template) GetAllAWSElasticLoadBalancingLoadBalancerResources() map[stri results := map[string]*AWSElasticLoadBalancingLoadBalancer{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSElasticLoadBalancingLoadBalancer: + results[name] = &resource case *AWSElasticLoadBalancingLoadBalancer: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -221,6 +223,8 @@ func (t *Template) GetAllAWSElasticLoadBalancingLoadBalancerResources() map[stri func (t *Template) GetAWSElasticLoadBalancingLoadBalancerWithName(name string) (*AWSElasticLoadBalancingLoadBalancer, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSElasticLoadBalancingLoadBalancer: + return &resource, nil case *AWSElasticLoadBalancingLoadBalancer: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-elasticloadbalancingv2-listener.go b/cloudformation/aws-elasticloadbalancingv2-listener.go index e108c11887..198d88ce36 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listener.go +++ b/cloudformation/aws-elasticloadbalancingv2-listener.go @@ -88,7 +88,7 @@ func (r *AWSElasticLoadBalancingV2Listener) SetDeletionPolicy(policy DeletionPol // 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 *AWSElasticLoadBalancingV2Listener) MarshalJSON() ([]byte, error) { +func (r AWSElasticLoadBalancingV2Listener) MarshalJSON() ([]byte, error) { type Properties AWSElasticLoadBalancingV2Listener return json.Marshal(&struct { Type string @@ -98,7 +98,7 @@ func (r *AWSElasticLoadBalancingV2Listener) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -143,6 +143,8 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerResources() map[string results := map[string]*AWSElasticLoadBalancingV2Listener{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSElasticLoadBalancingV2Listener: + results[name] = &resource case *AWSElasticLoadBalancingV2Listener: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -171,6 +173,8 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerResources() map[string func (t *Template) GetAWSElasticLoadBalancingV2ListenerWithName(name string) (*AWSElasticLoadBalancingV2Listener, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSElasticLoadBalancingV2Listener: + return &resource, nil case *AWSElasticLoadBalancingV2Listener: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-elasticloadbalancingv2-listenercertificate.go b/cloudformation/aws-elasticloadbalancingv2-listenercertificate.go index ce2d4040f4..6576f79c2c 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listenercertificate.go +++ b/cloudformation/aws-elasticloadbalancingv2-listenercertificate.go @@ -68,7 +68,7 @@ func (r *AWSElasticLoadBalancingV2ListenerCertificate) SetDeletionPolicy(policy // 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 *AWSElasticLoadBalancingV2ListenerCertificate) MarshalJSON() ([]byte, error) { +func (r AWSElasticLoadBalancingV2ListenerCertificate) MarshalJSON() ([]byte, error) { type Properties AWSElasticLoadBalancingV2ListenerCertificate return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSElasticLoadBalancingV2ListenerCertificate) MarshalJSON() ([]byte, er DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerCertificateResources() results := map[string]*AWSElasticLoadBalancingV2ListenerCertificate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSElasticLoadBalancingV2ListenerCertificate: + results[name] = &resource case *AWSElasticLoadBalancingV2ListenerCertificate: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerCertificateResources() func (t *Template) GetAWSElasticLoadBalancingV2ListenerCertificateWithName(name string) (*AWSElasticLoadBalancingV2ListenerCertificate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSElasticLoadBalancingV2ListenerCertificate: + return &resource, nil case *AWSElasticLoadBalancingV2ListenerCertificate: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-elasticloadbalancingv2-listenerrule.go b/cloudformation/aws-elasticloadbalancingv2-listenerrule.go index 2cf32e6c26..a9d08ab36f 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listenerrule.go +++ b/cloudformation/aws-elasticloadbalancingv2-listenerrule.go @@ -78,7 +78,7 @@ func (r *AWSElasticLoadBalancingV2ListenerRule) SetDeletionPolicy(policy Deletio // 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 *AWSElasticLoadBalancingV2ListenerRule) MarshalJSON() ([]byte, error) { +func (r AWSElasticLoadBalancingV2ListenerRule) MarshalJSON() ([]byte, error) { type Properties AWSElasticLoadBalancingV2ListenerRule return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSElasticLoadBalancingV2ListenerRule) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerRuleResources() map[st results := map[string]*AWSElasticLoadBalancingV2ListenerRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSElasticLoadBalancingV2ListenerRule: + results[name] = &resource case *AWSElasticLoadBalancingV2ListenerRule: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerRuleResources() map[st func (t *Template) GetAWSElasticLoadBalancingV2ListenerRuleWithName(name string) (*AWSElasticLoadBalancingV2ListenerRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSElasticLoadBalancingV2ListenerRule: + return &resource, nil case *AWSElasticLoadBalancingV2ListenerRule: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-elasticloadbalancingv2-loadbalancer.go b/cloudformation/aws-elasticloadbalancingv2-loadbalancer.go index c479d171ca..0a07f10504 100644 --- a/cloudformation/aws-elasticloadbalancingv2-loadbalancer.go +++ b/cloudformation/aws-elasticloadbalancingv2-loadbalancer.go @@ -103,7 +103,7 @@ func (r *AWSElasticLoadBalancingV2LoadBalancer) SetDeletionPolicy(policy Deletio // 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 *AWSElasticLoadBalancingV2LoadBalancer) MarshalJSON() ([]byte, error) { +func (r AWSElasticLoadBalancingV2LoadBalancer) MarshalJSON() ([]byte, error) { type Properties AWSElasticLoadBalancingV2LoadBalancer return json.Marshal(&struct { Type string @@ -113,7 +113,7 @@ func (r *AWSElasticLoadBalancingV2LoadBalancer) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -158,6 +158,8 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2LoadBalancerResources() map[st results := map[string]*AWSElasticLoadBalancingV2LoadBalancer{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSElasticLoadBalancingV2LoadBalancer: + results[name] = &resource case *AWSElasticLoadBalancingV2LoadBalancer: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -186,6 +188,8 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2LoadBalancerResources() map[st func (t *Template) GetAWSElasticLoadBalancingV2LoadBalancerWithName(name string) (*AWSElasticLoadBalancingV2LoadBalancer, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSElasticLoadBalancingV2LoadBalancer: + return &resource, nil case *AWSElasticLoadBalancingV2LoadBalancer: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-elasticloadbalancingv2-targetgroup.go b/cloudformation/aws-elasticloadbalancingv2-targetgroup.go index 770fadedef..78a98d45ad 100644 --- a/cloudformation/aws-elasticloadbalancingv2-targetgroup.go +++ b/cloudformation/aws-elasticloadbalancingv2-targetgroup.go @@ -143,7 +143,7 @@ func (r *AWSElasticLoadBalancingV2TargetGroup) SetDeletionPolicy(policy Deletion // 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 *AWSElasticLoadBalancingV2TargetGroup) MarshalJSON() ([]byte, error) { +func (r AWSElasticLoadBalancingV2TargetGroup) MarshalJSON() ([]byte, error) { type Properties AWSElasticLoadBalancingV2TargetGroup return json.Marshal(&struct { Type string @@ -153,7 +153,7 @@ func (r *AWSElasticLoadBalancingV2TargetGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -198,6 +198,8 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2TargetGroupResources() map[str results := map[string]*AWSElasticLoadBalancingV2TargetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSElasticLoadBalancingV2TargetGroup: + results[name] = &resource case *AWSElasticLoadBalancingV2TargetGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -226,6 +228,8 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2TargetGroupResources() map[str func (t *Template) GetAWSElasticLoadBalancingV2TargetGroupWithName(name string) (*AWSElasticLoadBalancingV2TargetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSElasticLoadBalancingV2TargetGroup: + return &resource, nil case *AWSElasticLoadBalancingV2TargetGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-elasticsearch-domain.go b/cloudformation/aws-elasticsearch-domain.go index 8e7e6486f0..d48069a0f8 100644 --- a/cloudformation/aws-elasticsearch-domain.go +++ b/cloudformation/aws-elasticsearch-domain.go @@ -113,7 +113,7 @@ func (r *AWSElasticsearchDomain) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSElasticsearchDomain) MarshalJSON() ([]byte, error) { +func (r AWSElasticsearchDomain) MarshalJSON() ([]byte, error) { type Properties AWSElasticsearchDomain return json.Marshal(&struct { Type string @@ -123,7 +123,7 @@ func (r *AWSElasticsearchDomain) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -168,6 +168,8 @@ func (t *Template) GetAllAWSElasticsearchDomainResources() map[string]*AWSElasti results := map[string]*AWSElasticsearchDomain{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSElasticsearchDomain: + results[name] = &resource case *AWSElasticsearchDomain: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -196,6 +198,8 @@ func (t *Template) GetAllAWSElasticsearchDomainResources() map[string]*AWSElasti func (t *Template) GetAWSElasticsearchDomainWithName(name string) (*AWSElasticsearchDomain, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSElasticsearchDomain: + return &resource, nil case *AWSElasticsearchDomain: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-emr-cluster.go b/cloudformation/aws-emr-cluster.go index c93e6206fd..7358d55757 100644 --- a/cloudformation/aws-emr-cluster.go +++ b/cloudformation/aws-emr-cluster.go @@ -153,7 +153,7 @@ func (r *AWSEMRCluster) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEMRCluster) MarshalJSON() ([]byte, error) { +func (r AWSEMRCluster) MarshalJSON() ([]byte, error) { type Properties AWSEMRCluster return json.Marshal(&struct { Type string @@ -163,7 +163,7 @@ func (r *AWSEMRCluster) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -208,6 +208,8 @@ func (t *Template) GetAllAWSEMRClusterResources() map[string]*AWSEMRCluster { results := map[string]*AWSEMRCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEMRCluster: + results[name] = &resource case *AWSEMRCluster: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -236,6 +238,8 @@ func (t *Template) GetAllAWSEMRClusterResources() map[string]*AWSEMRCluster { func (t *Template) GetAWSEMRClusterWithName(name string) (*AWSEMRCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEMRCluster: + return &resource, nil case *AWSEMRCluster: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-emr-instancefleetconfig.go b/cloudformation/aws-emr-instancefleetconfig.go index f9e2e4fa76..0e58d372a4 100644 --- a/cloudformation/aws-emr-instancefleetconfig.go +++ b/cloudformation/aws-emr-instancefleetconfig.go @@ -93,7 +93,7 @@ func (r *AWSEMRInstanceFleetConfig) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEMRInstanceFleetConfig) MarshalJSON() ([]byte, error) { +func (r AWSEMRInstanceFleetConfig) MarshalJSON() ([]byte, error) { type Properties AWSEMRInstanceFleetConfig return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSEMRInstanceFleetConfig) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSEMRInstanceFleetConfigResources() map[string]*AWSEMR results := map[string]*AWSEMRInstanceFleetConfig{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEMRInstanceFleetConfig: + results[name] = &resource case *AWSEMRInstanceFleetConfig: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSEMRInstanceFleetConfigResources() map[string]*AWSEMR func (t *Template) GetAWSEMRInstanceFleetConfigWithName(name string) (*AWSEMRInstanceFleetConfig, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEMRInstanceFleetConfig: + return &resource, nil case *AWSEMRInstanceFleetConfig: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-emr-instancegroupconfig.go b/cloudformation/aws-emr-instancegroupconfig.go index e097c06197..c9bb010a57 100644 --- a/cloudformation/aws-emr-instancegroupconfig.go +++ b/cloudformation/aws-emr-instancegroupconfig.go @@ -108,7 +108,7 @@ func (r *AWSEMRInstanceGroupConfig) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEMRInstanceGroupConfig) MarshalJSON() ([]byte, error) { +func (r AWSEMRInstanceGroupConfig) MarshalJSON() ([]byte, error) { type Properties AWSEMRInstanceGroupConfig return json.Marshal(&struct { Type string @@ -118,7 +118,7 @@ func (r *AWSEMRInstanceGroupConfig) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -163,6 +163,8 @@ func (t *Template) GetAllAWSEMRInstanceGroupConfigResources() map[string]*AWSEMR results := map[string]*AWSEMRInstanceGroupConfig{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEMRInstanceGroupConfig: + results[name] = &resource case *AWSEMRInstanceGroupConfig: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -191,6 +193,8 @@ func (t *Template) GetAllAWSEMRInstanceGroupConfigResources() map[string]*AWSEMR func (t *Template) GetAWSEMRInstanceGroupConfigWithName(name string) (*AWSEMRInstanceGroupConfig, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEMRInstanceGroupConfig: + return &resource, nil case *AWSEMRInstanceGroupConfig: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-emr-securityconfiguration.go b/cloudformation/aws-emr-securityconfiguration.go index 76bffda396..585f54f96c 100644 --- a/cloudformation/aws-emr-securityconfiguration.go +++ b/cloudformation/aws-emr-securityconfiguration.go @@ -68,7 +68,7 @@ func (r *AWSEMRSecurityConfiguration) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEMRSecurityConfiguration) MarshalJSON() ([]byte, error) { +func (r AWSEMRSecurityConfiguration) MarshalJSON() ([]byte, error) { type Properties AWSEMRSecurityConfiguration return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSEMRSecurityConfiguration) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSEMRSecurityConfigurationResources() map[string]*AWSE results := map[string]*AWSEMRSecurityConfiguration{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEMRSecurityConfiguration: + results[name] = &resource case *AWSEMRSecurityConfiguration: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSEMRSecurityConfigurationResources() map[string]*AWSE func (t *Template) GetAWSEMRSecurityConfigurationWithName(name string) (*AWSEMRSecurityConfiguration, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEMRSecurityConfiguration: + return &resource, nil case *AWSEMRSecurityConfiguration: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-emr-step.go b/cloudformation/aws-emr-step.go index 96bc0d8870..7bfd07a6bf 100644 --- a/cloudformation/aws-emr-step.go +++ b/cloudformation/aws-emr-step.go @@ -78,7 +78,7 @@ func (r *AWSEMRStep) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEMRStep) MarshalJSON() ([]byte, error) { +func (r AWSEMRStep) MarshalJSON() ([]byte, error) { type Properties AWSEMRStep return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSEMRStep) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSEMRStepResources() map[string]*AWSEMRStep { results := map[string]*AWSEMRStep{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEMRStep: + results[name] = &resource case *AWSEMRStep: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSEMRStepResources() map[string]*AWSEMRStep { func (t *Template) GetAWSEMRStepWithName(name string) (*AWSEMRStep, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEMRStep: + return &resource, nil case *AWSEMRStep: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-events-eventbuspolicy.go b/cloudformation/aws-events-eventbuspolicy.go index 7e34bd0405..69dbb1df9b 100644 --- a/cloudformation/aws-events-eventbuspolicy.go +++ b/cloudformation/aws-events-eventbuspolicy.go @@ -78,7 +78,7 @@ func (r *AWSEventsEventBusPolicy) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEventsEventBusPolicy) MarshalJSON() ([]byte, error) { +func (r AWSEventsEventBusPolicy) MarshalJSON() ([]byte, error) { type Properties AWSEventsEventBusPolicy return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSEventsEventBusPolicy) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSEventsEventBusPolicyResources() map[string]*AWSEvent results := map[string]*AWSEventsEventBusPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEventsEventBusPolicy: + results[name] = &resource case *AWSEventsEventBusPolicy: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSEventsEventBusPolicyResources() map[string]*AWSEvent func (t *Template) GetAWSEventsEventBusPolicyWithName(name string) (*AWSEventsEventBusPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEventsEventBusPolicy: + return &resource, nil case *AWSEventsEventBusPolicy: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-events-rule.go b/cloudformation/aws-events-rule.go index e101290425..4933e76d63 100644 --- a/cloudformation/aws-events-rule.go +++ b/cloudformation/aws-events-rule.go @@ -93,7 +93,7 @@ func (r *AWSEventsRule) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSEventsRule) MarshalJSON() ([]byte, error) { +func (r AWSEventsRule) MarshalJSON() ([]byte, error) { type Properties AWSEventsRule return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSEventsRule) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSEventsRuleResources() map[string]*AWSEventsRule { results := map[string]*AWSEventsRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSEventsRule: + results[name] = &resource case *AWSEventsRule: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSEventsRuleResources() map[string]*AWSEventsRule { func (t *Template) GetAWSEventsRuleWithName(name string) (*AWSEventsRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSEventsRule: + return &resource, nil case *AWSEventsRule: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-fsx-filesystem.go b/cloudformation/aws-fsx-filesystem.go index 628b0b807c..e7acb7046d 100644 --- a/cloudformation/aws-fsx-filesystem.go +++ b/cloudformation/aws-fsx-filesystem.go @@ -103,7 +103,7 @@ func (r *AWSFSxFileSystem) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSFSxFileSystem) MarshalJSON() ([]byte, error) { +func (r AWSFSxFileSystem) MarshalJSON() ([]byte, error) { type Properties AWSFSxFileSystem return json.Marshal(&struct { Type string @@ -113,7 +113,7 @@ func (r *AWSFSxFileSystem) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -158,6 +158,8 @@ func (t *Template) GetAllAWSFSxFileSystemResources() map[string]*AWSFSxFileSyste results := map[string]*AWSFSxFileSystem{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSFSxFileSystem: + results[name] = &resource case *AWSFSxFileSystem: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -186,6 +188,8 @@ func (t *Template) GetAllAWSFSxFileSystemResources() map[string]*AWSFSxFileSyste func (t *Template) GetAWSFSxFileSystemWithName(name string) (*AWSFSxFileSystem, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSFSxFileSystem: + return &resource, nil case *AWSFSxFileSystem: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-gamelift-alias.go b/cloudformation/aws-gamelift-alias.go index 6846affa27..6edd3b8253 100644 --- a/cloudformation/aws-gamelift-alias.go +++ b/cloudformation/aws-gamelift-alias.go @@ -73,7 +73,7 @@ func (r *AWSGameLiftAlias) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSGameLiftAlias) MarshalJSON() ([]byte, error) { +func (r AWSGameLiftAlias) MarshalJSON() ([]byte, error) { type Properties AWSGameLiftAlias return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSGameLiftAlias) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSGameLiftAliasResources() map[string]*AWSGameLiftAlia results := map[string]*AWSGameLiftAlias{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSGameLiftAlias: + results[name] = &resource case *AWSGameLiftAlias: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSGameLiftAliasResources() map[string]*AWSGameLiftAlia func (t *Template) GetAWSGameLiftAliasWithName(name string) (*AWSGameLiftAlias, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSGameLiftAlias: + return &resource, nil case *AWSGameLiftAlias: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-gamelift-build.go b/cloudformation/aws-gamelift-build.go index 7750d4acfc..ae85798cfd 100644 --- a/cloudformation/aws-gamelift-build.go +++ b/cloudformation/aws-gamelift-build.go @@ -73,7 +73,7 @@ func (r *AWSGameLiftBuild) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSGameLiftBuild) MarshalJSON() ([]byte, error) { +func (r AWSGameLiftBuild) MarshalJSON() ([]byte, error) { type Properties AWSGameLiftBuild return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSGameLiftBuild) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSGameLiftBuildResources() map[string]*AWSGameLiftBuil results := map[string]*AWSGameLiftBuild{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSGameLiftBuild: + results[name] = &resource case *AWSGameLiftBuild: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSGameLiftBuildResources() map[string]*AWSGameLiftBuil func (t *Template) GetAWSGameLiftBuildWithName(name string) (*AWSGameLiftBuild, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSGameLiftBuild: + return &resource, nil case *AWSGameLiftBuild: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-gamelift-fleet.go b/cloudformation/aws-gamelift-fleet.go index d181024501..8ddd6c2003 100644 --- a/cloudformation/aws-gamelift-fleet.go +++ b/cloudformation/aws-gamelift-fleet.go @@ -113,7 +113,7 @@ func (r *AWSGameLiftFleet) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSGameLiftFleet) MarshalJSON() ([]byte, error) { +func (r AWSGameLiftFleet) MarshalJSON() ([]byte, error) { type Properties AWSGameLiftFleet return json.Marshal(&struct { Type string @@ -123,7 +123,7 @@ func (r *AWSGameLiftFleet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -168,6 +168,8 @@ func (t *Template) GetAllAWSGameLiftFleetResources() map[string]*AWSGameLiftFlee results := map[string]*AWSGameLiftFleet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSGameLiftFleet: + results[name] = &resource case *AWSGameLiftFleet: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -196,6 +198,8 @@ func (t *Template) GetAllAWSGameLiftFleetResources() map[string]*AWSGameLiftFlee func (t *Template) GetAWSGameLiftFleetWithName(name string) (*AWSGameLiftFleet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSGameLiftFleet: + return &resource, nil case *AWSGameLiftFleet: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-glue-classifier.go b/cloudformation/aws-glue-classifier.go index e01aa004a0..d75db37745 100644 --- a/cloudformation/aws-glue-classifier.go +++ b/cloudformation/aws-glue-classifier.go @@ -73,7 +73,7 @@ func (r *AWSGlueClassifier) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSGlueClassifier) MarshalJSON() ([]byte, error) { +func (r AWSGlueClassifier) MarshalJSON() ([]byte, error) { type Properties AWSGlueClassifier return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSGlueClassifier) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSGlueClassifierResources() map[string]*AWSGlueClassif results := map[string]*AWSGlueClassifier{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSGlueClassifier: + results[name] = &resource case *AWSGlueClassifier: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSGlueClassifierResources() map[string]*AWSGlueClassif func (t *Template) GetAWSGlueClassifierWithName(name string) (*AWSGlueClassifier, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSGlueClassifier: + return &resource, nil case *AWSGlueClassifier: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-glue-connection.go b/cloudformation/aws-glue-connection.go index 05a62aec6c..1b9f2e2ffa 100644 --- a/cloudformation/aws-glue-connection.go +++ b/cloudformation/aws-glue-connection.go @@ -68,7 +68,7 @@ func (r *AWSGlueConnection) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSGlueConnection) MarshalJSON() ([]byte, error) { +func (r AWSGlueConnection) MarshalJSON() ([]byte, error) { type Properties AWSGlueConnection return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSGlueConnection) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSGlueConnectionResources() map[string]*AWSGlueConnect results := map[string]*AWSGlueConnection{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSGlueConnection: + results[name] = &resource case *AWSGlueConnection: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSGlueConnectionResources() map[string]*AWSGlueConnect func (t *Template) GetAWSGlueConnectionWithName(name string) (*AWSGlueConnection, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSGlueConnection: + return &resource, nil case *AWSGlueConnection: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-glue-crawler.go b/cloudformation/aws-glue-crawler.go index d3f8419ac0..9d85e5488a 100644 --- a/cloudformation/aws-glue-crawler.go +++ b/cloudformation/aws-glue-crawler.go @@ -108,7 +108,7 @@ func (r *AWSGlueCrawler) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSGlueCrawler) MarshalJSON() ([]byte, error) { +func (r AWSGlueCrawler) MarshalJSON() ([]byte, error) { type Properties AWSGlueCrawler return json.Marshal(&struct { Type string @@ -118,7 +118,7 @@ func (r *AWSGlueCrawler) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -163,6 +163,8 @@ func (t *Template) GetAllAWSGlueCrawlerResources() map[string]*AWSGlueCrawler { results := map[string]*AWSGlueCrawler{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSGlueCrawler: + results[name] = &resource case *AWSGlueCrawler: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -191,6 +193,8 @@ func (t *Template) GetAllAWSGlueCrawlerResources() map[string]*AWSGlueCrawler { func (t *Template) GetAWSGlueCrawlerWithName(name string) (*AWSGlueCrawler, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSGlueCrawler: + return &resource, nil case *AWSGlueCrawler: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-glue-database.go b/cloudformation/aws-glue-database.go index e494e68ce9..7472678b95 100644 --- a/cloudformation/aws-glue-database.go +++ b/cloudformation/aws-glue-database.go @@ -68,7 +68,7 @@ func (r *AWSGlueDatabase) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSGlueDatabase) MarshalJSON() ([]byte, error) { +func (r AWSGlueDatabase) MarshalJSON() ([]byte, error) { type Properties AWSGlueDatabase return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSGlueDatabase) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSGlueDatabaseResources() map[string]*AWSGlueDatabase results := map[string]*AWSGlueDatabase{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSGlueDatabase: + results[name] = &resource case *AWSGlueDatabase: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSGlueDatabaseResources() map[string]*AWSGlueDatabase func (t *Template) GetAWSGlueDatabaseWithName(name string) (*AWSGlueDatabase, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSGlueDatabase: + return &resource, nil case *AWSGlueDatabase: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-glue-devendpoint.go b/cloudformation/aws-glue-devendpoint.go index 92615480cb..aa450068e2 100644 --- a/cloudformation/aws-glue-devendpoint.go +++ b/cloudformation/aws-glue-devendpoint.go @@ -98,7 +98,7 @@ func (r *AWSGlueDevEndpoint) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSGlueDevEndpoint) MarshalJSON() ([]byte, error) { +func (r AWSGlueDevEndpoint) MarshalJSON() ([]byte, error) { type Properties AWSGlueDevEndpoint return json.Marshal(&struct { Type string @@ -108,7 +108,7 @@ func (r *AWSGlueDevEndpoint) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -153,6 +153,8 @@ func (t *Template) GetAllAWSGlueDevEndpointResources() map[string]*AWSGlueDevEnd results := map[string]*AWSGlueDevEndpoint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSGlueDevEndpoint: + results[name] = &resource case *AWSGlueDevEndpoint: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -181,6 +183,8 @@ func (t *Template) GetAllAWSGlueDevEndpointResources() map[string]*AWSGlueDevEnd func (t *Template) GetAWSGlueDevEndpointWithName(name string) (*AWSGlueDevEndpoint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSGlueDevEndpoint: + return &resource, nil case *AWSGlueDevEndpoint: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-glue-job.go b/cloudformation/aws-glue-job.go index c99b4b92a7..9806196467 100644 --- a/cloudformation/aws-glue-job.go +++ b/cloudformation/aws-glue-job.go @@ -108,7 +108,7 @@ func (r *AWSGlueJob) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSGlueJob) MarshalJSON() ([]byte, error) { +func (r AWSGlueJob) MarshalJSON() ([]byte, error) { type Properties AWSGlueJob return json.Marshal(&struct { Type string @@ -118,7 +118,7 @@ func (r *AWSGlueJob) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -163,6 +163,8 @@ func (t *Template) GetAllAWSGlueJobResources() map[string]*AWSGlueJob { results := map[string]*AWSGlueJob{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSGlueJob: + results[name] = &resource case *AWSGlueJob: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -191,6 +193,8 @@ func (t *Template) GetAllAWSGlueJobResources() map[string]*AWSGlueJob { func (t *Template) GetAWSGlueJobWithName(name string) (*AWSGlueJob, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSGlueJob: + return &resource, nil case *AWSGlueJob: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-glue-partition.go b/cloudformation/aws-glue-partition.go index 1b90500243..bebc4c4c92 100644 --- a/cloudformation/aws-glue-partition.go +++ b/cloudformation/aws-glue-partition.go @@ -78,7 +78,7 @@ func (r *AWSGluePartition) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSGluePartition) MarshalJSON() ([]byte, error) { +func (r AWSGluePartition) MarshalJSON() ([]byte, error) { type Properties AWSGluePartition return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSGluePartition) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSGluePartitionResources() map[string]*AWSGluePartitio results := map[string]*AWSGluePartition{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSGluePartition: + results[name] = &resource case *AWSGluePartition: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSGluePartitionResources() map[string]*AWSGluePartitio func (t *Template) GetAWSGluePartitionWithName(name string) (*AWSGluePartition, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSGluePartition: + return &resource, nil case *AWSGluePartition: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-glue-table.go b/cloudformation/aws-glue-table.go index bda2656c1a..5dab8e8250 100644 --- a/cloudformation/aws-glue-table.go +++ b/cloudformation/aws-glue-table.go @@ -73,7 +73,7 @@ func (r *AWSGlueTable) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSGlueTable) MarshalJSON() ([]byte, error) { +func (r AWSGlueTable) MarshalJSON() ([]byte, error) { type Properties AWSGlueTable return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSGlueTable) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSGlueTableResources() map[string]*AWSGlueTable { results := map[string]*AWSGlueTable{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSGlueTable: + results[name] = &resource case *AWSGlueTable: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSGlueTableResources() map[string]*AWSGlueTable { func (t *Template) GetAWSGlueTableWithName(name string) (*AWSGlueTable, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSGlueTable: + return &resource, nil case *AWSGlueTable: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-glue-trigger.go b/cloudformation/aws-glue-trigger.go index bd830c435c..6943b7b70a 100644 --- a/cloudformation/aws-glue-trigger.go +++ b/cloudformation/aws-glue-trigger.go @@ -88,7 +88,7 @@ func (r *AWSGlueTrigger) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSGlueTrigger) MarshalJSON() ([]byte, error) { +func (r AWSGlueTrigger) MarshalJSON() ([]byte, error) { type Properties AWSGlueTrigger return json.Marshal(&struct { Type string @@ -98,7 +98,7 @@ func (r *AWSGlueTrigger) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -143,6 +143,8 @@ func (t *Template) GetAllAWSGlueTriggerResources() map[string]*AWSGlueTrigger { results := map[string]*AWSGlueTrigger{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSGlueTrigger: + results[name] = &resource case *AWSGlueTrigger: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -171,6 +173,8 @@ func (t *Template) GetAllAWSGlueTriggerResources() map[string]*AWSGlueTrigger { func (t *Template) GetAWSGlueTriggerWithName(name string) (*AWSGlueTrigger, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSGlueTrigger: + return &resource, nil case *AWSGlueTrigger: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-guardduty-detector.go b/cloudformation/aws-guardduty-detector.go index 128caeada8..f94119a677 100644 --- a/cloudformation/aws-guardduty-detector.go +++ b/cloudformation/aws-guardduty-detector.go @@ -68,7 +68,7 @@ func (r *AWSGuardDutyDetector) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSGuardDutyDetector) MarshalJSON() ([]byte, error) { +func (r AWSGuardDutyDetector) MarshalJSON() ([]byte, error) { type Properties AWSGuardDutyDetector return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSGuardDutyDetector) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSGuardDutyDetectorResources() map[string]*AWSGuardDut results := map[string]*AWSGuardDutyDetector{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSGuardDutyDetector: + results[name] = &resource case *AWSGuardDutyDetector: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSGuardDutyDetectorResources() map[string]*AWSGuardDut func (t *Template) GetAWSGuardDutyDetectorWithName(name string) (*AWSGuardDutyDetector, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSGuardDutyDetector: + return &resource, nil case *AWSGuardDutyDetector: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-guardduty-filter.go b/cloudformation/aws-guardduty-filter.go index 6c54a427f9..00daf8e0ad 100644 --- a/cloudformation/aws-guardduty-filter.go +++ b/cloudformation/aws-guardduty-filter.go @@ -88,7 +88,7 @@ func (r *AWSGuardDutyFilter) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSGuardDutyFilter) MarshalJSON() ([]byte, error) { +func (r AWSGuardDutyFilter) MarshalJSON() ([]byte, error) { type Properties AWSGuardDutyFilter return json.Marshal(&struct { Type string @@ -98,7 +98,7 @@ func (r *AWSGuardDutyFilter) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -143,6 +143,8 @@ func (t *Template) GetAllAWSGuardDutyFilterResources() map[string]*AWSGuardDutyF results := map[string]*AWSGuardDutyFilter{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSGuardDutyFilter: + results[name] = &resource case *AWSGuardDutyFilter: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -171,6 +173,8 @@ func (t *Template) GetAllAWSGuardDutyFilterResources() map[string]*AWSGuardDutyF func (t *Template) GetAWSGuardDutyFilterWithName(name string) (*AWSGuardDutyFilter, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSGuardDutyFilter: + return &resource, nil case *AWSGuardDutyFilter: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-guardduty-ipset.go b/cloudformation/aws-guardduty-ipset.go index b551487fe3..feb3645187 100644 --- a/cloudformation/aws-guardduty-ipset.go +++ b/cloudformation/aws-guardduty-ipset.go @@ -83,7 +83,7 @@ func (r *AWSGuardDutyIPSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSGuardDutyIPSet) MarshalJSON() ([]byte, error) { +func (r AWSGuardDutyIPSet) MarshalJSON() ([]byte, error) { type Properties AWSGuardDutyIPSet return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSGuardDutyIPSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSGuardDutyIPSetResources() map[string]*AWSGuardDutyIP results := map[string]*AWSGuardDutyIPSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSGuardDutyIPSet: + results[name] = &resource case *AWSGuardDutyIPSet: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSGuardDutyIPSetResources() map[string]*AWSGuardDutyIP func (t *Template) GetAWSGuardDutyIPSetWithName(name string) (*AWSGuardDutyIPSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSGuardDutyIPSet: + return &resource, nil case *AWSGuardDutyIPSet: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-guardduty-master.go b/cloudformation/aws-guardduty-master.go index b93c7f5a7c..d80434514f 100644 --- a/cloudformation/aws-guardduty-master.go +++ b/cloudformation/aws-guardduty-master.go @@ -73,7 +73,7 @@ func (r *AWSGuardDutyMaster) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSGuardDutyMaster) MarshalJSON() ([]byte, error) { +func (r AWSGuardDutyMaster) MarshalJSON() ([]byte, error) { type Properties AWSGuardDutyMaster return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSGuardDutyMaster) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSGuardDutyMasterResources() map[string]*AWSGuardDutyM results := map[string]*AWSGuardDutyMaster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSGuardDutyMaster: + results[name] = &resource case *AWSGuardDutyMaster: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSGuardDutyMasterResources() map[string]*AWSGuardDutyM func (t *Template) GetAWSGuardDutyMasterWithName(name string) (*AWSGuardDutyMaster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSGuardDutyMaster: + return &resource, nil case *AWSGuardDutyMaster: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-guardduty-member.go b/cloudformation/aws-guardduty-member.go index 503bc55dcc..969edefc48 100644 --- a/cloudformation/aws-guardduty-member.go +++ b/cloudformation/aws-guardduty-member.go @@ -88,7 +88,7 @@ func (r *AWSGuardDutyMember) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSGuardDutyMember) MarshalJSON() ([]byte, error) { +func (r AWSGuardDutyMember) MarshalJSON() ([]byte, error) { type Properties AWSGuardDutyMember return json.Marshal(&struct { Type string @@ -98,7 +98,7 @@ func (r *AWSGuardDutyMember) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -143,6 +143,8 @@ func (t *Template) GetAllAWSGuardDutyMemberResources() map[string]*AWSGuardDutyM results := map[string]*AWSGuardDutyMember{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSGuardDutyMember: + results[name] = &resource case *AWSGuardDutyMember: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -171,6 +173,8 @@ func (t *Template) GetAllAWSGuardDutyMemberResources() map[string]*AWSGuardDutyM func (t *Template) GetAWSGuardDutyMemberWithName(name string) (*AWSGuardDutyMember, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSGuardDutyMember: + return &resource, nil case *AWSGuardDutyMember: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-guardduty-threatintelset.go b/cloudformation/aws-guardduty-threatintelset.go index b536f5ac91..ed296d4b8e 100644 --- a/cloudformation/aws-guardduty-threatintelset.go +++ b/cloudformation/aws-guardduty-threatintelset.go @@ -83,7 +83,7 @@ func (r *AWSGuardDutyThreatIntelSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSGuardDutyThreatIntelSet) MarshalJSON() ([]byte, error) { +func (r AWSGuardDutyThreatIntelSet) MarshalJSON() ([]byte, error) { type Properties AWSGuardDutyThreatIntelSet return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSGuardDutyThreatIntelSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSGuardDutyThreatIntelSetResources() map[string]*AWSGu results := map[string]*AWSGuardDutyThreatIntelSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSGuardDutyThreatIntelSet: + results[name] = &resource case *AWSGuardDutyThreatIntelSet: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSGuardDutyThreatIntelSetResources() map[string]*AWSGu func (t *Template) GetAWSGuardDutyThreatIntelSetWithName(name string) (*AWSGuardDutyThreatIntelSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSGuardDutyThreatIntelSet: + return &resource, nil case *AWSGuardDutyThreatIntelSet: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-iam-accesskey.go b/cloudformation/aws-iam-accesskey.go index af72b1024e..1827aa0bff 100644 --- a/cloudformation/aws-iam-accesskey.go +++ b/cloudformation/aws-iam-accesskey.go @@ -73,7 +73,7 @@ func (r *AWSIAMAccessKey) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSIAMAccessKey) MarshalJSON() ([]byte, error) { +func (r AWSIAMAccessKey) MarshalJSON() ([]byte, error) { type Properties AWSIAMAccessKey return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSIAMAccessKey) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSIAMAccessKeyResources() map[string]*AWSIAMAccessKey results := map[string]*AWSIAMAccessKey{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSIAMAccessKey: + results[name] = &resource case *AWSIAMAccessKey: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSIAMAccessKeyResources() map[string]*AWSIAMAccessKey func (t *Template) GetAWSIAMAccessKeyWithName(name string) (*AWSIAMAccessKey, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSIAMAccessKey: + return &resource, nil case *AWSIAMAccessKey: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-iam-group.go b/cloudformation/aws-iam-group.go index d94308f93f..39ca4bfcbc 100644 --- a/cloudformation/aws-iam-group.go +++ b/cloudformation/aws-iam-group.go @@ -78,7 +78,7 @@ func (r *AWSIAMGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSIAMGroup) MarshalJSON() ([]byte, error) { +func (r AWSIAMGroup) MarshalJSON() ([]byte, error) { type Properties AWSIAMGroup return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSIAMGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSIAMGroupResources() map[string]*AWSIAMGroup { results := map[string]*AWSIAMGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSIAMGroup: + results[name] = &resource case *AWSIAMGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSIAMGroupResources() map[string]*AWSIAMGroup { func (t *Template) GetAWSIAMGroupWithName(name string) (*AWSIAMGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSIAMGroup: + return &resource, nil case *AWSIAMGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-iam-instanceprofile.go b/cloudformation/aws-iam-instanceprofile.go index ab978fa6b7..c0d63ebb54 100644 --- a/cloudformation/aws-iam-instanceprofile.go +++ b/cloudformation/aws-iam-instanceprofile.go @@ -73,7 +73,7 @@ func (r *AWSIAMInstanceProfile) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSIAMInstanceProfile) MarshalJSON() ([]byte, error) { +func (r AWSIAMInstanceProfile) MarshalJSON() ([]byte, error) { type Properties AWSIAMInstanceProfile return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSIAMInstanceProfile) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSIAMInstanceProfileResources() map[string]*AWSIAMInst results := map[string]*AWSIAMInstanceProfile{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSIAMInstanceProfile: + results[name] = &resource case *AWSIAMInstanceProfile: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSIAMInstanceProfileResources() map[string]*AWSIAMInst func (t *Template) GetAWSIAMInstanceProfileWithName(name string) (*AWSIAMInstanceProfile, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSIAMInstanceProfile: + return &resource, nil case *AWSIAMInstanceProfile: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-iam-managedpolicy.go b/cloudformation/aws-iam-managedpolicy.go index 0c9c188dcc..d091068988 100644 --- a/cloudformation/aws-iam-managedpolicy.go +++ b/cloudformation/aws-iam-managedpolicy.go @@ -93,7 +93,7 @@ func (r *AWSIAMManagedPolicy) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSIAMManagedPolicy) MarshalJSON() ([]byte, error) { +func (r AWSIAMManagedPolicy) MarshalJSON() ([]byte, error) { type Properties AWSIAMManagedPolicy return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSIAMManagedPolicy) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSIAMManagedPolicyResources() map[string]*AWSIAMManage results := map[string]*AWSIAMManagedPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSIAMManagedPolicy: + results[name] = &resource case *AWSIAMManagedPolicy: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSIAMManagedPolicyResources() map[string]*AWSIAMManage func (t *Template) GetAWSIAMManagedPolicyWithName(name string) (*AWSIAMManagedPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSIAMManagedPolicy: + return &resource, nil case *AWSIAMManagedPolicy: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-iam-policy.go b/cloudformation/aws-iam-policy.go index c42e23ab5f..dc8fd318b6 100644 --- a/cloudformation/aws-iam-policy.go +++ b/cloudformation/aws-iam-policy.go @@ -83,7 +83,7 @@ func (r *AWSIAMPolicy) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSIAMPolicy) MarshalJSON() ([]byte, error) { +func (r AWSIAMPolicy) MarshalJSON() ([]byte, error) { type Properties AWSIAMPolicy return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSIAMPolicy) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSIAMPolicyResources() map[string]*AWSIAMPolicy { results := map[string]*AWSIAMPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSIAMPolicy: + results[name] = &resource case *AWSIAMPolicy: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSIAMPolicyResources() map[string]*AWSIAMPolicy { func (t *Template) GetAWSIAMPolicyWithName(name string) (*AWSIAMPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSIAMPolicy: + return &resource, nil case *AWSIAMPolicy: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-iam-role.go b/cloudformation/aws-iam-role.go index bf69c9eb71..abe9ced655 100644 --- a/cloudformation/aws-iam-role.go +++ b/cloudformation/aws-iam-role.go @@ -93,7 +93,7 @@ func (r *AWSIAMRole) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSIAMRole) MarshalJSON() ([]byte, error) { +func (r AWSIAMRole) MarshalJSON() ([]byte, error) { type Properties AWSIAMRole return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSIAMRole) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSIAMRoleResources() map[string]*AWSIAMRole { results := map[string]*AWSIAMRole{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSIAMRole: + results[name] = &resource case *AWSIAMRole: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSIAMRoleResources() map[string]*AWSIAMRole { func (t *Template) GetAWSIAMRoleWithName(name string) (*AWSIAMRole, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSIAMRole: + return &resource, nil case *AWSIAMRole: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-iam-servicelinkedrole.go b/cloudformation/aws-iam-servicelinkedrole.go index 3cabd272b6..5c3623601e 100644 --- a/cloudformation/aws-iam-servicelinkedrole.go +++ b/cloudformation/aws-iam-servicelinkedrole.go @@ -73,7 +73,7 @@ func (r *AWSIAMServiceLinkedRole) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSIAMServiceLinkedRole) MarshalJSON() ([]byte, error) { +func (r AWSIAMServiceLinkedRole) MarshalJSON() ([]byte, error) { type Properties AWSIAMServiceLinkedRole return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSIAMServiceLinkedRole) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSIAMServiceLinkedRoleResources() map[string]*AWSIAMSe results := map[string]*AWSIAMServiceLinkedRole{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSIAMServiceLinkedRole: + results[name] = &resource case *AWSIAMServiceLinkedRole: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSIAMServiceLinkedRoleResources() map[string]*AWSIAMSe func (t *Template) GetAWSIAMServiceLinkedRoleWithName(name string) (*AWSIAMServiceLinkedRole, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSIAMServiceLinkedRole: + return &resource, nil case *AWSIAMServiceLinkedRole: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-iam-user.go b/cloudformation/aws-iam-user.go index b91a867cb5..9e5423e75d 100644 --- a/cloudformation/aws-iam-user.go +++ b/cloudformation/aws-iam-user.go @@ -93,7 +93,7 @@ func (r *AWSIAMUser) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSIAMUser) MarshalJSON() ([]byte, error) { +func (r AWSIAMUser) MarshalJSON() ([]byte, error) { type Properties AWSIAMUser return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSIAMUser) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSIAMUserResources() map[string]*AWSIAMUser { results := map[string]*AWSIAMUser{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSIAMUser: + results[name] = &resource case *AWSIAMUser: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSIAMUserResources() map[string]*AWSIAMUser { func (t *Template) GetAWSIAMUserWithName(name string) (*AWSIAMUser, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSIAMUser: + return &resource, nil case *AWSIAMUser: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-iam-usertogroupaddition.go b/cloudformation/aws-iam-usertogroupaddition.go index 5ad12bbdb2..22600827c7 100644 --- a/cloudformation/aws-iam-usertogroupaddition.go +++ b/cloudformation/aws-iam-usertogroupaddition.go @@ -68,7 +68,7 @@ func (r *AWSIAMUserToGroupAddition) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSIAMUserToGroupAddition) MarshalJSON() ([]byte, error) { +func (r AWSIAMUserToGroupAddition) MarshalJSON() ([]byte, error) { type Properties AWSIAMUserToGroupAddition return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSIAMUserToGroupAddition) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSIAMUserToGroupAdditionResources() map[string]*AWSIAM results := map[string]*AWSIAMUserToGroupAddition{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSIAMUserToGroupAddition: + results[name] = &resource case *AWSIAMUserToGroupAddition: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSIAMUserToGroupAdditionResources() map[string]*AWSIAM func (t *Template) GetAWSIAMUserToGroupAdditionWithName(name string) (*AWSIAMUserToGroupAddition, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSIAMUserToGroupAddition: + return &resource, nil case *AWSIAMUserToGroupAddition: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-inspector-assessmenttarget.go b/cloudformation/aws-inspector-assessmenttarget.go index 9774d65a7e..3b3ef088fe 100644 --- a/cloudformation/aws-inspector-assessmenttarget.go +++ b/cloudformation/aws-inspector-assessmenttarget.go @@ -68,7 +68,7 @@ func (r *AWSInspectorAssessmentTarget) SetDeletionPolicy(policy DeletionPolicy) // 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 *AWSInspectorAssessmentTarget) MarshalJSON() ([]byte, error) { +func (r AWSInspectorAssessmentTarget) MarshalJSON() ([]byte, error) { type Properties AWSInspectorAssessmentTarget return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSInspectorAssessmentTarget) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSInspectorAssessmentTargetResources() map[string]*AWS results := map[string]*AWSInspectorAssessmentTarget{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSInspectorAssessmentTarget: + results[name] = &resource case *AWSInspectorAssessmentTarget: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSInspectorAssessmentTargetResources() map[string]*AWS func (t *Template) GetAWSInspectorAssessmentTargetWithName(name string) (*AWSInspectorAssessmentTarget, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSInspectorAssessmentTarget: + return &resource, nil case *AWSInspectorAssessmentTarget: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-inspector-assessmenttemplate.go b/cloudformation/aws-inspector-assessmenttemplate.go index be7e2392c4..9b99cc0168 100644 --- a/cloudformation/aws-inspector-assessmenttemplate.go +++ b/cloudformation/aws-inspector-assessmenttemplate.go @@ -83,7 +83,7 @@ func (r *AWSInspectorAssessmentTemplate) SetDeletionPolicy(policy DeletionPolicy // 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 *AWSInspectorAssessmentTemplate) MarshalJSON() ([]byte, error) { +func (r AWSInspectorAssessmentTemplate) MarshalJSON() ([]byte, error) { type Properties AWSInspectorAssessmentTemplate return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSInspectorAssessmentTemplate) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSInspectorAssessmentTemplateResources() map[string]*A results := map[string]*AWSInspectorAssessmentTemplate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSInspectorAssessmentTemplate: + results[name] = &resource case *AWSInspectorAssessmentTemplate: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSInspectorAssessmentTemplateResources() map[string]*A func (t *Template) GetAWSInspectorAssessmentTemplateWithName(name string) (*AWSInspectorAssessmentTemplate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSInspectorAssessmentTemplate: + return &resource, nil case *AWSInspectorAssessmentTemplate: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-inspector-resourcegroup.go b/cloudformation/aws-inspector-resourcegroup.go index 79bffb2391..33548c4405 100644 --- a/cloudformation/aws-inspector-resourcegroup.go +++ b/cloudformation/aws-inspector-resourcegroup.go @@ -63,7 +63,7 @@ func (r *AWSInspectorResourceGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSInspectorResourceGroup) MarshalJSON() ([]byte, error) { +func (r AWSInspectorResourceGroup) MarshalJSON() ([]byte, error) { type Properties AWSInspectorResourceGroup return json.Marshal(&struct { Type string @@ -73,7 +73,7 @@ func (r *AWSInspectorResourceGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -118,6 +118,8 @@ func (t *Template) GetAllAWSInspectorResourceGroupResources() map[string]*AWSIns results := map[string]*AWSInspectorResourceGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSInspectorResourceGroup: + results[name] = &resource case *AWSInspectorResourceGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -146,6 +148,8 @@ func (t *Template) GetAllAWSInspectorResourceGroupResources() map[string]*AWSIns func (t *Template) GetAWSInspectorResourceGroupWithName(name string) (*AWSInspectorResourceGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSInspectorResourceGroup: + return &resource, nil case *AWSInspectorResourceGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-iot-certificate.go b/cloudformation/aws-iot-certificate.go index 4b8e9ef8e8..58dd7769ca 100644 --- a/cloudformation/aws-iot-certificate.go +++ b/cloudformation/aws-iot-certificate.go @@ -68,7 +68,7 @@ func (r *AWSIoTCertificate) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSIoTCertificate) MarshalJSON() ([]byte, error) { +func (r AWSIoTCertificate) MarshalJSON() ([]byte, error) { type Properties AWSIoTCertificate return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSIoTCertificate) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSIoTCertificateResources() map[string]*AWSIoTCertific results := map[string]*AWSIoTCertificate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSIoTCertificate: + results[name] = &resource case *AWSIoTCertificate: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSIoTCertificateResources() map[string]*AWSIoTCertific func (t *Template) GetAWSIoTCertificateWithName(name string) (*AWSIoTCertificate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSIoTCertificate: + return &resource, nil case *AWSIoTCertificate: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-iot-policy.go b/cloudformation/aws-iot-policy.go index af28f607df..a0645d869e 100644 --- a/cloudformation/aws-iot-policy.go +++ b/cloudformation/aws-iot-policy.go @@ -68,7 +68,7 @@ func (r *AWSIoTPolicy) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSIoTPolicy) MarshalJSON() ([]byte, error) { +func (r AWSIoTPolicy) MarshalJSON() ([]byte, error) { type Properties AWSIoTPolicy return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSIoTPolicy) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSIoTPolicyResources() map[string]*AWSIoTPolicy { results := map[string]*AWSIoTPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSIoTPolicy: + results[name] = &resource case *AWSIoTPolicy: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSIoTPolicyResources() map[string]*AWSIoTPolicy { func (t *Template) GetAWSIoTPolicyWithName(name string) (*AWSIoTPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSIoTPolicy: + return &resource, nil case *AWSIoTPolicy: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-iot-policyprincipalattachment.go b/cloudformation/aws-iot-policyprincipalattachment.go index de9ffdb40b..230be36f24 100644 --- a/cloudformation/aws-iot-policyprincipalattachment.go +++ b/cloudformation/aws-iot-policyprincipalattachment.go @@ -68,7 +68,7 @@ func (r *AWSIoTPolicyPrincipalAttachment) SetDeletionPolicy(policy DeletionPolic // 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 *AWSIoTPolicyPrincipalAttachment) MarshalJSON() ([]byte, error) { +func (r AWSIoTPolicyPrincipalAttachment) MarshalJSON() ([]byte, error) { type Properties AWSIoTPolicyPrincipalAttachment return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSIoTPolicyPrincipalAttachment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSIoTPolicyPrincipalAttachmentResources() map[string]* results := map[string]*AWSIoTPolicyPrincipalAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSIoTPolicyPrincipalAttachment: + results[name] = &resource case *AWSIoTPolicyPrincipalAttachment: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSIoTPolicyPrincipalAttachmentResources() map[string]* func (t *Template) GetAWSIoTPolicyPrincipalAttachmentWithName(name string) (*AWSIoTPolicyPrincipalAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSIoTPolicyPrincipalAttachment: + return &resource, nil case *AWSIoTPolicyPrincipalAttachment: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-iot-thing.go b/cloudformation/aws-iot-thing.go index 9e08baea9b..a06cda7b57 100644 --- a/cloudformation/aws-iot-thing.go +++ b/cloudformation/aws-iot-thing.go @@ -68,7 +68,7 @@ func (r *AWSIoTThing) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSIoTThing) MarshalJSON() ([]byte, error) { +func (r AWSIoTThing) MarshalJSON() ([]byte, error) { type Properties AWSIoTThing return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSIoTThing) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSIoTThingResources() map[string]*AWSIoTThing { results := map[string]*AWSIoTThing{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSIoTThing: + results[name] = &resource case *AWSIoTThing: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSIoTThingResources() map[string]*AWSIoTThing { func (t *Template) GetAWSIoTThingWithName(name string) (*AWSIoTThing, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSIoTThing: + return &resource, nil case *AWSIoTThing: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-iot-thingprincipalattachment.go b/cloudformation/aws-iot-thingprincipalattachment.go index f37ee96033..df49e28af5 100644 --- a/cloudformation/aws-iot-thingprincipalattachment.go +++ b/cloudformation/aws-iot-thingprincipalattachment.go @@ -68,7 +68,7 @@ func (r *AWSIoTThingPrincipalAttachment) SetDeletionPolicy(policy DeletionPolicy // 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 *AWSIoTThingPrincipalAttachment) MarshalJSON() ([]byte, error) { +func (r AWSIoTThingPrincipalAttachment) MarshalJSON() ([]byte, error) { type Properties AWSIoTThingPrincipalAttachment return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSIoTThingPrincipalAttachment) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSIoTThingPrincipalAttachmentResources() map[string]*A results := map[string]*AWSIoTThingPrincipalAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSIoTThingPrincipalAttachment: + results[name] = &resource case *AWSIoTThingPrincipalAttachment: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSIoTThingPrincipalAttachmentResources() map[string]*A func (t *Template) GetAWSIoTThingPrincipalAttachmentWithName(name string) (*AWSIoTThingPrincipalAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSIoTThingPrincipalAttachment: + return &resource, nil case *AWSIoTThingPrincipalAttachment: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-iot-topicrule.go b/cloudformation/aws-iot-topicrule.go index 20a463ae46..518d162713 100644 --- a/cloudformation/aws-iot-topicrule.go +++ b/cloudformation/aws-iot-topicrule.go @@ -68,7 +68,7 @@ func (r *AWSIoTTopicRule) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSIoTTopicRule) MarshalJSON() ([]byte, error) { +func (r AWSIoTTopicRule) MarshalJSON() ([]byte, error) { type Properties AWSIoTTopicRule return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSIoTTopicRule) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSIoTTopicRuleResources() map[string]*AWSIoTTopicRule results := map[string]*AWSIoTTopicRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSIoTTopicRule: + results[name] = &resource case *AWSIoTTopicRule: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSIoTTopicRuleResources() map[string]*AWSIoTTopicRule func (t *Template) GetAWSIoTTopicRuleWithName(name string) (*AWSIoTTopicRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSIoTTopicRule: + return &resource, nil case *AWSIoTTopicRule: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-iot1click-device.go b/cloudformation/aws-iot1click-device.go index f14d949c23..df9f5c11f0 100644 --- a/cloudformation/aws-iot1click-device.go +++ b/cloudformation/aws-iot1click-device.go @@ -68,7 +68,7 @@ func (r *AWSIoT1ClickDevice) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSIoT1ClickDevice) MarshalJSON() ([]byte, error) { +func (r AWSIoT1ClickDevice) MarshalJSON() ([]byte, error) { type Properties AWSIoT1ClickDevice return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSIoT1ClickDevice) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSIoT1ClickDeviceResources() map[string]*AWSIoT1ClickD results := map[string]*AWSIoT1ClickDevice{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSIoT1ClickDevice: + results[name] = &resource case *AWSIoT1ClickDevice: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSIoT1ClickDeviceResources() map[string]*AWSIoT1ClickD func (t *Template) GetAWSIoT1ClickDeviceWithName(name string) (*AWSIoT1ClickDevice, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSIoT1ClickDevice: + return &resource, nil case *AWSIoT1ClickDevice: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-iot1click-placement.go b/cloudformation/aws-iot1click-placement.go index 87ee91dd9d..4dd92239af 100644 --- a/cloudformation/aws-iot1click-placement.go +++ b/cloudformation/aws-iot1click-placement.go @@ -78,7 +78,7 @@ func (r *AWSIoT1ClickPlacement) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSIoT1ClickPlacement) MarshalJSON() ([]byte, error) { +func (r AWSIoT1ClickPlacement) MarshalJSON() ([]byte, error) { type Properties AWSIoT1ClickPlacement return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSIoT1ClickPlacement) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSIoT1ClickPlacementResources() map[string]*AWSIoT1Cli results := map[string]*AWSIoT1ClickPlacement{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSIoT1ClickPlacement: + results[name] = &resource case *AWSIoT1ClickPlacement: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSIoT1ClickPlacementResources() map[string]*AWSIoT1Cli func (t *Template) GetAWSIoT1ClickPlacementWithName(name string) (*AWSIoT1ClickPlacement, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSIoT1ClickPlacement: + return &resource, nil case *AWSIoT1ClickPlacement: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-iot1click-project.go b/cloudformation/aws-iot1click-project.go index 04c1385e4d..3b2a98a269 100644 --- a/cloudformation/aws-iot1click-project.go +++ b/cloudformation/aws-iot1click-project.go @@ -73,7 +73,7 @@ func (r *AWSIoT1ClickProject) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSIoT1ClickProject) MarshalJSON() ([]byte, error) { +func (r AWSIoT1ClickProject) MarshalJSON() ([]byte, error) { type Properties AWSIoT1ClickProject return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSIoT1ClickProject) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSIoT1ClickProjectResources() map[string]*AWSIoT1Click results := map[string]*AWSIoT1ClickProject{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSIoT1ClickProject: + results[name] = &resource case *AWSIoT1ClickProject: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSIoT1ClickProjectResources() map[string]*AWSIoT1Click func (t *Template) GetAWSIoT1ClickProjectWithName(name string) (*AWSIoT1ClickProject, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSIoT1ClickProject: + return &resource, nil case *AWSIoT1ClickProject: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-iotanalytics-channel.go b/cloudformation/aws-iotanalytics-channel.go index fb35973f50..852172a190 100644 --- a/cloudformation/aws-iotanalytics-channel.go +++ b/cloudformation/aws-iotanalytics-channel.go @@ -73,7 +73,7 @@ func (r *AWSIoTAnalyticsChannel) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSIoTAnalyticsChannel) MarshalJSON() ([]byte, error) { +func (r AWSIoTAnalyticsChannel) MarshalJSON() ([]byte, error) { type Properties AWSIoTAnalyticsChannel return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSIoTAnalyticsChannel) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSIoTAnalyticsChannelResources() map[string]*AWSIoTAna results := map[string]*AWSIoTAnalyticsChannel{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSIoTAnalyticsChannel: + results[name] = &resource case *AWSIoTAnalyticsChannel: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSIoTAnalyticsChannelResources() map[string]*AWSIoTAna func (t *Template) GetAWSIoTAnalyticsChannelWithName(name string) (*AWSIoTAnalyticsChannel, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSIoTAnalyticsChannel: + return &resource, nil case *AWSIoTAnalyticsChannel: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-iotanalytics-dataset.go b/cloudformation/aws-iotanalytics-dataset.go index 02ac974072..ee19fba5f3 100644 --- a/cloudformation/aws-iotanalytics-dataset.go +++ b/cloudformation/aws-iotanalytics-dataset.go @@ -83,7 +83,7 @@ func (r *AWSIoTAnalyticsDataset) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSIoTAnalyticsDataset) MarshalJSON() ([]byte, error) { +func (r AWSIoTAnalyticsDataset) MarshalJSON() ([]byte, error) { type Properties AWSIoTAnalyticsDataset return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSIoTAnalyticsDataset) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSIoTAnalyticsDatasetResources() map[string]*AWSIoTAna results := map[string]*AWSIoTAnalyticsDataset{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSIoTAnalyticsDataset: + results[name] = &resource case *AWSIoTAnalyticsDataset: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSIoTAnalyticsDatasetResources() map[string]*AWSIoTAna func (t *Template) GetAWSIoTAnalyticsDatasetWithName(name string) (*AWSIoTAnalyticsDataset, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSIoTAnalyticsDataset: + return &resource, nil case *AWSIoTAnalyticsDataset: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-iotanalytics-datastore.go b/cloudformation/aws-iotanalytics-datastore.go index 7c8be7440d..d3f29aa12a 100644 --- a/cloudformation/aws-iotanalytics-datastore.go +++ b/cloudformation/aws-iotanalytics-datastore.go @@ -73,7 +73,7 @@ func (r *AWSIoTAnalyticsDatastore) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSIoTAnalyticsDatastore) MarshalJSON() ([]byte, error) { +func (r AWSIoTAnalyticsDatastore) MarshalJSON() ([]byte, error) { type Properties AWSIoTAnalyticsDatastore return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSIoTAnalyticsDatastore) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSIoTAnalyticsDatastoreResources() map[string]*AWSIoTA results := map[string]*AWSIoTAnalyticsDatastore{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSIoTAnalyticsDatastore: + results[name] = &resource case *AWSIoTAnalyticsDatastore: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSIoTAnalyticsDatastoreResources() map[string]*AWSIoTA func (t *Template) GetAWSIoTAnalyticsDatastoreWithName(name string) (*AWSIoTAnalyticsDatastore, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSIoTAnalyticsDatastore: + return &resource, nil case *AWSIoTAnalyticsDatastore: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-iotanalytics-pipeline.go b/cloudformation/aws-iotanalytics-pipeline.go index 3c9beffde1..b5e587a39f 100644 --- a/cloudformation/aws-iotanalytics-pipeline.go +++ b/cloudformation/aws-iotanalytics-pipeline.go @@ -73,7 +73,7 @@ func (r *AWSIoTAnalyticsPipeline) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSIoTAnalyticsPipeline) MarshalJSON() ([]byte, error) { +func (r AWSIoTAnalyticsPipeline) MarshalJSON() ([]byte, error) { type Properties AWSIoTAnalyticsPipeline return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSIoTAnalyticsPipeline) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSIoTAnalyticsPipelineResources() map[string]*AWSIoTAn results := map[string]*AWSIoTAnalyticsPipeline{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSIoTAnalyticsPipeline: + results[name] = &resource case *AWSIoTAnalyticsPipeline: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSIoTAnalyticsPipelineResources() map[string]*AWSIoTAn func (t *Template) GetAWSIoTAnalyticsPipelineWithName(name string) (*AWSIoTAnalyticsPipeline, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSIoTAnalyticsPipeline: + return &resource, nil case *AWSIoTAnalyticsPipeline: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-kinesis-stream.go b/cloudformation/aws-kinesis-stream.go index cfa83dd9fd..7b4d473045 100644 --- a/cloudformation/aws-kinesis-stream.go +++ b/cloudformation/aws-kinesis-stream.go @@ -83,7 +83,7 @@ func (r *AWSKinesisStream) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSKinesisStream) MarshalJSON() ([]byte, error) { +func (r AWSKinesisStream) MarshalJSON() ([]byte, error) { type Properties AWSKinesisStream return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSKinesisStream) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSKinesisStreamResources() map[string]*AWSKinesisStrea results := map[string]*AWSKinesisStream{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSKinesisStream: + results[name] = &resource case *AWSKinesisStream: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSKinesisStreamResources() map[string]*AWSKinesisStrea func (t *Template) GetAWSKinesisStreamWithName(name string) (*AWSKinesisStream, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSKinesisStream: + return &resource, nil case *AWSKinesisStream: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-kinesis-streamconsumer.go b/cloudformation/aws-kinesis-streamconsumer.go index 571c73a7c8..0e5126e514 100644 --- a/cloudformation/aws-kinesis-streamconsumer.go +++ b/cloudformation/aws-kinesis-streamconsumer.go @@ -68,7 +68,7 @@ func (r *AWSKinesisStreamConsumer) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSKinesisStreamConsumer) MarshalJSON() ([]byte, error) { +func (r AWSKinesisStreamConsumer) MarshalJSON() ([]byte, error) { type Properties AWSKinesisStreamConsumer return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSKinesisStreamConsumer) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSKinesisStreamConsumerResources() map[string]*AWSKine results := map[string]*AWSKinesisStreamConsumer{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSKinesisStreamConsumer: + results[name] = &resource case *AWSKinesisStreamConsumer: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSKinesisStreamConsumerResources() map[string]*AWSKine func (t *Template) GetAWSKinesisStreamConsumerWithName(name string) (*AWSKinesisStreamConsumer, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSKinesisStreamConsumer: + return &resource, nil case *AWSKinesisStreamConsumer: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-kinesisanalytics-application.go b/cloudformation/aws-kinesisanalytics-application.go index cc288b719a..5958738622 100644 --- a/cloudformation/aws-kinesisanalytics-application.go +++ b/cloudformation/aws-kinesisanalytics-application.go @@ -78,7 +78,7 @@ func (r *AWSKinesisAnalyticsApplication) SetDeletionPolicy(policy DeletionPolicy // 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 *AWSKinesisAnalyticsApplication) MarshalJSON() ([]byte, error) { +func (r AWSKinesisAnalyticsApplication) MarshalJSON() ([]byte, error) { type Properties AWSKinesisAnalyticsApplication return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSKinesisAnalyticsApplication) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSKinesisAnalyticsApplicationResources() map[string]*A results := map[string]*AWSKinesisAnalyticsApplication{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSKinesisAnalyticsApplication: + results[name] = &resource case *AWSKinesisAnalyticsApplication: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSKinesisAnalyticsApplicationResources() map[string]*A func (t *Template) GetAWSKinesisAnalyticsApplicationWithName(name string) (*AWSKinesisAnalyticsApplication, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSKinesisAnalyticsApplication: + return &resource, nil case *AWSKinesisAnalyticsApplication: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-kinesisanalytics-applicationoutput.go b/cloudformation/aws-kinesisanalytics-applicationoutput.go index 072a764f52..d9eea17b44 100644 --- a/cloudformation/aws-kinesisanalytics-applicationoutput.go +++ b/cloudformation/aws-kinesisanalytics-applicationoutput.go @@ -68,7 +68,7 @@ func (r *AWSKinesisAnalyticsApplicationOutput) SetDeletionPolicy(policy Deletion // 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 *AWSKinesisAnalyticsApplicationOutput) MarshalJSON() ([]byte, error) { +func (r AWSKinesisAnalyticsApplicationOutput) MarshalJSON() ([]byte, error) { type Properties AWSKinesisAnalyticsApplicationOutput return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSKinesisAnalyticsApplicationOutput) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSKinesisAnalyticsApplicationOutputResources() map[str results := map[string]*AWSKinesisAnalyticsApplicationOutput{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSKinesisAnalyticsApplicationOutput: + results[name] = &resource case *AWSKinesisAnalyticsApplicationOutput: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSKinesisAnalyticsApplicationOutputResources() map[str func (t *Template) GetAWSKinesisAnalyticsApplicationOutputWithName(name string) (*AWSKinesisAnalyticsApplicationOutput, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSKinesisAnalyticsApplicationOutput: + return &resource, nil case *AWSKinesisAnalyticsApplicationOutput: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource.go b/cloudformation/aws-kinesisanalytics-applicationreferencedatasource.go index 62ab48ba58..c99bdc0ff6 100644 --- a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource.go +++ b/cloudformation/aws-kinesisanalytics-applicationreferencedatasource.go @@ -68,7 +68,7 @@ func (r *AWSKinesisAnalyticsApplicationReferenceDataSource) SetDeletionPolicy(po // 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 *AWSKinesisAnalyticsApplicationReferenceDataSource) MarshalJSON() ([]byte, error) { +func (r AWSKinesisAnalyticsApplicationReferenceDataSource) MarshalJSON() ([]byte, error) { type Properties AWSKinesisAnalyticsApplicationReferenceDataSource return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSKinesisAnalyticsApplicationReferenceDataSource) MarshalJSON() ([]byt DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSKinesisAnalyticsApplicationReferenceDataSourceResour results := map[string]*AWSKinesisAnalyticsApplicationReferenceDataSource{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSKinesisAnalyticsApplicationReferenceDataSource: + results[name] = &resource case *AWSKinesisAnalyticsApplicationReferenceDataSource: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSKinesisAnalyticsApplicationReferenceDataSourceResour func (t *Template) GetAWSKinesisAnalyticsApplicationReferenceDataSourceWithName(name string) (*AWSKinesisAnalyticsApplicationReferenceDataSource, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSKinesisAnalyticsApplicationReferenceDataSource: + return &resource, nil case *AWSKinesisAnalyticsApplicationReferenceDataSource: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-kinesisanalyticsv2-application.go b/cloudformation/aws-kinesisanalyticsv2-application.go index 3640806312..7d5641422a 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application.go +++ b/cloudformation/aws-kinesisanalyticsv2-application.go @@ -83,7 +83,7 @@ func (r *AWSKinesisAnalyticsV2Application) SetDeletionPolicy(policy DeletionPoli // 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 *AWSKinesisAnalyticsV2Application) MarshalJSON() ([]byte, error) { +func (r AWSKinesisAnalyticsV2Application) MarshalJSON() ([]byte, error) { type Properties AWSKinesisAnalyticsV2Application return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSKinesisAnalyticsV2Application) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationResources() map[string] results := map[string]*AWSKinesisAnalyticsV2Application{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSKinesisAnalyticsV2Application: + results[name] = &resource case *AWSKinesisAnalyticsV2Application: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationResources() map[string] func (t *Template) GetAWSKinesisAnalyticsV2ApplicationWithName(name string) (*AWSKinesisAnalyticsV2Application, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSKinesisAnalyticsV2Application: + return &resource, nil case *AWSKinesisAnalyticsV2Application: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.go b/cloudformation/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.go index 99b16e005f..2a7c5db957 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.go +++ b/cloudformation/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.go @@ -68,7 +68,7 @@ func (r *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption) SetDeletionPol // 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 *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption) MarshalJSON() ([]byte, error) { +func (r AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption) MarshalJSON() ([]byte, error) { type Properties AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption) MarshalJSON() DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption results := map[string]*AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption: + results[name] = &resource case *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption func (t *Template) GetAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionWithName(name string) (*AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption: + return &resource, nil case *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationoutput.go b/cloudformation/aws-kinesisanalyticsv2-applicationoutput.go index 5f5bb87215..423e099a67 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationoutput.go +++ b/cloudformation/aws-kinesisanalyticsv2-applicationoutput.go @@ -68,7 +68,7 @@ func (r *AWSKinesisAnalyticsV2ApplicationOutput) SetDeletionPolicy(policy Deleti // 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 *AWSKinesisAnalyticsV2ApplicationOutput) MarshalJSON() ([]byte, error) { +func (r AWSKinesisAnalyticsV2ApplicationOutput) MarshalJSON() ([]byte, error) { type Properties AWSKinesisAnalyticsV2ApplicationOutput return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSKinesisAnalyticsV2ApplicationOutput) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationOutputResources() map[s results := map[string]*AWSKinesisAnalyticsV2ApplicationOutput{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSKinesisAnalyticsV2ApplicationOutput: + results[name] = &resource case *AWSKinesisAnalyticsV2ApplicationOutput: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationOutputResources() map[s func (t *Template) GetAWSKinesisAnalyticsV2ApplicationOutputWithName(name string) (*AWSKinesisAnalyticsV2ApplicationOutput, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSKinesisAnalyticsV2ApplicationOutput: + return &resource, nil case *AWSKinesisAnalyticsV2ApplicationOutput: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource.go b/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource.go index f99556e9ab..3ab91d2394 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource.go +++ b/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource.go @@ -68,7 +68,7 @@ func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource) SetDeletionPolicy( // 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 *AWSKinesisAnalyticsV2ApplicationReferenceDataSource) MarshalJSON() ([]byte, error) { +func (r AWSKinesisAnalyticsV2ApplicationReferenceDataSource) MarshalJSON() ([]byte, error) { type Properties AWSKinesisAnalyticsV2ApplicationReferenceDataSource return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource) MarshalJSON() ([]b DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationReferenceDataSourceReso results := map[string]*AWSKinesisAnalyticsV2ApplicationReferenceDataSource{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSKinesisAnalyticsV2ApplicationReferenceDataSource: + results[name] = &resource case *AWSKinesisAnalyticsV2ApplicationReferenceDataSource: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationReferenceDataSourceReso func (t *Template) GetAWSKinesisAnalyticsV2ApplicationReferenceDataSourceWithName(name string) (*AWSKinesisAnalyticsV2ApplicationReferenceDataSource, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSKinesisAnalyticsV2ApplicationReferenceDataSource: + return &resource, nil case *AWSKinesisAnalyticsV2ApplicationReferenceDataSource: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-kinesisfirehose-deliverystream.go b/cloudformation/aws-kinesisfirehose-deliverystream.go index 848a83981c..3c33ba3157 100644 --- a/cloudformation/aws-kinesisfirehose-deliverystream.go +++ b/cloudformation/aws-kinesisfirehose-deliverystream.go @@ -98,7 +98,7 @@ func (r *AWSKinesisFirehoseDeliveryStream) SetDeletionPolicy(policy DeletionPoli // 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 *AWSKinesisFirehoseDeliveryStream) MarshalJSON() ([]byte, error) { +func (r AWSKinesisFirehoseDeliveryStream) MarshalJSON() ([]byte, error) { type Properties AWSKinesisFirehoseDeliveryStream return json.Marshal(&struct { Type string @@ -108,7 +108,7 @@ func (r *AWSKinesisFirehoseDeliveryStream) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -153,6 +153,8 @@ func (t *Template) GetAllAWSKinesisFirehoseDeliveryStreamResources() map[string] results := map[string]*AWSKinesisFirehoseDeliveryStream{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSKinesisFirehoseDeliveryStream: + results[name] = &resource case *AWSKinesisFirehoseDeliveryStream: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -181,6 +183,8 @@ func (t *Template) GetAllAWSKinesisFirehoseDeliveryStreamResources() map[string] func (t *Template) GetAWSKinesisFirehoseDeliveryStreamWithName(name string) (*AWSKinesisFirehoseDeliveryStream, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSKinesisFirehoseDeliveryStream: + return &resource, nil case *AWSKinesisFirehoseDeliveryStream: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-kms-alias.go b/cloudformation/aws-kms-alias.go index 278522248c..f0220436f4 100644 --- a/cloudformation/aws-kms-alias.go +++ b/cloudformation/aws-kms-alias.go @@ -68,7 +68,7 @@ func (r *AWSKMSAlias) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSKMSAlias) MarshalJSON() ([]byte, error) { +func (r AWSKMSAlias) MarshalJSON() ([]byte, error) { type Properties AWSKMSAlias return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSKMSAlias) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSKMSAliasResources() map[string]*AWSKMSAlias { results := map[string]*AWSKMSAlias{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSKMSAlias: + results[name] = &resource case *AWSKMSAlias: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSKMSAliasResources() map[string]*AWSKMSAlias { func (t *Template) GetAWSKMSAliasWithName(name string) (*AWSKMSAlias, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSKMSAlias: + return &resource, nil case *AWSKMSAlias: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-kms-key.go b/cloudformation/aws-kms-key.go index 2c9678b1fe..0968a6dfd2 100644 --- a/cloudformation/aws-kms-key.go +++ b/cloudformation/aws-kms-key.go @@ -93,7 +93,7 @@ func (r *AWSKMSKey) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSKMSKey) MarshalJSON() ([]byte, error) { +func (r AWSKMSKey) MarshalJSON() ([]byte, error) { type Properties AWSKMSKey return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSKMSKey) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSKMSKeyResources() map[string]*AWSKMSKey { results := map[string]*AWSKMSKey{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSKMSKey: + results[name] = &resource case *AWSKMSKey: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSKMSKeyResources() map[string]*AWSKMSKey { func (t *Template) GetAWSKMSKeyWithName(name string) (*AWSKMSKey, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSKMSKey: + return &resource, nil case *AWSKMSKey: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-lambda-alias.go b/cloudformation/aws-lambda-alias.go index 9ded56e86b..1c731fce74 100644 --- a/cloudformation/aws-lambda-alias.go +++ b/cloudformation/aws-lambda-alias.go @@ -92,7 +92,7 @@ func (r *AWSLambdaAlias) SetUpdatePolicy(policy *UpdatePolicy) { // 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 *AWSLambdaAlias) MarshalJSON() ([]byte, error) { +func (r AWSLambdaAlias) MarshalJSON() ([]byte, error) { type Properties AWSLambdaAlias return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSLambdaAlias) MarshalJSON() ([]byte, error) { UpdatePolicy *UpdatePolicy `json:"UpdatePolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -149,6 +149,8 @@ func (t *Template) GetAllAWSLambdaAliasResources() map[string]*AWSLambdaAlias { results := map[string]*AWSLambdaAlias{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSLambdaAlias: + results[name] = &resource case *AWSLambdaAlias: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -177,6 +179,8 @@ func (t *Template) GetAllAWSLambdaAliasResources() map[string]*AWSLambdaAlias { func (t *Template) GetAWSLambdaAliasWithName(name string) (*AWSLambdaAlias, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSLambdaAlias: + return &resource, nil case *AWSLambdaAlias: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-lambda-eventsourcemapping.go b/cloudformation/aws-lambda-eventsourcemapping.go index 6994f36847..58d49cb700 100644 --- a/cloudformation/aws-lambda-eventsourcemapping.go +++ b/cloudformation/aws-lambda-eventsourcemapping.go @@ -83,7 +83,7 @@ func (r *AWSLambdaEventSourceMapping) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSLambdaEventSourceMapping) MarshalJSON() ([]byte, error) { +func (r AWSLambdaEventSourceMapping) MarshalJSON() ([]byte, error) { type Properties AWSLambdaEventSourceMapping return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSLambdaEventSourceMapping) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSLambdaEventSourceMappingResources() map[string]*AWSL results := map[string]*AWSLambdaEventSourceMapping{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSLambdaEventSourceMapping: + results[name] = &resource case *AWSLambdaEventSourceMapping: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSLambdaEventSourceMappingResources() map[string]*AWSL func (t *Template) GetAWSLambdaEventSourceMappingWithName(name string) (*AWSLambdaEventSourceMapping, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSLambdaEventSourceMapping: + return &resource, nil case *AWSLambdaEventSourceMapping: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-lambda-function.go b/cloudformation/aws-lambda-function.go index 1b9ef035ee..1e09200f20 100644 --- a/cloudformation/aws-lambda-function.go +++ b/cloudformation/aws-lambda-function.go @@ -138,7 +138,7 @@ func (r *AWSLambdaFunction) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSLambdaFunction) MarshalJSON() ([]byte, error) { +func (r AWSLambdaFunction) MarshalJSON() ([]byte, error) { type Properties AWSLambdaFunction return json.Marshal(&struct { Type string @@ -148,7 +148,7 @@ func (r *AWSLambdaFunction) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -193,6 +193,8 @@ func (t *Template) GetAllAWSLambdaFunctionResources() map[string]*AWSLambdaFunct results := map[string]*AWSLambdaFunction{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSLambdaFunction: + results[name] = &resource case *AWSLambdaFunction: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -221,6 +223,8 @@ func (t *Template) GetAllAWSLambdaFunctionResources() map[string]*AWSLambdaFunct func (t *Template) GetAWSLambdaFunctionWithName(name string) (*AWSLambdaFunction, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSLambdaFunction: + return &resource, nil case *AWSLambdaFunction: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-lambda-layerversion.go b/cloudformation/aws-lambda-layerversion.go index 5d3e0a7c16..cfa60a81d0 100644 --- a/cloudformation/aws-lambda-layerversion.go +++ b/cloudformation/aws-lambda-layerversion.go @@ -83,7 +83,7 @@ func (r *AWSLambdaLayerVersion) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSLambdaLayerVersion) MarshalJSON() ([]byte, error) { +func (r AWSLambdaLayerVersion) MarshalJSON() ([]byte, error) { type Properties AWSLambdaLayerVersion return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSLambdaLayerVersion) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSLambdaLayerVersionResources() map[string]*AWSLambdaL results := map[string]*AWSLambdaLayerVersion{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSLambdaLayerVersion: + results[name] = &resource case *AWSLambdaLayerVersion: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSLambdaLayerVersionResources() map[string]*AWSLambdaL func (t *Template) GetAWSLambdaLayerVersionWithName(name string) (*AWSLambdaLayerVersion, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSLambdaLayerVersion: + return &resource, nil case *AWSLambdaLayerVersion: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-lambda-layerversionpermission.go b/cloudformation/aws-lambda-layerversionpermission.go index fa1191b750..469ebefa9e 100644 --- a/cloudformation/aws-lambda-layerversionpermission.go +++ b/cloudformation/aws-lambda-layerversionpermission.go @@ -78,7 +78,7 @@ func (r *AWSLambdaLayerVersionPermission) SetDeletionPolicy(policy DeletionPolic // 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 *AWSLambdaLayerVersionPermission) MarshalJSON() ([]byte, error) { +func (r AWSLambdaLayerVersionPermission) MarshalJSON() ([]byte, error) { type Properties AWSLambdaLayerVersionPermission return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSLambdaLayerVersionPermission) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSLambdaLayerVersionPermissionResources() map[string]* results := map[string]*AWSLambdaLayerVersionPermission{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSLambdaLayerVersionPermission: + results[name] = &resource case *AWSLambdaLayerVersionPermission: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSLambdaLayerVersionPermissionResources() map[string]* func (t *Template) GetAWSLambdaLayerVersionPermissionWithName(name string) (*AWSLambdaLayerVersionPermission, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSLambdaLayerVersionPermission: + return &resource, nil case *AWSLambdaLayerVersionPermission: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-lambda-permission.go b/cloudformation/aws-lambda-permission.go index bcc49fa183..0e3d4d7267 100644 --- a/cloudformation/aws-lambda-permission.go +++ b/cloudformation/aws-lambda-permission.go @@ -88,7 +88,7 @@ func (r *AWSLambdaPermission) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSLambdaPermission) MarshalJSON() ([]byte, error) { +func (r AWSLambdaPermission) MarshalJSON() ([]byte, error) { type Properties AWSLambdaPermission return json.Marshal(&struct { Type string @@ -98,7 +98,7 @@ func (r *AWSLambdaPermission) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -143,6 +143,8 @@ func (t *Template) GetAllAWSLambdaPermissionResources() map[string]*AWSLambdaPer results := map[string]*AWSLambdaPermission{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSLambdaPermission: + results[name] = &resource case *AWSLambdaPermission: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -171,6 +173,8 @@ func (t *Template) GetAllAWSLambdaPermissionResources() map[string]*AWSLambdaPer func (t *Template) GetAWSLambdaPermissionWithName(name string) (*AWSLambdaPermission, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSLambdaPermission: + return &resource, nil case *AWSLambdaPermission: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-lambda-version.go b/cloudformation/aws-lambda-version.go index 0c4cdd9400..ad00d045e9 100644 --- a/cloudformation/aws-lambda-version.go +++ b/cloudformation/aws-lambda-version.go @@ -73,7 +73,7 @@ func (r *AWSLambdaVersion) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSLambdaVersion) MarshalJSON() ([]byte, error) { +func (r AWSLambdaVersion) MarshalJSON() ([]byte, error) { type Properties AWSLambdaVersion return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSLambdaVersion) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSLambdaVersionResources() map[string]*AWSLambdaVersio results := map[string]*AWSLambdaVersion{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSLambdaVersion: + results[name] = &resource case *AWSLambdaVersion: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSLambdaVersionResources() map[string]*AWSLambdaVersio func (t *Template) GetAWSLambdaVersionWithName(name string) (*AWSLambdaVersion, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSLambdaVersion: + return &resource, nil case *AWSLambdaVersion: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-logs-destination.go b/cloudformation/aws-logs-destination.go index f83468d274..84f8dd1393 100644 --- a/cloudformation/aws-logs-destination.go +++ b/cloudformation/aws-logs-destination.go @@ -78,7 +78,7 @@ func (r *AWSLogsDestination) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSLogsDestination) MarshalJSON() ([]byte, error) { +func (r AWSLogsDestination) MarshalJSON() ([]byte, error) { type Properties AWSLogsDestination return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSLogsDestination) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSLogsDestinationResources() map[string]*AWSLogsDestin results := map[string]*AWSLogsDestination{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSLogsDestination: + results[name] = &resource case *AWSLogsDestination: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSLogsDestinationResources() map[string]*AWSLogsDestin func (t *Template) GetAWSLogsDestinationWithName(name string) (*AWSLogsDestination, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSLogsDestination: + return &resource, nil case *AWSLogsDestination: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-logs-loggroup.go b/cloudformation/aws-logs-loggroup.go index e011989f3a..4574d13f94 100644 --- a/cloudformation/aws-logs-loggroup.go +++ b/cloudformation/aws-logs-loggroup.go @@ -68,7 +68,7 @@ func (r *AWSLogsLogGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSLogsLogGroup) MarshalJSON() ([]byte, error) { +func (r AWSLogsLogGroup) MarshalJSON() ([]byte, error) { type Properties AWSLogsLogGroup return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSLogsLogGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSLogsLogGroupResources() map[string]*AWSLogsLogGroup results := map[string]*AWSLogsLogGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSLogsLogGroup: + results[name] = &resource case *AWSLogsLogGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSLogsLogGroupResources() map[string]*AWSLogsLogGroup func (t *Template) GetAWSLogsLogGroupWithName(name string) (*AWSLogsLogGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSLogsLogGroup: + return &resource, nil case *AWSLogsLogGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-logs-logstream.go b/cloudformation/aws-logs-logstream.go index d787e0debd..d8703c91aa 100644 --- a/cloudformation/aws-logs-logstream.go +++ b/cloudformation/aws-logs-logstream.go @@ -68,7 +68,7 @@ func (r *AWSLogsLogStream) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSLogsLogStream) MarshalJSON() ([]byte, error) { +func (r AWSLogsLogStream) MarshalJSON() ([]byte, error) { type Properties AWSLogsLogStream return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSLogsLogStream) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSLogsLogStreamResources() map[string]*AWSLogsLogStrea results := map[string]*AWSLogsLogStream{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSLogsLogStream: + results[name] = &resource case *AWSLogsLogStream: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSLogsLogStreamResources() map[string]*AWSLogsLogStrea func (t *Template) GetAWSLogsLogStreamWithName(name string) (*AWSLogsLogStream, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSLogsLogStream: + return &resource, nil case *AWSLogsLogStream: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-logs-metricfilter.go b/cloudformation/aws-logs-metricfilter.go index ce4ffefc5f..f02e8b1765 100644 --- a/cloudformation/aws-logs-metricfilter.go +++ b/cloudformation/aws-logs-metricfilter.go @@ -73,7 +73,7 @@ func (r *AWSLogsMetricFilter) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSLogsMetricFilter) MarshalJSON() ([]byte, error) { +func (r AWSLogsMetricFilter) MarshalJSON() ([]byte, error) { type Properties AWSLogsMetricFilter return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSLogsMetricFilter) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSLogsMetricFilterResources() map[string]*AWSLogsMetri results := map[string]*AWSLogsMetricFilter{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSLogsMetricFilter: + results[name] = &resource case *AWSLogsMetricFilter: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSLogsMetricFilterResources() map[string]*AWSLogsMetri func (t *Template) GetAWSLogsMetricFilterWithName(name string) (*AWSLogsMetricFilter, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSLogsMetricFilter: + return &resource, nil case *AWSLogsMetricFilter: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-logs-subscriptionfilter.go b/cloudformation/aws-logs-subscriptionfilter.go index c3a55b1d63..12f71712a1 100644 --- a/cloudformation/aws-logs-subscriptionfilter.go +++ b/cloudformation/aws-logs-subscriptionfilter.go @@ -78,7 +78,7 @@ func (r *AWSLogsSubscriptionFilter) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSLogsSubscriptionFilter) MarshalJSON() ([]byte, error) { +func (r AWSLogsSubscriptionFilter) MarshalJSON() ([]byte, error) { type Properties AWSLogsSubscriptionFilter return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSLogsSubscriptionFilter) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSLogsSubscriptionFilterResources() map[string]*AWSLog results := map[string]*AWSLogsSubscriptionFilter{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSLogsSubscriptionFilter: + results[name] = &resource case *AWSLogsSubscriptionFilter: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSLogsSubscriptionFilterResources() map[string]*AWSLog func (t *Template) GetAWSLogsSubscriptionFilterWithName(name string) (*AWSLogsSubscriptionFilter, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSLogsSubscriptionFilter: + return &resource, nil case *AWSLogsSubscriptionFilter: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-neptune-dbcluster.go b/cloudformation/aws-neptune-dbcluster.go index 218a1d1d51..a8d65f65b9 100644 --- a/cloudformation/aws-neptune-dbcluster.go +++ b/cloudformation/aws-neptune-dbcluster.go @@ -128,7 +128,7 @@ func (r *AWSNeptuneDBCluster) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSNeptuneDBCluster) MarshalJSON() ([]byte, error) { +func (r AWSNeptuneDBCluster) MarshalJSON() ([]byte, error) { type Properties AWSNeptuneDBCluster return json.Marshal(&struct { Type string @@ -138,7 +138,7 @@ func (r *AWSNeptuneDBCluster) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -183,6 +183,8 @@ func (t *Template) GetAllAWSNeptuneDBClusterResources() map[string]*AWSNeptuneDB results := map[string]*AWSNeptuneDBCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSNeptuneDBCluster: + results[name] = &resource case *AWSNeptuneDBCluster: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -211,6 +213,8 @@ func (t *Template) GetAllAWSNeptuneDBClusterResources() map[string]*AWSNeptuneDB func (t *Template) GetAWSNeptuneDBClusterWithName(name string) (*AWSNeptuneDBCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSNeptuneDBCluster: + return &resource, nil case *AWSNeptuneDBCluster: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-neptune-dbclusterparametergroup.go b/cloudformation/aws-neptune-dbclusterparametergroup.go index f978e78a71..ad79a3f507 100644 --- a/cloudformation/aws-neptune-dbclusterparametergroup.go +++ b/cloudformation/aws-neptune-dbclusterparametergroup.go @@ -83,7 +83,7 @@ func (r *AWSNeptuneDBClusterParameterGroup) SetDeletionPolicy(policy DeletionPol // 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 *AWSNeptuneDBClusterParameterGroup) MarshalJSON() ([]byte, error) { +func (r AWSNeptuneDBClusterParameterGroup) MarshalJSON() ([]byte, error) { type Properties AWSNeptuneDBClusterParameterGroup return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSNeptuneDBClusterParameterGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSNeptuneDBClusterParameterGroupResources() map[string results := map[string]*AWSNeptuneDBClusterParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSNeptuneDBClusterParameterGroup: + results[name] = &resource case *AWSNeptuneDBClusterParameterGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSNeptuneDBClusterParameterGroupResources() map[string func (t *Template) GetAWSNeptuneDBClusterParameterGroupWithName(name string) (*AWSNeptuneDBClusterParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSNeptuneDBClusterParameterGroup: + return &resource, nil case *AWSNeptuneDBClusterParameterGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-neptune-dbinstance.go b/cloudformation/aws-neptune-dbinstance.go index 73c6fe9361..7620c8f035 100644 --- a/cloudformation/aws-neptune-dbinstance.go +++ b/cloudformation/aws-neptune-dbinstance.go @@ -113,7 +113,7 @@ func (r *AWSNeptuneDBInstance) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSNeptuneDBInstance) MarshalJSON() ([]byte, error) { +func (r AWSNeptuneDBInstance) MarshalJSON() ([]byte, error) { type Properties AWSNeptuneDBInstance return json.Marshal(&struct { Type string @@ -123,7 +123,7 @@ func (r *AWSNeptuneDBInstance) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -168,6 +168,8 @@ func (t *Template) GetAllAWSNeptuneDBInstanceResources() map[string]*AWSNeptuneD results := map[string]*AWSNeptuneDBInstance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSNeptuneDBInstance: + results[name] = &resource case *AWSNeptuneDBInstance: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -196,6 +198,8 @@ func (t *Template) GetAllAWSNeptuneDBInstanceResources() map[string]*AWSNeptuneD func (t *Template) GetAWSNeptuneDBInstanceWithName(name string) (*AWSNeptuneDBInstance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSNeptuneDBInstance: + return &resource, nil case *AWSNeptuneDBInstance: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-neptune-dbparametergroup.go b/cloudformation/aws-neptune-dbparametergroup.go index 62a9ad4d54..9cc89c179a 100644 --- a/cloudformation/aws-neptune-dbparametergroup.go +++ b/cloudformation/aws-neptune-dbparametergroup.go @@ -83,7 +83,7 @@ func (r *AWSNeptuneDBParameterGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSNeptuneDBParameterGroup) MarshalJSON() ([]byte, error) { +func (r AWSNeptuneDBParameterGroup) MarshalJSON() ([]byte, error) { type Properties AWSNeptuneDBParameterGroup return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSNeptuneDBParameterGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSNeptuneDBParameterGroupResources() map[string]*AWSNe results := map[string]*AWSNeptuneDBParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSNeptuneDBParameterGroup: + results[name] = &resource case *AWSNeptuneDBParameterGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSNeptuneDBParameterGroupResources() map[string]*AWSNe func (t *Template) GetAWSNeptuneDBParameterGroupWithName(name string) (*AWSNeptuneDBParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSNeptuneDBParameterGroup: + return &resource, nil case *AWSNeptuneDBParameterGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-neptune-dbsubnetgroup.go b/cloudformation/aws-neptune-dbsubnetgroup.go index 50cadebc3d..4d191453b6 100644 --- a/cloudformation/aws-neptune-dbsubnetgroup.go +++ b/cloudformation/aws-neptune-dbsubnetgroup.go @@ -78,7 +78,7 @@ func (r *AWSNeptuneDBSubnetGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSNeptuneDBSubnetGroup) MarshalJSON() ([]byte, error) { +func (r AWSNeptuneDBSubnetGroup) MarshalJSON() ([]byte, error) { type Properties AWSNeptuneDBSubnetGroup return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSNeptuneDBSubnetGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSNeptuneDBSubnetGroupResources() map[string]*AWSNeptu results := map[string]*AWSNeptuneDBSubnetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSNeptuneDBSubnetGroup: + results[name] = &resource case *AWSNeptuneDBSubnetGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSNeptuneDBSubnetGroupResources() map[string]*AWSNeptu func (t *Template) GetAWSNeptuneDBSubnetGroupWithName(name string) (*AWSNeptuneDBSubnetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSNeptuneDBSubnetGroup: + return &resource, nil case *AWSNeptuneDBSubnetGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-opsworks-app.go b/cloudformation/aws-opsworks-app.go index 4688749c83..c74dee41a8 100644 --- a/cloudformation/aws-opsworks-app.go +++ b/cloudformation/aws-opsworks-app.go @@ -118,7 +118,7 @@ func (r *AWSOpsWorksApp) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSOpsWorksApp) MarshalJSON() ([]byte, error) { +func (r AWSOpsWorksApp) MarshalJSON() ([]byte, error) { type Properties AWSOpsWorksApp return json.Marshal(&struct { Type string @@ -128,7 +128,7 @@ func (r *AWSOpsWorksApp) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -173,6 +173,8 @@ func (t *Template) GetAllAWSOpsWorksAppResources() map[string]*AWSOpsWorksApp { results := map[string]*AWSOpsWorksApp{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSOpsWorksApp: + results[name] = &resource case *AWSOpsWorksApp: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -201,6 +203,8 @@ func (t *Template) GetAllAWSOpsWorksAppResources() map[string]*AWSOpsWorksApp { func (t *Template) GetAWSOpsWorksAppWithName(name string) (*AWSOpsWorksApp, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSOpsWorksApp: + return &resource, nil case *AWSOpsWorksApp: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-opsworks-elasticloadbalancerattachment.go b/cloudformation/aws-opsworks-elasticloadbalancerattachment.go index c6b3111773..3304d2821a 100644 --- a/cloudformation/aws-opsworks-elasticloadbalancerattachment.go +++ b/cloudformation/aws-opsworks-elasticloadbalancerattachment.go @@ -68,7 +68,7 @@ func (r *AWSOpsWorksElasticLoadBalancerAttachment) SetDeletionPolicy(policy Dele // 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 *AWSOpsWorksElasticLoadBalancerAttachment) MarshalJSON() ([]byte, error) { +func (r AWSOpsWorksElasticLoadBalancerAttachment) MarshalJSON() ([]byte, error) { type Properties AWSOpsWorksElasticLoadBalancerAttachment return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSOpsWorksElasticLoadBalancerAttachment) MarshalJSON() ([]byte, error) DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSOpsWorksElasticLoadBalancerAttachmentResources() map results := map[string]*AWSOpsWorksElasticLoadBalancerAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSOpsWorksElasticLoadBalancerAttachment: + results[name] = &resource case *AWSOpsWorksElasticLoadBalancerAttachment: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSOpsWorksElasticLoadBalancerAttachmentResources() map func (t *Template) GetAWSOpsWorksElasticLoadBalancerAttachmentWithName(name string) (*AWSOpsWorksElasticLoadBalancerAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSOpsWorksElasticLoadBalancerAttachment: + return &resource, nil case *AWSOpsWorksElasticLoadBalancerAttachment: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-opsworks-instance.go b/cloudformation/aws-opsworks-instance.go index 6deccb6c35..2fb68f9e78 100644 --- a/cloudformation/aws-opsworks-instance.go +++ b/cloudformation/aws-opsworks-instance.go @@ -163,7 +163,7 @@ func (r *AWSOpsWorksInstance) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSOpsWorksInstance) MarshalJSON() ([]byte, error) { +func (r AWSOpsWorksInstance) MarshalJSON() ([]byte, error) { type Properties AWSOpsWorksInstance return json.Marshal(&struct { Type string @@ -173,7 +173,7 @@ func (r *AWSOpsWorksInstance) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -218,6 +218,8 @@ func (t *Template) GetAllAWSOpsWorksInstanceResources() map[string]*AWSOpsWorksI results := map[string]*AWSOpsWorksInstance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSOpsWorksInstance: + results[name] = &resource case *AWSOpsWorksInstance: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -246,6 +248,8 @@ func (t *Template) GetAllAWSOpsWorksInstanceResources() map[string]*AWSOpsWorksI func (t *Template) GetAWSOpsWorksInstanceWithName(name string) (*AWSOpsWorksInstance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSOpsWorksInstance: + return &resource, nil case *AWSOpsWorksInstance: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-opsworks-layer.go b/cloudformation/aws-opsworks-layer.go index 5a70510abd..502709bbd7 100644 --- a/cloudformation/aws-opsworks-layer.go +++ b/cloudformation/aws-opsworks-layer.go @@ -153,7 +153,7 @@ func (r *AWSOpsWorksLayer) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSOpsWorksLayer) MarshalJSON() ([]byte, error) { +func (r AWSOpsWorksLayer) MarshalJSON() ([]byte, error) { type Properties AWSOpsWorksLayer return json.Marshal(&struct { Type string @@ -163,7 +163,7 @@ func (r *AWSOpsWorksLayer) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -208,6 +208,8 @@ func (t *Template) GetAllAWSOpsWorksLayerResources() map[string]*AWSOpsWorksLaye results := map[string]*AWSOpsWorksLayer{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSOpsWorksLayer: + results[name] = &resource case *AWSOpsWorksLayer: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -236,6 +238,8 @@ func (t *Template) GetAllAWSOpsWorksLayerResources() map[string]*AWSOpsWorksLaye func (t *Template) GetAWSOpsWorksLayerWithName(name string) (*AWSOpsWorksLayer, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSOpsWorksLayer: + return &resource, nil case *AWSOpsWorksLayer: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-opsworks-stack.go b/cloudformation/aws-opsworks-stack.go index 8509c09180..06a462e901 100644 --- a/cloudformation/aws-opsworks-stack.go +++ b/cloudformation/aws-opsworks-stack.go @@ -183,7 +183,7 @@ func (r *AWSOpsWorksStack) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSOpsWorksStack) MarshalJSON() ([]byte, error) { +func (r AWSOpsWorksStack) MarshalJSON() ([]byte, error) { type Properties AWSOpsWorksStack return json.Marshal(&struct { Type string @@ -193,7 +193,7 @@ func (r *AWSOpsWorksStack) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -238,6 +238,8 @@ func (t *Template) GetAllAWSOpsWorksStackResources() map[string]*AWSOpsWorksStac results := map[string]*AWSOpsWorksStack{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSOpsWorksStack: + results[name] = &resource case *AWSOpsWorksStack: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -266,6 +268,8 @@ func (t *Template) GetAllAWSOpsWorksStackResources() map[string]*AWSOpsWorksStac func (t *Template) GetAWSOpsWorksStackWithName(name string) (*AWSOpsWorksStack, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSOpsWorksStack: + return &resource, nil case *AWSOpsWorksStack: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-opsworks-userprofile.go b/cloudformation/aws-opsworks-userprofile.go index 194ba7f56a..aefeadbcce 100644 --- a/cloudformation/aws-opsworks-userprofile.go +++ b/cloudformation/aws-opsworks-userprofile.go @@ -78,7 +78,7 @@ func (r *AWSOpsWorksUserProfile) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSOpsWorksUserProfile) MarshalJSON() ([]byte, error) { +func (r AWSOpsWorksUserProfile) MarshalJSON() ([]byte, error) { type Properties AWSOpsWorksUserProfile return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSOpsWorksUserProfile) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSOpsWorksUserProfileResources() map[string]*AWSOpsWor results := map[string]*AWSOpsWorksUserProfile{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSOpsWorksUserProfile: + results[name] = &resource case *AWSOpsWorksUserProfile: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSOpsWorksUserProfileResources() map[string]*AWSOpsWor func (t *Template) GetAWSOpsWorksUserProfileWithName(name string) (*AWSOpsWorksUserProfile, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSOpsWorksUserProfile: + return &resource, nil case *AWSOpsWorksUserProfile: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-opsworks-volume.go b/cloudformation/aws-opsworks-volume.go index 782b0761c9..101c159886 100644 --- a/cloudformation/aws-opsworks-volume.go +++ b/cloudformation/aws-opsworks-volume.go @@ -78,7 +78,7 @@ func (r *AWSOpsWorksVolume) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSOpsWorksVolume) MarshalJSON() ([]byte, error) { +func (r AWSOpsWorksVolume) MarshalJSON() ([]byte, error) { type Properties AWSOpsWorksVolume return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSOpsWorksVolume) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSOpsWorksVolumeResources() map[string]*AWSOpsWorksVol results := map[string]*AWSOpsWorksVolume{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSOpsWorksVolume: + results[name] = &resource case *AWSOpsWorksVolume: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSOpsWorksVolumeResources() map[string]*AWSOpsWorksVol func (t *Template) GetAWSOpsWorksVolumeWithName(name string) (*AWSOpsWorksVolume, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSOpsWorksVolume: + return &resource, nil case *AWSOpsWorksVolume: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-opsworkscm-server.go b/cloudformation/aws-opsworkscm-server.go index f59d6e2d8e..f0c1946211 100644 --- a/cloudformation/aws-opsworkscm-server.go +++ b/cloudformation/aws-opsworkscm-server.go @@ -143,7 +143,7 @@ func (r *AWSOpsWorksCMServer) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSOpsWorksCMServer) MarshalJSON() ([]byte, error) { +func (r AWSOpsWorksCMServer) MarshalJSON() ([]byte, error) { type Properties AWSOpsWorksCMServer return json.Marshal(&struct { Type string @@ -153,7 +153,7 @@ func (r *AWSOpsWorksCMServer) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -198,6 +198,8 @@ func (t *Template) GetAllAWSOpsWorksCMServerResources() map[string]*AWSOpsWorksC results := map[string]*AWSOpsWorksCMServer{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSOpsWorksCMServer: + results[name] = &resource case *AWSOpsWorksCMServer: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -226,6 +228,8 @@ func (t *Template) GetAllAWSOpsWorksCMServerResources() map[string]*AWSOpsWorksC func (t *Template) GetAWSOpsWorksCMServerWithName(name string) (*AWSOpsWorksCMServer, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSOpsWorksCMServer: + return &resource, nil case *AWSOpsWorksCMServer: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ram-resourceshare.go b/cloudformation/aws-ram-resourceshare.go index 374b7ab58a..c459404d8d 100644 --- a/cloudformation/aws-ram-resourceshare.go +++ b/cloudformation/aws-ram-resourceshare.go @@ -83,7 +83,7 @@ func (r *AWSRAMResourceShare) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSRAMResourceShare) MarshalJSON() ([]byte, error) { +func (r AWSRAMResourceShare) MarshalJSON() ([]byte, error) { type Properties AWSRAMResourceShare return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSRAMResourceShare) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSRAMResourceShareResources() map[string]*AWSRAMResour results := map[string]*AWSRAMResourceShare{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRAMResourceShare: + results[name] = &resource case *AWSRAMResourceShare: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSRAMResourceShareResources() map[string]*AWSRAMResour func (t *Template) GetAWSRAMResourceShareWithName(name string) (*AWSRAMResourceShare, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRAMResourceShare: + return &resource, nil case *AWSRAMResourceShare: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-rds-dbcluster.go b/cloudformation/aws-rds-dbcluster.go index fdc1bb79cd..0c09f29e14 100644 --- a/cloudformation/aws-rds-dbcluster.go +++ b/cloudformation/aws-rds-dbcluster.go @@ -188,7 +188,7 @@ func (r *AWSRDSDBCluster) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSRDSDBCluster) MarshalJSON() ([]byte, error) { +func (r AWSRDSDBCluster) MarshalJSON() ([]byte, error) { type Properties AWSRDSDBCluster return json.Marshal(&struct { Type string @@ -198,7 +198,7 @@ func (r *AWSRDSDBCluster) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -243,6 +243,8 @@ func (t *Template) GetAllAWSRDSDBClusterResources() map[string]*AWSRDSDBCluster results := map[string]*AWSRDSDBCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRDSDBCluster: + results[name] = &resource case *AWSRDSDBCluster: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -271,6 +273,8 @@ func (t *Template) GetAllAWSRDSDBClusterResources() map[string]*AWSRDSDBCluster func (t *Template) GetAWSRDSDBClusterWithName(name string) (*AWSRDSDBCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRDSDBCluster: + return &resource, nil case *AWSRDSDBCluster: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-rds-dbclusterparametergroup.go b/cloudformation/aws-rds-dbclusterparametergroup.go index 19b9928b9f..63957e2652 100644 --- a/cloudformation/aws-rds-dbclusterparametergroup.go +++ b/cloudformation/aws-rds-dbclusterparametergroup.go @@ -78,7 +78,7 @@ func (r *AWSRDSDBClusterParameterGroup) SetDeletionPolicy(policy DeletionPolicy) // 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 *AWSRDSDBClusterParameterGroup) MarshalJSON() ([]byte, error) { +func (r AWSRDSDBClusterParameterGroup) MarshalJSON() ([]byte, error) { type Properties AWSRDSDBClusterParameterGroup return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSRDSDBClusterParameterGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSRDSDBClusterParameterGroupResources() map[string]*AW results := map[string]*AWSRDSDBClusterParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRDSDBClusterParameterGroup: + results[name] = &resource case *AWSRDSDBClusterParameterGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSRDSDBClusterParameterGroupResources() map[string]*AW func (t *Template) GetAWSRDSDBClusterParameterGroupWithName(name string) (*AWSRDSDBClusterParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRDSDBClusterParameterGroup: + return &resource, nil case *AWSRDSDBClusterParameterGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-rds-dbinstance.go b/cloudformation/aws-rds-dbinstance.go index 18cfa8d614..60ce4414fd 100644 --- a/cloudformation/aws-rds-dbinstance.go +++ b/cloudformation/aws-rds-dbinstance.go @@ -303,7 +303,7 @@ func (r *AWSRDSDBInstance) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSRDSDBInstance) MarshalJSON() ([]byte, error) { +func (r AWSRDSDBInstance) MarshalJSON() ([]byte, error) { type Properties AWSRDSDBInstance return json.Marshal(&struct { Type string @@ -313,7 +313,7 @@ func (r *AWSRDSDBInstance) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -358,6 +358,8 @@ func (t *Template) GetAllAWSRDSDBInstanceResources() map[string]*AWSRDSDBInstanc results := map[string]*AWSRDSDBInstance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRDSDBInstance: + results[name] = &resource case *AWSRDSDBInstance: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -386,6 +388,8 @@ func (t *Template) GetAllAWSRDSDBInstanceResources() map[string]*AWSRDSDBInstanc func (t *Template) GetAWSRDSDBInstanceWithName(name string) (*AWSRDSDBInstance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRDSDBInstance: + return &resource, nil case *AWSRDSDBInstance: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-rds-dbparametergroup.go b/cloudformation/aws-rds-dbparametergroup.go index 94413f1820..b696a38f76 100644 --- a/cloudformation/aws-rds-dbparametergroup.go +++ b/cloudformation/aws-rds-dbparametergroup.go @@ -78,7 +78,7 @@ func (r *AWSRDSDBParameterGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSRDSDBParameterGroup) MarshalJSON() ([]byte, error) { +func (r AWSRDSDBParameterGroup) MarshalJSON() ([]byte, error) { type Properties AWSRDSDBParameterGroup return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSRDSDBParameterGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSRDSDBParameterGroupResources() map[string]*AWSRDSDBP results := map[string]*AWSRDSDBParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRDSDBParameterGroup: + results[name] = &resource case *AWSRDSDBParameterGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSRDSDBParameterGroupResources() map[string]*AWSRDSDBP func (t *Template) GetAWSRDSDBParameterGroupWithName(name string) (*AWSRDSDBParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRDSDBParameterGroup: + return &resource, nil case *AWSRDSDBParameterGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-rds-dbsecuritygroup.go b/cloudformation/aws-rds-dbsecuritygroup.go index da0916e440..7da6d85bd4 100644 --- a/cloudformation/aws-rds-dbsecuritygroup.go +++ b/cloudformation/aws-rds-dbsecuritygroup.go @@ -78,7 +78,7 @@ func (r *AWSRDSDBSecurityGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSRDSDBSecurityGroup) MarshalJSON() ([]byte, error) { +func (r AWSRDSDBSecurityGroup) MarshalJSON() ([]byte, error) { type Properties AWSRDSDBSecurityGroup return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSRDSDBSecurityGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSRDSDBSecurityGroupResources() map[string]*AWSRDSDBSe results := map[string]*AWSRDSDBSecurityGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRDSDBSecurityGroup: + results[name] = &resource case *AWSRDSDBSecurityGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSRDSDBSecurityGroupResources() map[string]*AWSRDSDBSe func (t *Template) GetAWSRDSDBSecurityGroupWithName(name string) (*AWSRDSDBSecurityGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRDSDBSecurityGroup: + return &resource, nil case *AWSRDSDBSecurityGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-rds-dbsecuritygroupingress.go b/cloudformation/aws-rds-dbsecuritygroupingress.go index ae864a9cc2..4672a653c4 100644 --- a/cloudformation/aws-rds-dbsecuritygroupingress.go +++ b/cloudformation/aws-rds-dbsecuritygroupingress.go @@ -83,7 +83,7 @@ func (r *AWSRDSDBSecurityGroupIngress) SetDeletionPolicy(policy DeletionPolicy) // 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 *AWSRDSDBSecurityGroupIngress) MarshalJSON() ([]byte, error) { +func (r AWSRDSDBSecurityGroupIngress) MarshalJSON() ([]byte, error) { type Properties AWSRDSDBSecurityGroupIngress return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSRDSDBSecurityGroupIngress) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSRDSDBSecurityGroupIngressResources() map[string]*AWS results := map[string]*AWSRDSDBSecurityGroupIngress{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRDSDBSecurityGroupIngress: + results[name] = &resource case *AWSRDSDBSecurityGroupIngress: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSRDSDBSecurityGroupIngressResources() map[string]*AWS func (t *Template) GetAWSRDSDBSecurityGroupIngressWithName(name string) (*AWSRDSDBSecurityGroupIngress, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRDSDBSecurityGroupIngress: + return &resource, nil case *AWSRDSDBSecurityGroupIngress: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-rds-dbsubnetgroup.go b/cloudformation/aws-rds-dbsubnetgroup.go index 75bbdcab76..892a5a658a 100644 --- a/cloudformation/aws-rds-dbsubnetgroup.go +++ b/cloudformation/aws-rds-dbsubnetgroup.go @@ -78,7 +78,7 @@ func (r *AWSRDSDBSubnetGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSRDSDBSubnetGroup) MarshalJSON() ([]byte, error) { +func (r AWSRDSDBSubnetGroup) MarshalJSON() ([]byte, error) { type Properties AWSRDSDBSubnetGroup return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSRDSDBSubnetGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSRDSDBSubnetGroupResources() map[string]*AWSRDSDBSubn results := map[string]*AWSRDSDBSubnetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRDSDBSubnetGroup: + results[name] = &resource case *AWSRDSDBSubnetGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSRDSDBSubnetGroupResources() map[string]*AWSRDSDBSubn func (t *Template) GetAWSRDSDBSubnetGroupWithName(name string) (*AWSRDSDBSubnetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRDSDBSubnetGroup: + return &resource, nil case *AWSRDSDBSubnetGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-rds-eventsubscription.go b/cloudformation/aws-rds-eventsubscription.go index ec07fca00f..6ffc05a120 100644 --- a/cloudformation/aws-rds-eventsubscription.go +++ b/cloudformation/aws-rds-eventsubscription.go @@ -83,7 +83,7 @@ func (r *AWSRDSEventSubscription) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSRDSEventSubscription) MarshalJSON() ([]byte, error) { +func (r AWSRDSEventSubscription) MarshalJSON() ([]byte, error) { type Properties AWSRDSEventSubscription return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSRDSEventSubscription) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSRDSEventSubscriptionResources() map[string]*AWSRDSEv results := map[string]*AWSRDSEventSubscription{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRDSEventSubscription: + results[name] = &resource case *AWSRDSEventSubscription: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSRDSEventSubscriptionResources() map[string]*AWSRDSEv func (t *Template) GetAWSRDSEventSubscriptionWithName(name string) (*AWSRDSEventSubscription, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRDSEventSubscription: + return &resource, nil case *AWSRDSEventSubscription: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-rds-optiongroup.go b/cloudformation/aws-rds-optiongroup.go index b5af870a54..71584e9c56 100644 --- a/cloudformation/aws-rds-optiongroup.go +++ b/cloudformation/aws-rds-optiongroup.go @@ -83,7 +83,7 @@ func (r *AWSRDSOptionGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSRDSOptionGroup) MarshalJSON() ([]byte, error) { +func (r AWSRDSOptionGroup) MarshalJSON() ([]byte, error) { type Properties AWSRDSOptionGroup return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSRDSOptionGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSRDSOptionGroupResources() map[string]*AWSRDSOptionGr results := map[string]*AWSRDSOptionGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRDSOptionGroup: + results[name] = &resource case *AWSRDSOptionGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSRDSOptionGroupResources() map[string]*AWSRDSOptionGr func (t *Template) GetAWSRDSOptionGroupWithName(name string) (*AWSRDSOptionGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRDSOptionGroup: + return &resource, nil case *AWSRDSOptionGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-redshift-cluster.go b/cloudformation/aws-redshift-cluster.go index 30f654d908..436cc44f46 100644 --- a/cloudformation/aws-redshift-cluster.go +++ b/cloudformation/aws-redshift-cluster.go @@ -203,7 +203,7 @@ func (r *AWSRedshiftCluster) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSRedshiftCluster) MarshalJSON() ([]byte, error) { +func (r AWSRedshiftCluster) MarshalJSON() ([]byte, error) { type Properties AWSRedshiftCluster return json.Marshal(&struct { Type string @@ -213,7 +213,7 @@ func (r *AWSRedshiftCluster) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -258,6 +258,8 @@ func (t *Template) GetAllAWSRedshiftClusterResources() map[string]*AWSRedshiftCl results := map[string]*AWSRedshiftCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRedshiftCluster: + results[name] = &resource case *AWSRedshiftCluster: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -286,6 +288,8 @@ func (t *Template) GetAllAWSRedshiftClusterResources() map[string]*AWSRedshiftCl func (t *Template) GetAWSRedshiftClusterWithName(name string) (*AWSRedshiftCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRedshiftCluster: + return &resource, nil case *AWSRedshiftCluster: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-redshift-clusterparametergroup.go b/cloudformation/aws-redshift-clusterparametergroup.go index 4bafcfce6e..fecc332ae1 100644 --- a/cloudformation/aws-redshift-clusterparametergroup.go +++ b/cloudformation/aws-redshift-clusterparametergroup.go @@ -78,7 +78,7 @@ func (r *AWSRedshiftClusterParameterGroup) SetDeletionPolicy(policy DeletionPoli // 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 *AWSRedshiftClusterParameterGroup) MarshalJSON() ([]byte, error) { +func (r AWSRedshiftClusterParameterGroup) MarshalJSON() ([]byte, error) { type Properties AWSRedshiftClusterParameterGroup return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSRedshiftClusterParameterGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSRedshiftClusterParameterGroupResources() map[string] results := map[string]*AWSRedshiftClusterParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRedshiftClusterParameterGroup: + results[name] = &resource case *AWSRedshiftClusterParameterGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSRedshiftClusterParameterGroupResources() map[string] func (t *Template) GetAWSRedshiftClusterParameterGroupWithName(name string) (*AWSRedshiftClusterParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRedshiftClusterParameterGroup: + return &resource, nil case *AWSRedshiftClusterParameterGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-redshift-clustersecuritygroup.go b/cloudformation/aws-redshift-clustersecuritygroup.go index 05541bde6b..715bf159bb 100644 --- a/cloudformation/aws-redshift-clustersecuritygroup.go +++ b/cloudformation/aws-redshift-clustersecuritygroup.go @@ -68,7 +68,7 @@ func (r *AWSRedshiftClusterSecurityGroup) SetDeletionPolicy(policy DeletionPolic // 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 *AWSRedshiftClusterSecurityGroup) MarshalJSON() ([]byte, error) { +func (r AWSRedshiftClusterSecurityGroup) MarshalJSON() ([]byte, error) { type Properties AWSRedshiftClusterSecurityGroup return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSRedshiftClusterSecurityGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSRedshiftClusterSecurityGroupResources() map[string]* results := map[string]*AWSRedshiftClusterSecurityGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRedshiftClusterSecurityGroup: + results[name] = &resource case *AWSRedshiftClusterSecurityGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSRedshiftClusterSecurityGroupResources() map[string]* func (t *Template) GetAWSRedshiftClusterSecurityGroupWithName(name string) (*AWSRedshiftClusterSecurityGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRedshiftClusterSecurityGroup: + return &resource, nil case *AWSRedshiftClusterSecurityGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-redshift-clustersecuritygroupingress.go b/cloudformation/aws-redshift-clustersecuritygroupingress.go index e9332b4284..f5674d6719 100644 --- a/cloudformation/aws-redshift-clustersecuritygroupingress.go +++ b/cloudformation/aws-redshift-clustersecuritygroupingress.go @@ -78,7 +78,7 @@ func (r *AWSRedshiftClusterSecurityGroupIngress) SetDeletionPolicy(policy Deleti // 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 *AWSRedshiftClusterSecurityGroupIngress) MarshalJSON() ([]byte, error) { +func (r AWSRedshiftClusterSecurityGroupIngress) MarshalJSON() ([]byte, error) { type Properties AWSRedshiftClusterSecurityGroupIngress return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSRedshiftClusterSecurityGroupIngress) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSRedshiftClusterSecurityGroupIngressResources() map[s results := map[string]*AWSRedshiftClusterSecurityGroupIngress{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRedshiftClusterSecurityGroupIngress: + results[name] = &resource case *AWSRedshiftClusterSecurityGroupIngress: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSRedshiftClusterSecurityGroupIngressResources() map[s func (t *Template) GetAWSRedshiftClusterSecurityGroupIngressWithName(name string) (*AWSRedshiftClusterSecurityGroupIngress, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRedshiftClusterSecurityGroupIngress: + return &resource, nil case *AWSRedshiftClusterSecurityGroupIngress: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-redshift-clustersubnetgroup.go b/cloudformation/aws-redshift-clustersubnetgroup.go index 655adeae25..2325ff1d5e 100644 --- a/cloudformation/aws-redshift-clustersubnetgroup.go +++ b/cloudformation/aws-redshift-clustersubnetgroup.go @@ -73,7 +73,7 @@ func (r *AWSRedshiftClusterSubnetGroup) SetDeletionPolicy(policy DeletionPolicy) // 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 *AWSRedshiftClusterSubnetGroup) MarshalJSON() ([]byte, error) { +func (r AWSRedshiftClusterSubnetGroup) MarshalJSON() ([]byte, error) { type Properties AWSRedshiftClusterSubnetGroup return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSRedshiftClusterSubnetGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSRedshiftClusterSubnetGroupResources() map[string]*AW results := map[string]*AWSRedshiftClusterSubnetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRedshiftClusterSubnetGroup: + results[name] = &resource case *AWSRedshiftClusterSubnetGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSRedshiftClusterSubnetGroupResources() map[string]*AW func (t *Template) GetAWSRedshiftClusterSubnetGroupWithName(name string) (*AWSRedshiftClusterSubnetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRedshiftClusterSubnetGroup: + return &resource, nil case *AWSRedshiftClusterSubnetGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-robomaker-fleet.go b/cloudformation/aws-robomaker-fleet.go index 9236b1359b..ec49ef31fd 100644 --- a/cloudformation/aws-robomaker-fleet.go +++ b/cloudformation/aws-robomaker-fleet.go @@ -68,7 +68,7 @@ func (r *AWSRoboMakerFleet) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSRoboMakerFleet) MarshalJSON() ([]byte, error) { +func (r AWSRoboMakerFleet) MarshalJSON() ([]byte, error) { type Properties AWSRoboMakerFleet return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSRoboMakerFleet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSRoboMakerFleetResources() map[string]*AWSRoboMakerFl results := map[string]*AWSRoboMakerFleet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRoboMakerFleet: + results[name] = &resource case *AWSRoboMakerFleet: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSRoboMakerFleetResources() map[string]*AWSRoboMakerFl func (t *Template) GetAWSRoboMakerFleetWithName(name string) (*AWSRoboMakerFleet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRoboMakerFleet: + return &resource, nil case *AWSRoboMakerFleet: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-robomaker-robot.go b/cloudformation/aws-robomaker-robot.go index 49e7648c58..1c14fca0d4 100644 --- a/cloudformation/aws-robomaker-robot.go +++ b/cloudformation/aws-robomaker-robot.go @@ -83,7 +83,7 @@ func (r *AWSRoboMakerRobot) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSRoboMakerRobot) MarshalJSON() ([]byte, error) { +func (r AWSRoboMakerRobot) MarshalJSON() ([]byte, error) { type Properties AWSRoboMakerRobot return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSRoboMakerRobot) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSRoboMakerRobotResources() map[string]*AWSRoboMakerRo results := map[string]*AWSRoboMakerRobot{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRoboMakerRobot: + results[name] = &resource case *AWSRoboMakerRobot: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSRoboMakerRobotResources() map[string]*AWSRoboMakerRo func (t *Template) GetAWSRoboMakerRobotWithName(name string) (*AWSRoboMakerRobot, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRoboMakerRobot: + return &resource, nil case *AWSRoboMakerRobot: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-robomaker-robotapplication.go b/cloudformation/aws-robomaker-robotapplication.go index 18b9dd73f6..0e732560f9 100644 --- a/cloudformation/aws-robomaker-robotapplication.go +++ b/cloudformation/aws-robomaker-robotapplication.go @@ -83,7 +83,7 @@ func (r *AWSRoboMakerRobotApplication) SetDeletionPolicy(policy DeletionPolicy) // 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 *AWSRoboMakerRobotApplication) MarshalJSON() ([]byte, error) { +func (r AWSRoboMakerRobotApplication) MarshalJSON() ([]byte, error) { type Properties AWSRoboMakerRobotApplication return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSRoboMakerRobotApplication) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSRoboMakerRobotApplicationResources() map[string]*AWS results := map[string]*AWSRoboMakerRobotApplication{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRoboMakerRobotApplication: + results[name] = &resource case *AWSRoboMakerRobotApplication: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSRoboMakerRobotApplicationResources() map[string]*AWS func (t *Template) GetAWSRoboMakerRobotApplicationWithName(name string) (*AWSRoboMakerRobotApplication, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRoboMakerRobotApplication: + return &resource, nil case *AWSRoboMakerRobotApplication: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-robomaker-robotapplicationversion.go b/cloudformation/aws-robomaker-robotapplicationversion.go index 67049f46f7..078b97fe99 100644 --- a/cloudformation/aws-robomaker-robotapplicationversion.go +++ b/cloudformation/aws-robomaker-robotapplicationversion.go @@ -68,7 +68,7 @@ func (r *AWSRoboMakerRobotApplicationVersion) SetDeletionPolicy(policy DeletionP // 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 *AWSRoboMakerRobotApplicationVersion) MarshalJSON() ([]byte, error) { +func (r AWSRoboMakerRobotApplicationVersion) MarshalJSON() ([]byte, error) { type Properties AWSRoboMakerRobotApplicationVersion return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSRoboMakerRobotApplicationVersion) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSRoboMakerRobotApplicationVersionResources() map[stri results := map[string]*AWSRoboMakerRobotApplicationVersion{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRoboMakerRobotApplicationVersion: + results[name] = &resource case *AWSRoboMakerRobotApplicationVersion: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSRoboMakerRobotApplicationVersionResources() map[stri func (t *Template) GetAWSRoboMakerRobotApplicationVersionWithName(name string) (*AWSRoboMakerRobotApplicationVersion, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRoboMakerRobotApplicationVersion: + return &resource, nil case *AWSRoboMakerRobotApplicationVersion: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-robomaker-simulationapplication.go b/cloudformation/aws-robomaker-simulationapplication.go index 2847d5562c..6356e92c07 100644 --- a/cloudformation/aws-robomaker-simulationapplication.go +++ b/cloudformation/aws-robomaker-simulationapplication.go @@ -93,7 +93,7 @@ func (r *AWSRoboMakerSimulationApplication) SetDeletionPolicy(policy DeletionPol // 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 *AWSRoboMakerSimulationApplication) MarshalJSON() ([]byte, error) { +func (r AWSRoboMakerSimulationApplication) MarshalJSON() ([]byte, error) { type Properties AWSRoboMakerSimulationApplication return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSRoboMakerSimulationApplication) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSRoboMakerSimulationApplicationResources() map[string results := map[string]*AWSRoboMakerSimulationApplication{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRoboMakerSimulationApplication: + results[name] = &resource case *AWSRoboMakerSimulationApplication: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSRoboMakerSimulationApplicationResources() map[string func (t *Template) GetAWSRoboMakerSimulationApplicationWithName(name string) (*AWSRoboMakerSimulationApplication, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRoboMakerSimulationApplication: + return &resource, nil case *AWSRoboMakerSimulationApplication: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-robomaker-simulationapplicationversion.go b/cloudformation/aws-robomaker-simulationapplicationversion.go index 8d136b03bb..750709ec44 100644 --- a/cloudformation/aws-robomaker-simulationapplicationversion.go +++ b/cloudformation/aws-robomaker-simulationapplicationversion.go @@ -68,7 +68,7 @@ func (r *AWSRoboMakerSimulationApplicationVersion) SetDeletionPolicy(policy Dele // 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 *AWSRoboMakerSimulationApplicationVersion) MarshalJSON() ([]byte, error) { +func (r AWSRoboMakerSimulationApplicationVersion) MarshalJSON() ([]byte, error) { type Properties AWSRoboMakerSimulationApplicationVersion return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSRoboMakerSimulationApplicationVersion) MarshalJSON() ([]byte, error) DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSRoboMakerSimulationApplicationVersionResources() map results := map[string]*AWSRoboMakerSimulationApplicationVersion{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRoboMakerSimulationApplicationVersion: + results[name] = &resource case *AWSRoboMakerSimulationApplicationVersion: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSRoboMakerSimulationApplicationVersionResources() map func (t *Template) GetAWSRoboMakerSimulationApplicationVersionWithName(name string) (*AWSRoboMakerSimulationApplicationVersion, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRoboMakerSimulationApplicationVersion: + return &resource, nil case *AWSRoboMakerSimulationApplicationVersion: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-route53-healthcheck.go b/cloudformation/aws-route53-healthcheck.go index c9b3ae828a..e393ed5a32 100644 --- a/cloudformation/aws-route53-healthcheck.go +++ b/cloudformation/aws-route53-healthcheck.go @@ -68,7 +68,7 @@ func (r *AWSRoute53HealthCheck) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSRoute53HealthCheck) MarshalJSON() ([]byte, error) { +func (r AWSRoute53HealthCheck) MarshalJSON() ([]byte, error) { type Properties AWSRoute53HealthCheck return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSRoute53HealthCheck) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSRoute53HealthCheckResources() map[string]*AWSRoute53 results := map[string]*AWSRoute53HealthCheck{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRoute53HealthCheck: + results[name] = &resource case *AWSRoute53HealthCheck: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSRoute53HealthCheckResources() map[string]*AWSRoute53 func (t *Template) GetAWSRoute53HealthCheckWithName(name string) (*AWSRoute53HealthCheck, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRoute53HealthCheck: + return &resource, nil case *AWSRoute53HealthCheck: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-route53-hostedzone.go b/cloudformation/aws-route53-hostedzone.go index 84e1c54e78..cbd34516c9 100644 --- a/cloudformation/aws-route53-hostedzone.go +++ b/cloudformation/aws-route53-hostedzone.go @@ -83,7 +83,7 @@ func (r *AWSRoute53HostedZone) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSRoute53HostedZone) MarshalJSON() ([]byte, error) { +func (r AWSRoute53HostedZone) MarshalJSON() ([]byte, error) { type Properties AWSRoute53HostedZone return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSRoute53HostedZone) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSRoute53HostedZoneResources() map[string]*AWSRoute53H results := map[string]*AWSRoute53HostedZone{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRoute53HostedZone: + results[name] = &resource case *AWSRoute53HostedZone: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSRoute53HostedZoneResources() map[string]*AWSRoute53H func (t *Template) GetAWSRoute53HostedZoneWithName(name string) (*AWSRoute53HostedZone, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRoute53HostedZone: + return &resource, nil case *AWSRoute53HostedZone: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-route53-recordset.go b/cloudformation/aws-route53-recordset.go index c2d4eae15c..eb293530a7 100644 --- a/cloudformation/aws-route53-recordset.go +++ b/cloudformation/aws-route53-recordset.go @@ -133,7 +133,7 @@ func (r *AWSRoute53RecordSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSRoute53RecordSet) MarshalJSON() ([]byte, error) { +func (r AWSRoute53RecordSet) MarshalJSON() ([]byte, error) { type Properties AWSRoute53RecordSet return json.Marshal(&struct { Type string @@ -143,7 +143,7 @@ func (r *AWSRoute53RecordSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -188,6 +188,8 @@ func (t *Template) GetAllAWSRoute53RecordSetResources() map[string]*AWSRoute53Re results := map[string]*AWSRoute53RecordSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRoute53RecordSet: + results[name] = &resource case *AWSRoute53RecordSet: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -216,6 +218,8 @@ func (t *Template) GetAllAWSRoute53RecordSetResources() map[string]*AWSRoute53Re func (t *Template) GetAWSRoute53RecordSetWithName(name string) (*AWSRoute53RecordSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRoute53RecordSet: + return &resource, nil case *AWSRoute53RecordSet: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-route53-recordsetgroup.go b/cloudformation/aws-route53-recordsetgroup.go index 18d98e137a..668d84112b 100644 --- a/cloudformation/aws-route53-recordsetgroup.go +++ b/cloudformation/aws-route53-recordsetgroup.go @@ -78,7 +78,7 @@ func (r *AWSRoute53RecordSetGroup) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSRoute53RecordSetGroup) MarshalJSON() ([]byte, error) { +func (r AWSRoute53RecordSetGroup) MarshalJSON() ([]byte, error) { type Properties AWSRoute53RecordSetGroup return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSRoute53RecordSetGroup) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSRoute53RecordSetGroupResources() map[string]*AWSRout results := map[string]*AWSRoute53RecordSetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRoute53RecordSetGroup: + results[name] = &resource case *AWSRoute53RecordSetGroup: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSRoute53RecordSetGroupResources() map[string]*AWSRout func (t *Template) GetAWSRoute53RecordSetGroupWithName(name string) (*AWSRoute53RecordSetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRoute53RecordSetGroup: + return &resource, nil case *AWSRoute53RecordSetGroup: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-route53resolver-resolverendpoint.go b/cloudformation/aws-route53resolver-resolverendpoint.go index 340e8399f6..2e076c6b07 100644 --- a/cloudformation/aws-route53resolver-resolverendpoint.go +++ b/cloudformation/aws-route53resolver-resolverendpoint.go @@ -83,7 +83,7 @@ func (r *AWSRoute53ResolverResolverEndpoint) SetDeletionPolicy(policy DeletionPo // 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 *AWSRoute53ResolverResolverEndpoint) MarshalJSON() ([]byte, error) { +func (r AWSRoute53ResolverResolverEndpoint) MarshalJSON() ([]byte, error) { type Properties AWSRoute53ResolverResolverEndpoint return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSRoute53ResolverResolverEndpoint) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSRoute53ResolverResolverEndpointResources() map[strin results := map[string]*AWSRoute53ResolverResolverEndpoint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRoute53ResolverResolverEndpoint: + results[name] = &resource case *AWSRoute53ResolverResolverEndpoint: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSRoute53ResolverResolverEndpointResources() map[strin func (t *Template) GetAWSRoute53ResolverResolverEndpointWithName(name string) (*AWSRoute53ResolverResolverEndpoint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRoute53ResolverResolverEndpoint: + return &resource, nil case *AWSRoute53ResolverResolverEndpoint: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-route53resolver-resolverrule.go b/cloudformation/aws-route53resolver-resolverrule.go index c779c7e8a9..ccf6ea8cfd 100644 --- a/cloudformation/aws-route53resolver-resolverrule.go +++ b/cloudformation/aws-route53resolver-resolverrule.go @@ -88,7 +88,7 @@ func (r *AWSRoute53ResolverResolverRule) SetDeletionPolicy(policy DeletionPolicy // 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 *AWSRoute53ResolverResolverRule) MarshalJSON() ([]byte, error) { +func (r AWSRoute53ResolverResolverRule) MarshalJSON() ([]byte, error) { type Properties AWSRoute53ResolverResolverRule return json.Marshal(&struct { Type string @@ -98,7 +98,7 @@ func (r *AWSRoute53ResolverResolverRule) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -143,6 +143,8 @@ func (t *Template) GetAllAWSRoute53ResolverResolverRuleResources() map[string]*A results := map[string]*AWSRoute53ResolverResolverRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRoute53ResolverResolverRule: + results[name] = &resource case *AWSRoute53ResolverResolverRule: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -171,6 +173,8 @@ func (t *Template) GetAllAWSRoute53ResolverResolverRuleResources() map[string]*A func (t *Template) GetAWSRoute53ResolverResolverRuleWithName(name string) (*AWSRoute53ResolverResolverRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRoute53ResolverResolverRule: + return &resource, nil case *AWSRoute53ResolverResolverRule: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-route53resolver-resolverruleassociation.go b/cloudformation/aws-route53resolver-resolverruleassociation.go index c550211916..2dbd9a6b89 100644 --- a/cloudformation/aws-route53resolver-resolverruleassociation.go +++ b/cloudformation/aws-route53resolver-resolverruleassociation.go @@ -73,7 +73,7 @@ func (r *AWSRoute53ResolverResolverRuleAssociation) SetDeletionPolicy(policy Del // 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 *AWSRoute53ResolverResolverRuleAssociation) MarshalJSON() ([]byte, error) { +func (r AWSRoute53ResolverResolverRuleAssociation) MarshalJSON() ([]byte, error) { type Properties AWSRoute53ResolverResolverRuleAssociation return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSRoute53ResolverResolverRuleAssociation) MarshalJSON() ([]byte, error DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSRoute53ResolverResolverRuleAssociationResources() ma results := map[string]*AWSRoute53ResolverResolverRuleAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSRoute53ResolverResolverRuleAssociation: + results[name] = &resource case *AWSRoute53ResolverResolverRuleAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSRoute53ResolverResolverRuleAssociationResources() ma func (t *Template) GetAWSRoute53ResolverResolverRuleAssociationWithName(name string) (*AWSRoute53ResolverResolverRuleAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSRoute53ResolverResolverRuleAssociation: + return &resource, nil case *AWSRoute53ResolverResolverRuleAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-s3-bucket.go b/cloudformation/aws-s3-bucket.go index 55f91d1f6f..5edc8e5786 100644 --- a/cloudformation/aws-s3-bucket.go +++ b/cloudformation/aws-s3-bucket.go @@ -138,7 +138,7 @@ func (r *AWSS3Bucket) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSS3Bucket) MarshalJSON() ([]byte, error) { +func (r AWSS3Bucket) MarshalJSON() ([]byte, error) { type Properties AWSS3Bucket return json.Marshal(&struct { Type string @@ -148,7 +148,7 @@ func (r *AWSS3Bucket) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -193,6 +193,8 @@ func (t *Template) GetAllAWSS3BucketResources() map[string]*AWSS3Bucket { results := map[string]*AWSS3Bucket{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSS3Bucket: + results[name] = &resource case *AWSS3Bucket: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -221,6 +223,8 @@ func (t *Template) GetAllAWSS3BucketResources() map[string]*AWSS3Bucket { func (t *Template) GetAWSS3BucketWithName(name string) (*AWSS3Bucket, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSS3Bucket: + return &resource, nil case *AWSS3Bucket: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-s3-bucketpolicy.go b/cloudformation/aws-s3-bucketpolicy.go index b3334d2b6d..660a2bd319 100644 --- a/cloudformation/aws-s3-bucketpolicy.go +++ b/cloudformation/aws-s3-bucketpolicy.go @@ -68,7 +68,7 @@ func (r *AWSS3BucketPolicy) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSS3BucketPolicy) MarshalJSON() ([]byte, error) { +func (r AWSS3BucketPolicy) MarshalJSON() ([]byte, error) { type Properties AWSS3BucketPolicy return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSS3BucketPolicy) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSS3BucketPolicyResources() map[string]*AWSS3BucketPol results := map[string]*AWSS3BucketPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSS3BucketPolicy: + results[name] = &resource case *AWSS3BucketPolicy: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSS3BucketPolicyResources() map[string]*AWSS3BucketPol func (t *Template) GetAWSS3BucketPolicyWithName(name string) (*AWSS3BucketPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSS3BucketPolicy: + return &resource, nil case *AWSS3BucketPolicy: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-sagemaker-endpoint.go b/cloudformation/aws-sagemaker-endpoint.go index a05b8ee1e7..484939f0df 100644 --- a/cloudformation/aws-sagemaker-endpoint.go +++ b/cloudformation/aws-sagemaker-endpoint.go @@ -73,7 +73,7 @@ func (r *AWSSageMakerEndpoint) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSSageMakerEndpoint) MarshalJSON() ([]byte, error) { +func (r AWSSageMakerEndpoint) MarshalJSON() ([]byte, error) { type Properties AWSSageMakerEndpoint return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSSageMakerEndpoint) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSSageMakerEndpointResources() map[string]*AWSSageMake results := map[string]*AWSSageMakerEndpoint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSageMakerEndpoint: + results[name] = &resource case *AWSSageMakerEndpoint: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSSageMakerEndpointResources() map[string]*AWSSageMake func (t *Template) GetAWSSageMakerEndpointWithName(name string) (*AWSSageMakerEndpoint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSageMakerEndpoint: + return &resource, nil case *AWSSageMakerEndpoint: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-sagemaker-endpointconfig.go b/cloudformation/aws-sagemaker-endpointconfig.go index 3f898102d7..83a4dfb0f1 100644 --- a/cloudformation/aws-sagemaker-endpointconfig.go +++ b/cloudformation/aws-sagemaker-endpointconfig.go @@ -78,7 +78,7 @@ func (r *AWSSageMakerEndpointConfig) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSSageMakerEndpointConfig) MarshalJSON() ([]byte, error) { +func (r AWSSageMakerEndpointConfig) MarshalJSON() ([]byte, error) { type Properties AWSSageMakerEndpointConfig return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSSageMakerEndpointConfig) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSSageMakerEndpointConfigResources() map[string]*AWSSa results := map[string]*AWSSageMakerEndpointConfig{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSageMakerEndpointConfig: + results[name] = &resource case *AWSSageMakerEndpointConfig: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSSageMakerEndpointConfigResources() map[string]*AWSSa func (t *Template) GetAWSSageMakerEndpointConfigWithName(name string) (*AWSSageMakerEndpointConfig, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSageMakerEndpointConfig: + return &resource, nil case *AWSSageMakerEndpointConfig: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-sagemaker-model.go b/cloudformation/aws-sagemaker-model.go index 8e87a01970..38bfe458a9 100644 --- a/cloudformation/aws-sagemaker-model.go +++ b/cloudformation/aws-sagemaker-model.go @@ -88,7 +88,7 @@ func (r *AWSSageMakerModel) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSSageMakerModel) MarshalJSON() ([]byte, error) { +func (r AWSSageMakerModel) MarshalJSON() ([]byte, error) { type Properties AWSSageMakerModel return json.Marshal(&struct { Type string @@ -98,7 +98,7 @@ func (r *AWSSageMakerModel) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -143,6 +143,8 @@ func (t *Template) GetAllAWSSageMakerModelResources() map[string]*AWSSageMakerMo results := map[string]*AWSSageMakerModel{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSageMakerModel: + results[name] = &resource case *AWSSageMakerModel: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -171,6 +173,8 @@ func (t *Template) GetAllAWSSageMakerModelResources() map[string]*AWSSageMakerMo func (t *Template) GetAWSSageMakerModelWithName(name string) (*AWSSageMakerModel, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSageMakerModel: + return &resource, nil case *AWSSageMakerModel: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-sagemaker-notebookinstance.go b/cloudformation/aws-sagemaker-notebookinstance.go index 9e09d97c1b..005ee9dd5a 100644 --- a/cloudformation/aws-sagemaker-notebookinstance.go +++ b/cloudformation/aws-sagemaker-notebookinstance.go @@ -108,7 +108,7 @@ func (r *AWSSageMakerNotebookInstance) SetDeletionPolicy(policy DeletionPolicy) // 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 *AWSSageMakerNotebookInstance) MarshalJSON() ([]byte, error) { +func (r AWSSageMakerNotebookInstance) MarshalJSON() ([]byte, error) { type Properties AWSSageMakerNotebookInstance return json.Marshal(&struct { Type string @@ -118,7 +118,7 @@ func (r *AWSSageMakerNotebookInstance) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -163,6 +163,8 @@ func (t *Template) GetAllAWSSageMakerNotebookInstanceResources() map[string]*AWS results := map[string]*AWSSageMakerNotebookInstance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSageMakerNotebookInstance: + results[name] = &resource case *AWSSageMakerNotebookInstance: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -191,6 +193,8 @@ func (t *Template) GetAllAWSSageMakerNotebookInstanceResources() map[string]*AWS func (t *Template) GetAWSSageMakerNotebookInstanceWithName(name string) (*AWSSageMakerNotebookInstance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSageMakerNotebookInstance: + return &resource, nil case *AWSSageMakerNotebookInstance: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-sagemaker-notebookinstancelifecycleconfig.go b/cloudformation/aws-sagemaker-notebookinstancelifecycleconfig.go index 38ea57cb49..6615714c2e 100644 --- a/cloudformation/aws-sagemaker-notebookinstancelifecycleconfig.go +++ b/cloudformation/aws-sagemaker-notebookinstancelifecycleconfig.go @@ -73,7 +73,7 @@ func (r *AWSSageMakerNotebookInstanceLifecycleConfig) SetDeletionPolicy(policy D // 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 *AWSSageMakerNotebookInstanceLifecycleConfig) MarshalJSON() ([]byte, error) { +func (r AWSSageMakerNotebookInstanceLifecycleConfig) MarshalJSON() ([]byte, error) { type Properties AWSSageMakerNotebookInstanceLifecycleConfig return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSSageMakerNotebookInstanceLifecycleConfig) MarshalJSON() ([]byte, err DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSSageMakerNotebookInstanceLifecycleConfigResources() results := map[string]*AWSSageMakerNotebookInstanceLifecycleConfig{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSageMakerNotebookInstanceLifecycleConfig: + results[name] = &resource case *AWSSageMakerNotebookInstanceLifecycleConfig: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSSageMakerNotebookInstanceLifecycleConfigResources() func (t *Template) GetAWSSageMakerNotebookInstanceLifecycleConfigWithName(name string) (*AWSSageMakerNotebookInstanceLifecycleConfig, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSageMakerNotebookInstanceLifecycleConfig: + return &resource, nil case *AWSSageMakerNotebookInstanceLifecycleConfig: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-sdb-domain.go b/cloudformation/aws-sdb-domain.go index 5fb325859f..d27244e84f 100644 --- a/cloudformation/aws-sdb-domain.go +++ b/cloudformation/aws-sdb-domain.go @@ -63,7 +63,7 @@ func (r *AWSSDBDomain) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSSDBDomain) MarshalJSON() ([]byte, error) { +func (r AWSSDBDomain) MarshalJSON() ([]byte, error) { type Properties AWSSDBDomain return json.Marshal(&struct { Type string @@ -73,7 +73,7 @@ func (r *AWSSDBDomain) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -118,6 +118,8 @@ func (t *Template) GetAllAWSSDBDomainResources() map[string]*AWSSDBDomain { results := map[string]*AWSSDBDomain{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSDBDomain: + results[name] = &resource case *AWSSDBDomain: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -146,6 +148,8 @@ func (t *Template) GetAllAWSSDBDomainResources() map[string]*AWSSDBDomain { func (t *Template) GetAWSSDBDomainWithName(name string) (*AWSSDBDomain, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSDBDomain: + return &resource, nil case *AWSSDBDomain: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-secretsmanager-resourcepolicy.go b/cloudformation/aws-secretsmanager-resourcepolicy.go index 961386e8f3..d963ac4808 100644 --- a/cloudformation/aws-secretsmanager-resourcepolicy.go +++ b/cloudformation/aws-secretsmanager-resourcepolicy.go @@ -68,7 +68,7 @@ func (r *AWSSecretsManagerResourcePolicy) SetDeletionPolicy(policy DeletionPolic // 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 *AWSSecretsManagerResourcePolicy) MarshalJSON() ([]byte, error) { +func (r AWSSecretsManagerResourcePolicy) MarshalJSON() ([]byte, error) { type Properties AWSSecretsManagerResourcePolicy return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSSecretsManagerResourcePolicy) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSSecretsManagerResourcePolicyResources() map[string]* results := map[string]*AWSSecretsManagerResourcePolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSecretsManagerResourcePolicy: + results[name] = &resource case *AWSSecretsManagerResourcePolicy: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSSecretsManagerResourcePolicyResources() map[string]* func (t *Template) GetAWSSecretsManagerResourcePolicyWithName(name string) (*AWSSecretsManagerResourcePolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSecretsManagerResourcePolicy: + return &resource, nil case *AWSSecretsManagerResourcePolicy: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-secretsmanager-rotationschedule.go b/cloudformation/aws-secretsmanager-rotationschedule.go index aadaca58d7..e119b3d7c8 100644 --- a/cloudformation/aws-secretsmanager-rotationschedule.go +++ b/cloudformation/aws-secretsmanager-rotationschedule.go @@ -73,7 +73,7 @@ func (r *AWSSecretsManagerRotationSchedule) SetDeletionPolicy(policy DeletionPol // 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 *AWSSecretsManagerRotationSchedule) MarshalJSON() ([]byte, error) { +func (r AWSSecretsManagerRotationSchedule) MarshalJSON() ([]byte, error) { type Properties AWSSecretsManagerRotationSchedule return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSSecretsManagerRotationSchedule) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSSecretsManagerRotationScheduleResources() map[string results := map[string]*AWSSecretsManagerRotationSchedule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSecretsManagerRotationSchedule: + results[name] = &resource case *AWSSecretsManagerRotationSchedule: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSSecretsManagerRotationScheduleResources() map[string func (t *Template) GetAWSSecretsManagerRotationScheduleWithName(name string) (*AWSSecretsManagerRotationSchedule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSecretsManagerRotationSchedule: + return &resource, nil case *AWSSecretsManagerRotationSchedule: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-secretsmanager-secret.go b/cloudformation/aws-secretsmanager-secret.go index 03808f4a3b..bbb09a49e6 100644 --- a/cloudformation/aws-secretsmanager-secret.go +++ b/cloudformation/aws-secretsmanager-secret.go @@ -88,7 +88,7 @@ func (r *AWSSecretsManagerSecret) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSSecretsManagerSecret) MarshalJSON() ([]byte, error) { +func (r AWSSecretsManagerSecret) MarshalJSON() ([]byte, error) { type Properties AWSSecretsManagerSecret return json.Marshal(&struct { Type string @@ -98,7 +98,7 @@ func (r *AWSSecretsManagerSecret) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -143,6 +143,8 @@ func (t *Template) GetAllAWSSecretsManagerSecretResources() map[string]*AWSSecre results := map[string]*AWSSecretsManagerSecret{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSecretsManagerSecret: + results[name] = &resource case *AWSSecretsManagerSecret: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -171,6 +173,8 @@ func (t *Template) GetAllAWSSecretsManagerSecretResources() map[string]*AWSSecre func (t *Template) GetAWSSecretsManagerSecretWithName(name string) (*AWSSecretsManagerSecret, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSecretsManagerSecret: + return &resource, nil case *AWSSecretsManagerSecret: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-secretsmanager-secrettargetattachment.go b/cloudformation/aws-secretsmanager-secrettargetattachment.go index 41fbe033ba..f69373b448 100644 --- a/cloudformation/aws-secretsmanager-secrettargetattachment.go +++ b/cloudformation/aws-secretsmanager-secrettargetattachment.go @@ -73,7 +73,7 @@ func (r *AWSSecretsManagerSecretTargetAttachment) SetDeletionPolicy(policy Delet // 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 *AWSSecretsManagerSecretTargetAttachment) MarshalJSON() ([]byte, error) { +func (r AWSSecretsManagerSecretTargetAttachment) MarshalJSON() ([]byte, error) { type Properties AWSSecretsManagerSecretTargetAttachment return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSSecretsManagerSecretTargetAttachment) MarshalJSON() ([]byte, error) DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSSecretsManagerSecretTargetAttachmentResources() map[ results := map[string]*AWSSecretsManagerSecretTargetAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSecretsManagerSecretTargetAttachment: + results[name] = &resource case *AWSSecretsManagerSecretTargetAttachment: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSSecretsManagerSecretTargetAttachmentResources() map[ func (t *Template) GetAWSSecretsManagerSecretTargetAttachmentWithName(name string) (*AWSSecretsManagerSecretTargetAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSecretsManagerSecretTargetAttachment: + return &resource, nil case *AWSSecretsManagerSecretTargetAttachment: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-serverless-api.go b/cloudformation/aws-serverless-api.go index 3e7c8bbddd..86d8009585 100644 --- a/cloudformation/aws-serverless-api.go +++ b/cloudformation/aws-serverless-api.go @@ -118,7 +118,7 @@ func (r *AWSServerlessApi) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSServerlessApi) MarshalJSON() ([]byte, error) { +func (r AWSServerlessApi) MarshalJSON() ([]byte, error) { type Properties AWSServerlessApi return json.Marshal(&struct { Type string @@ -128,7 +128,7 @@ func (r *AWSServerlessApi) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -173,6 +173,8 @@ func (t *Template) GetAllAWSServerlessApiResources() map[string]*AWSServerlessAp results := map[string]*AWSServerlessApi{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSServerlessApi: + results[name] = &resource case *AWSServerlessApi: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -201,6 +203,8 @@ func (t *Template) GetAllAWSServerlessApiResources() map[string]*AWSServerlessAp func (t *Template) GetAWSServerlessApiWithName(name string) (*AWSServerlessApi, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSServerlessApi: + return &resource, nil case *AWSServerlessApi: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-serverless-application.go b/cloudformation/aws-serverless-application.go index 5d802d3a53..db03e0ad45 100644 --- a/cloudformation/aws-serverless-application.go +++ b/cloudformation/aws-serverless-application.go @@ -83,7 +83,7 @@ func (r *AWSServerlessApplication) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSServerlessApplication) MarshalJSON() ([]byte, error) { +func (r AWSServerlessApplication) MarshalJSON() ([]byte, error) { type Properties AWSServerlessApplication return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSServerlessApplication) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSServerlessApplicationResources() map[string]*AWSServ results := map[string]*AWSServerlessApplication{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSServerlessApplication: + results[name] = &resource case *AWSServerlessApplication: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSServerlessApplicationResources() map[string]*AWSServ func (t *Template) GetAWSServerlessApplicationWithName(name string) (*AWSServerlessApplication, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSServerlessApplication: + return &resource, nil case *AWSServerlessApplication: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-serverless-function.go b/cloudformation/aws-serverless-function.go index 5e8f709246..c287156e7a 100644 --- a/cloudformation/aws-serverless-function.go +++ b/cloudformation/aws-serverless-function.go @@ -158,7 +158,7 @@ func (r *AWSServerlessFunction) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSServerlessFunction) MarshalJSON() ([]byte, error) { +func (r AWSServerlessFunction) MarshalJSON() ([]byte, error) { type Properties AWSServerlessFunction return json.Marshal(&struct { Type string @@ -168,7 +168,7 @@ func (r *AWSServerlessFunction) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -213,6 +213,8 @@ func (t *Template) GetAllAWSServerlessFunctionResources() map[string]*AWSServerl results := map[string]*AWSServerlessFunction{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSServerlessFunction: + results[name] = &resource case *AWSServerlessFunction: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -241,6 +243,8 @@ func (t *Template) GetAllAWSServerlessFunctionResources() map[string]*AWSServerl func (t *Template) GetAWSServerlessFunctionWithName(name string) (*AWSServerlessFunction, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSServerlessFunction: + return &resource, nil case *AWSServerlessFunction: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-serverless-layerversion.go b/cloudformation/aws-serverless-layerversion.go index 5c226c9698..cf3a7dc3ae 100644 --- a/cloudformation/aws-serverless-layerversion.go +++ b/cloudformation/aws-serverless-layerversion.go @@ -88,7 +88,7 @@ func (r *AWSServerlessLayerVersion) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSServerlessLayerVersion) MarshalJSON() ([]byte, error) { +func (r AWSServerlessLayerVersion) MarshalJSON() ([]byte, error) { type Properties AWSServerlessLayerVersion return json.Marshal(&struct { Type string @@ -98,7 +98,7 @@ func (r *AWSServerlessLayerVersion) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -143,6 +143,8 @@ func (t *Template) GetAllAWSServerlessLayerVersionResources() map[string]*AWSSer results := map[string]*AWSServerlessLayerVersion{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSServerlessLayerVersion: + results[name] = &resource case *AWSServerlessLayerVersion: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -171,6 +173,8 @@ func (t *Template) GetAllAWSServerlessLayerVersionResources() map[string]*AWSSer func (t *Template) GetAWSServerlessLayerVersionWithName(name string) (*AWSServerlessLayerVersion, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSServerlessLayerVersion: + return &resource, nil case *AWSServerlessLayerVersion: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-serverless-simpletable.go b/cloudformation/aws-serverless-simpletable.go index 8308e48642..21b2282cae 100644 --- a/cloudformation/aws-serverless-simpletable.go +++ b/cloudformation/aws-serverless-simpletable.go @@ -83,7 +83,7 @@ func (r *AWSServerlessSimpleTable) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSServerlessSimpleTable) MarshalJSON() ([]byte, error) { +func (r AWSServerlessSimpleTable) MarshalJSON() ([]byte, error) { type Properties AWSServerlessSimpleTable return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSServerlessSimpleTable) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSServerlessSimpleTableResources() map[string]*AWSServ results := map[string]*AWSServerlessSimpleTable{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSServerlessSimpleTable: + results[name] = &resource case *AWSServerlessSimpleTable: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSServerlessSimpleTableResources() map[string]*AWSServ func (t *Template) GetAWSServerlessSimpleTableWithName(name string) (*AWSServerlessSimpleTable, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSServerlessSimpleTable: + return &resource, nil case *AWSServerlessSimpleTable: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-servicecatalog-acceptedportfolioshare.go b/cloudformation/aws-servicecatalog-acceptedportfolioshare.go index eb9af833d0..5c8bac960f 100644 --- a/cloudformation/aws-servicecatalog-acceptedportfolioshare.go +++ b/cloudformation/aws-servicecatalog-acceptedportfolioshare.go @@ -68,7 +68,7 @@ func (r *AWSServiceCatalogAcceptedPortfolioShare) SetDeletionPolicy(policy Delet // 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 *AWSServiceCatalogAcceptedPortfolioShare) MarshalJSON() ([]byte, error) { +func (r AWSServiceCatalogAcceptedPortfolioShare) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogAcceptedPortfolioShare return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSServiceCatalogAcceptedPortfolioShare) MarshalJSON() ([]byte, error) DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSServiceCatalogAcceptedPortfolioShareResources() map[ results := map[string]*AWSServiceCatalogAcceptedPortfolioShare{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSServiceCatalogAcceptedPortfolioShare: + results[name] = &resource case *AWSServiceCatalogAcceptedPortfolioShare: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSServiceCatalogAcceptedPortfolioShareResources() map[ func (t *Template) GetAWSServiceCatalogAcceptedPortfolioShareWithName(name string) (*AWSServiceCatalogAcceptedPortfolioShare, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSServiceCatalogAcceptedPortfolioShare: + return &resource, nil case *AWSServiceCatalogAcceptedPortfolioShare: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-servicecatalog-cloudformationproduct.go b/cloudformation/aws-servicecatalog-cloudformationproduct.go index e1c42e31d0..905aa9dbbd 100644 --- a/cloudformation/aws-servicecatalog-cloudformationproduct.go +++ b/cloudformation/aws-servicecatalog-cloudformationproduct.go @@ -108,7 +108,7 @@ func (r *AWSServiceCatalogCloudFormationProduct) SetDeletionPolicy(policy Deleti // 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 *AWSServiceCatalogCloudFormationProduct) MarshalJSON() ([]byte, error) { +func (r AWSServiceCatalogCloudFormationProduct) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogCloudFormationProduct return json.Marshal(&struct { Type string @@ -118,7 +118,7 @@ func (r *AWSServiceCatalogCloudFormationProduct) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -163,6 +163,8 @@ func (t *Template) GetAllAWSServiceCatalogCloudFormationProductResources() map[s results := map[string]*AWSServiceCatalogCloudFormationProduct{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSServiceCatalogCloudFormationProduct: + results[name] = &resource case *AWSServiceCatalogCloudFormationProduct: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -191,6 +193,8 @@ func (t *Template) GetAllAWSServiceCatalogCloudFormationProductResources() map[s func (t *Template) GetAWSServiceCatalogCloudFormationProductWithName(name string) (*AWSServiceCatalogCloudFormationProduct, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSServiceCatalogCloudFormationProduct: + return &resource, nil case *AWSServiceCatalogCloudFormationProduct: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-servicecatalog-cloudformationprovisionedproduct.go b/cloudformation/aws-servicecatalog-cloudformationprovisionedproduct.go index 4047ef4228..15004dfc65 100644 --- a/cloudformation/aws-servicecatalog-cloudformationprovisionedproduct.go +++ b/cloudformation/aws-servicecatalog-cloudformationprovisionedproduct.go @@ -108,7 +108,7 @@ func (r *AWSServiceCatalogCloudFormationProvisionedProduct) SetDeletionPolicy(po // 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 *AWSServiceCatalogCloudFormationProvisionedProduct) MarshalJSON() ([]byte, error) { +func (r AWSServiceCatalogCloudFormationProvisionedProduct) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogCloudFormationProvisionedProduct return json.Marshal(&struct { Type string @@ -118,7 +118,7 @@ func (r *AWSServiceCatalogCloudFormationProvisionedProduct) MarshalJSON() ([]byt DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -163,6 +163,8 @@ func (t *Template) GetAllAWSServiceCatalogCloudFormationProvisionedProductResour results := map[string]*AWSServiceCatalogCloudFormationProvisionedProduct{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSServiceCatalogCloudFormationProvisionedProduct: + results[name] = &resource case *AWSServiceCatalogCloudFormationProvisionedProduct: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -191,6 +193,8 @@ func (t *Template) GetAllAWSServiceCatalogCloudFormationProvisionedProductResour func (t *Template) GetAWSServiceCatalogCloudFormationProvisionedProductWithName(name string) (*AWSServiceCatalogCloudFormationProvisionedProduct, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSServiceCatalogCloudFormationProvisionedProduct: + return &resource, nil case *AWSServiceCatalogCloudFormationProvisionedProduct: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-servicecatalog-launchnotificationconstraint.go b/cloudformation/aws-servicecatalog-launchnotificationconstraint.go index 1bde574de8..17a0b03651 100644 --- a/cloudformation/aws-servicecatalog-launchnotificationconstraint.go +++ b/cloudformation/aws-servicecatalog-launchnotificationconstraint.go @@ -83,7 +83,7 @@ func (r *AWSServiceCatalogLaunchNotificationConstraint) SetDeletionPolicy(policy // 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 *AWSServiceCatalogLaunchNotificationConstraint) MarshalJSON() ([]byte, error) { +func (r AWSServiceCatalogLaunchNotificationConstraint) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogLaunchNotificationConstraint return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSServiceCatalogLaunchNotificationConstraint) MarshalJSON() ([]byte, e DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSServiceCatalogLaunchNotificationConstraintResources( results := map[string]*AWSServiceCatalogLaunchNotificationConstraint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSServiceCatalogLaunchNotificationConstraint: + results[name] = &resource case *AWSServiceCatalogLaunchNotificationConstraint: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSServiceCatalogLaunchNotificationConstraintResources( func (t *Template) GetAWSServiceCatalogLaunchNotificationConstraintWithName(name string) (*AWSServiceCatalogLaunchNotificationConstraint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSServiceCatalogLaunchNotificationConstraint: + return &resource, nil case *AWSServiceCatalogLaunchNotificationConstraint: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-servicecatalog-launchroleconstraint.go b/cloudformation/aws-servicecatalog-launchroleconstraint.go index 9df39724db..169cae68b0 100644 --- a/cloudformation/aws-servicecatalog-launchroleconstraint.go +++ b/cloudformation/aws-servicecatalog-launchroleconstraint.go @@ -83,7 +83,7 @@ func (r *AWSServiceCatalogLaunchRoleConstraint) SetDeletionPolicy(policy Deletio // 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 *AWSServiceCatalogLaunchRoleConstraint) MarshalJSON() ([]byte, error) { +func (r AWSServiceCatalogLaunchRoleConstraint) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogLaunchRoleConstraint return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSServiceCatalogLaunchRoleConstraint) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSServiceCatalogLaunchRoleConstraintResources() map[st results := map[string]*AWSServiceCatalogLaunchRoleConstraint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSServiceCatalogLaunchRoleConstraint: + results[name] = &resource case *AWSServiceCatalogLaunchRoleConstraint: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSServiceCatalogLaunchRoleConstraintResources() map[st func (t *Template) GetAWSServiceCatalogLaunchRoleConstraintWithName(name string) (*AWSServiceCatalogLaunchRoleConstraint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSServiceCatalogLaunchRoleConstraint: + return &resource, nil case *AWSServiceCatalogLaunchRoleConstraint: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-servicecatalog-launchtemplateconstraint.go b/cloudformation/aws-servicecatalog-launchtemplateconstraint.go index 3ff6f34ea9..262113666f 100644 --- a/cloudformation/aws-servicecatalog-launchtemplateconstraint.go +++ b/cloudformation/aws-servicecatalog-launchtemplateconstraint.go @@ -83,7 +83,7 @@ func (r *AWSServiceCatalogLaunchTemplateConstraint) SetDeletionPolicy(policy Del // 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 *AWSServiceCatalogLaunchTemplateConstraint) MarshalJSON() ([]byte, error) { +func (r AWSServiceCatalogLaunchTemplateConstraint) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogLaunchTemplateConstraint return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSServiceCatalogLaunchTemplateConstraint) MarshalJSON() ([]byte, error DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSServiceCatalogLaunchTemplateConstraintResources() ma results := map[string]*AWSServiceCatalogLaunchTemplateConstraint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSServiceCatalogLaunchTemplateConstraint: + results[name] = &resource case *AWSServiceCatalogLaunchTemplateConstraint: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSServiceCatalogLaunchTemplateConstraintResources() ma func (t *Template) GetAWSServiceCatalogLaunchTemplateConstraintWithName(name string) (*AWSServiceCatalogLaunchTemplateConstraint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSServiceCatalogLaunchTemplateConstraint: + return &resource, nil case *AWSServiceCatalogLaunchTemplateConstraint: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-servicecatalog-portfolio.go b/cloudformation/aws-servicecatalog-portfolio.go index 9b5dfca5da..d384d4d5b0 100644 --- a/cloudformation/aws-servicecatalog-portfolio.go +++ b/cloudformation/aws-servicecatalog-portfolio.go @@ -83,7 +83,7 @@ func (r *AWSServiceCatalogPortfolio) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSServiceCatalogPortfolio) MarshalJSON() ([]byte, error) { +func (r AWSServiceCatalogPortfolio) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogPortfolio return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSServiceCatalogPortfolio) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSServiceCatalogPortfolioResources() map[string]*AWSSe results := map[string]*AWSServiceCatalogPortfolio{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSServiceCatalogPortfolio: + results[name] = &resource case *AWSServiceCatalogPortfolio: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSServiceCatalogPortfolioResources() map[string]*AWSSe func (t *Template) GetAWSServiceCatalogPortfolioWithName(name string) (*AWSServiceCatalogPortfolio, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSServiceCatalogPortfolio: + return &resource, nil case *AWSServiceCatalogPortfolio: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-servicecatalog-portfolioprincipalassociation.go b/cloudformation/aws-servicecatalog-portfolioprincipalassociation.go index a7909b95e8..74e4a2a3c0 100644 --- a/cloudformation/aws-servicecatalog-portfolioprincipalassociation.go +++ b/cloudformation/aws-servicecatalog-portfolioprincipalassociation.go @@ -78,7 +78,7 @@ func (r *AWSServiceCatalogPortfolioPrincipalAssociation) SetDeletionPolicy(polic // 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 *AWSServiceCatalogPortfolioPrincipalAssociation) MarshalJSON() ([]byte, error) { +func (r AWSServiceCatalogPortfolioPrincipalAssociation) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogPortfolioPrincipalAssociation return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSServiceCatalogPortfolioPrincipalAssociation) MarshalJSON() ([]byte, DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSServiceCatalogPortfolioPrincipalAssociationResources results := map[string]*AWSServiceCatalogPortfolioPrincipalAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSServiceCatalogPortfolioPrincipalAssociation: + results[name] = &resource case *AWSServiceCatalogPortfolioPrincipalAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSServiceCatalogPortfolioPrincipalAssociationResources func (t *Template) GetAWSServiceCatalogPortfolioPrincipalAssociationWithName(name string) (*AWSServiceCatalogPortfolioPrincipalAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSServiceCatalogPortfolioPrincipalAssociation: + return &resource, nil case *AWSServiceCatalogPortfolioPrincipalAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-servicecatalog-portfolioproductassociation.go b/cloudformation/aws-servicecatalog-portfolioproductassociation.go index 6fccf530f6..c99886079a 100644 --- a/cloudformation/aws-servicecatalog-portfolioproductassociation.go +++ b/cloudformation/aws-servicecatalog-portfolioproductassociation.go @@ -78,7 +78,7 @@ func (r *AWSServiceCatalogPortfolioProductAssociation) SetDeletionPolicy(policy // 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 *AWSServiceCatalogPortfolioProductAssociation) MarshalJSON() ([]byte, error) { +func (r AWSServiceCatalogPortfolioProductAssociation) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogPortfolioProductAssociation return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSServiceCatalogPortfolioProductAssociation) MarshalJSON() ([]byte, er DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSServiceCatalogPortfolioProductAssociationResources() results := map[string]*AWSServiceCatalogPortfolioProductAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSServiceCatalogPortfolioProductAssociation: + results[name] = &resource case *AWSServiceCatalogPortfolioProductAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSServiceCatalogPortfolioProductAssociationResources() func (t *Template) GetAWSServiceCatalogPortfolioProductAssociationWithName(name string) (*AWSServiceCatalogPortfolioProductAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSServiceCatalogPortfolioProductAssociation: + return &resource, nil case *AWSServiceCatalogPortfolioProductAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-servicecatalog-portfolioshare.go b/cloudformation/aws-servicecatalog-portfolioshare.go index e0ff538c33..e89c452cbb 100644 --- a/cloudformation/aws-servicecatalog-portfolioshare.go +++ b/cloudformation/aws-servicecatalog-portfolioshare.go @@ -73,7 +73,7 @@ func (r *AWSServiceCatalogPortfolioShare) SetDeletionPolicy(policy DeletionPolic // 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 *AWSServiceCatalogPortfolioShare) MarshalJSON() ([]byte, error) { +func (r AWSServiceCatalogPortfolioShare) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogPortfolioShare return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSServiceCatalogPortfolioShare) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSServiceCatalogPortfolioShareResources() map[string]* results := map[string]*AWSServiceCatalogPortfolioShare{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSServiceCatalogPortfolioShare: + results[name] = &resource case *AWSServiceCatalogPortfolioShare: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSServiceCatalogPortfolioShareResources() map[string]* func (t *Template) GetAWSServiceCatalogPortfolioShareWithName(name string) (*AWSServiceCatalogPortfolioShare, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSServiceCatalogPortfolioShare: + return &resource, nil case *AWSServiceCatalogPortfolioShare: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-servicecatalog-tagoption.go b/cloudformation/aws-servicecatalog-tagoption.go index 8692199d30..deda02b136 100644 --- a/cloudformation/aws-servicecatalog-tagoption.go +++ b/cloudformation/aws-servicecatalog-tagoption.go @@ -73,7 +73,7 @@ func (r *AWSServiceCatalogTagOption) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSServiceCatalogTagOption) MarshalJSON() ([]byte, error) { +func (r AWSServiceCatalogTagOption) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogTagOption return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSServiceCatalogTagOption) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSServiceCatalogTagOptionResources() map[string]*AWSSe results := map[string]*AWSServiceCatalogTagOption{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSServiceCatalogTagOption: + results[name] = &resource case *AWSServiceCatalogTagOption: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSServiceCatalogTagOptionResources() map[string]*AWSSe func (t *Template) GetAWSServiceCatalogTagOptionWithName(name string) (*AWSServiceCatalogTagOption, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSServiceCatalogTagOption: + return &resource, nil case *AWSServiceCatalogTagOption: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-servicecatalog-tagoptionassociation.go b/cloudformation/aws-servicecatalog-tagoptionassociation.go index cf518070ae..90f15904e9 100644 --- a/cloudformation/aws-servicecatalog-tagoptionassociation.go +++ b/cloudformation/aws-servicecatalog-tagoptionassociation.go @@ -68,7 +68,7 @@ func (r *AWSServiceCatalogTagOptionAssociation) SetDeletionPolicy(policy Deletio // 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 *AWSServiceCatalogTagOptionAssociation) MarshalJSON() ([]byte, error) { +func (r AWSServiceCatalogTagOptionAssociation) MarshalJSON() ([]byte, error) { type Properties AWSServiceCatalogTagOptionAssociation return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSServiceCatalogTagOptionAssociation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSServiceCatalogTagOptionAssociationResources() map[st results := map[string]*AWSServiceCatalogTagOptionAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSServiceCatalogTagOptionAssociation: + results[name] = &resource case *AWSServiceCatalogTagOptionAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSServiceCatalogTagOptionAssociationResources() map[st func (t *Template) GetAWSServiceCatalogTagOptionAssociationWithName(name string) (*AWSServiceCatalogTagOptionAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSServiceCatalogTagOptionAssociation: + return &resource, nil case *AWSServiceCatalogTagOptionAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-servicediscovery-httpnamespace.go b/cloudformation/aws-servicediscovery-httpnamespace.go index d3c1abfb4e..c466c6b700 100644 --- a/cloudformation/aws-servicediscovery-httpnamespace.go +++ b/cloudformation/aws-servicediscovery-httpnamespace.go @@ -68,7 +68,7 @@ func (r *AWSServiceDiscoveryHttpNamespace) SetDeletionPolicy(policy DeletionPoli // 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 *AWSServiceDiscoveryHttpNamespace) MarshalJSON() ([]byte, error) { +func (r AWSServiceDiscoveryHttpNamespace) MarshalJSON() ([]byte, error) { type Properties AWSServiceDiscoveryHttpNamespace return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSServiceDiscoveryHttpNamespace) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSServiceDiscoveryHttpNamespaceResources() map[string] results := map[string]*AWSServiceDiscoveryHttpNamespace{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSServiceDiscoveryHttpNamespace: + results[name] = &resource case *AWSServiceDiscoveryHttpNamespace: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSServiceDiscoveryHttpNamespaceResources() map[string] func (t *Template) GetAWSServiceDiscoveryHttpNamespaceWithName(name string) (*AWSServiceDiscoveryHttpNamespace, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSServiceDiscoveryHttpNamespace: + return &resource, nil case *AWSServiceDiscoveryHttpNamespace: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-servicediscovery-instance.go b/cloudformation/aws-servicediscovery-instance.go index 0687c48437..9f62c3cf98 100644 --- a/cloudformation/aws-servicediscovery-instance.go +++ b/cloudformation/aws-servicediscovery-instance.go @@ -73,7 +73,7 @@ func (r *AWSServiceDiscoveryInstance) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSServiceDiscoveryInstance) MarshalJSON() ([]byte, error) { +func (r AWSServiceDiscoveryInstance) MarshalJSON() ([]byte, error) { type Properties AWSServiceDiscoveryInstance return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSServiceDiscoveryInstance) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSServiceDiscoveryInstanceResources() map[string]*AWSS results := map[string]*AWSServiceDiscoveryInstance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSServiceDiscoveryInstance: + results[name] = &resource case *AWSServiceDiscoveryInstance: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSServiceDiscoveryInstanceResources() map[string]*AWSS func (t *Template) GetAWSServiceDiscoveryInstanceWithName(name string) (*AWSServiceDiscoveryInstance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSServiceDiscoveryInstance: + return &resource, nil case *AWSServiceDiscoveryInstance: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-servicediscovery-privatednsnamespace.go b/cloudformation/aws-servicediscovery-privatednsnamespace.go index e2d6a1a09c..6d6f6c05a0 100644 --- a/cloudformation/aws-servicediscovery-privatednsnamespace.go +++ b/cloudformation/aws-servicediscovery-privatednsnamespace.go @@ -73,7 +73,7 @@ func (r *AWSServiceDiscoveryPrivateDnsNamespace) SetDeletionPolicy(policy Deleti // 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 *AWSServiceDiscoveryPrivateDnsNamespace) MarshalJSON() ([]byte, error) { +func (r AWSServiceDiscoveryPrivateDnsNamespace) MarshalJSON() ([]byte, error) { type Properties AWSServiceDiscoveryPrivateDnsNamespace return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSServiceDiscoveryPrivateDnsNamespace) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSServiceDiscoveryPrivateDnsNamespaceResources() map[s results := map[string]*AWSServiceDiscoveryPrivateDnsNamespace{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSServiceDiscoveryPrivateDnsNamespace: + results[name] = &resource case *AWSServiceDiscoveryPrivateDnsNamespace: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSServiceDiscoveryPrivateDnsNamespaceResources() map[s func (t *Template) GetAWSServiceDiscoveryPrivateDnsNamespaceWithName(name string) (*AWSServiceDiscoveryPrivateDnsNamespace, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSServiceDiscoveryPrivateDnsNamespace: + return &resource, nil case *AWSServiceDiscoveryPrivateDnsNamespace: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-servicediscovery-publicdnsnamespace.go b/cloudformation/aws-servicediscovery-publicdnsnamespace.go index 6542594afa..30091fea56 100644 --- a/cloudformation/aws-servicediscovery-publicdnsnamespace.go +++ b/cloudformation/aws-servicediscovery-publicdnsnamespace.go @@ -68,7 +68,7 @@ func (r *AWSServiceDiscoveryPublicDnsNamespace) SetDeletionPolicy(policy Deletio // 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 *AWSServiceDiscoveryPublicDnsNamespace) MarshalJSON() ([]byte, error) { +func (r AWSServiceDiscoveryPublicDnsNamespace) MarshalJSON() ([]byte, error) { type Properties AWSServiceDiscoveryPublicDnsNamespace return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSServiceDiscoveryPublicDnsNamespace) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSServiceDiscoveryPublicDnsNamespaceResources() map[st results := map[string]*AWSServiceDiscoveryPublicDnsNamespace{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSServiceDiscoveryPublicDnsNamespace: + results[name] = &resource case *AWSServiceDiscoveryPublicDnsNamespace: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSServiceDiscoveryPublicDnsNamespaceResources() map[st func (t *Template) GetAWSServiceDiscoveryPublicDnsNamespaceWithName(name string) (*AWSServiceDiscoveryPublicDnsNamespace, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSServiceDiscoveryPublicDnsNamespace: + return &resource, nil case *AWSServiceDiscoveryPublicDnsNamespace: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-servicediscovery-service.go b/cloudformation/aws-servicediscovery-service.go index 1195d7ddb7..7de68924ea 100644 --- a/cloudformation/aws-servicediscovery-service.go +++ b/cloudformation/aws-servicediscovery-service.go @@ -88,7 +88,7 @@ func (r *AWSServiceDiscoveryService) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSServiceDiscoveryService) MarshalJSON() ([]byte, error) { +func (r AWSServiceDiscoveryService) MarshalJSON() ([]byte, error) { type Properties AWSServiceDiscoveryService return json.Marshal(&struct { Type string @@ -98,7 +98,7 @@ func (r *AWSServiceDiscoveryService) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -143,6 +143,8 @@ func (t *Template) GetAllAWSServiceDiscoveryServiceResources() map[string]*AWSSe results := map[string]*AWSServiceDiscoveryService{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSServiceDiscoveryService: + results[name] = &resource case *AWSServiceDiscoveryService: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -171,6 +173,8 @@ func (t *Template) GetAllAWSServiceDiscoveryServiceResources() map[string]*AWSSe func (t *Template) GetAWSServiceDiscoveryServiceWithName(name string) (*AWSServiceDiscoveryService, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSServiceDiscoveryService: + return &resource, nil case *AWSServiceDiscoveryService: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ses-configurationset.go b/cloudformation/aws-ses-configurationset.go index 4a72607946..5681935a6d 100644 --- a/cloudformation/aws-ses-configurationset.go +++ b/cloudformation/aws-ses-configurationset.go @@ -63,7 +63,7 @@ func (r *AWSSESConfigurationSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSSESConfigurationSet) MarshalJSON() ([]byte, error) { +func (r AWSSESConfigurationSet) MarshalJSON() ([]byte, error) { type Properties AWSSESConfigurationSet return json.Marshal(&struct { Type string @@ -73,7 +73,7 @@ func (r *AWSSESConfigurationSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -118,6 +118,8 @@ func (t *Template) GetAllAWSSESConfigurationSetResources() map[string]*AWSSESCon results := map[string]*AWSSESConfigurationSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSESConfigurationSet: + results[name] = &resource case *AWSSESConfigurationSet: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -146,6 +148,8 @@ func (t *Template) GetAllAWSSESConfigurationSetResources() map[string]*AWSSESCon func (t *Template) GetAWSSESConfigurationSetWithName(name string) (*AWSSESConfigurationSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSESConfigurationSet: + return &resource, nil case *AWSSESConfigurationSet: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ses-configurationseteventdestination.go b/cloudformation/aws-ses-configurationseteventdestination.go index e7521f4dbe..08eb8661ee 100644 --- a/cloudformation/aws-ses-configurationseteventdestination.go +++ b/cloudformation/aws-ses-configurationseteventdestination.go @@ -68,7 +68,7 @@ func (r *AWSSESConfigurationSetEventDestination) SetDeletionPolicy(policy Deleti // 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 *AWSSESConfigurationSetEventDestination) MarshalJSON() ([]byte, error) { +func (r AWSSESConfigurationSetEventDestination) MarshalJSON() ([]byte, error) { type Properties AWSSESConfigurationSetEventDestination return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSSESConfigurationSetEventDestination) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSSESConfigurationSetEventDestinationResources() map[s results := map[string]*AWSSESConfigurationSetEventDestination{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSESConfigurationSetEventDestination: + results[name] = &resource case *AWSSESConfigurationSetEventDestination: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSSESConfigurationSetEventDestinationResources() map[s func (t *Template) GetAWSSESConfigurationSetEventDestinationWithName(name string) (*AWSSESConfigurationSetEventDestination, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSESConfigurationSetEventDestination: + return &resource, nil case *AWSSESConfigurationSetEventDestination: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ses-receiptfilter.go b/cloudformation/aws-ses-receiptfilter.go index fcc3bd58ec..121e4068a1 100644 --- a/cloudformation/aws-ses-receiptfilter.go +++ b/cloudformation/aws-ses-receiptfilter.go @@ -63,7 +63,7 @@ func (r *AWSSESReceiptFilter) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSSESReceiptFilter) MarshalJSON() ([]byte, error) { +func (r AWSSESReceiptFilter) MarshalJSON() ([]byte, error) { type Properties AWSSESReceiptFilter return json.Marshal(&struct { Type string @@ -73,7 +73,7 @@ func (r *AWSSESReceiptFilter) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -118,6 +118,8 @@ func (t *Template) GetAllAWSSESReceiptFilterResources() map[string]*AWSSESReceip results := map[string]*AWSSESReceiptFilter{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSESReceiptFilter: + results[name] = &resource case *AWSSESReceiptFilter: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -146,6 +148,8 @@ func (t *Template) GetAllAWSSESReceiptFilterResources() map[string]*AWSSESReceip func (t *Template) GetAWSSESReceiptFilterWithName(name string) (*AWSSESReceiptFilter, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSESReceiptFilter: + return &resource, nil case *AWSSESReceiptFilter: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ses-receiptrule.go b/cloudformation/aws-ses-receiptrule.go index 75f5204cd5..16a2f5c0b3 100644 --- a/cloudformation/aws-ses-receiptrule.go +++ b/cloudformation/aws-ses-receiptrule.go @@ -73,7 +73,7 @@ func (r *AWSSESReceiptRule) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSSESReceiptRule) MarshalJSON() ([]byte, error) { +func (r AWSSESReceiptRule) MarshalJSON() ([]byte, error) { type Properties AWSSESReceiptRule return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSSESReceiptRule) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSSESReceiptRuleResources() map[string]*AWSSESReceiptR results := map[string]*AWSSESReceiptRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSESReceiptRule: + results[name] = &resource case *AWSSESReceiptRule: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSSESReceiptRuleResources() map[string]*AWSSESReceiptR func (t *Template) GetAWSSESReceiptRuleWithName(name string) (*AWSSESReceiptRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSESReceiptRule: + return &resource, nil case *AWSSESReceiptRule: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ses-receiptruleset.go b/cloudformation/aws-ses-receiptruleset.go index dcba2af3c2..5746772f71 100644 --- a/cloudformation/aws-ses-receiptruleset.go +++ b/cloudformation/aws-ses-receiptruleset.go @@ -63,7 +63,7 @@ func (r *AWSSESReceiptRuleSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSSESReceiptRuleSet) MarshalJSON() ([]byte, error) { +func (r AWSSESReceiptRuleSet) MarshalJSON() ([]byte, error) { type Properties AWSSESReceiptRuleSet return json.Marshal(&struct { Type string @@ -73,7 +73,7 @@ func (r *AWSSESReceiptRuleSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -118,6 +118,8 @@ func (t *Template) GetAllAWSSESReceiptRuleSetResources() map[string]*AWSSESRecei results := map[string]*AWSSESReceiptRuleSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSESReceiptRuleSet: + results[name] = &resource case *AWSSESReceiptRuleSet: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -146,6 +148,8 @@ func (t *Template) GetAllAWSSESReceiptRuleSetResources() map[string]*AWSSESRecei func (t *Template) GetAWSSESReceiptRuleSetWithName(name string) (*AWSSESReceiptRuleSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSESReceiptRuleSet: + return &resource, nil case *AWSSESReceiptRuleSet: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ses-template.go b/cloudformation/aws-ses-template.go index 7b29b2ae37..12459ee88d 100644 --- a/cloudformation/aws-ses-template.go +++ b/cloudformation/aws-ses-template.go @@ -63,7 +63,7 @@ func (r *AWSSESTemplate) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSSESTemplate) MarshalJSON() ([]byte, error) { +func (r AWSSESTemplate) MarshalJSON() ([]byte, error) { type Properties AWSSESTemplate return json.Marshal(&struct { Type string @@ -73,7 +73,7 @@ func (r *AWSSESTemplate) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -118,6 +118,8 @@ func (t *Template) GetAllAWSSESTemplateResources() map[string]*AWSSESTemplate { results := map[string]*AWSSESTemplate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSESTemplate: + results[name] = &resource case *AWSSESTemplate: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -146,6 +148,8 @@ func (t *Template) GetAllAWSSESTemplateResources() map[string]*AWSSESTemplate { func (t *Template) GetAWSSESTemplateWithName(name string) (*AWSSESTemplate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSESTemplate: + return &resource, nil case *AWSSESTemplate: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-sns-subscription.go b/cloudformation/aws-sns-subscription.go index b8cbe9149b..9fdb9d6d86 100644 --- a/cloudformation/aws-sns-subscription.go +++ b/cloudformation/aws-sns-subscription.go @@ -93,7 +93,7 @@ func (r *AWSSNSSubscription) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSSNSSubscription) MarshalJSON() ([]byte, error) { +func (r AWSSNSSubscription) MarshalJSON() ([]byte, error) { type Properties AWSSNSSubscription return json.Marshal(&struct { Type string @@ -103,7 +103,7 @@ func (r *AWSSNSSubscription) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -148,6 +148,8 @@ func (t *Template) GetAllAWSSNSSubscriptionResources() map[string]*AWSSNSSubscri results := map[string]*AWSSNSSubscription{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSNSSubscription: + results[name] = &resource case *AWSSNSSubscription: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -176,6 +178,8 @@ func (t *Template) GetAllAWSSNSSubscriptionResources() map[string]*AWSSNSSubscri func (t *Template) GetAWSSNSSubscriptionWithName(name string) (*AWSSNSSubscription, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSNSSubscription: + return &resource, nil case *AWSSNSSubscription: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-sns-topic.go b/cloudformation/aws-sns-topic.go index 795bce67ee..f9bdad53cf 100644 --- a/cloudformation/aws-sns-topic.go +++ b/cloudformation/aws-sns-topic.go @@ -78,7 +78,7 @@ func (r *AWSSNSTopic) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSSNSTopic) MarshalJSON() ([]byte, error) { +func (r AWSSNSTopic) MarshalJSON() ([]byte, error) { type Properties AWSSNSTopic return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSSNSTopic) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSSNSTopicResources() map[string]*AWSSNSTopic { results := map[string]*AWSSNSTopic{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSNSTopic: + results[name] = &resource case *AWSSNSTopic: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSSNSTopicResources() map[string]*AWSSNSTopic { func (t *Template) GetAWSSNSTopicWithName(name string) (*AWSSNSTopic, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSNSTopic: + return &resource, nil case *AWSSNSTopic: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-sns-topicpolicy.go b/cloudformation/aws-sns-topicpolicy.go index db37745421..0feda52551 100644 --- a/cloudformation/aws-sns-topicpolicy.go +++ b/cloudformation/aws-sns-topicpolicy.go @@ -68,7 +68,7 @@ func (r *AWSSNSTopicPolicy) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSSNSTopicPolicy) MarshalJSON() ([]byte, error) { +func (r AWSSNSTopicPolicy) MarshalJSON() ([]byte, error) { type Properties AWSSNSTopicPolicy return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSSNSTopicPolicy) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSSNSTopicPolicyResources() map[string]*AWSSNSTopicPol results := map[string]*AWSSNSTopicPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSNSTopicPolicy: + results[name] = &resource case *AWSSNSTopicPolicy: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSSNSTopicPolicyResources() map[string]*AWSSNSTopicPol func (t *Template) GetAWSSNSTopicPolicyWithName(name string) (*AWSSNSTopicPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSNSTopicPolicy: + return &resource, nil case *AWSSNSTopicPolicy: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-sqs-queue.go b/cloudformation/aws-sqs-queue.go index feec570f9c..9cc9999bde 100644 --- a/cloudformation/aws-sqs-queue.go +++ b/cloudformation/aws-sqs-queue.go @@ -118,7 +118,7 @@ func (r *AWSSQSQueue) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSSQSQueue) MarshalJSON() ([]byte, error) { +func (r AWSSQSQueue) MarshalJSON() ([]byte, error) { type Properties AWSSQSQueue return json.Marshal(&struct { Type string @@ -128,7 +128,7 @@ func (r *AWSSQSQueue) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -173,6 +173,8 @@ func (t *Template) GetAllAWSSQSQueueResources() map[string]*AWSSQSQueue { results := map[string]*AWSSQSQueue{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSQSQueue: + results[name] = &resource case *AWSSQSQueue: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -201,6 +203,8 @@ func (t *Template) GetAllAWSSQSQueueResources() map[string]*AWSSQSQueue { func (t *Template) GetAWSSQSQueueWithName(name string) (*AWSSQSQueue, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSQSQueue: + return &resource, nil case *AWSSQSQueue: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-sqs-queuepolicy.go b/cloudformation/aws-sqs-queuepolicy.go index 325639dd65..f23895de9c 100644 --- a/cloudformation/aws-sqs-queuepolicy.go +++ b/cloudformation/aws-sqs-queuepolicy.go @@ -68,7 +68,7 @@ func (r *AWSSQSQueuePolicy) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSSQSQueuePolicy) MarshalJSON() ([]byte, error) { +func (r AWSSQSQueuePolicy) MarshalJSON() ([]byte, error) { type Properties AWSSQSQueuePolicy return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSSQSQueuePolicy) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSSQSQueuePolicyResources() map[string]*AWSSQSQueuePol results := map[string]*AWSSQSQueuePolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSQSQueuePolicy: + results[name] = &resource case *AWSSQSQueuePolicy: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSSQSQueuePolicyResources() map[string]*AWSSQSQueuePol func (t *Template) GetAWSSQSQueuePolicyWithName(name string) (*AWSSQSQueuePolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSQSQueuePolicy: + return &resource, nil case *AWSSQSQueuePolicy: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ssm-association.go b/cloudformation/aws-ssm-association.go index beaf8499d7..e79a88eaf7 100644 --- a/cloudformation/aws-ssm-association.go +++ b/cloudformation/aws-ssm-association.go @@ -98,7 +98,7 @@ func (r *AWSSSMAssociation) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSSSMAssociation) MarshalJSON() ([]byte, error) { +func (r AWSSSMAssociation) MarshalJSON() ([]byte, error) { type Properties AWSSSMAssociation return json.Marshal(&struct { Type string @@ -108,7 +108,7 @@ func (r *AWSSSMAssociation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -153,6 +153,8 @@ func (t *Template) GetAllAWSSSMAssociationResources() map[string]*AWSSSMAssociat results := map[string]*AWSSSMAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSSMAssociation: + results[name] = &resource case *AWSSSMAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -181,6 +183,8 @@ func (t *Template) GetAllAWSSSMAssociationResources() map[string]*AWSSSMAssociat func (t *Template) GetAWSSSMAssociationWithName(name string) (*AWSSSMAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSSMAssociation: + return &resource, nil case *AWSSSMAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ssm-document.go b/cloudformation/aws-ssm-document.go index 2b18e084f3..bbba9647e4 100644 --- a/cloudformation/aws-ssm-document.go +++ b/cloudformation/aws-ssm-document.go @@ -73,7 +73,7 @@ func (r *AWSSSMDocument) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSSSMDocument) MarshalJSON() ([]byte, error) { +func (r AWSSSMDocument) MarshalJSON() ([]byte, error) { type Properties AWSSSMDocument return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSSSMDocument) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSSSMDocumentResources() map[string]*AWSSSMDocument { results := map[string]*AWSSSMDocument{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSSMDocument: + results[name] = &resource case *AWSSSMDocument: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSSSMDocumentResources() map[string]*AWSSSMDocument { func (t *Template) GetAWSSSMDocumentWithName(name string) (*AWSSSMDocument, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSSMDocument: + return &resource, nil case *AWSSSMDocument: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ssm-maintenancewindow.go b/cloudformation/aws-ssm-maintenancewindow.go index 39e16e3e81..8f38cee7d1 100644 --- a/cloudformation/aws-ssm-maintenancewindow.go +++ b/cloudformation/aws-ssm-maintenancewindow.go @@ -108,7 +108,7 @@ func (r *AWSSSMMaintenanceWindow) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSSSMMaintenanceWindow) MarshalJSON() ([]byte, error) { +func (r AWSSSMMaintenanceWindow) MarshalJSON() ([]byte, error) { type Properties AWSSSMMaintenanceWindow return json.Marshal(&struct { Type string @@ -118,7 +118,7 @@ func (r *AWSSSMMaintenanceWindow) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -163,6 +163,8 @@ func (t *Template) GetAllAWSSSMMaintenanceWindowResources() map[string]*AWSSSMMa results := map[string]*AWSSSMMaintenanceWindow{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSSMMaintenanceWindow: + results[name] = &resource case *AWSSSMMaintenanceWindow: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -191,6 +193,8 @@ func (t *Template) GetAllAWSSSMMaintenanceWindowResources() map[string]*AWSSSMMa func (t *Template) GetAWSSSMMaintenanceWindowWithName(name string) (*AWSSSMMaintenanceWindow, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSSMMaintenanceWindow: + return &resource, nil case *AWSSSMMaintenanceWindow: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ssm-maintenancewindowtask.go b/cloudformation/aws-ssm-maintenancewindowtask.go index 26667a684f..2b634d2cb1 100644 --- a/cloudformation/aws-ssm-maintenancewindowtask.go +++ b/cloudformation/aws-ssm-maintenancewindowtask.go @@ -123,7 +123,7 @@ func (r *AWSSSMMaintenanceWindowTask) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSSSMMaintenanceWindowTask) MarshalJSON() ([]byte, error) { +func (r AWSSSMMaintenanceWindowTask) MarshalJSON() ([]byte, error) { type Properties AWSSSMMaintenanceWindowTask return json.Marshal(&struct { Type string @@ -133,7 +133,7 @@ func (r *AWSSSMMaintenanceWindowTask) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -178,6 +178,8 @@ func (t *Template) GetAllAWSSSMMaintenanceWindowTaskResources() map[string]*AWSS results := map[string]*AWSSSMMaintenanceWindowTask{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSSMMaintenanceWindowTask: + results[name] = &resource case *AWSSSMMaintenanceWindowTask: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -206,6 +208,8 @@ func (t *Template) GetAllAWSSSMMaintenanceWindowTaskResources() map[string]*AWSS func (t *Template) GetAWSSSMMaintenanceWindowTaskWithName(name string) (*AWSSSMMaintenanceWindowTask, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSSMMaintenanceWindowTask: + return &resource, nil case *AWSSSMMaintenanceWindowTask: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ssm-parameter.go b/cloudformation/aws-ssm-parameter.go index a55cf51851..385c093476 100644 --- a/cloudformation/aws-ssm-parameter.go +++ b/cloudformation/aws-ssm-parameter.go @@ -83,7 +83,7 @@ func (r *AWSSSMParameter) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSSSMParameter) MarshalJSON() ([]byte, error) { +func (r AWSSSMParameter) MarshalJSON() ([]byte, error) { type Properties AWSSSMParameter return json.Marshal(&struct { Type string @@ -93,7 +93,7 @@ func (r *AWSSSMParameter) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -138,6 +138,8 @@ func (t *Template) GetAllAWSSSMParameterResources() map[string]*AWSSSMParameter results := map[string]*AWSSSMParameter{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSSMParameter: + results[name] = &resource case *AWSSSMParameter: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -166,6 +168,8 @@ func (t *Template) GetAllAWSSSMParameterResources() map[string]*AWSSSMParameter func (t *Template) GetAWSSSMParameterWithName(name string) (*AWSSSMParameter, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSSMParameter: + return &resource, nil case *AWSSSMParameter: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ssm-patchbaseline.go b/cloudformation/aws-ssm-patchbaseline.go index b6abc95fae..f098461732 100644 --- a/cloudformation/aws-ssm-patchbaseline.go +++ b/cloudformation/aws-ssm-patchbaseline.go @@ -71,6 +71,11 @@ type AWSSSMPatchBaseline struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html#cfn-ssm-patchbaseline-sources Sources []AWSSSMPatchBaseline_PatchSource `json:"Sources,omitempty"` + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-patchbaseline.html#cfn-ssm-patchbaseline-tags + Tags []Tag `json:"Tags,omitempty"` + // _deletionPolicy represents a CloudFormation DeletionPolicy _deletionPolicy DeletionPolicy @@ -118,7 +123,7 @@ func (r *AWSSSMPatchBaseline) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSSSMPatchBaseline) MarshalJSON() ([]byte, error) { +func (r AWSSSMPatchBaseline) MarshalJSON() ([]byte, error) { type Properties AWSSSMPatchBaseline return json.Marshal(&struct { Type string @@ -128,7 +133,7 @@ func (r *AWSSSMPatchBaseline) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -173,6 +178,8 @@ func (t *Template) GetAllAWSSSMPatchBaselineResources() map[string]*AWSSSMPatchB results := map[string]*AWSSSMPatchBaseline{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSSMPatchBaseline: + results[name] = &resource case *AWSSSMPatchBaseline: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -201,6 +208,8 @@ func (t *Template) GetAllAWSSSMPatchBaselineResources() map[string]*AWSSSMPatchB func (t *Template) GetAWSSSMPatchBaselineWithName(name string) (*AWSSSMPatchBaseline, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSSMPatchBaseline: + return &resource, nil case *AWSSSMPatchBaseline: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-ssm-resourcedatasync.go b/cloudformation/aws-ssm-resourcedatasync.go index 59cf95b3e9..44d289e83b 100644 --- a/cloudformation/aws-ssm-resourcedatasync.go +++ b/cloudformation/aws-ssm-resourcedatasync.go @@ -88,7 +88,7 @@ func (r *AWSSSMResourceDataSync) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSSSMResourceDataSync) MarshalJSON() ([]byte, error) { +func (r AWSSSMResourceDataSync) MarshalJSON() ([]byte, error) { type Properties AWSSSMResourceDataSync return json.Marshal(&struct { Type string @@ -98,7 +98,7 @@ func (r *AWSSSMResourceDataSync) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -143,6 +143,8 @@ func (t *Template) GetAllAWSSSMResourceDataSyncResources() map[string]*AWSSSMRes results := map[string]*AWSSSMResourceDataSync{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSSSMResourceDataSync: + results[name] = &resource case *AWSSSMResourceDataSync: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -171,6 +173,8 @@ func (t *Template) GetAllAWSSSMResourceDataSyncResources() map[string]*AWSSSMRes func (t *Template) GetAWSSSMResourceDataSyncWithName(name string) (*AWSSSMResourceDataSync, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSSSMResourceDataSync: + return &resource, nil case *AWSSSMResourceDataSync: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-stepfunctions-activity.go b/cloudformation/aws-stepfunctions-activity.go index 94d2934d16..f2276836db 100644 --- a/cloudformation/aws-stepfunctions-activity.go +++ b/cloudformation/aws-stepfunctions-activity.go @@ -16,6 +16,11 @@ type AWSStepFunctionsActivity struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-activity.html#cfn-stepfunctions-activity-name Name string `json:"Name,omitempty"` + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-activity.html#cfn-stepfunctions-activity-tags + Tags []AWSStepFunctionsActivity_TagsEntry `json:"Tags,omitempty"` + // _deletionPolicy represents a CloudFormation DeletionPolicy _deletionPolicy DeletionPolicy @@ -63,7 +68,7 @@ func (r *AWSStepFunctionsActivity) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSStepFunctionsActivity) MarshalJSON() ([]byte, error) { +func (r AWSStepFunctionsActivity) MarshalJSON() ([]byte, error) { type Properties AWSStepFunctionsActivity return json.Marshal(&struct { Type string @@ -73,7 +78,7 @@ func (r *AWSStepFunctionsActivity) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -118,6 +123,8 @@ func (t *Template) GetAllAWSStepFunctionsActivityResources() map[string]*AWSStep results := map[string]*AWSStepFunctionsActivity{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSStepFunctionsActivity: + results[name] = &resource case *AWSStepFunctionsActivity: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -146,6 +153,8 @@ func (t *Template) GetAllAWSStepFunctionsActivityResources() map[string]*AWSStep func (t *Template) GetAWSStepFunctionsActivityWithName(name string) (*AWSStepFunctionsActivity, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSStepFunctionsActivity: + return &resource, nil case *AWSStepFunctionsActivity: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-stepfunctions-activity_tagsentry.go b/cloudformation/aws-stepfunctions-activity_tagsentry.go new file mode 100644 index 0000000000..bc4731497f --- /dev/null +++ b/cloudformation/aws-stepfunctions-activity_tagsentry.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSStepFunctionsActivity_TagsEntry AWS CloudFormation Resource (AWS::StepFunctions::Activity.TagsEntry) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-activity-tagsentry.html +type AWSStepFunctionsActivity_TagsEntry struct { + + // Key AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-activity-tagsentry.html#cfn-stepfunctions-activity-tagsentry-key + Key string `json:"Key,omitempty"` + + // Value AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-activity-tagsentry.html#cfn-stepfunctions-activity-tagsentry-value + Value string `json:"Value,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSStepFunctionsActivity_TagsEntry) AWSCloudFormationType() string { + return "AWS::StepFunctions::Activity.TagsEntry" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSStepFunctionsActivity_TagsEntry) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSStepFunctionsActivity_TagsEntry) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSStepFunctionsActivity_TagsEntry) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSStepFunctionsActivity_TagsEntry) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSStepFunctionsActivity_TagsEntry) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-stepfunctions-statemachine.go b/cloudformation/aws-stepfunctions-statemachine.go index 43f3bd54c7..0baccc0e4c 100644 --- a/cloudformation/aws-stepfunctions-statemachine.go +++ b/cloudformation/aws-stepfunctions-statemachine.go @@ -26,6 +26,11 @@ type AWSStepFunctionsStateMachine struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinename StateMachineName string `json:"StateMachineName,omitempty"` + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tags + Tags []AWSStepFunctionsStateMachine_TagsEntry `json:"Tags,omitempty"` + // _deletionPolicy represents a CloudFormation DeletionPolicy _deletionPolicy DeletionPolicy @@ -73,7 +78,7 @@ func (r *AWSStepFunctionsStateMachine) SetDeletionPolicy(policy DeletionPolicy) // 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 *AWSStepFunctionsStateMachine) MarshalJSON() ([]byte, error) { +func (r AWSStepFunctionsStateMachine) MarshalJSON() ([]byte, error) { type Properties AWSStepFunctionsStateMachine return json.Marshal(&struct { Type string @@ -83,7 +88,7 @@ func (r *AWSStepFunctionsStateMachine) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +133,8 @@ func (t *Template) GetAllAWSStepFunctionsStateMachineResources() map[string]*AWS results := map[string]*AWSStepFunctionsStateMachine{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSStepFunctionsStateMachine: + results[name] = &resource case *AWSStepFunctionsStateMachine: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +163,8 @@ func (t *Template) GetAllAWSStepFunctionsStateMachineResources() map[string]*AWS func (t *Template) GetAWSStepFunctionsStateMachineWithName(name string) (*AWSStepFunctionsStateMachine, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSStepFunctionsStateMachine: + return &resource, nil case *AWSStepFunctionsStateMachine: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-stepfunctions-statemachine_tagsentry.go b/cloudformation/aws-stepfunctions-statemachine_tagsentry.go new file mode 100644 index 0000000000..b35546c921 --- /dev/null +++ b/cloudformation/aws-stepfunctions-statemachine_tagsentry.go @@ -0,0 +1,60 @@ +package cloudformation + +// AWSStepFunctionsStateMachine_TagsEntry AWS CloudFormation Resource (AWS::StepFunctions::StateMachine.TagsEntry) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-tagsentry.html +type AWSStepFunctionsStateMachine_TagsEntry struct { + + // Key AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-tagsentry.html#cfn-stepfunctions-statemachine-tagsentry-key + Key string `json:"Key,omitempty"` + + // Value AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-tagsentry.html#cfn-stepfunctions-statemachine-tagsentry-value + Value string `json:"Value,omitempty"` + + // _deletionPolicy represents a CloudFormation DeletionPolicy + _deletionPolicy DeletionPolicy + + // _dependsOn stores the logical ID of the resources to be created before this resource + _dependsOn []string + + // _metadata stores structured data associated with this resource + _metadata map[string]interface{} +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AWSStepFunctionsStateMachine_TagsEntry) AWSCloudFormationType() string { + return "AWS::StepFunctions::StateMachine.TagsEntry" +} + +// DependsOn returns a slice of logical ID names this resource depends on. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSStepFunctionsStateMachine_TagsEntry) DependsOn() []string { + return r._dependsOn +} + +// SetDependsOn specify that the creation of this resource follows another. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html +func (r *AWSStepFunctionsStateMachine_TagsEntry) SetDependsOn(dependencies []string) { + r._dependsOn = dependencies +} + +// Metadata returns the metadata associated with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSStepFunctionsStateMachine_TagsEntry) Metadata() map[string]interface{} { + return r._metadata +} + +// SetMetadata enables you to associate structured data with this resource. +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html +func (r *AWSStepFunctionsStateMachine_TagsEntry) SetMetadata(metadata map[string]interface{}) { + r._metadata = metadata +} + +// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource +// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html +func (r *AWSStepFunctionsStateMachine_TagsEntry) SetDeletionPolicy(policy DeletionPolicy) { + r._deletionPolicy = policy +} diff --git a/cloudformation/aws-waf-bytematchset.go b/cloudformation/aws-waf-bytematchset.go index 26c330b7d6..185919ab59 100644 --- a/cloudformation/aws-waf-bytematchset.go +++ b/cloudformation/aws-waf-bytematchset.go @@ -68,7 +68,7 @@ func (r *AWSWAFByteMatchSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSWAFByteMatchSet) MarshalJSON() ([]byte, error) { +func (r AWSWAFByteMatchSet) MarshalJSON() ([]byte, error) { type Properties AWSWAFByteMatchSet return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSWAFByteMatchSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSWAFByteMatchSetResources() map[string]*AWSWAFByteMat results := map[string]*AWSWAFByteMatchSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSWAFByteMatchSet: + results[name] = &resource case *AWSWAFByteMatchSet: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSWAFByteMatchSetResources() map[string]*AWSWAFByteMat func (t *Template) GetAWSWAFByteMatchSetWithName(name string) (*AWSWAFByteMatchSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSWAFByteMatchSet: + return &resource, nil case *AWSWAFByteMatchSet: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-waf-ipset.go b/cloudformation/aws-waf-ipset.go index 2e2e09dc83..13c9447c1e 100644 --- a/cloudformation/aws-waf-ipset.go +++ b/cloudformation/aws-waf-ipset.go @@ -68,7 +68,7 @@ func (r *AWSWAFIPSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSWAFIPSet) MarshalJSON() ([]byte, error) { +func (r AWSWAFIPSet) MarshalJSON() ([]byte, error) { type Properties AWSWAFIPSet return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSWAFIPSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSWAFIPSetResources() map[string]*AWSWAFIPSet { results := map[string]*AWSWAFIPSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSWAFIPSet: + results[name] = &resource case *AWSWAFIPSet: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSWAFIPSetResources() map[string]*AWSWAFIPSet { func (t *Template) GetAWSWAFIPSetWithName(name string) (*AWSWAFIPSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSWAFIPSet: + return &resource, nil case *AWSWAFIPSet: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-waf-rule.go b/cloudformation/aws-waf-rule.go index 1dd9ef9071..2267d714ca 100644 --- a/cloudformation/aws-waf-rule.go +++ b/cloudformation/aws-waf-rule.go @@ -73,7 +73,7 @@ func (r *AWSWAFRule) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSWAFRule) MarshalJSON() ([]byte, error) { +func (r AWSWAFRule) MarshalJSON() ([]byte, error) { type Properties AWSWAFRule return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSWAFRule) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSWAFRuleResources() map[string]*AWSWAFRule { results := map[string]*AWSWAFRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSWAFRule: + results[name] = &resource case *AWSWAFRule: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSWAFRuleResources() map[string]*AWSWAFRule { func (t *Template) GetAWSWAFRuleWithName(name string) (*AWSWAFRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSWAFRule: + return &resource, nil case *AWSWAFRule: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-waf-sizeconstraintset.go b/cloudformation/aws-waf-sizeconstraintset.go index bcf69b4508..216a6fb53d 100644 --- a/cloudformation/aws-waf-sizeconstraintset.go +++ b/cloudformation/aws-waf-sizeconstraintset.go @@ -68,7 +68,7 @@ func (r *AWSWAFSizeConstraintSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSWAFSizeConstraintSet) MarshalJSON() ([]byte, error) { +func (r AWSWAFSizeConstraintSet) MarshalJSON() ([]byte, error) { type Properties AWSWAFSizeConstraintSet return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSWAFSizeConstraintSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSWAFSizeConstraintSetResources() map[string]*AWSWAFSi results := map[string]*AWSWAFSizeConstraintSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSWAFSizeConstraintSet: + results[name] = &resource case *AWSWAFSizeConstraintSet: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSWAFSizeConstraintSetResources() map[string]*AWSWAFSi func (t *Template) GetAWSWAFSizeConstraintSetWithName(name string) (*AWSWAFSizeConstraintSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSWAFSizeConstraintSet: + return &resource, nil case *AWSWAFSizeConstraintSet: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-waf-sqlinjectionmatchset.go b/cloudformation/aws-waf-sqlinjectionmatchset.go index 37e44b6ec2..8ecf4cabc7 100644 --- a/cloudformation/aws-waf-sqlinjectionmatchset.go +++ b/cloudformation/aws-waf-sqlinjectionmatchset.go @@ -68,7 +68,7 @@ func (r *AWSWAFSqlInjectionMatchSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSWAFSqlInjectionMatchSet) MarshalJSON() ([]byte, error) { +func (r AWSWAFSqlInjectionMatchSet) MarshalJSON() ([]byte, error) { type Properties AWSWAFSqlInjectionMatchSet return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSWAFSqlInjectionMatchSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSWAFSqlInjectionMatchSetResources() map[string]*AWSWA results := map[string]*AWSWAFSqlInjectionMatchSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSWAFSqlInjectionMatchSet: + results[name] = &resource case *AWSWAFSqlInjectionMatchSet: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSWAFSqlInjectionMatchSetResources() map[string]*AWSWA func (t *Template) GetAWSWAFSqlInjectionMatchSetWithName(name string) (*AWSWAFSqlInjectionMatchSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSWAFSqlInjectionMatchSet: + return &resource, nil case *AWSWAFSqlInjectionMatchSet: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-waf-webacl.go b/cloudformation/aws-waf-webacl.go index 132d6097cf..6a6f099044 100644 --- a/cloudformation/aws-waf-webacl.go +++ b/cloudformation/aws-waf-webacl.go @@ -78,7 +78,7 @@ func (r *AWSWAFWebACL) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSWAFWebACL) MarshalJSON() ([]byte, error) { +func (r AWSWAFWebACL) MarshalJSON() ([]byte, error) { type Properties AWSWAFWebACL return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSWAFWebACL) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSWAFWebACLResources() map[string]*AWSWAFWebACL { results := map[string]*AWSWAFWebACL{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSWAFWebACL: + results[name] = &resource case *AWSWAFWebACL: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSWAFWebACLResources() map[string]*AWSWAFWebACL { func (t *Template) GetAWSWAFWebACLWithName(name string) (*AWSWAFWebACL, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSWAFWebACL: + return &resource, nil case *AWSWAFWebACL: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-waf-xssmatchset.go b/cloudformation/aws-waf-xssmatchset.go index 7c3677d286..b3f11658f7 100644 --- a/cloudformation/aws-waf-xssmatchset.go +++ b/cloudformation/aws-waf-xssmatchset.go @@ -68,7 +68,7 @@ func (r *AWSWAFXssMatchSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSWAFXssMatchSet) MarshalJSON() ([]byte, error) { +func (r AWSWAFXssMatchSet) MarshalJSON() ([]byte, error) { type Properties AWSWAFXssMatchSet return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSWAFXssMatchSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSWAFXssMatchSetResources() map[string]*AWSWAFXssMatch results := map[string]*AWSWAFXssMatchSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSWAFXssMatchSet: + results[name] = &resource case *AWSWAFXssMatchSet: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSWAFXssMatchSetResources() map[string]*AWSWAFXssMatch func (t *Template) GetAWSWAFXssMatchSetWithName(name string) (*AWSWAFXssMatchSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSWAFXssMatchSet: + return &resource, nil case *AWSWAFXssMatchSet: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-wafregional-bytematchset.go b/cloudformation/aws-wafregional-bytematchset.go index 75181dc8e4..90836857cb 100644 --- a/cloudformation/aws-wafregional-bytematchset.go +++ b/cloudformation/aws-wafregional-bytematchset.go @@ -68,7 +68,7 @@ func (r *AWSWAFRegionalByteMatchSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSWAFRegionalByteMatchSet) MarshalJSON() ([]byte, error) { +func (r AWSWAFRegionalByteMatchSet) MarshalJSON() ([]byte, error) { type Properties AWSWAFRegionalByteMatchSet return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSWAFRegionalByteMatchSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSWAFRegionalByteMatchSetResources() map[string]*AWSWA results := map[string]*AWSWAFRegionalByteMatchSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSWAFRegionalByteMatchSet: + results[name] = &resource case *AWSWAFRegionalByteMatchSet: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSWAFRegionalByteMatchSetResources() map[string]*AWSWA func (t *Template) GetAWSWAFRegionalByteMatchSetWithName(name string) (*AWSWAFRegionalByteMatchSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSWAFRegionalByteMatchSet: + return &resource, nil case *AWSWAFRegionalByteMatchSet: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-wafregional-ipset.go b/cloudformation/aws-wafregional-ipset.go index 992a028a4e..5e67da6bcf 100644 --- a/cloudformation/aws-wafregional-ipset.go +++ b/cloudformation/aws-wafregional-ipset.go @@ -68,7 +68,7 @@ func (r *AWSWAFRegionalIPSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSWAFRegionalIPSet) MarshalJSON() ([]byte, error) { +func (r AWSWAFRegionalIPSet) MarshalJSON() ([]byte, error) { type Properties AWSWAFRegionalIPSet return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSWAFRegionalIPSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSWAFRegionalIPSetResources() map[string]*AWSWAFRegion results := map[string]*AWSWAFRegionalIPSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSWAFRegionalIPSet: + results[name] = &resource case *AWSWAFRegionalIPSet: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSWAFRegionalIPSetResources() map[string]*AWSWAFRegion func (t *Template) GetAWSWAFRegionalIPSetWithName(name string) (*AWSWAFRegionalIPSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSWAFRegionalIPSet: + return &resource, nil case *AWSWAFRegionalIPSet: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-wafregional-rule.go b/cloudformation/aws-wafregional-rule.go index fc28a829dd..11d3852d9c 100644 --- a/cloudformation/aws-wafregional-rule.go +++ b/cloudformation/aws-wafregional-rule.go @@ -73,7 +73,7 @@ func (r *AWSWAFRegionalRule) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSWAFRegionalRule) MarshalJSON() ([]byte, error) { +func (r AWSWAFRegionalRule) MarshalJSON() ([]byte, error) { type Properties AWSWAFRegionalRule return json.Marshal(&struct { Type string @@ -83,7 +83,7 @@ func (r *AWSWAFRegionalRule) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -128,6 +128,8 @@ func (t *Template) GetAllAWSWAFRegionalRuleResources() map[string]*AWSWAFRegiona results := map[string]*AWSWAFRegionalRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSWAFRegionalRule: + results[name] = &resource case *AWSWAFRegionalRule: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -156,6 +158,8 @@ func (t *Template) GetAllAWSWAFRegionalRuleResources() map[string]*AWSWAFRegiona func (t *Template) GetAWSWAFRegionalRuleWithName(name string) (*AWSWAFRegionalRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSWAFRegionalRule: + return &resource, nil case *AWSWAFRegionalRule: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-wafregional-sizeconstraintset.go b/cloudformation/aws-wafregional-sizeconstraintset.go index c677475daf..2b91695f75 100644 --- a/cloudformation/aws-wafregional-sizeconstraintset.go +++ b/cloudformation/aws-wafregional-sizeconstraintset.go @@ -68,7 +68,7 @@ func (r *AWSWAFRegionalSizeConstraintSet) SetDeletionPolicy(policy DeletionPolic // 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 *AWSWAFRegionalSizeConstraintSet) MarshalJSON() ([]byte, error) { +func (r AWSWAFRegionalSizeConstraintSet) MarshalJSON() ([]byte, error) { type Properties AWSWAFRegionalSizeConstraintSet return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSWAFRegionalSizeConstraintSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSWAFRegionalSizeConstraintSetResources() map[string]* results := map[string]*AWSWAFRegionalSizeConstraintSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSWAFRegionalSizeConstraintSet: + results[name] = &resource case *AWSWAFRegionalSizeConstraintSet: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSWAFRegionalSizeConstraintSetResources() map[string]* func (t *Template) GetAWSWAFRegionalSizeConstraintSetWithName(name string) (*AWSWAFRegionalSizeConstraintSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSWAFRegionalSizeConstraintSet: + return &resource, nil case *AWSWAFRegionalSizeConstraintSet: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-wafregional-sqlinjectionmatchset.go b/cloudformation/aws-wafregional-sqlinjectionmatchset.go index 78d838481f..a240656ff6 100644 --- a/cloudformation/aws-wafregional-sqlinjectionmatchset.go +++ b/cloudformation/aws-wafregional-sqlinjectionmatchset.go @@ -68,7 +68,7 @@ func (r *AWSWAFRegionalSqlInjectionMatchSet) SetDeletionPolicy(policy DeletionPo // 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 *AWSWAFRegionalSqlInjectionMatchSet) MarshalJSON() ([]byte, error) { +func (r AWSWAFRegionalSqlInjectionMatchSet) MarshalJSON() ([]byte, error) { type Properties AWSWAFRegionalSqlInjectionMatchSet return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSWAFRegionalSqlInjectionMatchSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSWAFRegionalSqlInjectionMatchSetResources() map[strin results := map[string]*AWSWAFRegionalSqlInjectionMatchSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSWAFRegionalSqlInjectionMatchSet: + results[name] = &resource case *AWSWAFRegionalSqlInjectionMatchSet: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSWAFRegionalSqlInjectionMatchSetResources() map[strin func (t *Template) GetAWSWAFRegionalSqlInjectionMatchSetWithName(name string) (*AWSWAFRegionalSqlInjectionMatchSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSWAFRegionalSqlInjectionMatchSet: + return &resource, nil case *AWSWAFRegionalSqlInjectionMatchSet: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-wafregional-webacl.go b/cloudformation/aws-wafregional-webacl.go index 547f9f3624..b3ec017752 100644 --- a/cloudformation/aws-wafregional-webacl.go +++ b/cloudformation/aws-wafregional-webacl.go @@ -78,7 +78,7 @@ func (r *AWSWAFRegionalWebACL) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSWAFRegionalWebACL) MarshalJSON() ([]byte, error) { +func (r AWSWAFRegionalWebACL) MarshalJSON() ([]byte, error) { type Properties AWSWAFRegionalWebACL return json.Marshal(&struct { Type string @@ -88,7 +88,7 @@ func (r *AWSWAFRegionalWebACL) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -133,6 +133,8 @@ func (t *Template) GetAllAWSWAFRegionalWebACLResources() map[string]*AWSWAFRegio results := map[string]*AWSWAFRegionalWebACL{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSWAFRegionalWebACL: + results[name] = &resource case *AWSWAFRegionalWebACL: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -161,6 +163,8 @@ func (t *Template) GetAllAWSWAFRegionalWebACLResources() map[string]*AWSWAFRegio func (t *Template) GetAWSWAFRegionalWebACLWithName(name string) (*AWSWAFRegionalWebACL, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSWAFRegionalWebACL: + return &resource, nil case *AWSWAFRegionalWebACL: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-wafregional-webaclassociation.go b/cloudformation/aws-wafregional-webaclassociation.go index a631af1090..617852a6c9 100644 --- a/cloudformation/aws-wafregional-webaclassociation.go +++ b/cloudformation/aws-wafregional-webaclassociation.go @@ -68,7 +68,7 @@ func (r *AWSWAFRegionalWebACLAssociation) SetDeletionPolicy(policy DeletionPolic // 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 *AWSWAFRegionalWebACLAssociation) MarshalJSON() ([]byte, error) { +func (r AWSWAFRegionalWebACLAssociation) MarshalJSON() ([]byte, error) { type Properties AWSWAFRegionalWebACLAssociation return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSWAFRegionalWebACLAssociation) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSWAFRegionalWebACLAssociationResources() map[string]* results := map[string]*AWSWAFRegionalWebACLAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSWAFRegionalWebACLAssociation: + results[name] = &resource case *AWSWAFRegionalWebACLAssociation: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSWAFRegionalWebACLAssociationResources() map[string]* func (t *Template) GetAWSWAFRegionalWebACLAssociationWithName(name string) (*AWSWAFRegionalWebACLAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSWAFRegionalWebACLAssociation: + return &resource, nil case *AWSWAFRegionalWebACLAssociation: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-wafregional-xssmatchset.go b/cloudformation/aws-wafregional-xssmatchset.go index caf298c6fe..98ccd2fdae 100644 --- a/cloudformation/aws-wafregional-xssmatchset.go +++ b/cloudformation/aws-wafregional-xssmatchset.go @@ -68,7 +68,7 @@ func (r *AWSWAFRegionalXssMatchSet) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSWAFRegionalXssMatchSet) MarshalJSON() ([]byte, error) { +func (r AWSWAFRegionalXssMatchSet) MarshalJSON() ([]byte, error) { type Properties AWSWAFRegionalXssMatchSet return json.Marshal(&struct { Type string @@ -78,7 +78,7 @@ func (r *AWSWAFRegionalXssMatchSet) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -123,6 +123,8 @@ func (t *Template) GetAllAWSWAFRegionalXssMatchSetResources() map[string]*AWSWAF results := map[string]*AWSWAFRegionalXssMatchSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSWAFRegionalXssMatchSet: + results[name] = &resource case *AWSWAFRegionalXssMatchSet: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -151,6 +153,8 @@ func (t *Template) GetAllAWSWAFRegionalXssMatchSetResources() map[string]*AWSWAF func (t *Template) GetAWSWAFRegionalXssMatchSetWithName(name string) (*AWSWAFRegionalXssMatchSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSWAFRegionalXssMatchSet: + return &resource, nil case *AWSWAFRegionalXssMatchSet: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/aws-workspaces-workspace.go b/cloudformation/aws-workspaces-workspace.go index f4a6e06076..18eceade8a 100644 --- a/cloudformation/aws-workspaces-workspace.go +++ b/cloudformation/aws-workspaces-workspace.go @@ -98,7 +98,7 @@ func (r *AWSWorkSpacesWorkspace) SetDeletionPolicy(policy DeletionPolicy) { // 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 *AWSWorkSpacesWorkspace) MarshalJSON() ([]byte, error) { +func (r AWSWorkSpacesWorkspace) MarshalJSON() ([]byte, error) { type Properties AWSWorkSpacesWorkspace return json.Marshal(&struct { Type string @@ -108,7 +108,7 @@ func (r *AWSWorkSpacesWorkspace) MarshalJSON() ([]byte, error) { DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -153,6 +153,8 @@ func (t *Template) GetAllAWSWorkSpacesWorkspaceResources() map[string]*AWSWorkSp results := map[string]*AWSWorkSpacesWorkspace{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case AWSWorkSpacesWorkspace: + results[name] = &resource case *AWSWorkSpacesWorkspace: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -181,6 +183,8 @@ func (t *Template) GetAllAWSWorkSpacesWorkspaceResources() map[string]*AWSWorkSp func (t *Template) GetAWSWorkSpacesWorkspaceWithName(name string) (*AWSWorkSpacesWorkspace, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case AWSWorkSpacesWorkspace: + return &resource, nil case *AWSWorkSpacesWorkspace: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/cloudformation/tag.go b/cloudformation/tag.go index dfca4c48d9..5f4db95b45 100644 --- a/cloudformation/tag.go +++ b/cloudformation/tag.go @@ -1,17 +1,17 @@ package cloudformation // Tag AWS CloudFormation Resource (Tag) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-tag.html type Tag struct { // Key AWS CloudFormation Property - // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html#cfn-resource-tags-key + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-tag.html#cfn-dms-endpoint-tag-key Key string `json:"Key,omitempty"` // Value AWS CloudFormation Property - // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html#cfn-resource-tags-value + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-tag.html#cfn-dms-endpoint-tag-value Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy diff --git a/generate/templates/resource.template b/generate/templates/resource.template index 54943b662c..5fab624dc8 100644 --- a/generate/templates/resource.template +++ b/generate/templates/resource.template @@ -81,7 +81,7 @@ func (r *{{.StructName}}) SetCreationPolicy(policy *CreationPolicy) { {{if not .IsCustomProperty}} // 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 *{{.StructName}}) MarshalJSON() ([]byte, error) { +func (r {{.StructName}}) MarshalJSON() ([]byte, error) { type Properties {{.StructName}} return json.Marshal(&struct{ Type string @@ -93,7 +93,7 @@ func (r *{{.StructName}}) MarshalJSON() ([]byte, error) { {{if .HasCreationPolicy}}CreationPolicy *CreationPolicy `json:"CreationPolicy,omitempty"`{{end}} }{ Type: r.AWSCloudFormationType(), - Properties: (Properties)(*r), + Properties: (Properties)(r), DependsOn: r._dependsOn, Metadata: r._metadata, DeletionPolicy: r._deletionPolicy, @@ -140,6 +140,8 @@ func (t *Template) GetAll{{.StructName}}Resources () map[string]*{{.StructName}} results := map[string]*{{.StructName}}{} for name, untyped := range t.Resources { switch resource := untyped.(type) { + case {{.StructName}}: + results[name] = &resource case *{{.StructName}}: // We found a strongly typed resource of the correct type; use it results[name] = resource @@ -168,6 +170,8 @@ func (t *Template) GetAll{{.StructName}}Resources () map[string]*{{.StructName}} func (t *Template) Get{{.StructName}}WithName (name string) (*{{.StructName}}, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { + case {{.StructName}}: + return &resource, nil case *{{.StructName}}: // We found a strongly typed resource of the correct type; use it return resource, nil diff --git a/goformation_test.go b/goformation_test.go index fc1c30400c..dc860b3d07 100644 --- a/goformation_test.go +++ b/goformation_test.go @@ -310,7 +310,7 @@ var _ = Describe("Goformation", func() { function, err := template.GetAWSLambdaFunctionWithName("MyLambdaFunction") It("should be able to retrieve a specific Lambda function with GetAWSLambdaFunctionWithName(template, name)", func() { Expect(err).To(BeNil()) - Expect(function).To(BeAssignableToTypeOf(cloudformation.AWSLambdaFunction{})) + Expect(function).To(BeAssignableToTypeOf(&cloudformation.AWSLambdaFunction{})) }) It("should have the correct Handler property", func() { diff --git a/schema/cloudformation.go b/schema/cloudformation.go index 3d70921c3f..bf093e1181 100644 --- a/schema/cloudformation.go +++ b/schema/cloudformation.go @@ -37171,6 +37171,12 @@ var CloudformationSchema = `{ "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchSource" }, "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ @@ -39318,6 +39324,12 @@ var CloudformationSchema = `{ "properties": { "Name": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::StepFunctions::Activity.TagsEntry" + }, + "type": "array" } }, "required": [ @@ -39338,6 +39350,22 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::StepFunctions::Activity.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::StepFunctions::StateMachine": { "additionalProperties": false, "properties": { @@ -39378,6 +39406,12 @@ var CloudformationSchema = `{ }, "StateMachineName": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::StepFunctions::StateMachine.TagsEntry" + }, + "type": "array" } }, "required": [ @@ -39399,6 +39433,22 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::StepFunctions::StateMachine.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::WAF::ByteMatchSet": { "additionalProperties": false, "properties": { @@ -41062,10 +41112,6 @@ var CloudformationSchema = `{ "type": "string" } }, - "required": [ - "Key", - "Value" - ], "type": "object" } }, diff --git a/schema/cloudformation.schema.json b/schema/cloudformation.schema.json index 3481ce6cd3..b8bf8da709 100644 --- a/schema/cloudformation.schema.json +++ b/schema/cloudformation.schema.json @@ -37168,6 +37168,12 @@ "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchSource" }, "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ @@ -39315,6 +39321,12 @@ "properties": { "Name": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::StepFunctions::Activity.TagsEntry" + }, + "type": "array" } }, "required": [ @@ -39335,6 +39347,22 @@ ], "type": "object" }, + "AWS::StepFunctions::Activity.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::StepFunctions::StateMachine": { "additionalProperties": false, "properties": { @@ -39375,6 +39403,12 @@ }, "StateMachineName": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::StepFunctions::StateMachine.TagsEntry" + }, + "type": "array" } }, "required": [ @@ -39396,6 +39430,22 @@ ], "type": "object" }, + "AWS::StepFunctions::StateMachine.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::WAF::ByteMatchSet": { "additionalProperties": false, "properties": { @@ -41059,10 +41109,6 @@ "type": "string" } }, - "required": [ - "Key", - "Value" - ], "type": "object" } }, diff --git a/schema/sam.go b/schema/sam.go index decd916289..d55aa7b9d5 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -37171,6 +37171,12 @@ var SamSchema = `{ "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchSource" }, "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ @@ -40245,6 +40251,12 @@ var SamSchema = `{ "properties": { "Name": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::StepFunctions::Activity.TagsEntry" + }, + "type": "array" } }, "required": [ @@ -40265,6 +40277,22 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::StepFunctions::Activity.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::StepFunctions::StateMachine": { "additionalProperties": false, "properties": { @@ -40305,6 +40333,12 @@ var SamSchema = `{ }, "StateMachineName": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::StepFunctions::StateMachine.TagsEntry" + }, + "type": "array" } }, "required": [ @@ -40326,6 +40360,22 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::StepFunctions::StateMachine.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::WAF::ByteMatchSet": { "additionalProperties": false, "properties": { @@ -41989,10 +42039,6 @@ var SamSchema = `{ "type": "string" } }, - "required": [ - "Key", - "Value" - ], "type": "object" } }, diff --git a/schema/sam.schema.json b/schema/sam.schema.json index 50bcc553b5..33aebd4ce7 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -37168,6 +37168,12 @@ "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchSource" }, "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ @@ -40242,6 +40248,12 @@ "properties": { "Name": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::StepFunctions::Activity.TagsEntry" + }, + "type": "array" } }, "required": [ @@ -40262,6 +40274,22 @@ ], "type": "object" }, + "AWS::StepFunctions::Activity.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::StepFunctions::StateMachine": { "additionalProperties": false, "properties": { @@ -40302,6 +40330,12 @@ }, "StateMachineName": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::StepFunctions::StateMachine.TagsEntry" + }, + "type": "array" } }, "required": [ @@ -40323,6 +40357,22 @@ ], "type": "object" }, + "AWS::StepFunctions::StateMachine.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::WAF::ByteMatchSet": { "additionalProperties": false, "properties": { @@ -41986,10 +42036,6 @@ "type": "string" } }, - "required": [ - "Key", - "Value" - ], "type": "object" } }, From 3b25fdb72c33bc717a2cef9f708a4ddaf32e6262 Mon Sep 17 00:00:00 2001 From: Paul Maddox Date: Sat, 9 Mar 2019 11:19:29 +0400 Subject: [PATCH 05/37] feat: Added semantic-release configuration file --- .releaserc | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 .releaserc diff --git a/.releaserc b/.releaserc new file mode 100644 index 0000000000..e3546af4b4 --- /dev/null +++ b/.releaserc @@ -0,0 +1,39 @@ +{ + "branch": "master", + "plugins": [ + "@semantic-release/commit-analyzer", + "@semantic-release/release-notes-generator", + [ + "@semantic-release/changelog", + { + "changelogFile": "CHANGELOG.md", + "changelogTitle": "# Semantic Versioning Changelog" + } + ], + [ + "@semantic-release/exec", + { + "prepareCmd": "./prepare-release.sh ${nextRelease.version}" + } + ], + [ + "@semantic-release/git", + { + "assets": [ + "CHANGELOG.md" + ] + } + ], + [ + "@semantic-release/github", + { + "assets": [ + { + "path": "dist/**" + } + ] + } + ] + ] +} + From a9b368ae3391788cbb9f5c0282a1cba94fe529f9 Mon Sep 17 00:00:00 2001 From: Paul Maddox Date: Sat, 9 Mar 2019 11:29:36 +0400 Subject: [PATCH 06/37] feat: Added semantic-release CI setup --- .releaserc | 8 +------- .travis.yml | 27 +++++++++++++-------------- CHANGELOG.md | 0 3 files changed, 14 insertions(+), 21 deletions(-) create mode 100644 CHANGELOG.md diff --git a/.releaserc b/.releaserc index e3546af4b4..331899eb8a 100644 --- a/.releaserc +++ b/.releaserc @@ -10,12 +10,6 @@ "changelogTitle": "# Semantic Versioning Changelog" } ], - [ - "@semantic-release/exec", - { - "prepareCmd": "./prepare-release.sh ${nextRelease.version}" - } - ], [ "@semantic-release/git", { @@ -29,7 +23,7 @@ { "assets": [ { - "path": "dist/**" + "path": "**" } ] } diff --git a/.travis.yml b/.travis.yml index 8eba2bbb0d..ea60baf771 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,10 +2,10 @@ language: go matrix: include: - - go: "1.10.x" - script: go test -v ./... - - go: "1.11.x" - script: go test -v -mod=vendor ./... + - go: "1.10.x" + script: go test -v ./... + - go: "1.11.x" + script: go test -v -mod=vendor ./... env: - GO111MODULE=on @@ -13,17 +13,16 @@ env: install: true after_success: - # Check for updated CloudFormation resources, and submit a PR + # Check for updated CloudFormation resources, and submit a PR # - test "${TRAVIS_EVENT_TYPE}" = "cron" && ./generate/create-pull-request.sh - ./generate/create-pull-request.sh -# deploy: -# provider: script -# skip_cleanup: true -# script: - -# # Use nvm to install and use the Node LTS version (nvm is installed on all Travis images) -# - nvm install lts/* +deploy: + provider: script + skip_cleanup: true + script: + # Use nvm to install and use the Node LTS version (nvm is installed on all Travis images) + - nvm install lts/* -# # Run semantic-release only on one job, after all other are successful -# - npx travis-deploy-once "npx semantic-release" + # Run semantic-release only on one job, after all other are successful + - npx travis-deploy-once "npx semantic-release" diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000..e69de29bb2 From 7ae2a3216aa354781677f28eb453ee12d679ea36 Mon Sep 17 00:00:00 2001 From: Paul Maddox Date: Sat, 9 Mar 2019 11:34:17 +0400 Subject: [PATCH 07/37] fix(CI): speed up PR builds by only downloading the cfn spec and regenerating resources on cron schedule (not on every build) --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index ea60baf771..4b36065141 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,8 +14,8 @@ install: true after_success: # Check for updated CloudFormation resources, and submit a PR - # - test "${TRAVIS_EVENT_TYPE}" = "cron" && ./generate/create-pull-request.sh - - ./generate/create-pull-request.sh + - test "${TRAVIS_EVENT_TYPE}" = "cron" && ./generate/create-pull-request.sh + # - ./generate/create-pull-request.sh deploy: provider: script From f6c2fee541b934d1411b12213b5ffc1a1817afe1 Mon Sep 17 00:00:00 2001 From: Paul Maddox Date: Sat, 9 Mar 2019 11:47:03 +0400 Subject: [PATCH 08/37] fix(CI): Update TravisCI configuration for semantic-release to use jobs --- .travis.yml | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4b36065141..26e908857c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,12 +17,14 @@ after_success: - test "${TRAVIS_EVENT_TYPE}" = "cron" && ./generate/create-pull-request.sh # - ./generate/create-pull-request.sh -deploy: - provider: script - skip_cleanup: true - script: - # Use nvm to install and use the Node LTS version (nvm is installed on all Travis images) - - nvm install lts/* - - # Run semantic-release only on one job, after all other are successful - - npx travis-deploy-once "npx semantic-release" +jobs: + include: + # Define the release stage that runs semantic-release + - stage: release + deploy: + provider: script + skip_cleanup: true + script: + # Use nvm to install and use the Node LTS version (nvm is installed on all Travis images) + - nvm install lts/* + - npx semantic-release From 88e1e850c0c88855a7dfac787ef0e5c5e4285383 Mon Sep 17 00:00:00 2001 From: Paul Maddox Date: Sat, 9 Mar 2019 14:27:56 +0400 Subject: [PATCH 09/37] =?UTF-8?q?fix(CI):=20Update=20TravisCI=20configurat?= =?UTF-8?q?ion=20based=20on=20https://github.com/se=E2=80=A6=20(#180)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(CI): Updated TravisCI configuration to work with semantic-release process --- .travis.yml | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 26e908857c..8f33cb4bfb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,19 +12,38 @@ env: install: true -after_success: - # Check for updated CloudFormation resources, and submit a PR - - test "${TRAVIS_EVENT_TYPE}" = "cron" && ./generate/create-pull-request.sh - # - ./generate/create-pull-request.sh +# after_success: +# # Check for updated CloudFormation resources, and submit a PR +# - test "${TRAVIS_EVENT_TYPE}" = "cron" && ./generate/create-pull-request.sh +# # - ./generate/create-pull-request.sh jobs: include: + # Define a stage that will auto-generate CloudFormation resources from the official + # AWS CloudFormation Resource Specification on a daily basis (run via a travis cron) + - stage: regenerate + if: type = cron + script: generate/create-pull-request.sh + # Define the release stage that runs semantic-release - stage: release + language: node_js + node_js: lts/* + before_install: skip + script: + # # Update AUTHORS.md + # - export MAINTAINER_TOKEN=${GH_TOKEN} + # - go get github.com/myii/maintainer + # - maintainer contributor + + # Install all dependencies required for `semantic-release` + - npm install @semantic-release/changelog@3 -D + - npm install @semantic-release/exec@3 -D + - npm install @semantic-release/git@7 -D + deploy: provider: script skip_cleanup: true script: - # Use nvm to install and use the Node LTS version (nvm is installed on all Travis images) - - nvm install lts/* - - npx semantic-release + # Run `semantic-release` + - npx semantic-release@15 From d2dabd099cffb10c684f9129a3c44a15dc78e10a Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sat, 9 Mar 2019 10:54:57 +0000 Subject: [PATCH 10/37] chore(release): 1.3.0 [skip ci] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # [1.3.0](https://github.com/awslabs/goformation/compare/v1.2.1...v1.3.0) (2019-03-09) ### Bug Fixes * **CI:** speed up PR builds by only downloading the cfn spec and regenerating resources on cron schedule (not on every build) ([7ae2a32](https://github.com/awslabs/goformation/commit/7ae2a32)) * **CI:** Update TravisCI configuration based on https://github.com/se… ([#180](https://github.com/awslabs/goformation/issues/180)) ([88e1e85](https://github.com/awslabs/goformation/commit/88e1e85)) * **CI:** Update TravisCI configuration for semantic-release to use jobs ([f6c2fee](https://github.com/awslabs/goformation/commit/f6c2fee)) ### Features * Added semantic-release CI setup ([a9b368a](https://github.com/awslabs/goformation/commit/a9b368a)) * Added semantic-release configuration file ([3b25fdb](https://github.com/awslabs/goformation/commit/3b25fdb)) --- CHANGELOG.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e69de29bb2..9e2facb846 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -0,0 +1,16 @@ +# Semantic Versioning Changelog + +# [1.3.0](https://github.com/awslabs/goformation/compare/v1.2.1...v1.3.0) (2019-03-09) + + +### Bug Fixes + +* **CI:** speed up PR builds by only downloading the cfn spec and regenerating resources on cron schedule (not on every build) ([7ae2a32](https://github.com/awslabs/goformation/commit/7ae2a32)) +* **CI:** Update TravisCI configuration based on https://github.com/se… ([#180](https://github.com/awslabs/goformation/issues/180)) ([88e1e85](https://github.com/awslabs/goformation/commit/88e1e85)) +* **CI:** Update TravisCI configuration for semantic-release to use jobs ([f6c2fee](https://github.com/awslabs/goformation/commit/f6c2fee)) + + +### Features + +* Added semantic-release CI setup ([a9b368a](https://github.com/awslabs/goformation/commit/a9b368a)) +* Added semantic-release configuration file ([3b25fdb](https://github.com/awslabs/goformation/commit/3b25fdb)) From 42e7146fb3974cd800fb20f332c7c9cd9ad84016 Mon Sep 17 00:00:00 2001 From: Steve Engledow Date: Sat, 9 Mar 2019 03:07:49 -0800 Subject: [PATCH 11/37] feat(parser): Default to parsing as YAML unless the filename ends in .json (#176) --- goformation.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/goformation.go b/goformation.go index 589f31ce08..2dbe0a3b65 100644 --- a/goformation.go +++ b/goformation.go @@ -27,12 +27,12 @@ func OpenWithOptions(filename string, options *intrinsics.ProcessorOptions) (*cl return nil, err } - if strings.HasSuffix(filename, ".yaml") || strings.HasSuffix(filename, ".yml") { - return ParseYAMLWithOptions(data, options) + if strings.HasSuffix(filename, ".json") { + // This is definitely JSON + return ParseJSONWithOptions(data, options) } - return ParseJSONWithOptions(data, options) - + return ParseYAMLWithOptions(data, options) } // ParseYAML an AWS CloudFormation template (expects a []byte of valid YAML) From 62f39614c05338e2d7cb8bfede20f0b341ebb7fb Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sat, 9 Mar 2019 11:09:40 +0000 Subject: [PATCH 12/37] chore(release): 1.4.0 [skip ci] # [1.4.0](https://github.com/awslabs/goformation/compare/v1.3.0...v1.4.0) (2019-03-09) ### Features * **parser:** Default to parsing as YAML unless the filename ends in .json ([#176](https://github.com/awslabs/goformation/issues/176)) ([42e7146](https://github.com/awslabs/goformation/commit/42e7146)) --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e2facb846..7fa1e91f6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Semantic Versioning Changelog +# [1.4.0](https://github.com/awslabs/goformation/compare/v1.3.0...v1.4.0) (2019-03-09) + + +### Features + +* **parser:** Default to parsing as YAML unless the filename ends in .json ([#176](https://github.com/awslabs/goformation/issues/176)) ([42e7146](https://github.com/awslabs/goformation/commit/42e7146)) + # [1.3.0](https://github.com/awslabs/goformation/compare/v1.2.1...v1.3.0) (2019-03-09) From 9ecf3fc3d62e4a9ef9ab37ff0bdfa78793431f16 Mon Sep 17 00:00:00 2001 From: Graham Jenson Date: Sun, 10 Mar 2019 07:01:28 +0000 Subject: [PATCH 13/37] BREAKING CHANGE: resources within a Template are now strongly typed, rather than map[string]interface{} This change adds some nice benefits such as helping detect changes earlier in templates, as well as allowing clients to know the resource type returned from template.Resources. --- cloudformation/alexa-ask-skill.go | 61 - cloudformation/all.go | 9576 ++++++++++++++++- cloudformation/aws-amazonmq-broker.go | 61 - cloudformation/aws-amazonmq-configuration.go | 61 - .../aws-amazonmq-configurationassociation.go | 61 - cloudformation/aws-apigateway-account.go | 61 - cloudformation/aws-apigateway-apikey.go | 61 - cloudformation/aws-apigateway-authorizer.go | 61 - .../aws-apigateway-basepathmapping.go | 61 - .../aws-apigateway-clientcertificate.go | 61 - cloudformation/aws-apigateway-deployment.go | 61 - .../aws-apigateway-documentationpart.go | 61 - .../aws-apigateway-documentationversion.go | 61 - cloudformation/aws-apigateway-domainname.go | 61 - .../aws-apigateway-gatewayresponse.go | 61 - cloudformation/aws-apigateway-method.go | 61 - cloudformation/aws-apigateway-model.go | 61 - .../aws-apigateway-requestvalidator.go | 61 - cloudformation/aws-apigateway-resource.go | 61 - cloudformation/aws-apigateway-restapi.go | 61 - cloudformation/aws-apigateway-stage.go | 61 - cloudformation/aws-apigateway-usageplan.go | 61 - cloudformation/aws-apigateway-usageplankey.go | 61 - cloudformation/aws-apigateway-vpclink.go | 61 - cloudformation/aws-apigatewayv2-api.go | 61 - cloudformation/aws-apigatewayv2-authorizer.go | 61 - cloudformation/aws-apigatewayv2-deployment.go | 61 - .../aws-apigatewayv2-integration.go | 61 - .../aws-apigatewayv2-integrationresponse.go | 61 - cloudformation/aws-apigatewayv2-model.go | 61 - cloudformation/aws-apigatewayv2-route.go | 61 - .../aws-apigatewayv2-routeresponse.go | 61 - cloudformation/aws-apigatewayv2-stage.go | 61 - ...s-applicationautoscaling-scalabletarget.go | 61 - ...ws-applicationautoscaling-scalingpolicy.go | 61 - .../aws-appstream-directoryconfig.go | 61 - cloudformation/aws-appstream-fleet.go | 61 - cloudformation/aws-appstream-imagebuilder.go | 61 - cloudformation/aws-appstream-stack.go | 61 - .../aws-appstream-stackfleetassociation.go | 61 - .../aws-appstream-stackuserassociation.go | 61 - cloudformation/aws-appstream-user.go | 61 - cloudformation/aws-appsync-apikey.go | 61 - cloudformation/aws-appsync-datasource.go | 61 - .../aws-appsync-functionconfiguration.go | 61 - cloudformation/aws-appsync-graphqlapi.go | 61 - cloudformation/aws-appsync-graphqlschema.go | 61 - cloudformation/aws-appsync-resolver.go | 61 - cloudformation/aws-athena-namedquery.go | 61 - .../aws-autoscaling-autoscalinggroup.go | 61 - .../aws-autoscaling-launchconfiguration.go | 61 - .../aws-autoscaling-lifecyclehook.go | 61 - .../aws-autoscaling-scalingpolicy.go | 61 - .../aws-autoscaling-scheduledaction.go | 61 - .../aws-autoscalingplans-scalingplan.go | 61 - .../aws-batch-computeenvironment.go | 61 - cloudformation/aws-batch-jobdefinition.go | 61 - cloudformation/aws-batch-jobqueue.go | 61 - cloudformation/aws-budgets-budget.go | 61 - .../aws-certificatemanager-certificate.go | 61 - cloudformation/aws-cloud9-environmentec2.go | 61 - .../aws-cloudformation-customresource.go | 61 - cloudformation/aws-cloudformation-macro.go | 61 - cloudformation/aws-cloudformation-stack.go | 61 - .../aws-cloudformation-waitcondition.go | 61 - .../aws-cloudformation-waitconditionhandle.go | 61 - ...oudfront-cloudfrontoriginaccessidentity.go | 61 - cloudformation/aws-cloudfront-distribution.go | 61 - .../aws-cloudfront-streamingdistribution.go | 61 - cloudformation/aws-cloudtrail-trail.go | 61 - cloudformation/aws-cloudwatch-alarm.go | 61 - cloudformation/aws-cloudwatch-dashboard.go | 61 - cloudformation/aws-codebuild-project.go | 61 - cloudformation/aws-codecommit-repository.go | 61 - cloudformation/aws-codedeploy-application.go | 61 - .../aws-codedeploy-deploymentconfig.go | 61 - .../aws-codedeploy-deploymentgroup.go | 61 - .../aws-codepipeline-customactiontype.go | 61 - cloudformation/aws-codepipeline-pipeline.go | 61 - cloudformation/aws-codepipeline-webhook.go | 61 - cloudformation/aws-cognito-identitypool.go | 61 - .../aws-cognito-identitypoolroleattachment.go | 61 - cloudformation/aws-cognito-userpool.go | 61 - cloudformation/aws-cognito-userpoolclient.go | 61 - cloudformation/aws-cognito-userpoolgroup.go | 61 - cloudformation/aws-cognito-userpooluser.go | 61 - ...s-cognito-userpoolusertogroupattachment.go | 61 - .../aws-config-aggregationauthorization.go | 61 - cloudformation/aws-config-configrule.go | 61 - .../aws-config-configurationaggregator.go | 61 - .../aws-config-configurationrecorder.go | 61 - cloudformation/aws-config-deliverychannel.go | 61 - cloudformation/aws-datapipeline-pipeline.go | 61 - cloudformation/aws-dax-cluster.go | 61 - cloudformation/aws-dax-parametergroup.go | 61 - cloudformation/aws-dax-subnetgroup.go | 61 - .../aws-directoryservice-microsoftad.go | 61 - .../aws-directoryservice-simplead.go | 61 - cloudformation/aws-dlm-lifecyclepolicy.go | 61 - cloudformation/aws-dms-certificate.go | 61 - cloudformation/aws-dms-endpoint.go | 61 - cloudformation/aws-dms-eventsubscription.go | 61 - cloudformation/aws-dms-replicationinstance.go | 61 - .../aws-dms-replicationsubnetgroup.go | 61 - cloudformation/aws-dms-replicationtask.go | 61 - cloudformation/aws-docdb-dbcluster.go | 61 - .../aws-docdb-dbclusterparametergroup.go | 61 - cloudformation/aws-docdb-dbinstance.go | 61 - cloudformation/aws-docdb-dbsubnetgroup.go | 61 - cloudformation/aws-dynamodb-table.go | 61 - cloudformation/aws-ec2-customergateway.go | 61 - cloudformation/aws-ec2-dhcpoptions.go | 61 - cloudformation/aws-ec2-ec2fleet.go | 61 - .../aws-ec2-egressonlyinternetgateway.go | 61 - cloudformation/aws-ec2-eip.go | 61 - cloudformation/aws-ec2-eipassociation.go | 61 - cloudformation/aws-ec2-flowlog.go | 61 - cloudformation/aws-ec2-host.go | 61 - cloudformation/aws-ec2-instance.go | 61 - cloudformation/aws-ec2-internetgateway.go | 61 - cloudformation/aws-ec2-launchtemplate.go | 61 - cloudformation/aws-ec2-natgateway.go | 61 - cloudformation/aws-ec2-networkacl.go | 61 - cloudformation/aws-ec2-networkaclentry.go | 61 - cloudformation/aws-ec2-networkinterface.go | 61 - .../aws-ec2-networkinterfaceattachment.go | 61 - .../aws-ec2-networkinterfacepermission.go | 61 - cloudformation/aws-ec2-placementgroup.go | 61 - cloudformation/aws-ec2-route.go | 61 - cloudformation/aws-ec2-routetable.go | 61 - cloudformation/aws-ec2-securitygroup.go | 61 - cloudformation/aws-ec2-securitygroupegress.go | 61 - .../aws-ec2-securitygroupingress.go | 61 - cloudformation/aws-ec2-spotfleet.go | 61 - cloudformation/aws-ec2-subnet.go | 61 - cloudformation/aws-ec2-subnetcidrblock.go | 61 - .../aws-ec2-subnetnetworkaclassociation.go | 61 - .../aws-ec2-subnetroutetableassociation.go | 61 - cloudformation/aws-ec2-transitgateway.go | 61 - .../aws-ec2-transitgatewayattachment.go | 61 - cloudformation/aws-ec2-transitgatewayroute.go | 61 - .../aws-ec2-transitgatewayroutetable.go | 61 - ...ec2-transitgatewayroutetableassociation.go | 61 - ...ec2-transitgatewayroutetablepropagation.go | 61 - .../aws-ec2-trunkinterfaceassociation.go | 61 - cloudformation/aws-ec2-volume.go | 61 - cloudformation/aws-ec2-volumeattachment.go | 61 - cloudformation/aws-ec2-vpc.go | 61 - cloudformation/aws-ec2-vpccidrblock.go | 61 - .../aws-ec2-vpcdhcpoptionsassociation.go | 61 - cloudformation/aws-ec2-vpcendpoint.go | 61 - ...s-ec2-vpcendpointconnectionnotification.go | 61 - .../aws-ec2-vpcendpointservicepermissions.go | 61 - .../aws-ec2-vpcgatewayattachment.go | 61 - .../aws-ec2-vpcpeeringconnection.go | 61 - cloudformation/aws-ec2-vpnconnection.go | 61 - cloudformation/aws-ec2-vpnconnectionroute.go | 61 - cloudformation/aws-ec2-vpngateway.go | 61 - .../aws-ec2-vpngatewayroutepropagation.go | 61 - cloudformation/aws-ecr-repository.go | 61 - cloudformation/aws-ecs-cluster.go | 61 - cloudformation/aws-ecs-service.go | 61 - cloudformation/aws-ecs-taskdefinition.go | 61 - cloudformation/aws-efs-filesystem.go | 61 - cloudformation/aws-efs-mounttarget.go | 61 - cloudformation/aws-eks-cluster.go | 61 - .../aws-elasticache-cachecluster.go | 61 - .../aws-elasticache-parametergroup.go | 61 - .../aws-elasticache-replicationgroup.go | 61 - .../aws-elasticache-securitygroup.go | 61 - .../aws-elasticache-securitygroupingress.go | 61 - cloudformation/aws-elasticache-subnetgroup.go | 61 - .../aws-elasticbeanstalk-application.go | 61 - ...aws-elasticbeanstalk-applicationversion.go | 61 - ...-elasticbeanstalk-configurationtemplate.go | 61 - .../aws-elasticbeanstalk-environment.go | 61 - .../aws-elasticloadbalancing-loadbalancer.go | 61 - .../aws-elasticloadbalancingv2-listener.go | 61 - ...sticloadbalancingv2-listenercertificate.go | 61 - ...aws-elasticloadbalancingv2-listenerrule.go | 61 - ...aws-elasticloadbalancingv2-loadbalancer.go | 61 - .../aws-elasticloadbalancingv2-targetgroup.go | 61 - cloudformation/aws-elasticsearch-domain.go | 61 - cloudformation/aws-emr-cluster.go | 61 - cloudformation/aws-emr-instancefleetconfig.go | 61 - cloudformation/aws-emr-instancegroupconfig.go | 61 - .../aws-emr-securityconfiguration.go | 61 - cloudformation/aws-emr-step.go | 61 - cloudformation/aws-events-eventbuspolicy.go | 61 - cloudformation/aws-events-rule.go | 61 - cloudformation/aws-fsx-filesystem.go | 61 - cloudformation/aws-gamelift-alias.go | 61 - cloudformation/aws-gamelift-build.go | 61 - cloudformation/aws-gamelift-fleet.go | 61 - cloudformation/aws-glue-classifier.go | 61 - cloudformation/aws-glue-connection.go | 61 - cloudformation/aws-glue-crawler.go | 61 - cloudformation/aws-glue-database.go | 61 - cloudformation/aws-glue-devendpoint.go | 61 - cloudformation/aws-glue-job.go | 61 - cloudformation/aws-glue-partition.go | 61 - cloudformation/aws-glue-table.go | 61 - cloudformation/aws-glue-trigger.go | 61 - cloudformation/aws-guardduty-detector.go | 61 - cloudformation/aws-guardduty-filter.go | 61 - cloudformation/aws-guardduty-ipset.go | 61 - cloudformation/aws-guardduty-master.go | 61 - cloudformation/aws-guardduty-member.go | 61 - .../aws-guardduty-threatintelset.go | 61 - cloudformation/aws-iam-accesskey.go | 61 - cloudformation/aws-iam-group.go | 61 - cloudformation/aws-iam-instanceprofile.go | 61 - cloudformation/aws-iam-managedpolicy.go | 61 - cloudformation/aws-iam-policy.go | 61 - cloudformation/aws-iam-role.go | 61 - cloudformation/aws-iam-servicelinkedrole.go | 61 - cloudformation/aws-iam-user.go | 61 - cloudformation/aws-iam-usertogroupaddition.go | 61 - .../aws-inspector-assessmenttarget.go | 61 - .../aws-inspector-assessmenttemplate.go | 61 - cloudformation/aws-inspector-resourcegroup.go | 61 - cloudformation/aws-iot-certificate.go | 61 - cloudformation/aws-iot-policy.go | 61 - .../aws-iot-policyprincipalattachment.go | 61 - cloudformation/aws-iot-thing.go | 61 - .../aws-iot-thingprincipalattachment.go | 61 - cloudformation/aws-iot-topicrule.go | 61 - cloudformation/aws-iot1click-device.go | 61 - cloudformation/aws-iot1click-placement.go | 61 - cloudformation/aws-iot1click-project.go | 61 - cloudformation/aws-iotanalytics-channel.go | 61 - cloudformation/aws-iotanalytics-dataset.go | 61 - cloudformation/aws-iotanalytics-datastore.go | 61 - cloudformation/aws-iotanalytics-pipeline.go | 61 - cloudformation/aws-kinesis-stream.go | 61 - cloudformation/aws-kinesis-streamconsumer.go | 61 - .../aws-kinesisanalytics-application.go | 61 - .../aws-kinesisanalytics-applicationoutput.go | 61 - ...nalytics-applicationreferencedatasource.go | 61 - .../aws-kinesisanalyticsv2-application.go | 61 - ...csv2-applicationcloudwatchloggingoption.go | 61 - ...ws-kinesisanalyticsv2-applicationoutput.go | 61 - ...lyticsv2-applicationreferencedatasource.go | 61 - .../aws-kinesisfirehose-deliverystream.go | 61 - cloudformation/aws-kms-alias.go | 61 - cloudformation/aws-kms-key.go | 61 - cloudformation/aws-lambda-alias.go | 61 - .../aws-lambda-eventsourcemapping.go | 61 - cloudformation/aws-lambda-function.go | 61 - cloudformation/aws-lambda-layerversion.go | 61 - .../aws-lambda-layerversionpermission.go | 61 - cloudformation/aws-lambda-permission.go | 61 - cloudformation/aws-lambda-version.go | 61 - cloudformation/aws-logs-destination.go | 61 - cloudformation/aws-logs-loggroup.go | 61 - cloudformation/aws-logs-logstream.go | 61 - cloudformation/aws-logs-metricfilter.go | 61 - cloudformation/aws-logs-subscriptionfilter.go | 61 - cloudformation/aws-neptune-dbcluster.go | 61 - .../aws-neptune-dbclusterparametergroup.go | 61 - cloudformation/aws-neptune-dbinstance.go | 61 - .../aws-neptune-dbparametergroup.go | 61 - cloudformation/aws-neptune-dbsubnetgroup.go | 61 - cloudformation/aws-opsworks-app.go | 61 - ...-opsworks-elasticloadbalancerattachment.go | 61 - cloudformation/aws-opsworks-instance.go | 61 - cloudformation/aws-opsworks-layer.go | 61 - cloudformation/aws-opsworks-stack.go | 61 - cloudformation/aws-opsworks-userprofile.go | 61 - cloudformation/aws-opsworks-volume.go | 61 - cloudformation/aws-opsworkscm-server.go | 61 - cloudformation/aws-ram-resourceshare.go | 61 - cloudformation/aws-rds-dbcluster.go | 61 - .../aws-rds-dbclusterparametergroup.go | 61 - cloudformation/aws-rds-dbinstance.go | 61 - cloudformation/aws-rds-dbparametergroup.go | 61 - cloudformation/aws-rds-dbsecuritygroup.go | 61 - .../aws-rds-dbsecuritygroupingress.go | 61 - cloudformation/aws-rds-dbsubnetgroup.go | 61 - cloudformation/aws-rds-eventsubscription.go | 61 - cloudformation/aws-rds-optiongroup.go | 61 - cloudformation/aws-redshift-cluster.go | 61 - .../aws-redshift-clusterparametergroup.go | 61 - .../aws-redshift-clustersecuritygroup.go | 61 - ...ws-redshift-clustersecuritygroupingress.go | 61 - .../aws-redshift-clustersubnetgroup.go | 61 - cloudformation/aws-robomaker-fleet.go | 61 - cloudformation/aws-robomaker-robot.go | 61 - .../aws-robomaker-robotapplication.go | 61 - .../aws-robomaker-robotapplicationversion.go | 61 - .../aws-robomaker-simulationapplication.go | 61 - ...-robomaker-simulationapplicationversion.go | 61 - cloudformation/aws-route53-healthcheck.go | 61 - cloudformation/aws-route53-hostedzone.go | 61 - cloudformation/aws-route53-recordset.go | 61 - cloudformation/aws-route53-recordsetgroup.go | 61 - .../aws-route53resolver-resolverendpoint.go | 61 - .../aws-route53resolver-resolverrule.go | 61 - ...route53resolver-resolverruleassociation.go | 61 - cloudformation/aws-s3-bucket.go | 61 - cloudformation/aws-s3-bucketpolicy.go | 61 - cloudformation/aws-sagemaker-endpoint.go | 61 - .../aws-sagemaker-endpointconfig.go | 61 - cloudformation/aws-sagemaker-model.go | 61 - .../aws-sagemaker-notebookinstance.go | 61 - ...gemaker-notebookinstancelifecycleconfig.go | 61 - cloudformation/aws-sdb-domain.go | 61 - .../aws-secretsmanager-resourcepolicy.go | 61 - .../aws-secretsmanager-rotationschedule.go | 61 - cloudformation/aws-secretsmanager-secret.go | 61 - ...s-secretsmanager-secrettargetattachment.go | 61 - cloudformation/aws-serverless-api.go | 61 - cloudformation/aws-serverless-application.go | 61 - cloudformation/aws-serverless-function.go | 61 - cloudformation/aws-serverless-layerversion.go | 61 - cloudformation/aws-serverless-simpletable.go | 61 - ...s-servicecatalog-acceptedportfolioshare.go | 61 - ...ws-servicecatalog-cloudformationproduct.go | 61 - ...atalog-cloudformationprovisionedproduct.go | 61 - ...icecatalog-launchnotificationconstraint.go | 61 - ...aws-servicecatalog-launchroleconstraint.go | 61 - ...servicecatalog-launchtemplateconstraint.go | 61 - .../aws-servicecatalog-portfolio.go | 61 - ...cecatalog-portfolioprincipalassociation.go | 61 - ...vicecatalog-portfolioproductassociation.go | 61 - .../aws-servicecatalog-portfolioshare.go | 61 - .../aws-servicecatalog-tagoption.go | 61 - ...aws-servicecatalog-tagoptionassociation.go | 61 - .../aws-servicediscovery-httpnamespace.go | 61 - .../aws-servicediscovery-instance.go | 61 - ...ws-servicediscovery-privatednsnamespace.go | 61 - ...aws-servicediscovery-publicdnsnamespace.go | 61 - .../aws-servicediscovery-service.go | 61 - cloudformation/aws-ses-configurationset.go | 61 - ...ws-ses-configurationseteventdestination.go | 61 - cloudformation/aws-ses-receiptfilter.go | 61 - cloudformation/aws-ses-receiptrule.go | 61 - cloudformation/aws-ses-receiptruleset.go | 61 - cloudformation/aws-ses-template.go | 61 - cloudformation/aws-sns-subscription.go | 61 - cloudformation/aws-sns-topic.go | 61 - cloudformation/aws-sns-topicpolicy.go | 61 - cloudformation/aws-sqs-queue.go | 61 - cloudformation/aws-sqs-queuepolicy.go | 61 - cloudformation/aws-ssm-association.go | 61 - cloudformation/aws-ssm-document.go | 61 - cloudformation/aws-ssm-maintenancewindow.go | 61 - .../aws-ssm-maintenancewindowtask.go | 61 - cloudformation/aws-ssm-parameter.go | 61 - cloudformation/aws-ssm-patchbaseline.go | 61 - cloudformation/aws-ssm-resourcedatasync.go | 61 - cloudformation/aws-stepfunctions-activity.go | 61 - .../aws-stepfunctions-statemachine.go | 61 - cloudformation/aws-waf-bytematchset.go | 61 - cloudformation/aws-waf-ipset.go | 61 - cloudformation/aws-waf-rule.go | 61 - cloudformation/aws-waf-sizeconstraintset.go | 61 - .../aws-waf-sqlinjectionmatchset.go | 61 - cloudformation/aws-waf-webacl.go | 61 - cloudformation/aws-waf-xssmatchset.go | 61 - .../aws-wafregional-bytematchset.go | 61 - cloudformation/aws-wafregional-ipset.go | 61 - cloudformation/aws-wafregional-rule.go | 61 - .../aws-wafregional-sizeconstraintset.go | 61 - .../aws-wafregional-sqlinjectionmatchset.go | 61 - cloudformation/aws-wafregional-webacl.go | 61 - .../aws-wafregional-webaclassociation.go | 61 - cloudformation/aws-wafregional-xssmatchset.go | 61 - cloudformation/aws-workspaces-workspace.go | 61 - cloudformation/policies_test.go | 6 +- cloudformation/template.go | 59 +- generate/templates/all.template | 38 +- generate/templates/resource.template | 61 +- go.mod | 2 +- go.sum | 2 + goformation_test.go | 61 +- intrinsics/intrinsics_test.go | 22 +- .../encryption_proxy/template.yaml | 225 +- .../s3_processor/template.yaml | 12 +- .../mitchellh/mapstructure/.travis.yml | 2 +- .../mitchellh/mapstructure/CHANGELOG.md | 11 +- .../mitchellh/mapstructure/mapstructure.go | 25 +- vendor/modules.txt | 2 +- 383 files changed, 9480 insertions(+), 23072 deletions(-) diff --git a/cloudformation/alexa-ask-skill.go b/cloudformation/alexa-ask-skill.go index df3265e4ba..bb9fbdddf1 100644 --- a/cloudformation/alexa-ask-skill.go +++ b/cloudformation/alexa-ask-skill.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AlexaASKSkill) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAlexaASKSkillResources retrieves all AlexaASKSkill items from an AWS CloudFormation template -func (t *Template) GetAllAlexaASKSkillResources() map[string]*AlexaASKSkill { - results := map[string]*AlexaASKSkill{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AlexaASKSkill: - results[name] = &resource - case *AlexaASKSkill: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "Alexa::ASK::Skill" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AlexaASKSkill - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAlexaASKSkillWithName retrieves all AlexaASKSkill items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAlexaASKSkillWithName(name string) (*AlexaASKSkill, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AlexaASKSkill: - return &resource, nil - case *AlexaASKSkill: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "Alexa::ASK::Skill" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AlexaASKSkill - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/all.go b/cloudformation/all.go index 4b302cdbb4..ff3beb2e88 100644 --- a/cloudformation/all.go +++ b/cloudformation/all.go @@ -1,375 +1,9211 @@ package cloudformation +import ( + "fmt" +) + // AllResources fetches an iterable map all CloudFormation and SAM resources -func AllResources() map[string]interface{} { - return map[string]interface{}{ - "AWS::AmazonMQ::Broker": AWSAmazonMQBroker{}, - "AWS::AmazonMQ::Configuration": AWSAmazonMQConfiguration{}, - "AWS::AmazonMQ::ConfigurationAssociation": AWSAmazonMQConfigurationAssociation{}, - "AWS::ApiGateway::Account": AWSApiGatewayAccount{}, - "AWS::ApiGateway::ApiKey": AWSApiGatewayApiKey{}, - "AWS::ApiGateway::Authorizer": AWSApiGatewayAuthorizer{}, - "AWS::ApiGateway::BasePathMapping": AWSApiGatewayBasePathMapping{}, - "AWS::ApiGateway::ClientCertificate": AWSApiGatewayClientCertificate{}, - "AWS::ApiGateway::Deployment": AWSApiGatewayDeployment{}, - "AWS::ApiGateway::DocumentationPart": AWSApiGatewayDocumentationPart{}, - "AWS::ApiGateway::DocumentationVersion": AWSApiGatewayDocumentationVersion{}, - "AWS::ApiGateway::DomainName": AWSApiGatewayDomainName{}, - "AWS::ApiGateway::GatewayResponse": AWSApiGatewayGatewayResponse{}, - "AWS::ApiGateway::Method": AWSApiGatewayMethod{}, - "AWS::ApiGateway::Model": AWSApiGatewayModel{}, - "AWS::ApiGateway::RequestValidator": AWSApiGatewayRequestValidator{}, - "AWS::ApiGateway::Resource": AWSApiGatewayResource{}, - "AWS::ApiGateway::RestApi": AWSApiGatewayRestApi{}, - "AWS::ApiGateway::Stage": AWSApiGatewayStage{}, - "AWS::ApiGateway::UsagePlan": AWSApiGatewayUsagePlan{}, - "AWS::ApiGateway::UsagePlanKey": AWSApiGatewayUsagePlanKey{}, - "AWS::ApiGateway::VpcLink": AWSApiGatewayVpcLink{}, - "AWS::ApiGatewayV2::Api": AWSApiGatewayV2Api{}, - "AWS::ApiGatewayV2::Authorizer": AWSApiGatewayV2Authorizer{}, - "AWS::ApiGatewayV2::Deployment": AWSApiGatewayV2Deployment{}, - "AWS::ApiGatewayV2::Integration": AWSApiGatewayV2Integration{}, - "AWS::ApiGatewayV2::IntegrationResponse": AWSApiGatewayV2IntegrationResponse{}, - "AWS::ApiGatewayV2::Model": AWSApiGatewayV2Model{}, - "AWS::ApiGatewayV2::Route": AWSApiGatewayV2Route{}, - "AWS::ApiGatewayV2::RouteResponse": AWSApiGatewayV2RouteResponse{}, - "AWS::ApiGatewayV2::Stage": AWSApiGatewayV2Stage{}, - "AWS::AppStream::DirectoryConfig": AWSAppStreamDirectoryConfig{}, - "AWS::AppStream::Fleet": AWSAppStreamFleet{}, - "AWS::AppStream::ImageBuilder": AWSAppStreamImageBuilder{}, - "AWS::AppStream::Stack": AWSAppStreamStack{}, - "AWS::AppStream::StackFleetAssociation": AWSAppStreamStackFleetAssociation{}, - "AWS::AppStream::StackUserAssociation": AWSAppStreamStackUserAssociation{}, - "AWS::AppStream::User": AWSAppStreamUser{}, - "AWS::AppSync::ApiKey": AWSAppSyncApiKey{}, - "AWS::AppSync::DataSource": AWSAppSyncDataSource{}, - "AWS::AppSync::FunctionConfiguration": AWSAppSyncFunctionConfiguration{}, - "AWS::AppSync::GraphQLApi": AWSAppSyncGraphQLApi{}, - "AWS::AppSync::GraphQLSchema": AWSAppSyncGraphQLSchema{}, - "AWS::AppSync::Resolver": AWSAppSyncResolver{}, - "AWS::ApplicationAutoScaling::ScalableTarget": AWSApplicationAutoScalingScalableTarget{}, - "AWS::ApplicationAutoScaling::ScalingPolicy": AWSApplicationAutoScalingScalingPolicy{}, - "AWS::Athena::NamedQuery": AWSAthenaNamedQuery{}, - "AWS::AutoScaling::AutoScalingGroup": AWSAutoScalingAutoScalingGroup{}, - "AWS::AutoScaling::LaunchConfiguration": AWSAutoScalingLaunchConfiguration{}, - "AWS::AutoScaling::LifecycleHook": AWSAutoScalingLifecycleHook{}, - "AWS::AutoScaling::ScalingPolicy": AWSAutoScalingScalingPolicy{}, - "AWS::AutoScaling::ScheduledAction": AWSAutoScalingScheduledAction{}, - "AWS::AutoScalingPlans::ScalingPlan": AWSAutoScalingPlansScalingPlan{}, - "AWS::Batch::ComputeEnvironment": AWSBatchComputeEnvironment{}, - "AWS::Batch::JobDefinition": AWSBatchJobDefinition{}, - "AWS::Batch::JobQueue": AWSBatchJobQueue{}, - "AWS::Budgets::Budget": AWSBudgetsBudget{}, - "AWS::CertificateManager::Certificate": AWSCertificateManagerCertificate{}, - "AWS::Cloud9::EnvironmentEC2": AWSCloud9EnvironmentEC2{}, - "AWS::CloudFormation::CustomResource": AWSCloudFormationCustomResource{}, - "AWS::CloudFormation::Macro": AWSCloudFormationMacro{}, - "AWS::CloudFormation::Stack": AWSCloudFormationStack{}, - "AWS::CloudFormation::WaitCondition": AWSCloudFormationWaitCondition{}, - "AWS::CloudFormation::WaitConditionHandle": AWSCloudFormationWaitConditionHandle{}, - "AWS::CloudFront::CloudFrontOriginAccessIdentity": AWSCloudFrontCloudFrontOriginAccessIdentity{}, - "AWS::CloudFront::Distribution": AWSCloudFrontDistribution{}, - "AWS::CloudFront::StreamingDistribution": AWSCloudFrontStreamingDistribution{}, - "AWS::CloudTrail::Trail": AWSCloudTrailTrail{}, - "AWS::CloudWatch::Alarm": AWSCloudWatchAlarm{}, - "AWS::CloudWatch::Dashboard": AWSCloudWatchDashboard{}, - "AWS::CodeBuild::Project": AWSCodeBuildProject{}, - "AWS::CodeCommit::Repository": AWSCodeCommitRepository{}, - "AWS::CodeDeploy::Application": AWSCodeDeployApplication{}, - "AWS::CodeDeploy::DeploymentConfig": AWSCodeDeployDeploymentConfig{}, - "AWS::CodeDeploy::DeploymentGroup": AWSCodeDeployDeploymentGroup{}, - "AWS::CodePipeline::CustomActionType": AWSCodePipelineCustomActionType{}, - "AWS::CodePipeline::Pipeline": AWSCodePipelinePipeline{}, - "AWS::CodePipeline::Webhook": AWSCodePipelineWebhook{}, - "AWS::Cognito::IdentityPool": AWSCognitoIdentityPool{}, - "AWS::Cognito::IdentityPoolRoleAttachment": AWSCognitoIdentityPoolRoleAttachment{}, - "AWS::Cognito::UserPool": AWSCognitoUserPool{}, - "AWS::Cognito::UserPoolClient": AWSCognitoUserPoolClient{}, - "AWS::Cognito::UserPoolGroup": AWSCognitoUserPoolGroup{}, - "AWS::Cognito::UserPoolUser": AWSCognitoUserPoolUser{}, - "AWS::Cognito::UserPoolUserToGroupAttachment": AWSCognitoUserPoolUserToGroupAttachment{}, - "AWS::Config::AggregationAuthorization": AWSConfigAggregationAuthorization{}, - "AWS::Config::ConfigRule": AWSConfigConfigRule{}, - "AWS::Config::ConfigurationAggregator": AWSConfigConfigurationAggregator{}, - "AWS::Config::ConfigurationRecorder": AWSConfigConfigurationRecorder{}, - "AWS::Config::DeliveryChannel": AWSConfigDeliveryChannel{}, - "AWS::DAX::Cluster": AWSDAXCluster{}, - "AWS::DAX::ParameterGroup": AWSDAXParameterGroup{}, - "AWS::DAX::SubnetGroup": AWSDAXSubnetGroup{}, - "AWS::DLM::LifecyclePolicy": AWSDLMLifecyclePolicy{}, - "AWS::DMS::Certificate": AWSDMSCertificate{}, - "AWS::DMS::Endpoint": AWSDMSEndpoint{}, - "AWS::DMS::EventSubscription": AWSDMSEventSubscription{}, - "AWS::DMS::ReplicationInstance": AWSDMSReplicationInstance{}, - "AWS::DMS::ReplicationSubnetGroup": AWSDMSReplicationSubnetGroup{}, - "AWS::DMS::ReplicationTask": AWSDMSReplicationTask{}, - "AWS::DataPipeline::Pipeline": AWSDataPipelinePipeline{}, - "AWS::DirectoryService::MicrosoftAD": AWSDirectoryServiceMicrosoftAD{}, - "AWS::DirectoryService::SimpleAD": AWSDirectoryServiceSimpleAD{}, - "AWS::DocDB::DBCluster": AWSDocDBDBCluster{}, - "AWS::DocDB::DBClusterParameterGroup": AWSDocDBDBClusterParameterGroup{}, - "AWS::DocDB::DBInstance": AWSDocDBDBInstance{}, - "AWS::DocDB::DBSubnetGroup": AWSDocDBDBSubnetGroup{}, - "AWS::DynamoDB::Table": AWSDynamoDBTable{}, - "AWS::EC2::CustomerGateway": AWSEC2CustomerGateway{}, - "AWS::EC2::DHCPOptions": AWSEC2DHCPOptions{}, - "AWS::EC2::EC2Fleet": AWSEC2EC2Fleet{}, - "AWS::EC2::EIP": AWSEC2EIP{}, - "AWS::EC2::EIPAssociation": AWSEC2EIPAssociation{}, - "AWS::EC2::EgressOnlyInternetGateway": AWSEC2EgressOnlyInternetGateway{}, - "AWS::EC2::FlowLog": AWSEC2FlowLog{}, - "AWS::EC2::Host": AWSEC2Host{}, - "AWS::EC2::Instance": AWSEC2Instance{}, - "AWS::EC2::InternetGateway": AWSEC2InternetGateway{}, - "AWS::EC2::LaunchTemplate": AWSEC2LaunchTemplate{}, - "AWS::EC2::NatGateway": AWSEC2NatGateway{}, - "AWS::EC2::NetworkAcl": AWSEC2NetworkAcl{}, - "AWS::EC2::NetworkAclEntry": AWSEC2NetworkAclEntry{}, - "AWS::EC2::NetworkInterface": AWSEC2NetworkInterface{}, - "AWS::EC2::NetworkInterfaceAttachment": AWSEC2NetworkInterfaceAttachment{}, - "AWS::EC2::NetworkInterfacePermission": AWSEC2NetworkInterfacePermission{}, - "AWS::EC2::PlacementGroup": AWSEC2PlacementGroup{}, - "AWS::EC2::Route": AWSEC2Route{}, - "AWS::EC2::RouteTable": AWSEC2RouteTable{}, - "AWS::EC2::SecurityGroup": AWSEC2SecurityGroup{}, - "AWS::EC2::SecurityGroupEgress": AWSEC2SecurityGroupEgress{}, - "AWS::EC2::SecurityGroupIngress": AWSEC2SecurityGroupIngress{}, - "AWS::EC2::SpotFleet": AWSEC2SpotFleet{}, - "AWS::EC2::Subnet": AWSEC2Subnet{}, - "AWS::EC2::SubnetCidrBlock": AWSEC2SubnetCidrBlock{}, - "AWS::EC2::SubnetNetworkAclAssociation": AWSEC2SubnetNetworkAclAssociation{}, - "AWS::EC2::SubnetRouteTableAssociation": AWSEC2SubnetRouteTableAssociation{}, - "AWS::EC2::TransitGateway": AWSEC2TransitGateway{}, - "AWS::EC2::TransitGatewayAttachment": AWSEC2TransitGatewayAttachment{}, - "AWS::EC2::TransitGatewayRoute": AWSEC2TransitGatewayRoute{}, - "AWS::EC2::TransitGatewayRouteTable": AWSEC2TransitGatewayRouteTable{}, - "AWS::EC2::TransitGatewayRouteTableAssociation": AWSEC2TransitGatewayRouteTableAssociation{}, - "AWS::EC2::TransitGatewayRouteTablePropagation": AWSEC2TransitGatewayRouteTablePropagation{}, - "AWS::EC2::TrunkInterfaceAssociation": AWSEC2TrunkInterfaceAssociation{}, - "AWS::EC2::VPC": AWSEC2VPC{}, - "AWS::EC2::VPCCidrBlock": AWSEC2VPCCidrBlock{}, - "AWS::EC2::VPCDHCPOptionsAssociation": AWSEC2VPCDHCPOptionsAssociation{}, - "AWS::EC2::VPCEndpoint": AWSEC2VPCEndpoint{}, - "AWS::EC2::VPCEndpointConnectionNotification": AWSEC2VPCEndpointConnectionNotification{}, - "AWS::EC2::VPCEndpointServicePermissions": AWSEC2VPCEndpointServicePermissions{}, - "AWS::EC2::VPCGatewayAttachment": AWSEC2VPCGatewayAttachment{}, - "AWS::EC2::VPCPeeringConnection": AWSEC2VPCPeeringConnection{}, - "AWS::EC2::VPNConnection": AWSEC2VPNConnection{}, - "AWS::EC2::VPNConnectionRoute": AWSEC2VPNConnectionRoute{}, - "AWS::EC2::VPNGateway": AWSEC2VPNGateway{}, - "AWS::EC2::VPNGatewayRoutePropagation": AWSEC2VPNGatewayRoutePropagation{}, - "AWS::EC2::Volume": AWSEC2Volume{}, - "AWS::EC2::VolumeAttachment": AWSEC2VolumeAttachment{}, - "AWS::ECR::Repository": AWSECRRepository{}, - "AWS::ECS::Cluster": AWSECSCluster{}, - "AWS::ECS::Service": AWSECSService{}, - "AWS::ECS::TaskDefinition": AWSECSTaskDefinition{}, - "AWS::EFS::FileSystem": AWSEFSFileSystem{}, - "AWS::EFS::MountTarget": AWSEFSMountTarget{}, - "AWS::EKS::Cluster": AWSEKSCluster{}, - "AWS::EMR::Cluster": AWSEMRCluster{}, - "AWS::EMR::InstanceFleetConfig": AWSEMRInstanceFleetConfig{}, - "AWS::EMR::InstanceGroupConfig": AWSEMRInstanceGroupConfig{}, - "AWS::EMR::SecurityConfiguration": AWSEMRSecurityConfiguration{}, - "AWS::EMR::Step": AWSEMRStep{}, - "AWS::ElastiCache::CacheCluster": AWSElastiCacheCacheCluster{}, - "AWS::ElastiCache::ParameterGroup": AWSElastiCacheParameterGroup{}, - "AWS::ElastiCache::ReplicationGroup": AWSElastiCacheReplicationGroup{}, - "AWS::ElastiCache::SecurityGroup": AWSElastiCacheSecurityGroup{}, - "AWS::ElastiCache::SecurityGroupIngress": AWSElastiCacheSecurityGroupIngress{}, - "AWS::ElastiCache::SubnetGroup": AWSElastiCacheSubnetGroup{}, - "AWS::ElasticBeanstalk::Application": AWSElasticBeanstalkApplication{}, - "AWS::ElasticBeanstalk::ApplicationVersion": AWSElasticBeanstalkApplicationVersion{}, - "AWS::ElasticBeanstalk::ConfigurationTemplate": AWSElasticBeanstalkConfigurationTemplate{}, - "AWS::ElasticBeanstalk::Environment": AWSElasticBeanstalkEnvironment{}, - "AWS::ElasticLoadBalancing::LoadBalancer": AWSElasticLoadBalancingLoadBalancer{}, - "AWS::ElasticLoadBalancingV2::Listener": AWSElasticLoadBalancingV2Listener{}, - "AWS::ElasticLoadBalancingV2::ListenerCertificate": AWSElasticLoadBalancingV2ListenerCertificate{}, - "AWS::ElasticLoadBalancingV2::ListenerRule": AWSElasticLoadBalancingV2ListenerRule{}, - "AWS::ElasticLoadBalancingV2::LoadBalancer": AWSElasticLoadBalancingV2LoadBalancer{}, - "AWS::ElasticLoadBalancingV2::TargetGroup": AWSElasticLoadBalancingV2TargetGroup{}, - "AWS::Elasticsearch::Domain": AWSElasticsearchDomain{}, - "AWS::Events::EventBusPolicy": AWSEventsEventBusPolicy{}, - "AWS::Events::Rule": AWSEventsRule{}, - "AWS::FSx::FileSystem": AWSFSxFileSystem{}, - "AWS::GameLift::Alias": AWSGameLiftAlias{}, - "AWS::GameLift::Build": AWSGameLiftBuild{}, - "AWS::GameLift::Fleet": AWSGameLiftFleet{}, - "AWS::Glue::Classifier": AWSGlueClassifier{}, - "AWS::Glue::Connection": AWSGlueConnection{}, - "AWS::Glue::Crawler": AWSGlueCrawler{}, - "AWS::Glue::Database": AWSGlueDatabase{}, - "AWS::Glue::DevEndpoint": AWSGlueDevEndpoint{}, - "AWS::Glue::Job": AWSGlueJob{}, - "AWS::Glue::Partition": AWSGluePartition{}, - "AWS::Glue::Table": AWSGlueTable{}, - "AWS::Glue::Trigger": AWSGlueTrigger{}, - "AWS::GuardDuty::Detector": AWSGuardDutyDetector{}, - "AWS::GuardDuty::Filter": AWSGuardDutyFilter{}, - "AWS::GuardDuty::IPSet": AWSGuardDutyIPSet{}, - "AWS::GuardDuty::Master": AWSGuardDutyMaster{}, - "AWS::GuardDuty::Member": AWSGuardDutyMember{}, - "AWS::GuardDuty::ThreatIntelSet": AWSGuardDutyThreatIntelSet{}, - "AWS::IAM::AccessKey": AWSIAMAccessKey{}, - "AWS::IAM::Group": AWSIAMGroup{}, - "AWS::IAM::InstanceProfile": AWSIAMInstanceProfile{}, - "AWS::IAM::ManagedPolicy": AWSIAMManagedPolicy{}, - "AWS::IAM::Policy": AWSIAMPolicy{}, - "AWS::IAM::Role": AWSIAMRole{}, - "AWS::IAM::ServiceLinkedRole": AWSIAMServiceLinkedRole{}, - "AWS::IAM::User": AWSIAMUser{}, - "AWS::IAM::UserToGroupAddition": AWSIAMUserToGroupAddition{}, - "AWS::Inspector::AssessmentTarget": AWSInspectorAssessmentTarget{}, - "AWS::Inspector::AssessmentTemplate": AWSInspectorAssessmentTemplate{}, - "AWS::Inspector::ResourceGroup": AWSInspectorResourceGroup{}, - "AWS::IoT1Click::Device": AWSIoT1ClickDevice{}, - "AWS::IoT1Click::Placement": AWSIoT1ClickPlacement{}, - "AWS::IoT1Click::Project": AWSIoT1ClickProject{}, - "AWS::IoT::Certificate": AWSIoTCertificate{}, - "AWS::IoT::Policy": AWSIoTPolicy{}, - "AWS::IoT::PolicyPrincipalAttachment": AWSIoTPolicyPrincipalAttachment{}, - "AWS::IoT::Thing": AWSIoTThing{}, - "AWS::IoT::ThingPrincipalAttachment": AWSIoTThingPrincipalAttachment{}, - "AWS::IoT::TopicRule": AWSIoTTopicRule{}, - "AWS::IoTAnalytics::Channel": AWSIoTAnalyticsChannel{}, - "AWS::IoTAnalytics::Dataset": AWSIoTAnalyticsDataset{}, - "AWS::IoTAnalytics::Datastore": AWSIoTAnalyticsDatastore{}, - "AWS::IoTAnalytics::Pipeline": AWSIoTAnalyticsPipeline{}, - "AWS::KMS::Alias": AWSKMSAlias{}, - "AWS::KMS::Key": AWSKMSKey{}, - "AWS::Kinesis::Stream": AWSKinesisStream{}, - "AWS::Kinesis::StreamConsumer": AWSKinesisStreamConsumer{}, - "AWS::KinesisAnalytics::Application": AWSKinesisAnalyticsApplication{}, - "AWS::KinesisAnalytics::ApplicationOutput": AWSKinesisAnalyticsApplicationOutput{}, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource": AWSKinesisAnalyticsApplicationReferenceDataSource{}, - "AWS::KinesisAnalyticsV2::Application": AWSKinesisAnalyticsV2Application{}, - "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption": AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption{}, - "AWS::KinesisAnalyticsV2::ApplicationOutput": AWSKinesisAnalyticsV2ApplicationOutput{}, - "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource": AWSKinesisAnalyticsV2ApplicationReferenceDataSource{}, - "AWS::KinesisFirehose::DeliveryStream": AWSKinesisFirehoseDeliveryStream{}, - "AWS::Lambda::Alias": AWSLambdaAlias{}, - "AWS::Lambda::EventSourceMapping": AWSLambdaEventSourceMapping{}, - "AWS::Lambda::Function": AWSLambdaFunction{}, - "AWS::Lambda::LayerVersion": AWSLambdaLayerVersion{}, - "AWS::Lambda::LayerVersionPermission": AWSLambdaLayerVersionPermission{}, - "AWS::Lambda::Permission": AWSLambdaPermission{}, - "AWS::Lambda::Version": AWSLambdaVersion{}, - "AWS::Logs::Destination": AWSLogsDestination{}, - "AWS::Logs::LogGroup": AWSLogsLogGroup{}, - "AWS::Logs::LogStream": AWSLogsLogStream{}, - "AWS::Logs::MetricFilter": AWSLogsMetricFilter{}, - "AWS::Logs::SubscriptionFilter": AWSLogsSubscriptionFilter{}, - "AWS::Neptune::DBCluster": AWSNeptuneDBCluster{}, - "AWS::Neptune::DBClusterParameterGroup": AWSNeptuneDBClusterParameterGroup{}, - "AWS::Neptune::DBInstance": AWSNeptuneDBInstance{}, - "AWS::Neptune::DBParameterGroup": AWSNeptuneDBParameterGroup{}, - "AWS::Neptune::DBSubnetGroup": AWSNeptuneDBSubnetGroup{}, - "AWS::OpsWorks::App": AWSOpsWorksApp{}, - "AWS::OpsWorks::ElasticLoadBalancerAttachment": AWSOpsWorksElasticLoadBalancerAttachment{}, - "AWS::OpsWorks::Instance": AWSOpsWorksInstance{}, - "AWS::OpsWorks::Layer": AWSOpsWorksLayer{}, - "AWS::OpsWorks::Stack": AWSOpsWorksStack{}, - "AWS::OpsWorks::UserProfile": AWSOpsWorksUserProfile{}, - "AWS::OpsWorks::Volume": AWSOpsWorksVolume{}, - "AWS::OpsWorksCM::Server": AWSOpsWorksCMServer{}, - "AWS::RAM::ResourceShare": AWSRAMResourceShare{}, - "AWS::RDS::DBCluster": AWSRDSDBCluster{}, - "AWS::RDS::DBClusterParameterGroup": AWSRDSDBClusterParameterGroup{}, - "AWS::RDS::DBInstance": AWSRDSDBInstance{}, - "AWS::RDS::DBParameterGroup": AWSRDSDBParameterGroup{}, - "AWS::RDS::DBSecurityGroup": AWSRDSDBSecurityGroup{}, - "AWS::RDS::DBSecurityGroupIngress": AWSRDSDBSecurityGroupIngress{}, - "AWS::RDS::DBSubnetGroup": AWSRDSDBSubnetGroup{}, - "AWS::RDS::EventSubscription": AWSRDSEventSubscription{}, - "AWS::RDS::OptionGroup": AWSRDSOptionGroup{}, - "AWS::Redshift::Cluster": AWSRedshiftCluster{}, - "AWS::Redshift::ClusterParameterGroup": AWSRedshiftClusterParameterGroup{}, - "AWS::Redshift::ClusterSecurityGroup": AWSRedshiftClusterSecurityGroup{}, - "AWS::Redshift::ClusterSecurityGroupIngress": AWSRedshiftClusterSecurityGroupIngress{}, - "AWS::Redshift::ClusterSubnetGroup": AWSRedshiftClusterSubnetGroup{}, - "AWS::RoboMaker::Fleet": AWSRoboMakerFleet{}, - "AWS::RoboMaker::Robot": AWSRoboMakerRobot{}, - "AWS::RoboMaker::RobotApplication": AWSRoboMakerRobotApplication{}, - "AWS::RoboMaker::RobotApplicationVersion": AWSRoboMakerRobotApplicationVersion{}, - "AWS::RoboMaker::SimulationApplication": AWSRoboMakerSimulationApplication{}, - "AWS::RoboMaker::SimulationApplicationVersion": AWSRoboMakerSimulationApplicationVersion{}, - "AWS::Route53::HealthCheck": AWSRoute53HealthCheck{}, - "AWS::Route53::HostedZone": AWSRoute53HostedZone{}, - "AWS::Route53::RecordSet": AWSRoute53RecordSet{}, - "AWS::Route53::RecordSetGroup": AWSRoute53RecordSetGroup{}, - "AWS::Route53Resolver::ResolverEndpoint": AWSRoute53ResolverResolverEndpoint{}, - "AWS::Route53Resolver::ResolverRule": AWSRoute53ResolverResolverRule{}, - "AWS::Route53Resolver::ResolverRuleAssociation": AWSRoute53ResolverResolverRuleAssociation{}, - "AWS::S3::Bucket": AWSS3Bucket{}, - "AWS::S3::BucketPolicy": AWSS3BucketPolicy{}, - "AWS::SDB::Domain": AWSSDBDomain{}, - "AWS::SES::ConfigurationSet": AWSSESConfigurationSet{}, - "AWS::SES::ConfigurationSetEventDestination": AWSSESConfigurationSetEventDestination{}, - "AWS::SES::ReceiptFilter": AWSSESReceiptFilter{}, - "AWS::SES::ReceiptRule": AWSSESReceiptRule{}, - "AWS::SES::ReceiptRuleSet": AWSSESReceiptRuleSet{}, - "AWS::SES::Template": AWSSESTemplate{}, - "AWS::SNS::Subscription": AWSSNSSubscription{}, - "AWS::SNS::Topic": AWSSNSTopic{}, - "AWS::SNS::TopicPolicy": AWSSNSTopicPolicy{}, - "AWS::SQS::Queue": AWSSQSQueue{}, - "AWS::SQS::QueuePolicy": AWSSQSQueuePolicy{}, - "AWS::SSM::Association": AWSSSMAssociation{}, - "AWS::SSM::Document": AWSSSMDocument{}, - "AWS::SSM::MaintenanceWindow": AWSSSMMaintenanceWindow{}, - "AWS::SSM::MaintenanceWindowTask": AWSSSMMaintenanceWindowTask{}, - "AWS::SSM::Parameter": AWSSSMParameter{}, - "AWS::SSM::PatchBaseline": AWSSSMPatchBaseline{}, - "AWS::SSM::ResourceDataSync": AWSSSMResourceDataSync{}, - "AWS::SageMaker::Endpoint": AWSSageMakerEndpoint{}, - "AWS::SageMaker::EndpointConfig": AWSSageMakerEndpointConfig{}, - "AWS::SageMaker::Model": AWSSageMakerModel{}, - "AWS::SageMaker::NotebookInstance": AWSSageMakerNotebookInstance{}, - "AWS::SageMaker::NotebookInstanceLifecycleConfig": AWSSageMakerNotebookInstanceLifecycleConfig{}, - "AWS::SecretsManager::ResourcePolicy": AWSSecretsManagerResourcePolicy{}, - "AWS::SecretsManager::RotationSchedule": AWSSecretsManagerRotationSchedule{}, - "AWS::SecretsManager::Secret": AWSSecretsManagerSecret{}, - "AWS::SecretsManager::SecretTargetAttachment": AWSSecretsManagerSecretTargetAttachment{}, - "AWS::Serverless::Api": AWSServerlessApi{}, - "AWS::Serverless::Application": AWSServerlessApplication{}, - "AWS::Serverless::Function": AWSServerlessFunction{}, - "AWS::Serverless::LayerVersion": AWSServerlessLayerVersion{}, - "AWS::Serverless::SimpleTable": AWSServerlessSimpleTable{}, - "AWS::ServiceCatalog::AcceptedPortfolioShare": AWSServiceCatalogAcceptedPortfolioShare{}, - "AWS::ServiceCatalog::CloudFormationProduct": AWSServiceCatalogCloudFormationProduct{}, - "AWS::ServiceCatalog::CloudFormationProvisionedProduct": AWSServiceCatalogCloudFormationProvisionedProduct{}, - "AWS::ServiceCatalog::LaunchNotificationConstraint": AWSServiceCatalogLaunchNotificationConstraint{}, - "AWS::ServiceCatalog::LaunchRoleConstraint": AWSServiceCatalogLaunchRoleConstraint{}, - "AWS::ServiceCatalog::LaunchTemplateConstraint": AWSServiceCatalogLaunchTemplateConstraint{}, - "AWS::ServiceCatalog::Portfolio": AWSServiceCatalogPortfolio{}, - "AWS::ServiceCatalog::PortfolioPrincipalAssociation": AWSServiceCatalogPortfolioPrincipalAssociation{}, - "AWS::ServiceCatalog::PortfolioProductAssociation": AWSServiceCatalogPortfolioProductAssociation{}, - "AWS::ServiceCatalog::PortfolioShare": AWSServiceCatalogPortfolioShare{}, - "AWS::ServiceCatalog::TagOption": AWSServiceCatalogTagOption{}, - "AWS::ServiceCatalog::TagOptionAssociation": AWSServiceCatalogTagOptionAssociation{}, - "AWS::ServiceDiscovery::HttpNamespace": AWSServiceDiscoveryHttpNamespace{}, - "AWS::ServiceDiscovery::Instance": AWSServiceDiscoveryInstance{}, - "AWS::ServiceDiscovery::PrivateDnsNamespace": AWSServiceDiscoveryPrivateDnsNamespace{}, - "AWS::ServiceDiscovery::PublicDnsNamespace": AWSServiceDiscoveryPublicDnsNamespace{}, - "AWS::ServiceDiscovery::Service": AWSServiceDiscoveryService{}, - "AWS::StepFunctions::Activity": AWSStepFunctionsActivity{}, - "AWS::StepFunctions::StateMachine": AWSStepFunctionsStateMachine{}, - "AWS::WAF::ByteMatchSet": AWSWAFByteMatchSet{}, - "AWS::WAF::IPSet": AWSWAFIPSet{}, - "AWS::WAF::Rule": AWSWAFRule{}, - "AWS::WAF::SizeConstraintSet": AWSWAFSizeConstraintSet{}, - "AWS::WAF::SqlInjectionMatchSet": AWSWAFSqlInjectionMatchSet{}, - "AWS::WAF::WebACL": AWSWAFWebACL{}, - "AWS::WAF::XssMatchSet": AWSWAFXssMatchSet{}, - "AWS::WAFRegional::ByteMatchSet": AWSWAFRegionalByteMatchSet{}, - "AWS::WAFRegional::IPSet": AWSWAFRegionalIPSet{}, - "AWS::WAFRegional::Rule": AWSWAFRegionalRule{}, - "AWS::WAFRegional::SizeConstraintSet": AWSWAFRegionalSizeConstraintSet{}, - "AWS::WAFRegional::SqlInjectionMatchSet": AWSWAFRegionalSqlInjectionMatchSet{}, - "AWS::WAFRegional::WebACL": AWSWAFRegionalWebACL{}, - "AWS::WAFRegional::WebACLAssociation": AWSWAFRegionalWebACLAssociation{}, - "AWS::WAFRegional::XssMatchSet": AWSWAFRegionalXssMatchSet{}, - "AWS::WorkSpaces::Workspace": AWSWorkSpacesWorkspace{}, - "Alexa::ASK::Skill": AlexaASKSkill{}, +func AllResources() map[string]Resource { + return map[string]Resource{ + "AWS::AmazonMQ::Broker": &AWSAmazonMQBroker{}, + "AWS::AmazonMQ::Configuration": &AWSAmazonMQConfiguration{}, + "AWS::AmazonMQ::ConfigurationAssociation": &AWSAmazonMQConfigurationAssociation{}, + "AWS::ApiGateway::Account": &AWSApiGatewayAccount{}, + "AWS::ApiGateway::ApiKey": &AWSApiGatewayApiKey{}, + "AWS::ApiGateway::Authorizer": &AWSApiGatewayAuthorizer{}, + "AWS::ApiGateway::BasePathMapping": &AWSApiGatewayBasePathMapping{}, + "AWS::ApiGateway::ClientCertificate": &AWSApiGatewayClientCertificate{}, + "AWS::ApiGateway::Deployment": &AWSApiGatewayDeployment{}, + "AWS::ApiGateway::DocumentationPart": &AWSApiGatewayDocumentationPart{}, + "AWS::ApiGateway::DocumentationVersion": &AWSApiGatewayDocumentationVersion{}, + "AWS::ApiGateway::DomainName": &AWSApiGatewayDomainName{}, + "AWS::ApiGateway::GatewayResponse": &AWSApiGatewayGatewayResponse{}, + "AWS::ApiGateway::Method": &AWSApiGatewayMethod{}, + "AWS::ApiGateway::Model": &AWSApiGatewayModel{}, + "AWS::ApiGateway::RequestValidator": &AWSApiGatewayRequestValidator{}, + "AWS::ApiGateway::Resource": &AWSApiGatewayResource{}, + "AWS::ApiGateway::RestApi": &AWSApiGatewayRestApi{}, + "AWS::ApiGateway::Stage": &AWSApiGatewayStage{}, + "AWS::ApiGateway::UsagePlan": &AWSApiGatewayUsagePlan{}, + "AWS::ApiGateway::UsagePlanKey": &AWSApiGatewayUsagePlanKey{}, + "AWS::ApiGateway::VpcLink": &AWSApiGatewayVpcLink{}, + "AWS::ApiGatewayV2::Api": &AWSApiGatewayV2Api{}, + "AWS::ApiGatewayV2::Authorizer": &AWSApiGatewayV2Authorizer{}, + "AWS::ApiGatewayV2::Deployment": &AWSApiGatewayV2Deployment{}, + "AWS::ApiGatewayV2::Integration": &AWSApiGatewayV2Integration{}, + "AWS::ApiGatewayV2::IntegrationResponse": &AWSApiGatewayV2IntegrationResponse{}, + "AWS::ApiGatewayV2::Model": &AWSApiGatewayV2Model{}, + "AWS::ApiGatewayV2::Route": &AWSApiGatewayV2Route{}, + "AWS::ApiGatewayV2::RouteResponse": &AWSApiGatewayV2RouteResponse{}, + "AWS::ApiGatewayV2::Stage": &AWSApiGatewayV2Stage{}, + "AWS::AppStream::DirectoryConfig": &AWSAppStreamDirectoryConfig{}, + "AWS::AppStream::Fleet": &AWSAppStreamFleet{}, + "AWS::AppStream::ImageBuilder": &AWSAppStreamImageBuilder{}, + "AWS::AppStream::Stack": &AWSAppStreamStack{}, + "AWS::AppStream::StackFleetAssociation": &AWSAppStreamStackFleetAssociation{}, + "AWS::AppStream::StackUserAssociation": &AWSAppStreamStackUserAssociation{}, + "AWS::AppStream::User": &AWSAppStreamUser{}, + "AWS::AppSync::ApiKey": &AWSAppSyncApiKey{}, + "AWS::AppSync::DataSource": &AWSAppSyncDataSource{}, + "AWS::AppSync::FunctionConfiguration": &AWSAppSyncFunctionConfiguration{}, + "AWS::AppSync::GraphQLApi": &AWSAppSyncGraphQLApi{}, + "AWS::AppSync::GraphQLSchema": &AWSAppSyncGraphQLSchema{}, + "AWS::AppSync::Resolver": &AWSAppSyncResolver{}, + "AWS::ApplicationAutoScaling::ScalableTarget": &AWSApplicationAutoScalingScalableTarget{}, + "AWS::ApplicationAutoScaling::ScalingPolicy": &AWSApplicationAutoScalingScalingPolicy{}, + "AWS::Athena::NamedQuery": &AWSAthenaNamedQuery{}, + "AWS::AutoScaling::AutoScalingGroup": &AWSAutoScalingAutoScalingGroup{}, + "AWS::AutoScaling::LaunchConfiguration": &AWSAutoScalingLaunchConfiguration{}, + "AWS::AutoScaling::LifecycleHook": &AWSAutoScalingLifecycleHook{}, + "AWS::AutoScaling::ScalingPolicy": &AWSAutoScalingScalingPolicy{}, + "AWS::AutoScaling::ScheduledAction": &AWSAutoScalingScheduledAction{}, + "AWS::AutoScalingPlans::ScalingPlan": &AWSAutoScalingPlansScalingPlan{}, + "AWS::Batch::ComputeEnvironment": &AWSBatchComputeEnvironment{}, + "AWS::Batch::JobDefinition": &AWSBatchJobDefinition{}, + "AWS::Batch::JobQueue": &AWSBatchJobQueue{}, + "AWS::Budgets::Budget": &AWSBudgetsBudget{}, + "AWS::CertificateManager::Certificate": &AWSCertificateManagerCertificate{}, + "AWS::Cloud9::EnvironmentEC2": &AWSCloud9EnvironmentEC2{}, + "AWS::CloudFormation::CustomResource": &AWSCloudFormationCustomResource{}, + "AWS::CloudFormation::Macro": &AWSCloudFormationMacro{}, + "AWS::CloudFormation::Stack": &AWSCloudFormationStack{}, + "AWS::CloudFormation::WaitCondition": &AWSCloudFormationWaitCondition{}, + "AWS::CloudFormation::WaitConditionHandle": &AWSCloudFormationWaitConditionHandle{}, + "AWS::CloudFront::CloudFrontOriginAccessIdentity": &AWSCloudFrontCloudFrontOriginAccessIdentity{}, + "AWS::CloudFront::Distribution": &AWSCloudFrontDistribution{}, + "AWS::CloudFront::StreamingDistribution": &AWSCloudFrontStreamingDistribution{}, + "AWS::CloudTrail::Trail": &AWSCloudTrailTrail{}, + "AWS::CloudWatch::Alarm": &AWSCloudWatchAlarm{}, + "AWS::CloudWatch::Dashboard": &AWSCloudWatchDashboard{}, + "AWS::CodeBuild::Project": &AWSCodeBuildProject{}, + "AWS::CodeCommit::Repository": &AWSCodeCommitRepository{}, + "AWS::CodeDeploy::Application": &AWSCodeDeployApplication{}, + "AWS::CodeDeploy::DeploymentConfig": &AWSCodeDeployDeploymentConfig{}, + "AWS::CodeDeploy::DeploymentGroup": &AWSCodeDeployDeploymentGroup{}, + "AWS::CodePipeline::CustomActionType": &AWSCodePipelineCustomActionType{}, + "AWS::CodePipeline::Pipeline": &AWSCodePipelinePipeline{}, + "AWS::CodePipeline::Webhook": &AWSCodePipelineWebhook{}, + "AWS::Cognito::IdentityPool": &AWSCognitoIdentityPool{}, + "AWS::Cognito::IdentityPoolRoleAttachment": &AWSCognitoIdentityPoolRoleAttachment{}, + "AWS::Cognito::UserPool": &AWSCognitoUserPool{}, + "AWS::Cognito::UserPoolClient": &AWSCognitoUserPoolClient{}, + "AWS::Cognito::UserPoolGroup": &AWSCognitoUserPoolGroup{}, + "AWS::Cognito::UserPoolUser": &AWSCognitoUserPoolUser{}, + "AWS::Cognito::UserPoolUserToGroupAttachment": &AWSCognitoUserPoolUserToGroupAttachment{}, + "AWS::Config::AggregationAuthorization": &AWSConfigAggregationAuthorization{}, + "AWS::Config::ConfigRule": &AWSConfigConfigRule{}, + "AWS::Config::ConfigurationAggregator": &AWSConfigConfigurationAggregator{}, + "AWS::Config::ConfigurationRecorder": &AWSConfigConfigurationRecorder{}, + "AWS::Config::DeliveryChannel": &AWSConfigDeliveryChannel{}, + "AWS::DAX::Cluster": &AWSDAXCluster{}, + "AWS::DAX::ParameterGroup": &AWSDAXParameterGroup{}, + "AWS::DAX::SubnetGroup": &AWSDAXSubnetGroup{}, + "AWS::DLM::LifecyclePolicy": &AWSDLMLifecyclePolicy{}, + "AWS::DMS::Certificate": &AWSDMSCertificate{}, + "AWS::DMS::Endpoint": &AWSDMSEndpoint{}, + "AWS::DMS::EventSubscription": &AWSDMSEventSubscription{}, + "AWS::DMS::ReplicationInstance": &AWSDMSReplicationInstance{}, + "AWS::DMS::ReplicationSubnetGroup": &AWSDMSReplicationSubnetGroup{}, + "AWS::DMS::ReplicationTask": &AWSDMSReplicationTask{}, + "AWS::DataPipeline::Pipeline": &AWSDataPipelinePipeline{}, + "AWS::DirectoryService::MicrosoftAD": &AWSDirectoryServiceMicrosoftAD{}, + "AWS::DirectoryService::SimpleAD": &AWSDirectoryServiceSimpleAD{}, + "AWS::DocDB::DBCluster": &AWSDocDBDBCluster{}, + "AWS::DocDB::DBClusterParameterGroup": &AWSDocDBDBClusterParameterGroup{}, + "AWS::DocDB::DBInstance": &AWSDocDBDBInstance{}, + "AWS::DocDB::DBSubnetGroup": &AWSDocDBDBSubnetGroup{}, + "AWS::DynamoDB::Table": &AWSDynamoDBTable{}, + "AWS::EC2::CustomerGateway": &AWSEC2CustomerGateway{}, + "AWS::EC2::DHCPOptions": &AWSEC2DHCPOptions{}, + "AWS::EC2::EC2Fleet": &AWSEC2EC2Fleet{}, + "AWS::EC2::EIP": &AWSEC2EIP{}, + "AWS::EC2::EIPAssociation": &AWSEC2EIPAssociation{}, + "AWS::EC2::EgressOnlyInternetGateway": &AWSEC2EgressOnlyInternetGateway{}, + "AWS::EC2::FlowLog": &AWSEC2FlowLog{}, + "AWS::EC2::Host": &AWSEC2Host{}, + "AWS::EC2::Instance": &AWSEC2Instance{}, + "AWS::EC2::InternetGateway": &AWSEC2InternetGateway{}, + "AWS::EC2::LaunchTemplate": &AWSEC2LaunchTemplate{}, + "AWS::EC2::NatGateway": &AWSEC2NatGateway{}, + "AWS::EC2::NetworkAcl": &AWSEC2NetworkAcl{}, + "AWS::EC2::NetworkAclEntry": &AWSEC2NetworkAclEntry{}, + "AWS::EC2::NetworkInterface": &AWSEC2NetworkInterface{}, + "AWS::EC2::NetworkInterfaceAttachment": &AWSEC2NetworkInterfaceAttachment{}, + "AWS::EC2::NetworkInterfacePermission": &AWSEC2NetworkInterfacePermission{}, + "AWS::EC2::PlacementGroup": &AWSEC2PlacementGroup{}, + "AWS::EC2::Route": &AWSEC2Route{}, + "AWS::EC2::RouteTable": &AWSEC2RouteTable{}, + "AWS::EC2::SecurityGroup": &AWSEC2SecurityGroup{}, + "AWS::EC2::SecurityGroupEgress": &AWSEC2SecurityGroupEgress{}, + "AWS::EC2::SecurityGroupIngress": &AWSEC2SecurityGroupIngress{}, + "AWS::EC2::SpotFleet": &AWSEC2SpotFleet{}, + "AWS::EC2::Subnet": &AWSEC2Subnet{}, + "AWS::EC2::SubnetCidrBlock": &AWSEC2SubnetCidrBlock{}, + "AWS::EC2::SubnetNetworkAclAssociation": &AWSEC2SubnetNetworkAclAssociation{}, + "AWS::EC2::SubnetRouteTableAssociation": &AWSEC2SubnetRouteTableAssociation{}, + "AWS::EC2::TransitGateway": &AWSEC2TransitGateway{}, + "AWS::EC2::TransitGatewayAttachment": &AWSEC2TransitGatewayAttachment{}, + "AWS::EC2::TransitGatewayRoute": &AWSEC2TransitGatewayRoute{}, + "AWS::EC2::TransitGatewayRouteTable": &AWSEC2TransitGatewayRouteTable{}, + "AWS::EC2::TransitGatewayRouteTableAssociation": &AWSEC2TransitGatewayRouteTableAssociation{}, + "AWS::EC2::TransitGatewayRouteTablePropagation": &AWSEC2TransitGatewayRouteTablePropagation{}, + "AWS::EC2::TrunkInterfaceAssociation": &AWSEC2TrunkInterfaceAssociation{}, + "AWS::EC2::VPC": &AWSEC2VPC{}, + "AWS::EC2::VPCCidrBlock": &AWSEC2VPCCidrBlock{}, + "AWS::EC2::VPCDHCPOptionsAssociation": &AWSEC2VPCDHCPOptionsAssociation{}, + "AWS::EC2::VPCEndpoint": &AWSEC2VPCEndpoint{}, + "AWS::EC2::VPCEndpointConnectionNotification": &AWSEC2VPCEndpointConnectionNotification{}, + "AWS::EC2::VPCEndpointServicePermissions": &AWSEC2VPCEndpointServicePermissions{}, + "AWS::EC2::VPCGatewayAttachment": &AWSEC2VPCGatewayAttachment{}, + "AWS::EC2::VPCPeeringConnection": &AWSEC2VPCPeeringConnection{}, + "AWS::EC2::VPNConnection": &AWSEC2VPNConnection{}, + "AWS::EC2::VPNConnectionRoute": &AWSEC2VPNConnectionRoute{}, + "AWS::EC2::VPNGateway": &AWSEC2VPNGateway{}, + "AWS::EC2::VPNGatewayRoutePropagation": &AWSEC2VPNGatewayRoutePropagation{}, + "AWS::EC2::Volume": &AWSEC2Volume{}, + "AWS::EC2::VolumeAttachment": &AWSEC2VolumeAttachment{}, + "AWS::ECR::Repository": &AWSECRRepository{}, + "AWS::ECS::Cluster": &AWSECSCluster{}, + "AWS::ECS::Service": &AWSECSService{}, + "AWS::ECS::TaskDefinition": &AWSECSTaskDefinition{}, + "AWS::EFS::FileSystem": &AWSEFSFileSystem{}, + "AWS::EFS::MountTarget": &AWSEFSMountTarget{}, + "AWS::EKS::Cluster": &AWSEKSCluster{}, + "AWS::EMR::Cluster": &AWSEMRCluster{}, + "AWS::EMR::InstanceFleetConfig": &AWSEMRInstanceFleetConfig{}, + "AWS::EMR::InstanceGroupConfig": &AWSEMRInstanceGroupConfig{}, + "AWS::EMR::SecurityConfiguration": &AWSEMRSecurityConfiguration{}, + "AWS::EMR::Step": &AWSEMRStep{}, + "AWS::ElastiCache::CacheCluster": &AWSElastiCacheCacheCluster{}, + "AWS::ElastiCache::ParameterGroup": &AWSElastiCacheParameterGroup{}, + "AWS::ElastiCache::ReplicationGroup": &AWSElastiCacheReplicationGroup{}, + "AWS::ElastiCache::SecurityGroup": &AWSElastiCacheSecurityGroup{}, + "AWS::ElastiCache::SecurityGroupIngress": &AWSElastiCacheSecurityGroupIngress{}, + "AWS::ElastiCache::SubnetGroup": &AWSElastiCacheSubnetGroup{}, + "AWS::ElasticBeanstalk::Application": &AWSElasticBeanstalkApplication{}, + "AWS::ElasticBeanstalk::ApplicationVersion": &AWSElasticBeanstalkApplicationVersion{}, + "AWS::ElasticBeanstalk::ConfigurationTemplate": &AWSElasticBeanstalkConfigurationTemplate{}, + "AWS::ElasticBeanstalk::Environment": &AWSElasticBeanstalkEnvironment{}, + "AWS::ElasticLoadBalancing::LoadBalancer": &AWSElasticLoadBalancingLoadBalancer{}, + "AWS::ElasticLoadBalancingV2::Listener": &AWSElasticLoadBalancingV2Listener{}, + "AWS::ElasticLoadBalancingV2::ListenerCertificate": &AWSElasticLoadBalancingV2ListenerCertificate{}, + "AWS::ElasticLoadBalancingV2::ListenerRule": &AWSElasticLoadBalancingV2ListenerRule{}, + "AWS::ElasticLoadBalancingV2::LoadBalancer": &AWSElasticLoadBalancingV2LoadBalancer{}, + "AWS::ElasticLoadBalancingV2::TargetGroup": &AWSElasticLoadBalancingV2TargetGroup{}, + "AWS::Elasticsearch::Domain": &AWSElasticsearchDomain{}, + "AWS::Events::EventBusPolicy": &AWSEventsEventBusPolicy{}, + "AWS::Events::Rule": &AWSEventsRule{}, + "AWS::FSx::FileSystem": &AWSFSxFileSystem{}, + "AWS::GameLift::Alias": &AWSGameLiftAlias{}, + "AWS::GameLift::Build": &AWSGameLiftBuild{}, + "AWS::GameLift::Fleet": &AWSGameLiftFleet{}, + "AWS::Glue::Classifier": &AWSGlueClassifier{}, + "AWS::Glue::Connection": &AWSGlueConnection{}, + "AWS::Glue::Crawler": &AWSGlueCrawler{}, + "AWS::Glue::Database": &AWSGlueDatabase{}, + "AWS::Glue::DevEndpoint": &AWSGlueDevEndpoint{}, + "AWS::Glue::Job": &AWSGlueJob{}, + "AWS::Glue::Partition": &AWSGluePartition{}, + "AWS::Glue::Table": &AWSGlueTable{}, + "AWS::Glue::Trigger": &AWSGlueTrigger{}, + "AWS::GuardDuty::Detector": &AWSGuardDutyDetector{}, + "AWS::GuardDuty::Filter": &AWSGuardDutyFilter{}, + "AWS::GuardDuty::IPSet": &AWSGuardDutyIPSet{}, + "AWS::GuardDuty::Master": &AWSGuardDutyMaster{}, + "AWS::GuardDuty::Member": &AWSGuardDutyMember{}, + "AWS::GuardDuty::ThreatIntelSet": &AWSGuardDutyThreatIntelSet{}, + "AWS::IAM::AccessKey": &AWSIAMAccessKey{}, + "AWS::IAM::Group": &AWSIAMGroup{}, + "AWS::IAM::InstanceProfile": &AWSIAMInstanceProfile{}, + "AWS::IAM::ManagedPolicy": &AWSIAMManagedPolicy{}, + "AWS::IAM::Policy": &AWSIAMPolicy{}, + "AWS::IAM::Role": &AWSIAMRole{}, + "AWS::IAM::ServiceLinkedRole": &AWSIAMServiceLinkedRole{}, + "AWS::IAM::User": &AWSIAMUser{}, + "AWS::IAM::UserToGroupAddition": &AWSIAMUserToGroupAddition{}, + "AWS::Inspector::AssessmentTarget": &AWSInspectorAssessmentTarget{}, + "AWS::Inspector::AssessmentTemplate": &AWSInspectorAssessmentTemplate{}, + "AWS::Inspector::ResourceGroup": &AWSInspectorResourceGroup{}, + "AWS::IoT1Click::Device": &AWSIoT1ClickDevice{}, + "AWS::IoT1Click::Placement": &AWSIoT1ClickPlacement{}, + "AWS::IoT1Click::Project": &AWSIoT1ClickProject{}, + "AWS::IoT::Certificate": &AWSIoTCertificate{}, + "AWS::IoT::Policy": &AWSIoTPolicy{}, + "AWS::IoT::PolicyPrincipalAttachment": &AWSIoTPolicyPrincipalAttachment{}, + "AWS::IoT::Thing": &AWSIoTThing{}, + "AWS::IoT::ThingPrincipalAttachment": &AWSIoTThingPrincipalAttachment{}, + "AWS::IoT::TopicRule": &AWSIoTTopicRule{}, + "AWS::IoTAnalytics::Channel": &AWSIoTAnalyticsChannel{}, + "AWS::IoTAnalytics::Dataset": &AWSIoTAnalyticsDataset{}, + "AWS::IoTAnalytics::Datastore": &AWSIoTAnalyticsDatastore{}, + "AWS::IoTAnalytics::Pipeline": &AWSIoTAnalyticsPipeline{}, + "AWS::KMS::Alias": &AWSKMSAlias{}, + "AWS::KMS::Key": &AWSKMSKey{}, + "AWS::Kinesis::Stream": &AWSKinesisStream{}, + "AWS::Kinesis::StreamConsumer": &AWSKinesisStreamConsumer{}, + "AWS::KinesisAnalytics::Application": &AWSKinesisAnalyticsApplication{}, + "AWS::KinesisAnalytics::ApplicationOutput": &AWSKinesisAnalyticsApplicationOutput{}, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource": &AWSKinesisAnalyticsApplicationReferenceDataSource{}, + "AWS::KinesisAnalyticsV2::Application": &AWSKinesisAnalyticsV2Application{}, + "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption": &AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption{}, + "AWS::KinesisAnalyticsV2::ApplicationOutput": &AWSKinesisAnalyticsV2ApplicationOutput{}, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource": &AWSKinesisAnalyticsV2ApplicationReferenceDataSource{}, + "AWS::KinesisFirehose::DeliveryStream": &AWSKinesisFirehoseDeliveryStream{}, + "AWS::Lambda::Alias": &AWSLambdaAlias{}, + "AWS::Lambda::EventSourceMapping": &AWSLambdaEventSourceMapping{}, + "AWS::Lambda::Function": &AWSLambdaFunction{}, + "AWS::Lambda::LayerVersion": &AWSLambdaLayerVersion{}, + "AWS::Lambda::LayerVersionPermission": &AWSLambdaLayerVersionPermission{}, + "AWS::Lambda::Permission": &AWSLambdaPermission{}, + "AWS::Lambda::Version": &AWSLambdaVersion{}, + "AWS::Logs::Destination": &AWSLogsDestination{}, + "AWS::Logs::LogGroup": &AWSLogsLogGroup{}, + "AWS::Logs::LogStream": &AWSLogsLogStream{}, + "AWS::Logs::MetricFilter": &AWSLogsMetricFilter{}, + "AWS::Logs::SubscriptionFilter": &AWSLogsSubscriptionFilter{}, + "AWS::Neptune::DBCluster": &AWSNeptuneDBCluster{}, + "AWS::Neptune::DBClusterParameterGroup": &AWSNeptuneDBClusterParameterGroup{}, + "AWS::Neptune::DBInstance": &AWSNeptuneDBInstance{}, + "AWS::Neptune::DBParameterGroup": &AWSNeptuneDBParameterGroup{}, + "AWS::Neptune::DBSubnetGroup": &AWSNeptuneDBSubnetGroup{}, + "AWS::OpsWorks::App": &AWSOpsWorksApp{}, + "AWS::OpsWorks::ElasticLoadBalancerAttachment": &AWSOpsWorksElasticLoadBalancerAttachment{}, + "AWS::OpsWorks::Instance": &AWSOpsWorksInstance{}, + "AWS::OpsWorks::Layer": &AWSOpsWorksLayer{}, + "AWS::OpsWorks::Stack": &AWSOpsWorksStack{}, + "AWS::OpsWorks::UserProfile": &AWSOpsWorksUserProfile{}, + "AWS::OpsWorks::Volume": &AWSOpsWorksVolume{}, + "AWS::OpsWorksCM::Server": &AWSOpsWorksCMServer{}, + "AWS::RAM::ResourceShare": &AWSRAMResourceShare{}, + "AWS::RDS::DBCluster": &AWSRDSDBCluster{}, + "AWS::RDS::DBClusterParameterGroup": &AWSRDSDBClusterParameterGroup{}, + "AWS::RDS::DBInstance": &AWSRDSDBInstance{}, + "AWS::RDS::DBParameterGroup": &AWSRDSDBParameterGroup{}, + "AWS::RDS::DBSecurityGroup": &AWSRDSDBSecurityGroup{}, + "AWS::RDS::DBSecurityGroupIngress": &AWSRDSDBSecurityGroupIngress{}, + "AWS::RDS::DBSubnetGroup": &AWSRDSDBSubnetGroup{}, + "AWS::RDS::EventSubscription": &AWSRDSEventSubscription{}, + "AWS::RDS::OptionGroup": &AWSRDSOptionGroup{}, + "AWS::Redshift::Cluster": &AWSRedshiftCluster{}, + "AWS::Redshift::ClusterParameterGroup": &AWSRedshiftClusterParameterGroup{}, + "AWS::Redshift::ClusterSecurityGroup": &AWSRedshiftClusterSecurityGroup{}, + "AWS::Redshift::ClusterSecurityGroupIngress": &AWSRedshiftClusterSecurityGroupIngress{}, + "AWS::Redshift::ClusterSubnetGroup": &AWSRedshiftClusterSubnetGroup{}, + "AWS::RoboMaker::Fleet": &AWSRoboMakerFleet{}, + "AWS::RoboMaker::Robot": &AWSRoboMakerRobot{}, + "AWS::RoboMaker::RobotApplication": &AWSRoboMakerRobotApplication{}, + "AWS::RoboMaker::RobotApplicationVersion": &AWSRoboMakerRobotApplicationVersion{}, + "AWS::RoboMaker::SimulationApplication": &AWSRoboMakerSimulationApplication{}, + "AWS::RoboMaker::SimulationApplicationVersion": &AWSRoboMakerSimulationApplicationVersion{}, + "AWS::Route53::HealthCheck": &AWSRoute53HealthCheck{}, + "AWS::Route53::HostedZone": &AWSRoute53HostedZone{}, + "AWS::Route53::RecordSet": &AWSRoute53RecordSet{}, + "AWS::Route53::RecordSetGroup": &AWSRoute53RecordSetGroup{}, + "AWS::Route53Resolver::ResolverEndpoint": &AWSRoute53ResolverResolverEndpoint{}, + "AWS::Route53Resolver::ResolverRule": &AWSRoute53ResolverResolverRule{}, + "AWS::Route53Resolver::ResolverRuleAssociation": &AWSRoute53ResolverResolverRuleAssociation{}, + "AWS::S3::Bucket": &AWSS3Bucket{}, + "AWS::S3::BucketPolicy": &AWSS3BucketPolicy{}, + "AWS::SDB::Domain": &AWSSDBDomain{}, + "AWS::SES::ConfigurationSet": &AWSSESConfigurationSet{}, + "AWS::SES::ConfigurationSetEventDestination": &AWSSESConfigurationSetEventDestination{}, + "AWS::SES::ReceiptFilter": &AWSSESReceiptFilter{}, + "AWS::SES::ReceiptRule": &AWSSESReceiptRule{}, + "AWS::SES::ReceiptRuleSet": &AWSSESReceiptRuleSet{}, + "AWS::SES::Template": &AWSSESTemplate{}, + "AWS::SNS::Subscription": &AWSSNSSubscription{}, + "AWS::SNS::Topic": &AWSSNSTopic{}, + "AWS::SNS::TopicPolicy": &AWSSNSTopicPolicy{}, + "AWS::SQS::Queue": &AWSSQSQueue{}, + "AWS::SQS::QueuePolicy": &AWSSQSQueuePolicy{}, + "AWS::SSM::Association": &AWSSSMAssociation{}, + "AWS::SSM::Document": &AWSSSMDocument{}, + "AWS::SSM::MaintenanceWindow": &AWSSSMMaintenanceWindow{}, + "AWS::SSM::MaintenanceWindowTask": &AWSSSMMaintenanceWindowTask{}, + "AWS::SSM::Parameter": &AWSSSMParameter{}, + "AWS::SSM::PatchBaseline": &AWSSSMPatchBaseline{}, + "AWS::SSM::ResourceDataSync": &AWSSSMResourceDataSync{}, + "AWS::SageMaker::Endpoint": &AWSSageMakerEndpoint{}, + "AWS::SageMaker::EndpointConfig": &AWSSageMakerEndpointConfig{}, + "AWS::SageMaker::Model": &AWSSageMakerModel{}, + "AWS::SageMaker::NotebookInstance": &AWSSageMakerNotebookInstance{}, + "AWS::SageMaker::NotebookInstanceLifecycleConfig": &AWSSageMakerNotebookInstanceLifecycleConfig{}, + "AWS::SecretsManager::ResourcePolicy": &AWSSecretsManagerResourcePolicy{}, + "AWS::SecretsManager::RotationSchedule": &AWSSecretsManagerRotationSchedule{}, + "AWS::SecretsManager::Secret": &AWSSecretsManagerSecret{}, + "AWS::SecretsManager::SecretTargetAttachment": &AWSSecretsManagerSecretTargetAttachment{}, + "AWS::Serverless::Api": &AWSServerlessApi{}, + "AWS::Serverless::Application": &AWSServerlessApplication{}, + "AWS::Serverless::Function": &AWSServerlessFunction{}, + "AWS::Serverless::LayerVersion": &AWSServerlessLayerVersion{}, + "AWS::Serverless::SimpleTable": &AWSServerlessSimpleTable{}, + "AWS::ServiceCatalog::AcceptedPortfolioShare": &AWSServiceCatalogAcceptedPortfolioShare{}, + "AWS::ServiceCatalog::CloudFormationProduct": &AWSServiceCatalogCloudFormationProduct{}, + "AWS::ServiceCatalog::CloudFormationProvisionedProduct": &AWSServiceCatalogCloudFormationProvisionedProduct{}, + "AWS::ServiceCatalog::LaunchNotificationConstraint": &AWSServiceCatalogLaunchNotificationConstraint{}, + "AWS::ServiceCatalog::LaunchRoleConstraint": &AWSServiceCatalogLaunchRoleConstraint{}, + "AWS::ServiceCatalog::LaunchTemplateConstraint": &AWSServiceCatalogLaunchTemplateConstraint{}, + "AWS::ServiceCatalog::Portfolio": &AWSServiceCatalogPortfolio{}, + "AWS::ServiceCatalog::PortfolioPrincipalAssociation": &AWSServiceCatalogPortfolioPrincipalAssociation{}, + "AWS::ServiceCatalog::PortfolioProductAssociation": &AWSServiceCatalogPortfolioProductAssociation{}, + "AWS::ServiceCatalog::PortfolioShare": &AWSServiceCatalogPortfolioShare{}, + "AWS::ServiceCatalog::TagOption": &AWSServiceCatalogTagOption{}, + "AWS::ServiceCatalog::TagOptionAssociation": &AWSServiceCatalogTagOptionAssociation{}, + "AWS::ServiceDiscovery::HttpNamespace": &AWSServiceDiscoveryHttpNamespace{}, + "AWS::ServiceDiscovery::Instance": &AWSServiceDiscoveryInstance{}, + "AWS::ServiceDiscovery::PrivateDnsNamespace": &AWSServiceDiscoveryPrivateDnsNamespace{}, + "AWS::ServiceDiscovery::PublicDnsNamespace": &AWSServiceDiscoveryPublicDnsNamespace{}, + "AWS::ServiceDiscovery::Service": &AWSServiceDiscoveryService{}, + "AWS::StepFunctions::Activity": &AWSStepFunctionsActivity{}, + "AWS::StepFunctions::StateMachine": &AWSStepFunctionsStateMachine{}, + "AWS::WAF::ByteMatchSet": &AWSWAFByteMatchSet{}, + "AWS::WAF::IPSet": &AWSWAFIPSet{}, + "AWS::WAF::Rule": &AWSWAFRule{}, + "AWS::WAF::SizeConstraintSet": &AWSWAFSizeConstraintSet{}, + "AWS::WAF::SqlInjectionMatchSet": &AWSWAFSqlInjectionMatchSet{}, + "AWS::WAF::WebACL": &AWSWAFWebACL{}, + "AWS::WAF::XssMatchSet": &AWSWAFXssMatchSet{}, + "AWS::WAFRegional::ByteMatchSet": &AWSWAFRegionalByteMatchSet{}, + "AWS::WAFRegional::IPSet": &AWSWAFRegionalIPSet{}, + "AWS::WAFRegional::Rule": &AWSWAFRegionalRule{}, + "AWS::WAFRegional::SizeConstraintSet": &AWSWAFRegionalSizeConstraintSet{}, + "AWS::WAFRegional::SqlInjectionMatchSet": &AWSWAFRegionalSqlInjectionMatchSet{}, + "AWS::WAFRegional::WebACL": &AWSWAFRegionalWebACL{}, + "AWS::WAFRegional::WebACLAssociation": &AWSWAFRegionalWebACLAssociation{}, + "AWS::WAFRegional::XssMatchSet": &AWSWAFRegionalXssMatchSet{}, + "AWS::WorkSpaces::Workspace": &AWSWorkSpacesWorkspace{}, + "Alexa::ASK::Skill": &AlexaASKSkill{}, + } +} + +// GetAllAWSAmazonMQBrokerResources retrieves all AWSAmazonMQBroker items from an AWS CloudFormation template +func (t *Template) GetAllAWSAmazonMQBrokerResources() map[string]*AWSAmazonMQBroker { + results := map[string]*AWSAmazonMQBroker{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAmazonMQBroker: + results[name] = resource + } + } + return results +} + +// GetAWSAmazonMQBrokerWithName retrieves all AWSAmazonMQBroker items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAmazonMQBrokerWithName(name string) (*AWSAmazonMQBroker, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAmazonMQBroker: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAmazonMQBroker not found", name) +} + +// GetAllAWSAmazonMQConfigurationResources retrieves all AWSAmazonMQConfiguration items from an AWS CloudFormation template +func (t *Template) GetAllAWSAmazonMQConfigurationResources() map[string]*AWSAmazonMQConfiguration { + results := map[string]*AWSAmazonMQConfiguration{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAmazonMQConfiguration: + results[name] = resource + } + } + return results +} + +// GetAWSAmazonMQConfigurationWithName retrieves all AWSAmazonMQConfiguration items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAmazonMQConfigurationWithName(name string) (*AWSAmazonMQConfiguration, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAmazonMQConfiguration: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAmazonMQConfiguration not found", name) +} + +// GetAllAWSAmazonMQConfigurationAssociationResources retrieves all AWSAmazonMQConfigurationAssociation items from an AWS CloudFormation template +func (t *Template) GetAllAWSAmazonMQConfigurationAssociationResources() map[string]*AWSAmazonMQConfigurationAssociation { + results := map[string]*AWSAmazonMQConfigurationAssociation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAmazonMQConfigurationAssociation: + results[name] = resource + } + } + return results +} + +// GetAWSAmazonMQConfigurationAssociationWithName retrieves all AWSAmazonMQConfigurationAssociation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAmazonMQConfigurationAssociationWithName(name string) (*AWSAmazonMQConfigurationAssociation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAmazonMQConfigurationAssociation: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAmazonMQConfigurationAssociation not found", name) +} + +// GetAllAWSApiGatewayAccountResources retrieves all AWSApiGatewayAccount items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayAccountResources() map[string]*AWSApiGatewayAccount { + results := map[string]*AWSApiGatewayAccount{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayAccount: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayAccountWithName retrieves all AWSApiGatewayAccount items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayAccountWithName(name string) (*AWSApiGatewayAccount, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayAccount: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayAccount not found", name) +} + +// GetAllAWSApiGatewayApiKeyResources retrieves all AWSApiGatewayApiKey items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayApiKeyResources() map[string]*AWSApiGatewayApiKey { + results := map[string]*AWSApiGatewayApiKey{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayApiKey: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayApiKeyWithName retrieves all AWSApiGatewayApiKey items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayApiKeyWithName(name string) (*AWSApiGatewayApiKey, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayApiKey: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayApiKey not found", name) +} + +// GetAllAWSApiGatewayAuthorizerResources retrieves all AWSApiGatewayAuthorizer items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayAuthorizerResources() map[string]*AWSApiGatewayAuthorizer { + results := map[string]*AWSApiGatewayAuthorizer{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayAuthorizer: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayAuthorizerWithName retrieves all AWSApiGatewayAuthorizer items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayAuthorizerWithName(name string) (*AWSApiGatewayAuthorizer, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayAuthorizer: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayAuthorizer not found", name) +} + +// GetAllAWSApiGatewayBasePathMappingResources retrieves all AWSApiGatewayBasePathMapping items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayBasePathMappingResources() map[string]*AWSApiGatewayBasePathMapping { + results := map[string]*AWSApiGatewayBasePathMapping{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayBasePathMapping: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayBasePathMappingWithName retrieves all AWSApiGatewayBasePathMapping items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayBasePathMappingWithName(name string) (*AWSApiGatewayBasePathMapping, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayBasePathMapping: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayBasePathMapping not found", name) +} + +// GetAllAWSApiGatewayClientCertificateResources retrieves all AWSApiGatewayClientCertificate items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayClientCertificateResources() map[string]*AWSApiGatewayClientCertificate { + results := map[string]*AWSApiGatewayClientCertificate{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayClientCertificate: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayClientCertificateWithName retrieves all AWSApiGatewayClientCertificate items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayClientCertificateWithName(name string) (*AWSApiGatewayClientCertificate, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayClientCertificate: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayClientCertificate not found", name) +} + +// GetAllAWSApiGatewayDeploymentResources retrieves all AWSApiGatewayDeployment items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayDeploymentResources() map[string]*AWSApiGatewayDeployment { + results := map[string]*AWSApiGatewayDeployment{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayDeployment: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayDeploymentWithName retrieves all AWSApiGatewayDeployment items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayDeploymentWithName(name string) (*AWSApiGatewayDeployment, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayDeployment: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayDeployment not found", name) +} + +// GetAllAWSApiGatewayDocumentationPartResources retrieves all AWSApiGatewayDocumentationPart items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayDocumentationPartResources() map[string]*AWSApiGatewayDocumentationPart { + results := map[string]*AWSApiGatewayDocumentationPart{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayDocumentationPart: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayDocumentationPartWithName retrieves all AWSApiGatewayDocumentationPart items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayDocumentationPartWithName(name string) (*AWSApiGatewayDocumentationPart, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayDocumentationPart: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayDocumentationPart not found", name) +} + +// GetAllAWSApiGatewayDocumentationVersionResources retrieves all AWSApiGatewayDocumentationVersion items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayDocumentationVersionResources() map[string]*AWSApiGatewayDocumentationVersion { + results := map[string]*AWSApiGatewayDocumentationVersion{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayDocumentationVersion: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayDocumentationVersionWithName retrieves all AWSApiGatewayDocumentationVersion items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayDocumentationVersionWithName(name string) (*AWSApiGatewayDocumentationVersion, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayDocumentationVersion: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayDocumentationVersion not found", name) +} + +// GetAllAWSApiGatewayDomainNameResources retrieves all AWSApiGatewayDomainName items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayDomainNameResources() map[string]*AWSApiGatewayDomainName { + results := map[string]*AWSApiGatewayDomainName{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayDomainName: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayDomainNameWithName retrieves all AWSApiGatewayDomainName items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayDomainNameWithName(name string) (*AWSApiGatewayDomainName, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayDomainName: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayDomainName not found", name) +} + +// GetAllAWSApiGatewayGatewayResponseResources retrieves all AWSApiGatewayGatewayResponse items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayGatewayResponseResources() map[string]*AWSApiGatewayGatewayResponse { + results := map[string]*AWSApiGatewayGatewayResponse{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayGatewayResponse: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayGatewayResponseWithName retrieves all AWSApiGatewayGatewayResponse items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayGatewayResponseWithName(name string) (*AWSApiGatewayGatewayResponse, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayGatewayResponse: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayGatewayResponse not found", name) +} + +// GetAllAWSApiGatewayMethodResources retrieves all AWSApiGatewayMethod items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayMethodResources() map[string]*AWSApiGatewayMethod { + results := map[string]*AWSApiGatewayMethod{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayMethod: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayMethodWithName retrieves all AWSApiGatewayMethod items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayMethodWithName(name string) (*AWSApiGatewayMethod, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayMethod: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayMethod not found", name) +} + +// GetAllAWSApiGatewayModelResources retrieves all AWSApiGatewayModel items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayModelResources() map[string]*AWSApiGatewayModel { + results := map[string]*AWSApiGatewayModel{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayModel: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayModelWithName retrieves all AWSApiGatewayModel items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayModelWithName(name string) (*AWSApiGatewayModel, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayModel: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayModel not found", name) +} + +// GetAllAWSApiGatewayRequestValidatorResources retrieves all AWSApiGatewayRequestValidator items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayRequestValidatorResources() map[string]*AWSApiGatewayRequestValidator { + results := map[string]*AWSApiGatewayRequestValidator{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayRequestValidator: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayRequestValidatorWithName retrieves all AWSApiGatewayRequestValidator items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayRequestValidatorWithName(name string) (*AWSApiGatewayRequestValidator, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayRequestValidator: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayRequestValidator not found", name) +} + +// GetAllAWSApiGatewayResourceResources retrieves all AWSApiGatewayResource items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayResourceResources() map[string]*AWSApiGatewayResource { + results := map[string]*AWSApiGatewayResource{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayResource: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayResourceWithName retrieves all AWSApiGatewayResource items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayResourceWithName(name string) (*AWSApiGatewayResource, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayResource: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayResource not found", name) +} + +// GetAllAWSApiGatewayRestApiResources retrieves all AWSApiGatewayRestApi items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayRestApiResources() map[string]*AWSApiGatewayRestApi { + results := map[string]*AWSApiGatewayRestApi{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayRestApi: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayRestApiWithName retrieves all AWSApiGatewayRestApi items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayRestApiWithName(name string) (*AWSApiGatewayRestApi, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayRestApi: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayRestApi not found", name) +} + +// GetAllAWSApiGatewayStageResources retrieves all AWSApiGatewayStage items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayStageResources() map[string]*AWSApiGatewayStage { + results := map[string]*AWSApiGatewayStage{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayStage: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayStageWithName retrieves all AWSApiGatewayStage items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayStageWithName(name string) (*AWSApiGatewayStage, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayStage: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayStage not found", name) +} + +// GetAllAWSApiGatewayUsagePlanResources retrieves all AWSApiGatewayUsagePlan items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayUsagePlanResources() map[string]*AWSApiGatewayUsagePlan { + results := map[string]*AWSApiGatewayUsagePlan{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayUsagePlan: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayUsagePlanWithName retrieves all AWSApiGatewayUsagePlan items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayUsagePlanWithName(name string) (*AWSApiGatewayUsagePlan, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayUsagePlan: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayUsagePlan not found", name) +} + +// GetAllAWSApiGatewayUsagePlanKeyResources retrieves all AWSApiGatewayUsagePlanKey items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayUsagePlanKeyResources() map[string]*AWSApiGatewayUsagePlanKey { + results := map[string]*AWSApiGatewayUsagePlanKey{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayUsagePlanKey: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayUsagePlanKeyWithName retrieves all AWSApiGatewayUsagePlanKey items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayUsagePlanKeyWithName(name string) (*AWSApiGatewayUsagePlanKey, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayUsagePlanKey: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayUsagePlanKey not found", name) +} + +// GetAllAWSApiGatewayVpcLinkResources retrieves all AWSApiGatewayVpcLink items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayVpcLinkResources() map[string]*AWSApiGatewayVpcLink { + results := map[string]*AWSApiGatewayVpcLink{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayVpcLink: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayVpcLinkWithName retrieves all AWSApiGatewayVpcLink items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayVpcLinkWithName(name string) (*AWSApiGatewayVpcLink, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayVpcLink: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayVpcLink not found", name) +} + +// GetAllAWSApiGatewayV2ApiResources retrieves all AWSApiGatewayV2Api items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayV2ApiResources() map[string]*AWSApiGatewayV2Api { + results := map[string]*AWSApiGatewayV2Api{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Api: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayV2ApiWithName retrieves all AWSApiGatewayV2Api items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayV2ApiWithName(name string) (*AWSApiGatewayV2Api, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Api: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayV2Api not found", name) +} + +// GetAllAWSApiGatewayV2AuthorizerResources retrieves all AWSApiGatewayV2Authorizer items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayV2AuthorizerResources() map[string]*AWSApiGatewayV2Authorizer { + results := map[string]*AWSApiGatewayV2Authorizer{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Authorizer: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayV2AuthorizerWithName retrieves all AWSApiGatewayV2Authorizer items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayV2AuthorizerWithName(name string) (*AWSApiGatewayV2Authorizer, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Authorizer: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayV2Authorizer not found", name) +} + +// GetAllAWSApiGatewayV2DeploymentResources retrieves all AWSApiGatewayV2Deployment items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayV2DeploymentResources() map[string]*AWSApiGatewayV2Deployment { + results := map[string]*AWSApiGatewayV2Deployment{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Deployment: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayV2DeploymentWithName retrieves all AWSApiGatewayV2Deployment items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayV2DeploymentWithName(name string) (*AWSApiGatewayV2Deployment, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Deployment: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayV2Deployment not found", name) +} + +// GetAllAWSApiGatewayV2IntegrationResources retrieves all AWSApiGatewayV2Integration items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayV2IntegrationResources() map[string]*AWSApiGatewayV2Integration { + results := map[string]*AWSApiGatewayV2Integration{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Integration: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayV2IntegrationWithName retrieves all AWSApiGatewayV2Integration items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayV2IntegrationWithName(name string) (*AWSApiGatewayV2Integration, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Integration: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayV2Integration not found", name) +} + +// GetAllAWSApiGatewayV2IntegrationResponseResources retrieves all AWSApiGatewayV2IntegrationResponse items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayV2IntegrationResponseResources() map[string]*AWSApiGatewayV2IntegrationResponse { + results := map[string]*AWSApiGatewayV2IntegrationResponse{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayV2IntegrationResponse: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayV2IntegrationResponseWithName retrieves all AWSApiGatewayV2IntegrationResponse items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayV2IntegrationResponseWithName(name string) (*AWSApiGatewayV2IntegrationResponse, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayV2IntegrationResponse: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayV2IntegrationResponse not found", name) +} + +// GetAllAWSApiGatewayV2ModelResources retrieves all AWSApiGatewayV2Model items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayV2ModelResources() map[string]*AWSApiGatewayV2Model { + results := map[string]*AWSApiGatewayV2Model{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Model: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayV2ModelWithName retrieves all AWSApiGatewayV2Model items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayV2ModelWithName(name string) (*AWSApiGatewayV2Model, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Model: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayV2Model not found", name) +} + +// GetAllAWSApiGatewayV2RouteResources retrieves all AWSApiGatewayV2Route items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayV2RouteResources() map[string]*AWSApiGatewayV2Route { + results := map[string]*AWSApiGatewayV2Route{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Route: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayV2RouteWithName retrieves all AWSApiGatewayV2Route items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayV2RouteWithName(name string) (*AWSApiGatewayV2Route, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Route: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayV2Route not found", name) +} + +// GetAllAWSApiGatewayV2RouteResponseResources retrieves all AWSApiGatewayV2RouteResponse items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayV2RouteResponseResources() map[string]*AWSApiGatewayV2RouteResponse { + results := map[string]*AWSApiGatewayV2RouteResponse{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayV2RouteResponse: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayV2RouteResponseWithName retrieves all AWSApiGatewayV2RouteResponse items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayV2RouteResponseWithName(name string) (*AWSApiGatewayV2RouteResponse, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayV2RouteResponse: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayV2RouteResponse not found", name) +} + +// GetAllAWSApiGatewayV2StageResources retrieves all AWSApiGatewayV2Stage items from an AWS CloudFormation template +func (t *Template) GetAllAWSApiGatewayV2StageResources() map[string]*AWSApiGatewayV2Stage { + results := map[string]*AWSApiGatewayV2Stage{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Stage: + results[name] = resource + } + } + return results +} + +// GetAWSApiGatewayV2StageWithName retrieves all AWSApiGatewayV2Stage items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApiGatewayV2StageWithName(name string) (*AWSApiGatewayV2Stage, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApiGatewayV2Stage: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApiGatewayV2Stage not found", name) +} + +// GetAllAWSAppStreamDirectoryConfigResources retrieves all AWSAppStreamDirectoryConfig items from an AWS CloudFormation template +func (t *Template) GetAllAWSAppStreamDirectoryConfigResources() map[string]*AWSAppStreamDirectoryConfig { + results := map[string]*AWSAppStreamDirectoryConfig{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAppStreamDirectoryConfig: + results[name] = resource + } + } + return results +} + +// GetAWSAppStreamDirectoryConfigWithName retrieves all AWSAppStreamDirectoryConfig items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAppStreamDirectoryConfigWithName(name string) (*AWSAppStreamDirectoryConfig, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAppStreamDirectoryConfig: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAppStreamDirectoryConfig not found", name) +} + +// GetAllAWSAppStreamFleetResources retrieves all AWSAppStreamFleet items from an AWS CloudFormation template +func (t *Template) GetAllAWSAppStreamFleetResources() map[string]*AWSAppStreamFleet { + results := map[string]*AWSAppStreamFleet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAppStreamFleet: + results[name] = resource + } + } + return results +} + +// GetAWSAppStreamFleetWithName retrieves all AWSAppStreamFleet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAppStreamFleetWithName(name string) (*AWSAppStreamFleet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAppStreamFleet: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAppStreamFleet not found", name) +} + +// GetAllAWSAppStreamImageBuilderResources retrieves all AWSAppStreamImageBuilder items from an AWS CloudFormation template +func (t *Template) GetAllAWSAppStreamImageBuilderResources() map[string]*AWSAppStreamImageBuilder { + results := map[string]*AWSAppStreamImageBuilder{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAppStreamImageBuilder: + results[name] = resource + } + } + return results +} + +// GetAWSAppStreamImageBuilderWithName retrieves all AWSAppStreamImageBuilder items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAppStreamImageBuilderWithName(name string) (*AWSAppStreamImageBuilder, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAppStreamImageBuilder: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAppStreamImageBuilder not found", name) +} + +// GetAllAWSAppStreamStackResources retrieves all AWSAppStreamStack items from an AWS CloudFormation template +func (t *Template) GetAllAWSAppStreamStackResources() map[string]*AWSAppStreamStack { + results := map[string]*AWSAppStreamStack{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAppStreamStack: + results[name] = resource + } + } + return results +} + +// GetAWSAppStreamStackWithName retrieves all AWSAppStreamStack items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAppStreamStackWithName(name string) (*AWSAppStreamStack, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAppStreamStack: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAppStreamStack not found", name) +} + +// GetAllAWSAppStreamStackFleetAssociationResources retrieves all AWSAppStreamStackFleetAssociation items from an AWS CloudFormation template +func (t *Template) GetAllAWSAppStreamStackFleetAssociationResources() map[string]*AWSAppStreamStackFleetAssociation { + results := map[string]*AWSAppStreamStackFleetAssociation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAppStreamStackFleetAssociation: + results[name] = resource + } + } + return results +} + +// GetAWSAppStreamStackFleetAssociationWithName retrieves all AWSAppStreamStackFleetAssociation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAppStreamStackFleetAssociationWithName(name string) (*AWSAppStreamStackFleetAssociation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAppStreamStackFleetAssociation: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAppStreamStackFleetAssociation not found", name) +} + +// GetAllAWSAppStreamStackUserAssociationResources retrieves all AWSAppStreamStackUserAssociation items from an AWS CloudFormation template +func (t *Template) GetAllAWSAppStreamStackUserAssociationResources() map[string]*AWSAppStreamStackUserAssociation { + results := map[string]*AWSAppStreamStackUserAssociation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAppStreamStackUserAssociation: + results[name] = resource + } + } + return results +} + +// GetAWSAppStreamStackUserAssociationWithName retrieves all AWSAppStreamStackUserAssociation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAppStreamStackUserAssociationWithName(name string) (*AWSAppStreamStackUserAssociation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAppStreamStackUserAssociation: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAppStreamStackUserAssociation not found", name) +} + +// GetAllAWSAppStreamUserResources retrieves all AWSAppStreamUser items from an AWS CloudFormation template +func (t *Template) GetAllAWSAppStreamUserResources() map[string]*AWSAppStreamUser { + results := map[string]*AWSAppStreamUser{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAppStreamUser: + results[name] = resource + } + } + return results +} + +// GetAWSAppStreamUserWithName retrieves all AWSAppStreamUser items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAppStreamUserWithName(name string) (*AWSAppStreamUser, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAppStreamUser: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAppStreamUser not found", name) +} + +// GetAllAWSAppSyncApiKeyResources retrieves all AWSAppSyncApiKey items from an AWS CloudFormation template +func (t *Template) GetAllAWSAppSyncApiKeyResources() map[string]*AWSAppSyncApiKey { + results := map[string]*AWSAppSyncApiKey{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAppSyncApiKey: + results[name] = resource + } + } + return results +} + +// GetAWSAppSyncApiKeyWithName retrieves all AWSAppSyncApiKey items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAppSyncApiKeyWithName(name string) (*AWSAppSyncApiKey, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAppSyncApiKey: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAppSyncApiKey not found", name) +} + +// GetAllAWSAppSyncDataSourceResources retrieves all AWSAppSyncDataSource items from an AWS CloudFormation template +func (t *Template) GetAllAWSAppSyncDataSourceResources() map[string]*AWSAppSyncDataSource { + results := map[string]*AWSAppSyncDataSource{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAppSyncDataSource: + results[name] = resource + } + } + return results +} + +// GetAWSAppSyncDataSourceWithName retrieves all AWSAppSyncDataSource items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAppSyncDataSourceWithName(name string) (*AWSAppSyncDataSource, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAppSyncDataSource: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAppSyncDataSource not found", name) +} + +// GetAllAWSAppSyncFunctionConfigurationResources retrieves all AWSAppSyncFunctionConfiguration items from an AWS CloudFormation template +func (t *Template) GetAllAWSAppSyncFunctionConfigurationResources() map[string]*AWSAppSyncFunctionConfiguration { + results := map[string]*AWSAppSyncFunctionConfiguration{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAppSyncFunctionConfiguration: + results[name] = resource + } + } + return results +} + +// GetAWSAppSyncFunctionConfigurationWithName retrieves all AWSAppSyncFunctionConfiguration items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAppSyncFunctionConfigurationWithName(name string) (*AWSAppSyncFunctionConfiguration, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAppSyncFunctionConfiguration: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAppSyncFunctionConfiguration not found", name) +} + +// GetAllAWSAppSyncGraphQLApiResources retrieves all AWSAppSyncGraphQLApi items from an AWS CloudFormation template +func (t *Template) GetAllAWSAppSyncGraphQLApiResources() map[string]*AWSAppSyncGraphQLApi { + results := map[string]*AWSAppSyncGraphQLApi{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAppSyncGraphQLApi: + results[name] = resource + } + } + return results +} + +// GetAWSAppSyncGraphQLApiWithName retrieves all AWSAppSyncGraphQLApi items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAppSyncGraphQLApiWithName(name string) (*AWSAppSyncGraphQLApi, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAppSyncGraphQLApi: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAppSyncGraphQLApi not found", name) +} + +// GetAllAWSAppSyncGraphQLSchemaResources retrieves all AWSAppSyncGraphQLSchema items from an AWS CloudFormation template +func (t *Template) GetAllAWSAppSyncGraphQLSchemaResources() map[string]*AWSAppSyncGraphQLSchema { + results := map[string]*AWSAppSyncGraphQLSchema{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAppSyncGraphQLSchema: + results[name] = resource + } + } + return results +} + +// GetAWSAppSyncGraphQLSchemaWithName retrieves all AWSAppSyncGraphQLSchema items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAppSyncGraphQLSchemaWithName(name string) (*AWSAppSyncGraphQLSchema, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAppSyncGraphQLSchema: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAppSyncGraphQLSchema not found", name) +} + +// GetAllAWSAppSyncResolverResources retrieves all AWSAppSyncResolver items from an AWS CloudFormation template +func (t *Template) GetAllAWSAppSyncResolverResources() map[string]*AWSAppSyncResolver { + results := map[string]*AWSAppSyncResolver{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAppSyncResolver: + results[name] = resource + } + } + return results +} + +// GetAWSAppSyncResolverWithName retrieves all AWSAppSyncResolver items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAppSyncResolverWithName(name string) (*AWSAppSyncResolver, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAppSyncResolver: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAppSyncResolver not found", name) +} + +// GetAllAWSApplicationAutoScalingScalableTargetResources retrieves all AWSApplicationAutoScalingScalableTarget items from an AWS CloudFormation template +func (t *Template) GetAllAWSApplicationAutoScalingScalableTargetResources() map[string]*AWSApplicationAutoScalingScalableTarget { + results := map[string]*AWSApplicationAutoScalingScalableTarget{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApplicationAutoScalingScalableTarget: + results[name] = resource + } + } + return results +} + +// GetAWSApplicationAutoScalingScalableTargetWithName retrieves all AWSApplicationAutoScalingScalableTarget items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApplicationAutoScalingScalableTargetWithName(name string) (*AWSApplicationAutoScalingScalableTarget, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApplicationAutoScalingScalableTarget: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApplicationAutoScalingScalableTarget not found", name) +} + +// GetAllAWSApplicationAutoScalingScalingPolicyResources retrieves all AWSApplicationAutoScalingScalingPolicy items from an AWS CloudFormation template +func (t *Template) GetAllAWSApplicationAutoScalingScalingPolicyResources() map[string]*AWSApplicationAutoScalingScalingPolicy { + results := map[string]*AWSApplicationAutoScalingScalingPolicy{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSApplicationAutoScalingScalingPolicy: + results[name] = resource + } + } + return results +} + +// GetAWSApplicationAutoScalingScalingPolicyWithName retrieves all AWSApplicationAutoScalingScalingPolicy items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSApplicationAutoScalingScalingPolicyWithName(name string) (*AWSApplicationAutoScalingScalingPolicy, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSApplicationAutoScalingScalingPolicy: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSApplicationAutoScalingScalingPolicy not found", name) +} + +// GetAllAWSAthenaNamedQueryResources retrieves all AWSAthenaNamedQuery items from an AWS CloudFormation template +func (t *Template) GetAllAWSAthenaNamedQueryResources() map[string]*AWSAthenaNamedQuery { + results := map[string]*AWSAthenaNamedQuery{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAthenaNamedQuery: + results[name] = resource + } + } + return results +} + +// GetAWSAthenaNamedQueryWithName retrieves all AWSAthenaNamedQuery items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAthenaNamedQueryWithName(name string) (*AWSAthenaNamedQuery, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAthenaNamedQuery: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAthenaNamedQuery not found", name) +} + +// GetAllAWSAutoScalingAutoScalingGroupResources retrieves all AWSAutoScalingAutoScalingGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSAutoScalingAutoScalingGroupResources() map[string]*AWSAutoScalingAutoScalingGroup { + results := map[string]*AWSAutoScalingAutoScalingGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAutoScalingAutoScalingGroup: + results[name] = resource + } + } + return results +} + +// GetAWSAutoScalingAutoScalingGroupWithName retrieves all AWSAutoScalingAutoScalingGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAutoScalingAutoScalingGroupWithName(name string) (*AWSAutoScalingAutoScalingGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAutoScalingAutoScalingGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAutoScalingAutoScalingGroup not found", name) +} + +// GetAllAWSAutoScalingLaunchConfigurationResources retrieves all AWSAutoScalingLaunchConfiguration items from an AWS CloudFormation template +func (t *Template) GetAllAWSAutoScalingLaunchConfigurationResources() map[string]*AWSAutoScalingLaunchConfiguration { + results := map[string]*AWSAutoScalingLaunchConfiguration{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAutoScalingLaunchConfiguration: + results[name] = resource + } + } + return results +} + +// GetAWSAutoScalingLaunchConfigurationWithName retrieves all AWSAutoScalingLaunchConfiguration items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAutoScalingLaunchConfigurationWithName(name string) (*AWSAutoScalingLaunchConfiguration, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAutoScalingLaunchConfiguration: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAutoScalingLaunchConfiguration not found", name) +} + +// GetAllAWSAutoScalingLifecycleHookResources retrieves all AWSAutoScalingLifecycleHook items from an AWS CloudFormation template +func (t *Template) GetAllAWSAutoScalingLifecycleHookResources() map[string]*AWSAutoScalingLifecycleHook { + results := map[string]*AWSAutoScalingLifecycleHook{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAutoScalingLifecycleHook: + results[name] = resource + } + } + return results +} + +// GetAWSAutoScalingLifecycleHookWithName retrieves all AWSAutoScalingLifecycleHook items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAutoScalingLifecycleHookWithName(name string) (*AWSAutoScalingLifecycleHook, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAutoScalingLifecycleHook: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAutoScalingLifecycleHook not found", name) +} + +// GetAllAWSAutoScalingScalingPolicyResources retrieves all AWSAutoScalingScalingPolicy items from an AWS CloudFormation template +func (t *Template) GetAllAWSAutoScalingScalingPolicyResources() map[string]*AWSAutoScalingScalingPolicy { + results := map[string]*AWSAutoScalingScalingPolicy{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAutoScalingScalingPolicy: + results[name] = resource + } + } + return results +} + +// GetAWSAutoScalingScalingPolicyWithName retrieves all AWSAutoScalingScalingPolicy items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAutoScalingScalingPolicyWithName(name string) (*AWSAutoScalingScalingPolicy, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAutoScalingScalingPolicy: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAutoScalingScalingPolicy not found", name) +} + +// GetAllAWSAutoScalingScheduledActionResources retrieves all AWSAutoScalingScheduledAction items from an AWS CloudFormation template +func (t *Template) GetAllAWSAutoScalingScheduledActionResources() map[string]*AWSAutoScalingScheduledAction { + results := map[string]*AWSAutoScalingScheduledAction{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAutoScalingScheduledAction: + results[name] = resource + } + } + return results +} + +// GetAWSAutoScalingScheduledActionWithName retrieves all AWSAutoScalingScheduledAction items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAutoScalingScheduledActionWithName(name string) (*AWSAutoScalingScheduledAction, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAutoScalingScheduledAction: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAutoScalingScheduledAction not found", name) +} + +// GetAllAWSAutoScalingPlansScalingPlanResources retrieves all AWSAutoScalingPlansScalingPlan items from an AWS CloudFormation template +func (t *Template) GetAllAWSAutoScalingPlansScalingPlanResources() map[string]*AWSAutoScalingPlansScalingPlan { + results := map[string]*AWSAutoScalingPlansScalingPlan{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSAutoScalingPlansScalingPlan: + results[name] = resource + } + } + return results +} + +// GetAWSAutoScalingPlansScalingPlanWithName retrieves all AWSAutoScalingPlansScalingPlan items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSAutoScalingPlansScalingPlanWithName(name string) (*AWSAutoScalingPlansScalingPlan, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSAutoScalingPlansScalingPlan: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSAutoScalingPlansScalingPlan not found", name) +} + +// GetAllAWSBatchComputeEnvironmentResources retrieves all AWSBatchComputeEnvironment items from an AWS CloudFormation template +func (t *Template) GetAllAWSBatchComputeEnvironmentResources() map[string]*AWSBatchComputeEnvironment { + results := map[string]*AWSBatchComputeEnvironment{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSBatchComputeEnvironment: + results[name] = resource + } + } + return results +} + +// GetAWSBatchComputeEnvironmentWithName retrieves all AWSBatchComputeEnvironment items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSBatchComputeEnvironmentWithName(name string) (*AWSBatchComputeEnvironment, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSBatchComputeEnvironment: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSBatchComputeEnvironment not found", name) +} + +// GetAllAWSBatchJobDefinitionResources retrieves all AWSBatchJobDefinition items from an AWS CloudFormation template +func (t *Template) GetAllAWSBatchJobDefinitionResources() map[string]*AWSBatchJobDefinition { + results := map[string]*AWSBatchJobDefinition{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSBatchJobDefinition: + results[name] = resource + } + } + return results +} + +// GetAWSBatchJobDefinitionWithName retrieves all AWSBatchJobDefinition items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSBatchJobDefinitionWithName(name string) (*AWSBatchJobDefinition, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSBatchJobDefinition: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSBatchJobDefinition not found", name) +} + +// GetAllAWSBatchJobQueueResources retrieves all AWSBatchJobQueue items from an AWS CloudFormation template +func (t *Template) GetAllAWSBatchJobQueueResources() map[string]*AWSBatchJobQueue { + results := map[string]*AWSBatchJobQueue{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSBatchJobQueue: + results[name] = resource + } + } + return results +} + +// GetAWSBatchJobQueueWithName retrieves all AWSBatchJobQueue items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSBatchJobQueueWithName(name string) (*AWSBatchJobQueue, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSBatchJobQueue: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSBatchJobQueue not found", name) +} + +// GetAllAWSBudgetsBudgetResources retrieves all AWSBudgetsBudget items from an AWS CloudFormation template +func (t *Template) GetAllAWSBudgetsBudgetResources() map[string]*AWSBudgetsBudget { + results := map[string]*AWSBudgetsBudget{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSBudgetsBudget: + results[name] = resource + } + } + return results +} + +// GetAWSBudgetsBudgetWithName retrieves all AWSBudgetsBudget items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSBudgetsBudgetWithName(name string) (*AWSBudgetsBudget, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSBudgetsBudget: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSBudgetsBudget not found", name) +} + +// GetAllAWSCertificateManagerCertificateResources retrieves all AWSCertificateManagerCertificate items from an AWS CloudFormation template +func (t *Template) GetAllAWSCertificateManagerCertificateResources() map[string]*AWSCertificateManagerCertificate { + results := map[string]*AWSCertificateManagerCertificate{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCertificateManagerCertificate: + results[name] = resource + } + } + return results +} + +// GetAWSCertificateManagerCertificateWithName retrieves all AWSCertificateManagerCertificate items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCertificateManagerCertificateWithName(name string) (*AWSCertificateManagerCertificate, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCertificateManagerCertificate: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCertificateManagerCertificate not found", name) +} + +// GetAllAWSCloud9EnvironmentEC2Resources retrieves all AWSCloud9EnvironmentEC2 items from an AWS CloudFormation template +func (t *Template) GetAllAWSCloud9EnvironmentEC2Resources() map[string]*AWSCloud9EnvironmentEC2 { + results := map[string]*AWSCloud9EnvironmentEC2{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCloud9EnvironmentEC2: + results[name] = resource + } + } + return results +} + +// GetAWSCloud9EnvironmentEC2WithName retrieves all AWSCloud9EnvironmentEC2 items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCloud9EnvironmentEC2WithName(name string) (*AWSCloud9EnvironmentEC2, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCloud9EnvironmentEC2: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCloud9EnvironmentEC2 not found", name) +} + +// GetAllAWSCloudFormationCustomResourceResources retrieves all AWSCloudFormationCustomResource items from an AWS CloudFormation template +func (t *Template) GetAllAWSCloudFormationCustomResourceResources() map[string]*AWSCloudFormationCustomResource { + results := map[string]*AWSCloudFormationCustomResource{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCloudFormationCustomResource: + results[name] = resource + } + } + return results +} + +// GetAWSCloudFormationCustomResourceWithName retrieves all AWSCloudFormationCustomResource items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCloudFormationCustomResourceWithName(name string) (*AWSCloudFormationCustomResource, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCloudFormationCustomResource: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCloudFormationCustomResource not found", name) +} + +// GetAllAWSCloudFormationMacroResources retrieves all AWSCloudFormationMacro items from an AWS CloudFormation template +func (t *Template) GetAllAWSCloudFormationMacroResources() map[string]*AWSCloudFormationMacro { + results := map[string]*AWSCloudFormationMacro{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCloudFormationMacro: + results[name] = resource + } + } + return results +} + +// GetAWSCloudFormationMacroWithName retrieves all AWSCloudFormationMacro items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCloudFormationMacroWithName(name string) (*AWSCloudFormationMacro, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCloudFormationMacro: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCloudFormationMacro not found", name) +} + +// GetAllAWSCloudFormationStackResources retrieves all AWSCloudFormationStack items from an AWS CloudFormation template +func (t *Template) GetAllAWSCloudFormationStackResources() map[string]*AWSCloudFormationStack { + results := map[string]*AWSCloudFormationStack{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCloudFormationStack: + results[name] = resource + } + } + return results +} + +// GetAWSCloudFormationStackWithName retrieves all AWSCloudFormationStack items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCloudFormationStackWithName(name string) (*AWSCloudFormationStack, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCloudFormationStack: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCloudFormationStack not found", name) +} + +// GetAllAWSCloudFormationWaitConditionResources retrieves all AWSCloudFormationWaitCondition items from an AWS CloudFormation template +func (t *Template) GetAllAWSCloudFormationWaitConditionResources() map[string]*AWSCloudFormationWaitCondition { + results := map[string]*AWSCloudFormationWaitCondition{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCloudFormationWaitCondition: + results[name] = resource + } + } + return results +} + +// GetAWSCloudFormationWaitConditionWithName retrieves all AWSCloudFormationWaitCondition items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCloudFormationWaitConditionWithName(name string) (*AWSCloudFormationWaitCondition, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCloudFormationWaitCondition: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCloudFormationWaitCondition not found", name) +} + +// GetAllAWSCloudFormationWaitConditionHandleResources retrieves all AWSCloudFormationWaitConditionHandle items from an AWS CloudFormation template +func (t *Template) GetAllAWSCloudFormationWaitConditionHandleResources() map[string]*AWSCloudFormationWaitConditionHandle { + results := map[string]*AWSCloudFormationWaitConditionHandle{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCloudFormationWaitConditionHandle: + results[name] = resource + } + } + return results +} + +// GetAWSCloudFormationWaitConditionHandleWithName retrieves all AWSCloudFormationWaitConditionHandle items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCloudFormationWaitConditionHandleWithName(name string) (*AWSCloudFormationWaitConditionHandle, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCloudFormationWaitConditionHandle: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCloudFormationWaitConditionHandle not found", name) +} + +// GetAllAWSCloudFrontCloudFrontOriginAccessIdentityResources retrieves all AWSCloudFrontCloudFrontOriginAccessIdentity items from an AWS CloudFormation template +func (t *Template) GetAllAWSCloudFrontCloudFrontOriginAccessIdentityResources() map[string]*AWSCloudFrontCloudFrontOriginAccessIdentity { + results := map[string]*AWSCloudFrontCloudFrontOriginAccessIdentity{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCloudFrontCloudFrontOriginAccessIdentity: + results[name] = resource + } + } + return results +} + +// GetAWSCloudFrontCloudFrontOriginAccessIdentityWithName retrieves all AWSCloudFrontCloudFrontOriginAccessIdentity items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCloudFrontCloudFrontOriginAccessIdentityWithName(name string) (*AWSCloudFrontCloudFrontOriginAccessIdentity, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCloudFrontCloudFrontOriginAccessIdentity: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCloudFrontCloudFrontOriginAccessIdentity not found", name) +} + +// GetAllAWSCloudFrontDistributionResources retrieves all AWSCloudFrontDistribution items from an AWS CloudFormation template +func (t *Template) GetAllAWSCloudFrontDistributionResources() map[string]*AWSCloudFrontDistribution { + results := map[string]*AWSCloudFrontDistribution{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCloudFrontDistribution: + results[name] = resource + } + } + return results +} + +// GetAWSCloudFrontDistributionWithName retrieves all AWSCloudFrontDistribution items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCloudFrontDistributionWithName(name string) (*AWSCloudFrontDistribution, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCloudFrontDistribution: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCloudFrontDistribution not found", name) +} + +// GetAllAWSCloudFrontStreamingDistributionResources retrieves all AWSCloudFrontStreamingDistribution items from an AWS CloudFormation template +func (t *Template) GetAllAWSCloudFrontStreamingDistributionResources() map[string]*AWSCloudFrontStreamingDistribution { + results := map[string]*AWSCloudFrontStreamingDistribution{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCloudFrontStreamingDistribution: + results[name] = resource + } + } + return results +} + +// GetAWSCloudFrontStreamingDistributionWithName retrieves all AWSCloudFrontStreamingDistribution items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCloudFrontStreamingDistributionWithName(name string) (*AWSCloudFrontStreamingDistribution, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCloudFrontStreamingDistribution: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCloudFrontStreamingDistribution not found", name) +} + +// GetAllAWSCloudTrailTrailResources retrieves all AWSCloudTrailTrail items from an AWS CloudFormation template +func (t *Template) GetAllAWSCloudTrailTrailResources() map[string]*AWSCloudTrailTrail { + results := map[string]*AWSCloudTrailTrail{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCloudTrailTrail: + results[name] = resource + } + } + return results +} + +// GetAWSCloudTrailTrailWithName retrieves all AWSCloudTrailTrail items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCloudTrailTrailWithName(name string) (*AWSCloudTrailTrail, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCloudTrailTrail: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCloudTrailTrail not found", name) +} + +// GetAllAWSCloudWatchAlarmResources retrieves all AWSCloudWatchAlarm items from an AWS CloudFormation template +func (t *Template) GetAllAWSCloudWatchAlarmResources() map[string]*AWSCloudWatchAlarm { + results := map[string]*AWSCloudWatchAlarm{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCloudWatchAlarm: + results[name] = resource + } + } + return results +} + +// GetAWSCloudWatchAlarmWithName retrieves all AWSCloudWatchAlarm items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCloudWatchAlarmWithName(name string) (*AWSCloudWatchAlarm, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCloudWatchAlarm: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCloudWatchAlarm not found", name) +} + +// GetAllAWSCloudWatchDashboardResources retrieves all AWSCloudWatchDashboard items from an AWS CloudFormation template +func (t *Template) GetAllAWSCloudWatchDashboardResources() map[string]*AWSCloudWatchDashboard { + results := map[string]*AWSCloudWatchDashboard{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCloudWatchDashboard: + results[name] = resource + } + } + return results +} + +// GetAWSCloudWatchDashboardWithName retrieves all AWSCloudWatchDashboard items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCloudWatchDashboardWithName(name string) (*AWSCloudWatchDashboard, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCloudWatchDashboard: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCloudWatchDashboard not found", name) +} + +// GetAllAWSCodeBuildProjectResources retrieves all AWSCodeBuildProject items from an AWS CloudFormation template +func (t *Template) GetAllAWSCodeBuildProjectResources() map[string]*AWSCodeBuildProject { + results := map[string]*AWSCodeBuildProject{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCodeBuildProject: + results[name] = resource + } + } + return results +} + +// GetAWSCodeBuildProjectWithName retrieves all AWSCodeBuildProject items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCodeBuildProjectWithName(name string) (*AWSCodeBuildProject, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCodeBuildProject: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCodeBuildProject not found", name) +} + +// GetAllAWSCodeCommitRepositoryResources retrieves all AWSCodeCommitRepository items from an AWS CloudFormation template +func (t *Template) GetAllAWSCodeCommitRepositoryResources() map[string]*AWSCodeCommitRepository { + results := map[string]*AWSCodeCommitRepository{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCodeCommitRepository: + results[name] = resource + } + } + return results +} + +// GetAWSCodeCommitRepositoryWithName retrieves all AWSCodeCommitRepository items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCodeCommitRepositoryWithName(name string) (*AWSCodeCommitRepository, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCodeCommitRepository: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCodeCommitRepository not found", name) +} + +// GetAllAWSCodeDeployApplicationResources retrieves all AWSCodeDeployApplication items from an AWS CloudFormation template +func (t *Template) GetAllAWSCodeDeployApplicationResources() map[string]*AWSCodeDeployApplication { + results := map[string]*AWSCodeDeployApplication{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCodeDeployApplication: + results[name] = resource + } + } + return results +} + +// GetAWSCodeDeployApplicationWithName retrieves all AWSCodeDeployApplication items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCodeDeployApplicationWithName(name string) (*AWSCodeDeployApplication, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCodeDeployApplication: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCodeDeployApplication not found", name) +} + +// GetAllAWSCodeDeployDeploymentConfigResources retrieves all AWSCodeDeployDeploymentConfig items from an AWS CloudFormation template +func (t *Template) GetAllAWSCodeDeployDeploymentConfigResources() map[string]*AWSCodeDeployDeploymentConfig { + results := map[string]*AWSCodeDeployDeploymentConfig{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCodeDeployDeploymentConfig: + results[name] = resource + } + } + return results +} + +// GetAWSCodeDeployDeploymentConfigWithName retrieves all AWSCodeDeployDeploymentConfig items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCodeDeployDeploymentConfigWithName(name string) (*AWSCodeDeployDeploymentConfig, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCodeDeployDeploymentConfig: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCodeDeployDeploymentConfig not found", name) +} + +// GetAllAWSCodeDeployDeploymentGroupResources retrieves all AWSCodeDeployDeploymentGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSCodeDeployDeploymentGroupResources() map[string]*AWSCodeDeployDeploymentGroup { + results := map[string]*AWSCodeDeployDeploymentGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCodeDeployDeploymentGroup: + results[name] = resource + } + } + return results +} + +// GetAWSCodeDeployDeploymentGroupWithName retrieves all AWSCodeDeployDeploymentGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCodeDeployDeploymentGroupWithName(name string) (*AWSCodeDeployDeploymentGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCodeDeployDeploymentGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCodeDeployDeploymentGroup not found", name) +} + +// GetAllAWSCodePipelineCustomActionTypeResources retrieves all AWSCodePipelineCustomActionType items from an AWS CloudFormation template +func (t *Template) GetAllAWSCodePipelineCustomActionTypeResources() map[string]*AWSCodePipelineCustomActionType { + results := map[string]*AWSCodePipelineCustomActionType{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCodePipelineCustomActionType: + results[name] = resource + } + } + return results +} + +// GetAWSCodePipelineCustomActionTypeWithName retrieves all AWSCodePipelineCustomActionType items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCodePipelineCustomActionTypeWithName(name string) (*AWSCodePipelineCustomActionType, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCodePipelineCustomActionType: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCodePipelineCustomActionType not found", name) +} + +// GetAllAWSCodePipelinePipelineResources retrieves all AWSCodePipelinePipeline items from an AWS CloudFormation template +func (t *Template) GetAllAWSCodePipelinePipelineResources() map[string]*AWSCodePipelinePipeline { + results := map[string]*AWSCodePipelinePipeline{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCodePipelinePipeline: + results[name] = resource + } + } + return results +} + +// GetAWSCodePipelinePipelineWithName retrieves all AWSCodePipelinePipeline items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCodePipelinePipelineWithName(name string) (*AWSCodePipelinePipeline, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCodePipelinePipeline: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCodePipelinePipeline not found", name) +} + +// GetAllAWSCodePipelineWebhookResources retrieves all AWSCodePipelineWebhook items from an AWS CloudFormation template +func (t *Template) GetAllAWSCodePipelineWebhookResources() map[string]*AWSCodePipelineWebhook { + results := map[string]*AWSCodePipelineWebhook{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCodePipelineWebhook: + results[name] = resource + } + } + return results +} + +// GetAWSCodePipelineWebhookWithName retrieves all AWSCodePipelineWebhook items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCodePipelineWebhookWithName(name string) (*AWSCodePipelineWebhook, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCodePipelineWebhook: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCodePipelineWebhook not found", name) +} + +// GetAllAWSCognitoIdentityPoolResources retrieves all AWSCognitoIdentityPool items from an AWS CloudFormation template +func (t *Template) GetAllAWSCognitoIdentityPoolResources() map[string]*AWSCognitoIdentityPool { + results := map[string]*AWSCognitoIdentityPool{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCognitoIdentityPool: + results[name] = resource + } + } + return results +} + +// GetAWSCognitoIdentityPoolWithName retrieves all AWSCognitoIdentityPool items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCognitoIdentityPoolWithName(name string) (*AWSCognitoIdentityPool, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCognitoIdentityPool: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCognitoIdentityPool not found", name) +} + +// GetAllAWSCognitoIdentityPoolRoleAttachmentResources retrieves all AWSCognitoIdentityPoolRoleAttachment items from an AWS CloudFormation template +func (t *Template) GetAllAWSCognitoIdentityPoolRoleAttachmentResources() map[string]*AWSCognitoIdentityPoolRoleAttachment { + results := map[string]*AWSCognitoIdentityPoolRoleAttachment{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCognitoIdentityPoolRoleAttachment: + results[name] = resource + } + } + return results +} + +// GetAWSCognitoIdentityPoolRoleAttachmentWithName retrieves all AWSCognitoIdentityPoolRoleAttachment items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCognitoIdentityPoolRoleAttachmentWithName(name string) (*AWSCognitoIdentityPoolRoleAttachment, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCognitoIdentityPoolRoleAttachment: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCognitoIdentityPoolRoleAttachment not found", name) +} + +// GetAllAWSCognitoUserPoolResources retrieves all AWSCognitoUserPool items from an AWS CloudFormation template +func (t *Template) GetAllAWSCognitoUserPoolResources() map[string]*AWSCognitoUserPool { + results := map[string]*AWSCognitoUserPool{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCognitoUserPool: + results[name] = resource + } + } + return results +} + +// GetAWSCognitoUserPoolWithName retrieves all AWSCognitoUserPool items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCognitoUserPoolWithName(name string) (*AWSCognitoUserPool, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCognitoUserPool: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCognitoUserPool not found", name) +} + +// GetAllAWSCognitoUserPoolClientResources retrieves all AWSCognitoUserPoolClient items from an AWS CloudFormation template +func (t *Template) GetAllAWSCognitoUserPoolClientResources() map[string]*AWSCognitoUserPoolClient { + results := map[string]*AWSCognitoUserPoolClient{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCognitoUserPoolClient: + results[name] = resource + } + } + return results +} + +// GetAWSCognitoUserPoolClientWithName retrieves all AWSCognitoUserPoolClient items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCognitoUserPoolClientWithName(name string) (*AWSCognitoUserPoolClient, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCognitoUserPoolClient: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCognitoUserPoolClient not found", name) +} + +// GetAllAWSCognitoUserPoolGroupResources retrieves all AWSCognitoUserPoolGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSCognitoUserPoolGroupResources() map[string]*AWSCognitoUserPoolGroup { + results := map[string]*AWSCognitoUserPoolGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCognitoUserPoolGroup: + results[name] = resource + } + } + return results +} + +// GetAWSCognitoUserPoolGroupWithName retrieves all AWSCognitoUserPoolGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCognitoUserPoolGroupWithName(name string) (*AWSCognitoUserPoolGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCognitoUserPoolGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCognitoUserPoolGroup not found", name) +} + +// GetAllAWSCognitoUserPoolUserResources retrieves all AWSCognitoUserPoolUser items from an AWS CloudFormation template +func (t *Template) GetAllAWSCognitoUserPoolUserResources() map[string]*AWSCognitoUserPoolUser { + results := map[string]*AWSCognitoUserPoolUser{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCognitoUserPoolUser: + results[name] = resource + } + } + return results +} + +// GetAWSCognitoUserPoolUserWithName retrieves all AWSCognitoUserPoolUser items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCognitoUserPoolUserWithName(name string) (*AWSCognitoUserPoolUser, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCognitoUserPoolUser: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCognitoUserPoolUser not found", name) +} + +// GetAllAWSCognitoUserPoolUserToGroupAttachmentResources retrieves all AWSCognitoUserPoolUserToGroupAttachment items from an AWS CloudFormation template +func (t *Template) GetAllAWSCognitoUserPoolUserToGroupAttachmentResources() map[string]*AWSCognitoUserPoolUserToGroupAttachment { + results := map[string]*AWSCognitoUserPoolUserToGroupAttachment{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSCognitoUserPoolUserToGroupAttachment: + results[name] = resource + } + } + return results +} + +// GetAWSCognitoUserPoolUserToGroupAttachmentWithName retrieves all AWSCognitoUserPoolUserToGroupAttachment items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSCognitoUserPoolUserToGroupAttachmentWithName(name string) (*AWSCognitoUserPoolUserToGroupAttachment, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSCognitoUserPoolUserToGroupAttachment: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSCognitoUserPoolUserToGroupAttachment not found", name) +} + +// GetAllAWSConfigAggregationAuthorizationResources retrieves all AWSConfigAggregationAuthorization items from an AWS CloudFormation template +func (t *Template) GetAllAWSConfigAggregationAuthorizationResources() map[string]*AWSConfigAggregationAuthorization { + results := map[string]*AWSConfigAggregationAuthorization{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSConfigAggregationAuthorization: + results[name] = resource + } + } + return results +} + +// GetAWSConfigAggregationAuthorizationWithName retrieves all AWSConfigAggregationAuthorization items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSConfigAggregationAuthorizationWithName(name string) (*AWSConfigAggregationAuthorization, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSConfigAggregationAuthorization: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSConfigAggregationAuthorization not found", name) +} + +// GetAllAWSConfigConfigRuleResources retrieves all AWSConfigConfigRule items from an AWS CloudFormation template +func (t *Template) GetAllAWSConfigConfigRuleResources() map[string]*AWSConfigConfigRule { + results := map[string]*AWSConfigConfigRule{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSConfigConfigRule: + results[name] = resource + } + } + return results +} + +// GetAWSConfigConfigRuleWithName retrieves all AWSConfigConfigRule items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSConfigConfigRuleWithName(name string) (*AWSConfigConfigRule, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSConfigConfigRule: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSConfigConfigRule not found", name) +} + +// GetAllAWSConfigConfigurationAggregatorResources retrieves all AWSConfigConfigurationAggregator items from an AWS CloudFormation template +func (t *Template) GetAllAWSConfigConfigurationAggregatorResources() map[string]*AWSConfigConfigurationAggregator { + results := map[string]*AWSConfigConfigurationAggregator{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSConfigConfigurationAggregator: + results[name] = resource + } + } + return results +} + +// GetAWSConfigConfigurationAggregatorWithName retrieves all AWSConfigConfigurationAggregator items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSConfigConfigurationAggregatorWithName(name string) (*AWSConfigConfigurationAggregator, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSConfigConfigurationAggregator: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSConfigConfigurationAggregator not found", name) +} + +// GetAllAWSConfigConfigurationRecorderResources retrieves all AWSConfigConfigurationRecorder items from an AWS CloudFormation template +func (t *Template) GetAllAWSConfigConfigurationRecorderResources() map[string]*AWSConfigConfigurationRecorder { + results := map[string]*AWSConfigConfigurationRecorder{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSConfigConfigurationRecorder: + results[name] = resource + } + } + return results +} + +// GetAWSConfigConfigurationRecorderWithName retrieves all AWSConfigConfigurationRecorder items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSConfigConfigurationRecorderWithName(name string) (*AWSConfigConfigurationRecorder, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSConfigConfigurationRecorder: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSConfigConfigurationRecorder not found", name) +} + +// GetAllAWSConfigDeliveryChannelResources retrieves all AWSConfigDeliveryChannel items from an AWS CloudFormation template +func (t *Template) GetAllAWSConfigDeliveryChannelResources() map[string]*AWSConfigDeliveryChannel { + results := map[string]*AWSConfigDeliveryChannel{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSConfigDeliveryChannel: + results[name] = resource + } + } + return results +} + +// GetAWSConfigDeliveryChannelWithName retrieves all AWSConfigDeliveryChannel items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSConfigDeliveryChannelWithName(name string) (*AWSConfigDeliveryChannel, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSConfigDeliveryChannel: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSConfigDeliveryChannel not found", name) +} + +// GetAllAWSDAXClusterResources retrieves all AWSDAXCluster items from an AWS CloudFormation template +func (t *Template) GetAllAWSDAXClusterResources() map[string]*AWSDAXCluster { + results := map[string]*AWSDAXCluster{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSDAXCluster: + results[name] = resource + } + } + return results +} + +// GetAWSDAXClusterWithName retrieves all AWSDAXCluster items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSDAXClusterWithName(name string) (*AWSDAXCluster, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSDAXCluster: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSDAXCluster not found", name) +} + +// GetAllAWSDAXParameterGroupResources retrieves all AWSDAXParameterGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSDAXParameterGroupResources() map[string]*AWSDAXParameterGroup { + results := map[string]*AWSDAXParameterGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSDAXParameterGroup: + results[name] = resource + } + } + return results +} + +// GetAWSDAXParameterGroupWithName retrieves all AWSDAXParameterGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSDAXParameterGroupWithName(name string) (*AWSDAXParameterGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSDAXParameterGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSDAXParameterGroup not found", name) +} + +// GetAllAWSDAXSubnetGroupResources retrieves all AWSDAXSubnetGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSDAXSubnetGroupResources() map[string]*AWSDAXSubnetGroup { + results := map[string]*AWSDAXSubnetGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSDAXSubnetGroup: + results[name] = resource + } + } + return results +} + +// GetAWSDAXSubnetGroupWithName retrieves all AWSDAXSubnetGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSDAXSubnetGroupWithName(name string) (*AWSDAXSubnetGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSDAXSubnetGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSDAXSubnetGroup not found", name) +} + +// GetAllAWSDLMLifecyclePolicyResources retrieves all AWSDLMLifecyclePolicy items from an AWS CloudFormation template +func (t *Template) GetAllAWSDLMLifecyclePolicyResources() map[string]*AWSDLMLifecyclePolicy { + results := map[string]*AWSDLMLifecyclePolicy{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSDLMLifecyclePolicy: + results[name] = resource + } + } + return results +} + +// GetAWSDLMLifecyclePolicyWithName retrieves all AWSDLMLifecyclePolicy items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSDLMLifecyclePolicyWithName(name string) (*AWSDLMLifecyclePolicy, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSDLMLifecyclePolicy: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSDLMLifecyclePolicy not found", name) +} + +// GetAllAWSDMSCertificateResources retrieves all AWSDMSCertificate items from an AWS CloudFormation template +func (t *Template) GetAllAWSDMSCertificateResources() map[string]*AWSDMSCertificate { + results := map[string]*AWSDMSCertificate{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSDMSCertificate: + results[name] = resource + } + } + return results +} + +// GetAWSDMSCertificateWithName retrieves all AWSDMSCertificate items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSDMSCertificateWithName(name string) (*AWSDMSCertificate, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSDMSCertificate: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSDMSCertificate not found", name) +} + +// GetAllAWSDMSEndpointResources retrieves all AWSDMSEndpoint items from an AWS CloudFormation template +func (t *Template) GetAllAWSDMSEndpointResources() map[string]*AWSDMSEndpoint { + results := map[string]*AWSDMSEndpoint{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSDMSEndpoint: + results[name] = resource + } + } + return results +} + +// GetAWSDMSEndpointWithName retrieves all AWSDMSEndpoint items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSDMSEndpointWithName(name string) (*AWSDMSEndpoint, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSDMSEndpoint: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSDMSEndpoint not found", name) +} + +// GetAllAWSDMSEventSubscriptionResources retrieves all AWSDMSEventSubscription items from an AWS CloudFormation template +func (t *Template) GetAllAWSDMSEventSubscriptionResources() map[string]*AWSDMSEventSubscription { + results := map[string]*AWSDMSEventSubscription{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSDMSEventSubscription: + results[name] = resource + } + } + return results +} + +// GetAWSDMSEventSubscriptionWithName retrieves all AWSDMSEventSubscription items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSDMSEventSubscriptionWithName(name string) (*AWSDMSEventSubscription, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSDMSEventSubscription: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSDMSEventSubscription not found", name) +} + +// GetAllAWSDMSReplicationInstanceResources retrieves all AWSDMSReplicationInstance items from an AWS CloudFormation template +func (t *Template) GetAllAWSDMSReplicationInstanceResources() map[string]*AWSDMSReplicationInstance { + results := map[string]*AWSDMSReplicationInstance{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSDMSReplicationInstance: + results[name] = resource + } + } + return results +} + +// GetAWSDMSReplicationInstanceWithName retrieves all AWSDMSReplicationInstance items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSDMSReplicationInstanceWithName(name string) (*AWSDMSReplicationInstance, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSDMSReplicationInstance: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSDMSReplicationInstance not found", name) +} + +// GetAllAWSDMSReplicationSubnetGroupResources retrieves all AWSDMSReplicationSubnetGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSDMSReplicationSubnetGroupResources() map[string]*AWSDMSReplicationSubnetGroup { + results := map[string]*AWSDMSReplicationSubnetGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSDMSReplicationSubnetGroup: + results[name] = resource + } + } + return results +} + +// GetAWSDMSReplicationSubnetGroupWithName retrieves all AWSDMSReplicationSubnetGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSDMSReplicationSubnetGroupWithName(name string) (*AWSDMSReplicationSubnetGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSDMSReplicationSubnetGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSDMSReplicationSubnetGroup not found", name) +} + +// GetAllAWSDMSReplicationTaskResources retrieves all AWSDMSReplicationTask items from an AWS CloudFormation template +func (t *Template) GetAllAWSDMSReplicationTaskResources() map[string]*AWSDMSReplicationTask { + results := map[string]*AWSDMSReplicationTask{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSDMSReplicationTask: + results[name] = resource + } + } + return results +} + +// GetAWSDMSReplicationTaskWithName retrieves all AWSDMSReplicationTask items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSDMSReplicationTaskWithName(name string) (*AWSDMSReplicationTask, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSDMSReplicationTask: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSDMSReplicationTask not found", name) +} + +// GetAllAWSDataPipelinePipelineResources retrieves all AWSDataPipelinePipeline items from an AWS CloudFormation template +func (t *Template) GetAllAWSDataPipelinePipelineResources() map[string]*AWSDataPipelinePipeline { + results := map[string]*AWSDataPipelinePipeline{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSDataPipelinePipeline: + results[name] = resource + } + } + return results +} + +// GetAWSDataPipelinePipelineWithName retrieves all AWSDataPipelinePipeline items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSDataPipelinePipelineWithName(name string) (*AWSDataPipelinePipeline, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSDataPipelinePipeline: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSDataPipelinePipeline not found", name) +} + +// GetAllAWSDirectoryServiceMicrosoftADResources retrieves all AWSDirectoryServiceMicrosoftAD items from an AWS CloudFormation template +func (t *Template) GetAllAWSDirectoryServiceMicrosoftADResources() map[string]*AWSDirectoryServiceMicrosoftAD { + results := map[string]*AWSDirectoryServiceMicrosoftAD{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSDirectoryServiceMicrosoftAD: + results[name] = resource + } + } + return results +} + +// GetAWSDirectoryServiceMicrosoftADWithName retrieves all AWSDirectoryServiceMicrosoftAD items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSDirectoryServiceMicrosoftADWithName(name string) (*AWSDirectoryServiceMicrosoftAD, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSDirectoryServiceMicrosoftAD: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSDirectoryServiceMicrosoftAD not found", name) +} + +// GetAllAWSDirectoryServiceSimpleADResources retrieves all AWSDirectoryServiceSimpleAD items from an AWS CloudFormation template +func (t *Template) GetAllAWSDirectoryServiceSimpleADResources() map[string]*AWSDirectoryServiceSimpleAD { + results := map[string]*AWSDirectoryServiceSimpleAD{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSDirectoryServiceSimpleAD: + results[name] = resource + } + } + return results +} + +// GetAWSDirectoryServiceSimpleADWithName retrieves all AWSDirectoryServiceSimpleAD items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSDirectoryServiceSimpleADWithName(name string) (*AWSDirectoryServiceSimpleAD, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSDirectoryServiceSimpleAD: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSDirectoryServiceSimpleAD not found", name) +} + +// GetAllAWSDocDBDBClusterResources retrieves all AWSDocDBDBCluster items from an AWS CloudFormation template +func (t *Template) GetAllAWSDocDBDBClusterResources() map[string]*AWSDocDBDBCluster { + results := map[string]*AWSDocDBDBCluster{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSDocDBDBCluster: + results[name] = resource + } + } + return results +} + +// GetAWSDocDBDBClusterWithName retrieves all AWSDocDBDBCluster items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSDocDBDBClusterWithName(name string) (*AWSDocDBDBCluster, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSDocDBDBCluster: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSDocDBDBCluster not found", name) +} + +// GetAllAWSDocDBDBClusterParameterGroupResources retrieves all AWSDocDBDBClusterParameterGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSDocDBDBClusterParameterGroupResources() map[string]*AWSDocDBDBClusterParameterGroup { + results := map[string]*AWSDocDBDBClusterParameterGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSDocDBDBClusterParameterGroup: + results[name] = resource + } + } + return results +} + +// GetAWSDocDBDBClusterParameterGroupWithName retrieves all AWSDocDBDBClusterParameterGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSDocDBDBClusterParameterGroupWithName(name string) (*AWSDocDBDBClusterParameterGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSDocDBDBClusterParameterGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSDocDBDBClusterParameterGroup not found", name) +} + +// GetAllAWSDocDBDBInstanceResources retrieves all AWSDocDBDBInstance items from an AWS CloudFormation template +func (t *Template) GetAllAWSDocDBDBInstanceResources() map[string]*AWSDocDBDBInstance { + results := map[string]*AWSDocDBDBInstance{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSDocDBDBInstance: + results[name] = resource + } + } + return results +} + +// GetAWSDocDBDBInstanceWithName retrieves all AWSDocDBDBInstance items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSDocDBDBInstanceWithName(name string) (*AWSDocDBDBInstance, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSDocDBDBInstance: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSDocDBDBInstance not found", name) +} + +// GetAllAWSDocDBDBSubnetGroupResources retrieves all AWSDocDBDBSubnetGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSDocDBDBSubnetGroupResources() map[string]*AWSDocDBDBSubnetGroup { + results := map[string]*AWSDocDBDBSubnetGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSDocDBDBSubnetGroup: + results[name] = resource + } + } + return results +} + +// GetAWSDocDBDBSubnetGroupWithName retrieves all AWSDocDBDBSubnetGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSDocDBDBSubnetGroupWithName(name string) (*AWSDocDBDBSubnetGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSDocDBDBSubnetGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSDocDBDBSubnetGroup not found", name) +} + +// GetAllAWSDynamoDBTableResources retrieves all AWSDynamoDBTable items from an AWS CloudFormation template +func (t *Template) GetAllAWSDynamoDBTableResources() map[string]*AWSDynamoDBTable { + results := map[string]*AWSDynamoDBTable{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSDynamoDBTable: + results[name] = resource + } + } + return results +} + +// GetAWSDynamoDBTableWithName retrieves all AWSDynamoDBTable items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSDynamoDBTableWithName(name string) (*AWSDynamoDBTable, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSDynamoDBTable: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSDynamoDBTable not found", name) +} + +// GetAllAWSEC2CustomerGatewayResources retrieves all AWSEC2CustomerGateway items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2CustomerGatewayResources() map[string]*AWSEC2CustomerGateway { + results := map[string]*AWSEC2CustomerGateway{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2CustomerGateway: + results[name] = resource + } + } + return results +} + +// GetAWSEC2CustomerGatewayWithName retrieves all AWSEC2CustomerGateway items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2CustomerGatewayWithName(name string) (*AWSEC2CustomerGateway, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2CustomerGateway: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2CustomerGateway not found", name) +} + +// GetAllAWSEC2DHCPOptionsResources retrieves all AWSEC2DHCPOptions items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2DHCPOptionsResources() map[string]*AWSEC2DHCPOptions { + results := map[string]*AWSEC2DHCPOptions{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2DHCPOptions: + results[name] = resource + } + } + return results +} + +// GetAWSEC2DHCPOptionsWithName retrieves all AWSEC2DHCPOptions items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2DHCPOptionsWithName(name string) (*AWSEC2DHCPOptions, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2DHCPOptions: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2DHCPOptions not found", name) +} + +// GetAllAWSEC2EC2FleetResources retrieves all AWSEC2EC2Fleet items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2EC2FleetResources() map[string]*AWSEC2EC2Fleet { + results := map[string]*AWSEC2EC2Fleet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2EC2Fleet: + results[name] = resource + } + } + return results +} + +// GetAWSEC2EC2FleetWithName retrieves all AWSEC2EC2Fleet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2EC2FleetWithName(name string) (*AWSEC2EC2Fleet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2EC2Fleet: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2EC2Fleet not found", name) +} + +// GetAllAWSEC2EIPResources retrieves all AWSEC2EIP items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2EIPResources() map[string]*AWSEC2EIP { + results := map[string]*AWSEC2EIP{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2EIP: + results[name] = resource + } + } + return results +} + +// GetAWSEC2EIPWithName retrieves all AWSEC2EIP items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2EIPWithName(name string) (*AWSEC2EIP, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2EIP: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2EIP not found", name) +} + +// GetAllAWSEC2EIPAssociationResources retrieves all AWSEC2EIPAssociation items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2EIPAssociationResources() map[string]*AWSEC2EIPAssociation { + results := map[string]*AWSEC2EIPAssociation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2EIPAssociation: + results[name] = resource + } + } + return results +} + +// GetAWSEC2EIPAssociationWithName retrieves all AWSEC2EIPAssociation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2EIPAssociationWithName(name string) (*AWSEC2EIPAssociation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2EIPAssociation: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2EIPAssociation not found", name) +} + +// GetAllAWSEC2EgressOnlyInternetGatewayResources retrieves all AWSEC2EgressOnlyInternetGateway items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2EgressOnlyInternetGatewayResources() map[string]*AWSEC2EgressOnlyInternetGateway { + results := map[string]*AWSEC2EgressOnlyInternetGateway{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2EgressOnlyInternetGateway: + results[name] = resource + } + } + return results +} + +// GetAWSEC2EgressOnlyInternetGatewayWithName retrieves all AWSEC2EgressOnlyInternetGateway items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2EgressOnlyInternetGatewayWithName(name string) (*AWSEC2EgressOnlyInternetGateway, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2EgressOnlyInternetGateway: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2EgressOnlyInternetGateway not found", name) +} + +// GetAllAWSEC2FlowLogResources retrieves all AWSEC2FlowLog items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2FlowLogResources() map[string]*AWSEC2FlowLog { + results := map[string]*AWSEC2FlowLog{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2FlowLog: + results[name] = resource + } + } + return results +} + +// GetAWSEC2FlowLogWithName retrieves all AWSEC2FlowLog items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2FlowLogWithName(name string) (*AWSEC2FlowLog, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2FlowLog: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2FlowLog not found", name) +} + +// GetAllAWSEC2HostResources retrieves all AWSEC2Host items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2HostResources() map[string]*AWSEC2Host { + results := map[string]*AWSEC2Host{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2Host: + results[name] = resource + } + } + return results +} + +// GetAWSEC2HostWithName retrieves all AWSEC2Host items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2HostWithName(name string) (*AWSEC2Host, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2Host: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2Host not found", name) +} + +// GetAllAWSEC2InstanceResources retrieves all AWSEC2Instance items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2InstanceResources() map[string]*AWSEC2Instance { + results := map[string]*AWSEC2Instance{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2Instance: + results[name] = resource + } + } + return results +} + +// GetAWSEC2InstanceWithName retrieves all AWSEC2Instance items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2InstanceWithName(name string) (*AWSEC2Instance, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2Instance: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2Instance not found", name) +} + +// GetAllAWSEC2InternetGatewayResources retrieves all AWSEC2InternetGateway items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2InternetGatewayResources() map[string]*AWSEC2InternetGateway { + results := map[string]*AWSEC2InternetGateway{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2InternetGateway: + results[name] = resource + } + } + return results +} + +// GetAWSEC2InternetGatewayWithName retrieves all AWSEC2InternetGateway items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2InternetGatewayWithName(name string) (*AWSEC2InternetGateway, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2InternetGateway: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2InternetGateway not found", name) +} + +// GetAllAWSEC2LaunchTemplateResources retrieves all AWSEC2LaunchTemplate items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2LaunchTemplateResources() map[string]*AWSEC2LaunchTemplate { + results := map[string]*AWSEC2LaunchTemplate{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2LaunchTemplate: + results[name] = resource + } + } + return results +} + +// GetAWSEC2LaunchTemplateWithName retrieves all AWSEC2LaunchTemplate items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2LaunchTemplateWithName(name string) (*AWSEC2LaunchTemplate, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2LaunchTemplate: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2LaunchTemplate not found", name) +} + +// GetAllAWSEC2NatGatewayResources retrieves all AWSEC2NatGateway items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2NatGatewayResources() map[string]*AWSEC2NatGateway { + results := map[string]*AWSEC2NatGateway{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2NatGateway: + results[name] = resource + } + } + return results +} + +// GetAWSEC2NatGatewayWithName retrieves all AWSEC2NatGateway items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2NatGatewayWithName(name string) (*AWSEC2NatGateway, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2NatGateway: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2NatGateway not found", name) +} + +// GetAllAWSEC2NetworkAclResources retrieves all AWSEC2NetworkAcl items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2NetworkAclResources() map[string]*AWSEC2NetworkAcl { + results := map[string]*AWSEC2NetworkAcl{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2NetworkAcl: + results[name] = resource + } + } + return results +} + +// GetAWSEC2NetworkAclWithName retrieves all AWSEC2NetworkAcl items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2NetworkAclWithName(name string) (*AWSEC2NetworkAcl, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2NetworkAcl: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2NetworkAcl not found", name) +} + +// GetAllAWSEC2NetworkAclEntryResources retrieves all AWSEC2NetworkAclEntry items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2NetworkAclEntryResources() map[string]*AWSEC2NetworkAclEntry { + results := map[string]*AWSEC2NetworkAclEntry{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2NetworkAclEntry: + results[name] = resource + } + } + return results +} + +// GetAWSEC2NetworkAclEntryWithName retrieves all AWSEC2NetworkAclEntry items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2NetworkAclEntryWithName(name string) (*AWSEC2NetworkAclEntry, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2NetworkAclEntry: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2NetworkAclEntry not found", name) +} + +// GetAllAWSEC2NetworkInterfaceResources retrieves all AWSEC2NetworkInterface items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2NetworkInterfaceResources() map[string]*AWSEC2NetworkInterface { + results := map[string]*AWSEC2NetworkInterface{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2NetworkInterface: + results[name] = resource + } + } + return results +} + +// GetAWSEC2NetworkInterfaceWithName retrieves all AWSEC2NetworkInterface items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2NetworkInterfaceWithName(name string) (*AWSEC2NetworkInterface, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2NetworkInterface: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2NetworkInterface not found", name) +} + +// GetAllAWSEC2NetworkInterfaceAttachmentResources retrieves all AWSEC2NetworkInterfaceAttachment items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2NetworkInterfaceAttachmentResources() map[string]*AWSEC2NetworkInterfaceAttachment { + results := map[string]*AWSEC2NetworkInterfaceAttachment{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2NetworkInterfaceAttachment: + results[name] = resource + } + } + return results +} + +// GetAWSEC2NetworkInterfaceAttachmentWithName retrieves all AWSEC2NetworkInterfaceAttachment items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2NetworkInterfaceAttachmentWithName(name string) (*AWSEC2NetworkInterfaceAttachment, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2NetworkInterfaceAttachment: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2NetworkInterfaceAttachment not found", name) +} + +// GetAllAWSEC2NetworkInterfacePermissionResources retrieves all AWSEC2NetworkInterfacePermission items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2NetworkInterfacePermissionResources() map[string]*AWSEC2NetworkInterfacePermission { + results := map[string]*AWSEC2NetworkInterfacePermission{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2NetworkInterfacePermission: + results[name] = resource + } + } + return results +} + +// GetAWSEC2NetworkInterfacePermissionWithName retrieves all AWSEC2NetworkInterfacePermission items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2NetworkInterfacePermissionWithName(name string) (*AWSEC2NetworkInterfacePermission, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2NetworkInterfacePermission: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2NetworkInterfacePermission not found", name) +} + +// GetAllAWSEC2PlacementGroupResources retrieves all AWSEC2PlacementGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2PlacementGroupResources() map[string]*AWSEC2PlacementGroup { + results := map[string]*AWSEC2PlacementGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2PlacementGroup: + results[name] = resource + } + } + return results +} + +// GetAWSEC2PlacementGroupWithName retrieves all AWSEC2PlacementGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2PlacementGroupWithName(name string) (*AWSEC2PlacementGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2PlacementGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2PlacementGroup not found", name) +} + +// GetAllAWSEC2RouteResources retrieves all AWSEC2Route items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2RouteResources() map[string]*AWSEC2Route { + results := map[string]*AWSEC2Route{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2Route: + results[name] = resource + } + } + return results +} + +// GetAWSEC2RouteWithName retrieves all AWSEC2Route items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2RouteWithName(name string) (*AWSEC2Route, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2Route: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2Route not found", name) +} + +// GetAllAWSEC2RouteTableResources retrieves all AWSEC2RouteTable items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2RouteTableResources() map[string]*AWSEC2RouteTable { + results := map[string]*AWSEC2RouteTable{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2RouteTable: + results[name] = resource + } + } + return results +} + +// GetAWSEC2RouteTableWithName retrieves all AWSEC2RouteTable items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2RouteTableWithName(name string) (*AWSEC2RouteTable, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2RouteTable: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2RouteTable not found", name) +} + +// GetAllAWSEC2SecurityGroupResources retrieves all AWSEC2SecurityGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2SecurityGroupResources() map[string]*AWSEC2SecurityGroup { + results := map[string]*AWSEC2SecurityGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2SecurityGroup: + results[name] = resource + } + } + return results +} + +// GetAWSEC2SecurityGroupWithName retrieves all AWSEC2SecurityGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2SecurityGroupWithName(name string) (*AWSEC2SecurityGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2SecurityGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2SecurityGroup not found", name) +} + +// GetAllAWSEC2SecurityGroupEgressResources retrieves all AWSEC2SecurityGroupEgress items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2SecurityGroupEgressResources() map[string]*AWSEC2SecurityGroupEgress { + results := map[string]*AWSEC2SecurityGroupEgress{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2SecurityGroupEgress: + results[name] = resource + } + } + return results +} + +// GetAWSEC2SecurityGroupEgressWithName retrieves all AWSEC2SecurityGroupEgress items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2SecurityGroupEgressWithName(name string) (*AWSEC2SecurityGroupEgress, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2SecurityGroupEgress: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2SecurityGroupEgress not found", name) +} + +// GetAllAWSEC2SecurityGroupIngressResources retrieves all AWSEC2SecurityGroupIngress items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2SecurityGroupIngressResources() map[string]*AWSEC2SecurityGroupIngress { + results := map[string]*AWSEC2SecurityGroupIngress{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2SecurityGroupIngress: + results[name] = resource + } + } + return results +} + +// GetAWSEC2SecurityGroupIngressWithName retrieves all AWSEC2SecurityGroupIngress items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2SecurityGroupIngressWithName(name string) (*AWSEC2SecurityGroupIngress, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2SecurityGroupIngress: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2SecurityGroupIngress not found", name) +} + +// GetAllAWSEC2SpotFleetResources retrieves all AWSEC2SpotFleet items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2SpotFleetResources() map[string]*AWSEC2SpotFleet { + results := map[string]*AWSEC2SpotFleet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2SpotFleet: + results[name] = resource + } + } + return results +} + +// GetAWSEC2SpotFleetWithName retrieves all AWSEC2SpotFleet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2SpotFleetWithName(name string) (*AWSEC2SpotFleet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2SpotFleet: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2SpotFleet not found", name) +} + +// GetAllAWSEC2SubnetResources retrieves all AWSEC2Subnet items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2SubnetResources() map[string]*AWSEC2Subnet { + results := map[string]*AWSEC2Subnet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2Subnet: + results[name] = resource + } + } + return results +} + +// GetAWSEC2SubnetWithName retrieves all AWSEC2Subnet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2SubnetWithName(name string) (*AWSEC2Subnet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2Subnet: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2Subnet not found", name) +} + +// GetAllAWSEC2SubnetCidrBlockResources retrieves all AWSEC2SubnetCidrBlock items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2SubnetCidrBlockResources() map[string]*AWSEC2SubnetCidrBlock { + results := map[string]*AWSEC2SubnetCidrBlock{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2SubnetCidrBlock: + results[name] = resource + } + } + return results +} + +// GetAWSEC2SubnetCidrBlockWithName retrieves all AWSEC2SubnetCidrBlock items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2SubnetCidrBlockWithName(name string) (*AWSEC2SubnetCidrBlock, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2SubnetCidrBlock: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2SubnetCidrBlock not found", name) +} + +// GetAllAWSEC2SubnetNetworkAclAssociationResources retrieves all AWSEC2SubnetNetworkAclAssociation items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2SubnetNetworkAclAssociationResources() map[string]*AWSEC2SubnetNetworkAclAssociation { + results := map[string]*AWSEC2SubnetNetworkAclAssociation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2SubnetNetworkAclAssociation: + results[name] = resource + } + } + return results +} + +// GetAWSEC2SubnetNetworkAclAssociationWithName retrieves all AWSEC2SubnetNetworkAclAssociation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2SubnetNetworkAclAssociationWithName(name string) (*AWSEC2SubnetNetworkAclAssociation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2SubnetNetworkAclAssociation: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2SubnetNetworkAclAssociation not found", name) +} + +// GetAllAWSEC2SubnetRouteTableAssociationResources retrieves all AWSEC2SubnetRouteTableAssociation items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2SubnetRouteTableAssociationResources() map[string]*AWSEC2SubnetRouteTableAssociation { + results := map[string]*AWSEC2SubnetRouteTableAssociation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2SubnetRouteTableAssociation: + results[name] = resource + } + } + return results +} + +// GetAWSEC2SubnetRouteTableAssociationWithName retrieves all AWSEC2SubnetRouteTableAssociation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2SubnetRouteTableAssociationWithName(name string) (*AWSEC2SubnetRouteTableAssociation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2SubnetRouteTableAssociation: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2SubnetRouteTableAssociation not found", name) +} + +// GetAllAWSEC2TransitGatewayResources retrieves all AWSEC2TransitGateway items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2TransitGatewayResources() map[string]*AWSEC2TransitGateway { + results := map[string]*AWSEC2TransitGateway{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2TransitGateway: + results[name] = resource + } + } + return results +} + +// GetAWSEC2TransitGatewayWithName retrieves all AWSEC2TransitGateway items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2TransitGatewayWithName(name string) (*AWSEC2TransitGateway, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2TransitGateway: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2TransitGateway not found", name) +} + +// GetAllAWSEC2TransitGatewayAttachmentResources retrieves all AWSEC2TransitGatewayAttachment items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2TransitGatewayAttachmentResources() map[string]*AWSEC2TransitGatewayAttachment { + results := map[string]*AWSEC2TransitGatewayAttachment{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2TransitGatewayAttachment: + results[name] = resource + } + } + return results +} + +// GetAWSEC2TransitGatewayAttachmentWithName retrieves all AWSEC2TransitGatewayAttachment items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2TransitGatewayAttachmentWithName(name string) (*AWSEC2TransitGatewayAttachment, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2TransitGatewayAttachment: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2TransitGatewayAttachment not found", name) +} + +// GetAllAWSEC2TransitGatewayRouteResources retrieves all AWSEC2TransitGatewayRoute items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2TransitGatewayRouteResources() map[string]*AWSEC2TransitGatewayRoute { + results := map[string]*AWSEC2TransitGatewayRoute{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2TransitGatewayRoute: + results[name] = resource + } + } + return results +} + +// GetAWSEC2TransitGatewayRouteWithName retrieves all AWSEC2TransitGatewayRoute items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2TransitGatewayRouteWithName(name string) (*AWSEC2TransitGatewayRoute, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2TransitGatewayRoute: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2TransitGatewayRoute not found", name) +} + +// GetAllAWSEC2TransitGatewayRouteTableResources retrieves all AWSEC2TransitGatewayRouteTable items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2TransitGatewayRouteTableResources() map[string]*AWSEC2TransitGatewayRouteTable { + results := map[string]*AWSEC2TransitGatewayRouteTable{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2TransitGatewayRouteTable: + results[name] = resource + } + } + return results +} + +// GetAWSEC2TransitGatewayRouteTableWithName retrieves all AWSEC2TransitGatewayRouteTable items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2TransitGatewayRouteTableWithName(name string) (*AWSEC2TransitGatewayRouteTable, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2TransitGatewayRouteTable: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2TransitGatewayRouteTable not found", name) +} + +// GetAllAWSEC2TransitGatewayRouteTableAssociationResources retrieves all AWSEC2TransitGatewayRouteTableAssociation items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2TransitGatewayRouteTableAssociationResources() map[string]*AWSEC2TransitGatewayRouteTableAssociation { + results := map[string]*AWSEC2TransitGatewayRouteTableAssociation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2TransitGatewayRouteTableAssociation: + results[name] = resource + } + } + return results +} + +// GetAWSEC2TransitGatewayRouteTableAssociationWithName retrieves all AWSEC2TransitGatewayRouteTableAssociation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2TransitGatewayRouteTableAssociationWithName(name string) (*AWSEC2TransitGatewayRouteTableAssociation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2TransitGatewayRouteTableAssociation: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2TransitGatewayRouteTableAssociation not found", name) +} + +// GetAllAWSEC2TransitGatewayRouteTablePropagationResources retrieves all AWSEC2TransitGatewayRouteTablePropagation items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2TransitGatewayRouteTablePropagationResources() map[string]*AWSEC2TransitGatewayRouteTablePropagation { + results := map[string]*AWSEC2TransitGatewayRouteTablePropagation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2TransitGatewayRouteTablePropagation: + results[name] = resource + } + } + return results +} + +// GetAWSEC2TransitGatewayRouteTablePropagationWithName retrieves all AWSEC2TransitGatewayRouteTablePropagation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2TransitGatewayRouteTablePropagationWithName(name string) (*AWSEC2TransitGatewayRouteTablePropagation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2TransitGatewayRouteTablePropagation: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2TransitGatewayRouteTablePropagation not found", name) +} + +// GetAllAWSEC2TrunkInterfaceAssociationResources retrieves all AWSEC2TrunkInterfaceAssociation items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2TrunkInterfaceAssociationResources() map[string]*AWSEC2TrunkInterfaceAssociation { + results := map[string]*AWSEC2TrunkInterfaceAssociation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2TrunkInterfaceAssociation: + results[name] = resource + } + } + return results +} + +// GetAWSEC2TrunkInterfaceAssociationWithName retrieves all AWSEC2TrunkInterfaceAssociation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2TrunkInterfaceAssociationWithName(name string) (*AWSEC2TrunkInterfaceAssociation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2TrunkInterfaceAssociation: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2TrunkInterfaceAssociation not found", name) +} + +// GetAllAWSEC2VPCResources retrieves all AWSEC2VPC items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2VPCResources() map[string]*AWSEC2VPC { + results := map[string]*AWSEC2VPC{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2VPC: + results[name] = resource + } + } + return results +} + +// GetAWSEC2VPCWithName retrieves all AWSEC2VPC items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2VPCWithName(name string) (*AWSEC2VPC, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2VPC: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2VPC not found", name) +} + +// GetAllAWSEC2VPCCidrBlockResources retrieves all AWSEC2VPCCidrBlock items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2VPCCidrBlockResources() map[string]*AWSEC2VPCCidrBlock { + results := map[string]*AWSEC2VPCCidrBlock{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2VPCCidrBlock: + results[name] = resource + } + } + return results +} + +// GetAWSEC2VPCCidrBlockWithName retrieves all AWSEC2VPCCidrBlock items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2VPCCidrBlockWithName(name string) (*AWSEC2VPCCidrBlock, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2VPCCidrBlock: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2VPCCidrBlock not found", name) +} + +// GetAllAWSEC2VPCDHCPOptionsAssociationResources retrieves all AWSEC2VPCDHCPOptionsAssociation items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2VPCDHCPOptionsAssociationResources() map[string]*AWSEC2VPCDHCPOptionsAssociation { + results := map[string]*AWSEC2VPCDHCPOptionsAssociation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2VPCDHCPOptionsAssociation: + results[name] = resource + } + } + return results +} + +// GetAWSEC2VPCDHCPOptionsAssociationWithName retrieves all AWSEC2VPCDHCPOptionsAssociation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2VPCDHCPOptionsAssociationWithName(name string) (*AWSEC2VPCDHCPOptionsAssociation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2VPCDHCPOptionsAssociation: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2VPCDHCPOptionsAssociation not found", name) +} + +// GetAllAWSEC2VPCEndpointResources retrieves all AWSEC2VPCEndpoint items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2VPCEndpointResources() map[string]*AWSEC2VPCEndpoint { + results := map[string]*AWSEC2VPCEndpoint{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2VPCEndpoint: + results[name] = resource + } + } + return results +} + +// GetAWSEC2VPCEndpointWithName retrieves all AWSEC2VPCEndpoint items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2VPCEndpointWithName(name string) (*AWSEC2VPCEndpoint, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2VPCEndpoint: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2VPCEndpoint not found", name) +} + +// GetAllAWSEC2VPCEndpointConnectionNotificationResources retrieves all AWSEC2VPCEndpointConnectionNotification items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2VPCEndpointConnectionNotificationResources() map[string]*AWSEC2VPCEndpointConnectionNotification { + results := map[string]*AWSEC2VPCEndpointConnectionNotification{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2VPCEndpointConnectionNotification: + results[name] = resource + } + } + return results +} + +// GetAWSEC2VPCEndpointConnectionNotificationWithName retrieves all AWSEC2VPCEndpointConnectionNotification items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2VPCEndpointConnectionNotificationWithName(name string) (*AWSEC2VPCEndpointConnectionNotification, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2VPCEndpointConnectionNotification: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2VPCEndpointConnectionNotification not found", name) +} + +// GetAllAWSEC2VPCEndpointServicePermissionsResources retrieves all AWSEC2VPCEndpointServicePermissions items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2VPCEndpointServicePermissionsResources() map[string]*AWSEC2VPCEndpointServicePermissions { + results := map[string]*AWSEC2VPCEndpointServicePermissions{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2VPCEndpointServicePermissions: + results[name] = resource + } + } + return results +} + +// GetAWSEC2VPCEndpointServicePermissionsWithName retrieves all AWSEC2VPCEndpointServicePermissions items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2VPCEndpointServicePermissionsWithName(name string) (*AWSEC2VPCEndpointServicePermissions, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2VPCEndpointServicePermissions: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2VPCEndpointServicePermissions not found", name) +} + +// GetAllAWSEC2VPCGatewayAttachmentResources retrieves all AWSEC2VPCGatewayAttachment items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2VPCGatewayAttachmentResources() map[string]*AWSEC2VPCGatewayAttachment { + results := map[string]*AWSEC2VPCGatewayAttachment{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2VPCGatewayAttachment: + results[name] = resource + } + } + return results +} + +// GetAWSEC2VPCGatewayAttachmentWithName retrieves all AWSEC2VPCGatewayAttachment items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2VPCGatewayAttachmentWithName(name string) (*AWSEC2VPCGatewayAttachment, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2VPCGatewayAttachment: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2VPCGatewayAttachment not found", name) +} + +// GetAllAWSEC2VPCPeeringConnectionResources retrieves all AWSEC2VPCPeeringConnection items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2VPCPeeringConnectionResources() map[string]*AWSEC2VPCPeeringConnection { + results := map[string]*AWSEC2VPCPeeringConnection{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2VPCPeeringConnection: + results[name] = resource + } + } + return results +} + +// GetAWSEC2VPCPeeringConnectionWithName retrieves all AWSEC2VPCPeeringConnection items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2VPCPeeringConnectionWithName(name string) (*AWSEC2VPCPeeringConnection, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2VPCPeeringConnection: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2VPCPeeringConnection not found", name) +} + +// GetAllAWSEC2VPNConnectionResources retrieves all AWSEC2VPNConnection items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2VPNConnectionResources() map[string]*AWSEC2VPNConnection { + results := map[string]*AWSEC2VPNConnection{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2VPNConnection: + results[name] = resource + } + } + return results +} + +// GetAWSEC2VPNConnectionWithName retrieves all AWSEC2VPNConnection items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2VPNConnectionWithName(name string) (*AWSEC2VPNConnection, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2VPNConnection: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2VPNConnection not found", name) +} + +// GetAllAWSEC2VPNConnectionRouteResources retrieves all AWSEC2VPNConnectionRoute items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2VPNConnectionRouteResources() map[string]*AWSEC2VPNConnectionRoute { + results := map[string]*AWSEC2VPNConnectionRoute{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2VPNConnectionRoute: + results[name] = resource + } + } + return results +} + +// GetAWSEC2VPNConnectionRouteWithName retrieves all AWSEC2VPNConnectionRoute items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2VPNConnectionRouteWithName(name string) (*AWSEC2VPNConnectionRoute, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2VPNConnectionRoute: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2VPNConnectionRoute not found", name) +} + +// GetAllAWSEC2VPNGatewayResources retrieves all AWSEC2VPNGateway items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2VPNGatewayResources() map[string]*AWSEC2VPNGateway { + results := map[string]*AWSEC2VPNGateway{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2VPNGateway: + results[name] = resource + } + } + return results +} + +// GetAWSEC2VPNGatewayWithName retrieves all AWSEC2VPNGateway items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2VPNGatewayWithName(name string) (*AWSEC2VPNGateway, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2VPNGateway: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2VPNGateway not found", name) +} + +// GetAllAWSEC2VPNGatewayRoutePropagationResources retrieves all AWSEC2VPNGatewayRoutePropagation items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2VPNGatewayRoutePropagationResources() map[string]*AWSEC2VPNGatewayRoutePropagation { + results := map[string]*AWSEC2VPNGatewayRoutePropagation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2VPNGatewayRoutePropagation: + results[name] = resource + } + } + return results +} + +// GetAWSEC2VPNGatewayRoutePropagationWithName retrieves all AWSEC2VPNGatewayRoutePropagation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2VPNGatewayRoutePropagationWithName(name string) (*AWSEC2VPNGatewayRoutePropagation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2VPNGatewayRoutePropagation: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2VPNGatewayRoutePropagation not found", name) +} + +// GetAllAWSEC2VolumeResources retrieves all AWSEC2Volume items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2VolumeResources() map[string]*AWSEC2Volume { + results := map[string]*AWSEC2Volume{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2Volume: + results[name] = resource + } + } + return results +} + +// GetAWSEC2VolumeWithName retrieves all AWSEC2Volume items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2VolumeWithName(name string) (*AWSEC2Volume, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2Volume: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2Volume not found", name) +} + +// GetAllAWSEC2VolumeAttachmentResources retrieves all AWSEC2VolumeAttachment items from an AWS CloudFormation template +func (t *Template) GetAllAWSEC2VolumeAttachmentResources() map[string]*AWSEC2VolumeAttachment { + results := map[string]*AWSEC2VolumeAttachment{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEC2VolumeAttachment: + results[name] = resource + } + } + return results +} + +// GetAWSEC2VolumeAttachmentWithName retrieves all AWSEC2VolumeAttachment items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEC2VolumeAttachmentWithName(name string) (*AWSEC2VolumeAttachment, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEC2VolumeAttachment: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEC2VolumeAttachment not found", name) +} + +// GetAllAWSECRRepositoryResources retrieves all AWSECRRepository items from an AWS CloudFormation template +func (t *Template) GetAllAWSECRRepositoryResources() map[string]*AWSECRRepository { + results := map[string]*AWSECRRepository{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSECRRepository: + results[name] = resource + } + } + return results +} + +// GetAWSECRRepositoryWithName retrieves all AWSECRRepository items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSECRRepositoryWithName(name string) (*AWSECRRepository, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSECRRepository: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSECRRepository not found", name) +} + +// GetAllAWSECSClusterResources retrieves all AWSECSCluster items from an AWS CloudFormation template +func (t *Template) GetAllAWSECSClusterResources() map[string]*AWSECSCluster { + results := map[string]*AWSECSCluster{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSECSCluster: + results[name] = resource + } + } + return results +} + +// GetAWSECSClusterWithName retrieves all AWSECSCluster items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSECSClusterWithName(name string) (*AWSECSCluster, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSECSCluster: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSECSCluster not found", name) +} + +// GetAllAWSECSServiceResources retrieves all AWSECSService items from an AWS CloudFormation template +func (t *Template) GetAllAWSECSServiceResources() map[string]*AWSECSService { + results := map[string]*AWSECSService{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSECSService: + results[name] = resource + } + } + return results +} + +// GetAWSECSServiceWithName retrieves all AWSECSService items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSECSServiceWithName(name string) (*AWSECSService, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSECSService: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSECSService not found", name) +} + +// GetAllAWSECSTaskDefinitionResources retrieves all AWSECSTaskDefinition items from an AWS CloudFormation template +func (t *Template) GetAllAWSECSTaskDefinitionResources() map[string]*AWSECSTaskDefinition { + results := map[string]*AWSECSTaskDefinition{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSECSTaskDefinition: + results[name] = resource + } + } + return results +} + +// GetAWSECSTaskDefinitionWithName retrieves all AWSECSTaskDefinition items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSECSTaskDefinitionWithName(name string) (*AWSECSTaskDefinition, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSECSTaskDefinition: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSECSTaskDefinition not found", name) +} + +// GetAllAWSEFSFileSystemResources retrieves all AWSEFSFileSystem items from an AWS CloudFormation template +func (t *Template) GetAllAWSEFSFileSystemResources() map[string]*AWSEFSFileSystem { + results := map[string]*AWSEFSFileSystem{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEFSFileSystem: + results[name] = resource + } + } + return results +} + +// GetAWSEFSFileSystemWithName retrieves all AWSEFSFileSystem items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEFSFileSystemWithName(name string) (*AWSEFSFileSystem, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEFSFileSystem: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEFSFileSystem not found", name) +} + +// GetAllAWSEFSMountTargetResources retrieves all AWSEFSMountTarget items from an AWS CloudFormation template +func (t *Template) GetAllAWSEFSMountTargetResources() map[string]*AWSEFSMountTarget { + results := map[string]*AWSEFSMountTarget{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEFSMountTarget: + results[name] = resource + } + } + return results +} + +// GetAWSEFSMountTargetWithName retrieves all AWSEFSMountTarget items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEFSMountTargetWithName(name string) (*AWSEFSMountTarget, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEFSMountTarget: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEFSMountTarget not found", name) +} + +// GetAllAWSEKSClusterResources retrieves all AWSEKSCluster items from an AWS CloudFormation template +func (t *Template) GetAllAWSEKSClusterResources() map[string]*AWSEKSCluster { + results := map[string]*AWSEKSCluster{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEKSCluster: + results[name] = resource + } + } + return results +} + +// GetAWSEKSClusterWithName retrieves all AWSEKSCluster items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEKSClusterWithName(name string) (*AWSEKSCluster, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEKSCluster: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEKSCluster not found", name) +} + +// GetAllAWSEMRClusterResources retrieves all AWSEMRCluster items from an AWS CloudFormation template +func (t *Template) GetAllAWSEMRClusterResources() map[string]*AWSEMRCluster { + results := map[string]*AWSEMRCluster{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEMRCluster: + results[name] = resource + } + } + return results +} + +// GetAWSEMRClusterWithName retrieves all AWSEMRCluster items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEMRClusterWithName(name string) (*AWSEMRCluster, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEMRCluster: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEMRCluster not found", name) +} + +// GetAllAWSEMRInstanceFleetConfigResources retrieves all AWSEMRInstanceFleetConfig items from an AWS CloudFormation template +func (t *Template) GetAllAWSEMRInstanceFleetConfigResources() map[string]*AWSEMRInstanceFleetConfig { + results := map[string]*AWSEMRInstanceFleetConfig{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEMRInstanceFleetConfig: + results[name] = resource + } + } + return results +} + +// GetAWSEMRInstanceFleetConfigWithName retrieves all AWSEMRInstanceFleetConfig items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEMRInstanceFleetConfigWithName(name string) (*AWSEMRInstanceFleetConfig, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEMRInstanceFleetConfig: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEMRInstanceFleetConfig not found", name) +} + +// GetAllAWSEMRInstanceGroupConfigResources retrieves all AWSEMRInstanceGroupConfig items from an AWS CloudFormation template +func (t *Template) GetAllAWSEMRInstanceGroupConfigResources() map[string]*AWSEMRInstanceGroupConfig { + results := map[string]*AWSEMRInstanceGroupConfig{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEMRInstanceGroupConfig: + results[name] = resource + } + } + return results +} + +// GetAWSEMRInstanceGroupConfigWithName retrieves all AWSEMRInstanceGroupConfig items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEMRInstanceGroupConfigWithName(name string) (*AWSEMRInstanceGroupConfig, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEMRInstanceGroupConfig: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEMRInstanceGroupConfig not found", name) +} + +// GetAllAWSEMRSecurityConfigurationResources retrieves all AWSEMRSecurityConfiguration items from an AWS CloudFormation template +func (t *Template) GetAllAWSEMRSecurityConfigurationResources() map[string]*AWSEMRSecurityConfiguration { + results := map[string]*AWSEMRSecurityConfiguration{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEMRSecurityConfiguration: + results[name] = resource + } + } + return results +} + +// GetAWSEMRSecurityConfigurationWithName retrieves all AWSEMRSecurityConfiguration items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEMRSecurityConfigurationWithName(name string) (*AWSEMRSecurityConfiguration, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEMRSecurityConfiguration: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEMRSecurityConfiguration not found", name) +} + +// GetAllAWSEMRStepResources retrieves all AWSEMRStep items from an AWS CloudFormation template +func (t *Template) GetAllAWSEMRStepResources() map[string]*AWSEMRStep { + results := map[string]*AWSEMRStep{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEMRStep: + results[name] = resource + } + } + return results +} + +// GetAWSEMRStepWithName retrieves all AWSEMRStep items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEMRStepWithName(name string) (*AWSEMRStep, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEMRStep: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEMRStep not found", name) +} + +// GetAllAWSElastiCacheCacheClusterResources retrieves all AWSElastiCacheCacheCluster items from an AWS CloudFormation template +func (t *Template) GetAllAWSElastiCacheCacheClusterResources() map[string]*AWSElastiCacheCacheCluster { + results := map[string]*AWSElastiCacheCacheCluster{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSElastiCacheCacheCluster: + results[name] = resource + } + } + return results +} + +// GetAWSElastiCacheCacheClusterWithName retrieves all AWSElastiCacheCacheCluster items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSElastiCacheCacheClusterWithName(name string) (*AWSElastiCacheCacheCluster, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSElastiCacheCacheCluster: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSElastiCacheCacheCluster not found", name) +} + +// GetAllAWSElastiCacheParameterGroupResources retrieves all AWSElastiCacheParameterGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSElastiCacheParameterGroupResources() map[string]*AWSElastiCacheParameterGroup { + results := map[string]*AWSElastiCacheParameterGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSElastiCacheParameterGroup: + results[name] = resource + } + } + return results +} + +// GetAWSElastiCacheParameterGroupWithName retrieves all AWSElastiCacheParameterGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSElastiCacheParameterGroupWithName(name string) (*AWSElastiCacheParameterGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSElastiCacheParameterGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSElastiCacheParameterGroup not found", name) +} + +// GetAllAWSElastiCacheReplicationGroupResources retrieves all AWSElastiCacheReplicationGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSElastiCacheReplicationGroupResources() map[string]*AWSElastiCacheReplicationGroup { + results := map[string]*AWSElastiCacheReplicationGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSElastiCacheReplicationGroup: + results[name] = resource + } + } + return results +} + +// GetAWSElastiCacheReplicationGroupWithName retrieves all AWSElastiCacheReplicationGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSElastiCacheReplicationGroupWithName(name string) (*AWSElastiCacheReplicationGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSElastiCacheReplicationGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSElastiCacheReplicationGroup not found", name) +} + +// GetAllAWSElastiCacheSecurityGroupResources retrieves all AWSElastiCacheSecurityGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSElastiCacheSecurityGroupResources() map[string]*AWSElastiCacheSecurityGroup { + results := map[string]*AWSElastiCacheSecurityGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSElastiCacheSecurityGroup: + results[name] = resource + } + } + return results +} + +// GetAWSElastiCacheSecurityGroupWithName retrieves all AWSElastiCacheSecurityGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSElastiCacheSecurityGroupWithName(name string) (*AWSElastiCacheSecurityGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSElastiCacheSecurityGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSElastiCacheSecurityGroup not found", name) +} + +// GetAllAWSElastiCacheSecurityGroupIngressResources retrieves all AWSElastiCacheSecurityGroupIngress items from an AWS CloudFormation template +func (t *Template) GetAllAWSElastiCacheSecurityGroupIngressResources() map[string]*AWSElastiCacheSecurityGroupIngress { + results := map[string]*AWSElastiCacheSecurityGroupIngress{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSElastiCacheSecurityGroupIngress: + results[name] = resource + } + } + return results +} + +// GetAWSElastiCacheSecurityGroupIngressWithName retrieves all AWSElastiCacheSecurityGroupIngress items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSElastiCacheSecurityGroupIngressWithName(name string) (*AWSElastiCacheSecurityGroupIngress, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSElastiCacheSecurityGroupIngress: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSElastiCacheSecurityGroupIngress not found", name) +} + +// GetAllAWSElastiCacheSubnetGroupResources retrieves all AWSElastiCacheSubnetGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSElastiCacheSubnetGroupResources() map[string]*AWSElastiCacheSubnetGroup { + results := map[string]*AWSElastiCacheSubnetGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSElastiCacheSubnetGroup: + results[name] = resource + } + } + return results +} + +// GetAWSElastiCacheSubnetGroupWithName retrieves all AWSElastiCacheSubnetGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSElastiCacheSubnetGroupWithName(name string) (*AWSElastiCacheSubnetGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSElastiCacheSubnetGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSElastiCacheSubnetGroup not found", name) +} + +// GetAllAWSElasticBeanstalkApplicationResources retrieves all AWSElasticBeanstalkApplication items from an AWS CloudFormation template +func (t *Template) GetAllAWSElasticBeanstalkApplicationResources() map[string]*AWSElasticBeanstalkApplication { + results := map[string]*AWSElasticBeanstalkApplication{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSElasticBeanstalkApplication: + results[name] = resource + } + } + return results +} + +// GetAWSElasticBeanstalkApplicationWithName retrieves all AWSElasticBeanstalkApplication items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSElasticBeanstalkApplicationWithName(name string) (*AWSElasticBeanstalkApplication, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSElasticBeanstalkApplication: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSElasticBeanstalkApplication not found", name) +} + +// GetAllAWSElasticBeanstalkApplicationVersionResources retrieves all AWSElasticBeanstalkApplicationVersion items from an AWS CloudFormation template +func (t *Template) GetAllAWSElasticBeanstalkApplicationVersionResources() map[string]*AWSElasticBeanstalkApplicationVersion { + results := map[string]*AWSElasticBeanstalkApplicationVersion{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSElasticBeanstalkApplicationVersion: + results[name] = resource + } + } + return results +} + +// GetAWSElasticBeanstalkApplicationVersionWithName retrieves all AWSElasticBeanstalkApplicationVersion items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSElasticBeanstalkApplicationVersionWithName(name string) (*AWSElasticBeanstalkApplicationVersion, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSElasticBeanstalkApplicationVersion: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSElasticBeanstalkApplicationVersion not found", name) +} + +// GetAllAWSElasticBeanstalkConfigurationTemplateResources retrieves all AWSElasticBeanstalkConfigurationTemplate items from an AWS CloudFormation template +func (t *Template) GetAllAWSElasticBeanstalkConfigurationTemplateResources() map[string]*AWSElasticBeanstalkConfigurationTemplate { + results := map[string]*AWSElasticBeanstalkConfigurationTemplate{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSElasticBeanstalkConfigurationTemplate: + results[name] = resource + } + } + return results +} + +// GetAWSElasticBeanstalkConfigurationTemplateWithName retrieves all AWSElasticBeanstalkConfigurationTemplate items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSElasticBeanstalkConfigurationTemplateWithName(name string) (*AWSElasticBeanstalkConfigurationTemplate, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSElasticBeanstalkConfigurationTemplate: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSElasticBeanstalkConfigurationTemplate not found", name) +} + +// GetAllAWSElasticBeanstalkEnvironmentResources retrieves all AWSElasticBeanstalkEnvironment items from an AWS CloudFormation template +func (t *Template) GetAllAWSElasticBeanstalkEnvironmentResources() map[string]*AWSElasticBeanstalkEnvironment { + results := map[string]*AWSElasticBeanstalkEnvironment{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSElasticBeanstalkEnvironment: + results[name] = resource + } + } + return results +} + +// GetAWSElasticBeanstalkEnvironmentWithName retrieves all AWSElasticBeanstalkEnvironment items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSElasticBeanstalkEnvironmentWithName(name string) (*AWSElasticBeanstalkEnvironment, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSElasticBeanstalkEnvironment: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSElasticBeanstalkEnvironment not found", name) +} + +// GetAllAWSElasticLoadBalancingLoadBalancerResources retrieves all AWSElasticLoadBalancingLoadBalancer items from an AWS CloudFormation template +func (t *Template) GetAllAWSElasticLoadBalancingLoadBalancerResources() map[string]*AWSElasticLoadBalancingLoadBalancer { + results := map[string]*AWSElasticLoadBalancingLoadBalancer{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSElasticLoadBalancingLoadBalancer: + results[name] = resource + } + } + return results +} + +// GetAWSElasticLoadBalancingLoadBalancerWithName retrieves all AWSElasticLoadBalancingLoadBalancer items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSElasticLoadBalancingLoadBalancerWithName(name string) (*AWSElasticLoadBalancingLoadBalancer, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSElasticLoadBalancingLoadBalancer: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSElasticLoadBalancingLoadBalancer not found", name) +} + +// GetAllAWSElasticLoadBalancingV2ListenerResources retrieves all AWSElasticLoadBalancingV2Listener items from an AWS CloudFormation template +func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerResources() map[string]*AWSElasticLoadBalancingV2Listener { + results := map[string]*AWSElasticLoadBalancingV2Listener{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSElasticLoadBalancingV2Listener: + results[name] = resource + } + } + return results +} + +// GetAWSElasticLoadBalancingV2ListenerWithName retrieves all AWSElasticLoadBalancingV2Listener items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSElasticLoadBalancingV2ListenerWithName(name string) (*AWSElasticLoadBalancingV2Listener, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSElasticLoadBalancingV2Listener: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSElasticLoadBalancingV2Listener not found", name) +} + +// GetAllAWSElasticLoadBalancingV2ListenerCertificateResources retrieves all AWSElasticLoadBalancingV2ListenerCertificate items from an AWS CloudFormation template +func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerCertificateResources() map[string]*AWSElasticLoadBalancingV2ListenerCertificate { + results := map[string]*AWSElasticLoadBalancingV2ListenerCertificate{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSElasticLoadBalancingV2ListenerCertificate: + results[name] = resource + } + } + return results +} + +// GetAWSElasticLoadBalancingV2ListenerCertificateWithName retrieves all AWSElasticLoadBalancingV2ListenerCertificate items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSElasticLoadBalancingV2ListenerCertificateWithName(name string) (*AWSElasticLoadBalancingV2ListenerCertificate, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSElasticLoadBalancingV2ListenerCertificate: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSElasticLoadBalancingV2ListenerCertificate not found", name) +} + +// GetAllAWSElasticLoadBalancingV2ListenerRuleResources retrieves all AWSElasticLoadBalancingV2ListenerRule items from an AWS CloudFormation template +func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerRuleResources() map[string]*AWSElasticLoadBalancingV2ListenerRule { + results := map[string]*AWSElasticLoadBalancingV2ListenerRule{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSElasticLoadBalancingV2ListenerRule: + results[name] = resource + } + } + return results +} + +// GetAWSElasticLoadBalancingV2ListenerRuleWithName retrieves all AWSElasticLoadBalancingV2ListenerRule items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSElasticLoadBalancingV2ListenerRuleWithName(name string) (*AWSElasticLoadBalancingV2ListenerRule, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSElasticLoadBalancingV2ListenerRule: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSElasticLoadBalancingV2ListenerRule not found", name) +} + +// GetAllAWSElasticLoadBalancingV2LoadBalancerResources retrieves all AWSElasticLoadBalancingV2LoadBalancer items from an AWS CloudFormation template +func (t *Template) GetAllAWSElasticLoadBalancingV2LoadBalancerResources() map[string]*AWSElasticLoadBalancingV2LoadBalancer { + results := map[string]*AWSElasticLoadBalancingV2LoadBalancer{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSElasticLoadBalancingV2LoadBalancer: + results[name] = resource + } + } + return results +} + +// GetAWSElasticLoadBalancingV2LoadBalancerWithName retrieves all AWSElasticLoadBalancingV2LoadBalancer items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSElasticLoadBalancingV2LoadBalancerWithName(name string) (*AWSElasticLoadBalancingV2LoadBalancer, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSElasticLoadBalancingV2LoadBalancer: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSElasticLoadBalancingV2LoadBalancer not found", name) +} + +// GetAllAWSElasticLoadBalancingV2TargetGroupResources retrieves all AWSElasticLoadBalancingV2TargetGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSElasticLoadBalancingV2TargetGroupResources() map[string]*AWSElasticLoadBalancingV2TargetGroup { + results := map[string]*AWSElasticLoadBalancingV2TargetGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSElasticLoadBalancingV2TargetGroup: + results[name] = resource + } + } + return results +} + +// GetAWSElasticLoadBalancingV2TargetGroupWithName retrieves all AWSElasticLoadBalancingV2TargetGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSElasticLoadBalancingV2TargetGroupWithName(name string) (*AWSElasticLoadBalancingV2TargetGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSElasticLoadBalancingV2TargetGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSElasticLoadBalancingV2TargetGroup not found", name) +} + +// GetAllAWSElasticsearchDomainResources retrieves all AWSElasticsearchDomain items from an AWS CloudFormation template +func (t *Template) GetAllAWSElasticsearchDomainResources() map[string]*AWSElasticsearchDomain { + results := map[string]*AWSElasticsearchDomain{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSElasticsearchDomain: + results[name] = resource + } + } + return results +} + +// GetAWSElasticsearchDomainWithName retrieves all AWSElasticsearchDomain items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSElasticsearchDomainWithName(name string) (*AWSElasticsearchDomain, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSElasticsearchDomain: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSElasticsearchDomain not found", name) +} + +// GetAllAWSEventsEventBusPolicyResources retrieves all AWSEventsEventBusPolicy items from an AWS CloudFormation template +func (t *Template) GetAllAWSEventsEventBusPolicyResources() map[string]*AWSEventsEventBusPolicy { + results := map[string]*AWSEventsEventBusPolicy{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEventsEventBusPolicy: + results[name] = resource + } + } + return results +} + +// GetAWSEventsEventBusPolicyWithName retrieves all AWSEventsEventBusPolicy items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEventsEventBusPolicyWithName(name string) (*AWSEventsEventBusPolicy, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEventsEventBusPolicy: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEventsEventBusPolicy not found", name) +} + +// GetAllAWSEventsRuleResources retrieves all AWSEventsRule items from an AWS CloudFormation template +func (t *Template) GetAllAWSEventsRuleResources() map[string]*AWSEventsRule { + results := map[string]*AWSEventsRule{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSEventsRule: + results[name] = resource + } + } + return results +} + +// GetAWSEventsRuleWithName retrieves all AWSEventsRule items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSEventsRuleWithName(name string) (*AWSEventsRule, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSEventsRule: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSEventsRule not found", name) +} + +// GetAllAWSFSxFileSystemResources retrieves all AWSFSxFileSystem items from an AWS CloudFormation template +func (t *Template) GetAllAWSFSxFileSystemResources() map[string]*AWSFSxFileSystem { + results := map[string]*AWSFSxFileSystem{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSFSxFileSystem: + results[name] = resource + } + } + return results +} + +// GetAWSFSxFileSystemWithName retrieves all AWSFSxFileSystem items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSFSxFileSystemWithName(name string) (*AWSFSxFileSystem, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSFSxFileSystem: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSFSxFileSystem not found", name) +} + +// GetAllAWSGameLiftAliasResources retrieves all AWSGameLiftAlias items from an AWS CloudFormation template +func (t *Template) GetAllAWSGameLiftAliasResources() map[string]*AWSGameLiftAlias { + results := map[string]*AWSGameLiftAlias{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSGameLiftAlias: + results[name] = resource + } + } + return results +} + +// GetAWSGameLiftAliasWithName retrieves all AWSGameLiftAlias items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSGameLiftAliasWithName(name string) (*AWSGameLiftAlias, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSGameLiftAlias: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSGameLiftAlias not found", name) +} + +// GetAllAWSGameLiftBuildResources retrieves all AWSGameLiftBuild items from an AWS CloudFormation template +func (t *Template) GetAllAWSGameLiftBuildResources() map[string]*AWSGameLiftBuild { + results := map[string]*AWSGameLiftBuild{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSGameLiftBuild: + results[name] = resource + } + } + return results +} + +// GetAWSGameLiftBuildWithName retrieves all AWSGameLiftBuild items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSGameLiftBuildWithName(name string) (*AWSGameLiftBuild, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSGameLiftBuild: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSGameLiftBuild not found", name) +} + +// GetAllAWSGameLiftFleetResources retrieves all AWSGameLiftFleet items from an AWS CloudFormation template +func (t *Template) GetAllAWSGameLiftFleetResources() map[string]*AWSGameLiftFleet { + results := map[string]*AWSGameLiftFleet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSGameLiftFleet: + results[name] = resource + } + } + return results +} + +// GetAWSGameLiftFleetWithName retrieves all AWSGameLiftFleet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSGameLiftFleetWithName(name string) (*AWSGameLiftFleet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSGameLiftFleet: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSGameLiftFleet not found", name) +} + +// GetAllAWSGlueClassifierResources retrieves all AWSGlueClassifier items from an AWS CloudFormation template +func (t *Template) GetAllAWSGlueClassifierResources() map[string]*AWSGlueClassifier { + results := map[string]*AWSGlueClassifier{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSGlueClassifier: + results[name] = resource + } + } + return results +} + +// GetAWSGlueClassifierWithName retrieves all AWSGlueClassifier items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSGlueClassifierWithName(name string) (*AWSGlueClassifier, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSGlueClassifier: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSGlueClassifier not found", name) +} + +// GetAllAWSGlueConnectionResources retrieves all AWSGlueConnection items from an AWS CloudFormation template +func (t *Template) GetAllAWSGlueConnectionResources() map[string]*AWSGlueConnection { + results := map[string]*AWSGlueConnection{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSGlueConnection: + results[name] = resource + } + } + return results +} + +// GetAWSGlueConnectionWithName retrieves all AWSGlueConnection items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSGlueConnectionWithName(name string) (*AWSGlueConnection, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSGlueConnection: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSGlueConnection not found", name) +} + +// GetAllAWSGlueCrawlerResources retrieves all AWSGlueCrawler items from an AWS CloudFormation template +func (t *Template) GetAllAWSGlueCrawlerResources() map[string]*AWSGlueCrawler { + results := map[string]*AWSGlueCrawler{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSGlueCrawler: + results[name] = resource + } + } + return results +} + +// GetAWSGlueCrawlerWithName retrieves all AWSGlueCrawler items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSGlueCrawlerWithName(name string) (*AWSGlueCrawler, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSGlueCrawler: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSGlueCrawler not found", name) +} + +// GetAllAWSGlueDatabaseResources retrieves all AWSGlueDatabase items from an AWS CloudFormation template +func (t *Template) GetAllAWSGlueDatabaseResources() map[string]*AWSGlueDatabase { + results := map[string]*AWSGlueDatabase{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSGlueDatabase: + results[name] = resource + } + } + return results +} + +// GetAWSGlueDatabaseWithName retrieves all AWSGlueDatabase items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSGlueDatabaseWithName(name string) (*AWSGlueDatabase, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSGlueDatabase: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSGlueDatabase not found", name) +} + +// GetAllAWSGlueDevEndpointResources retrieves all AWSGlueDevEndpoint items from an AWS CloudFormation template +func (t *Template) GetAllAWSGlueDevEndpointResources() map[string]*AWSGlueDevEndpoint { + results := map[string]*AWSGlueDevEndpoint{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSGlueDevEndpoint: + results[name] = resource + } + } + return results +} + +// GetAWSGlueDevEndpointWithName retrieves all AWSGlueDevEndpoint items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSGlueDevEndpointWithName(name string) (*AWSGlueDevEndpoint, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSGlueDevEndpoint: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSGlueDevEndpoint not found", name) +} + +// GetAllAWSGlueJobResources retrieves all AWSGlueJob items from an AWS CloudFormation template +func (t *Template) GetAllAWSGlueJobResources() map[string]*AWSGlueJob { + results := map[string]*AWSGlueJob{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSGlueJob: + results[name] = resource + } + } + return results +} + +// GetAWSGlueJobWithName retrieves all AWSGlueJob items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSGlueJobWithName(name string) (*AWSGlueJob, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSGlueJob: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSGlueJob not found", name) +} + +// GetAllAWSGluePartitionResources retrieves all AWSGluePartition items from an AWS CloudFormation template +func (t *Template) GetAllAWSGluePartitionResources() map[string]*AWSGluePartition { + results := map[string]*AWSGluePartition{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSGluePartition: + results[name] = resource + } + } + return results +} + +// GetAWSGluePartitionWithName retrieves all AWSGluePartition items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSGluePartitionWithName(name string) (*AWSGluePartition, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSGluePartition: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSGluePartition not found", name) +} + +// GetAllAWSGlueTableResources retrieves all AWSGlueTable items from an AWS CloudFormation template +func (t *Template) GetAllAWSGlueTableResources() map[string]*AWSGlueTable { + results := map[string]*AWSGlueTable{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSGlueTable: + results[name] = resource + } + } + return results +} + +// GetAWSGlueTableWithName retrieves all AWSGlueTable items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSGlueTableWithName(name string) (*AWSGlueTable, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSGlueTable: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSGlueTable not found", name) +} + +// GetAllAWSGlueTriggerResources retrieves all AWSGlueTrigger items from an AWS CloudFormation template +func (t *Template) GetAllAWSGlueTriggerResources() map[string]*AWSGlueTrigger { + results := map[string]*AWSGlueTrigger{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSGlueTrigger: + results[name] = resource + } + } + return results +} + +// GetAWSGlueTriggerWithName retrieves all AWSGlueTrigger items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSGlueTriggerWithName(name string) (*AWSGlueTrigger, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSGlueTrigger: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSGlueTrigger not found", name) +} + +// GetAllAWSGuardDutyDetectorResources retrieves all AWSGuardDutyDetector items from an AWS CloudFormation template +func (t *Template) GetAllAWSGuardDutyDetectorResources() map[string]*AWSGuardDutyDetector { + results := map[string]*AWSGuardDutyDetector{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSGuardDutyDetector: + results[name] = resource + } + } + return results +} + +// GetAWSGuardDutyDetectorWithName retrieves all AWSGuardDutyDetector items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSGuardDutyDetectorWithName(name string) (*AWSGuardDutyDetector, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSGuardDutyDetector: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSGuardDutyDetector not found", name) +} + +// GetAllAWSGuardDutyFilterResources retrieves all AWSGuardDutyFilter items from an AWS CloudFormation template +func (t *Template) GetAllAWSGuardDutyFilterResources() map[string]*AWSGuardDutyFilter { + results := map[string]*AWSGuardDutyFilter{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSGuardDutyFilter: + results[name] = resource + } + } + return results +} + +// GetAWSGuardDutyFilterWithName retrieves all AWSGuardDutyFilter items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSGuardDutyFilterWithName(name string) (*AWSGuardDutyFilter, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSGuardDutyFilter: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSGuardDutyFilter not found", name) +} + +// GetAllAWSGuardDutyIPSetResources retrieves all AWSGuardDutyIPSet items from an AWS CloudFormation template +func (t *Template) GetAllAWSGuardDutyIPSetResources() map[string]*AWSGuardDutyIPSet { + results := map[string]*AWSGuardDutyIPSet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSGuardDutyIPSet: + results[name] = resource + } + } + return results +} + +// GetAWSGuardDutyIPSetWithName retrieves all AWSGuardDutyIPSet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSGuardDutyIPSetWithName(name string) (*AWSGuardDutyIPSet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSGuardDutyIPSet: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSGuardDutyIPSet not found", name) +} + +// GetAllAWSGuardDutyMasterResources retrieves all AWSGuardDutyMaster items from an AWS CloudFormation template +func (t *Template) GetAllAWSGuardDutyMasterResources() map[string]*AWSGuardDutyMaster { + results := map[string]*AWSGuardDutyMaster{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSGuardDutyMaster: + results[name] = resource + } + } + return results +} + +// GetAWSGuardDutyMasterWithName retrieves all AWSGuardDutyMaster items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSGuardDutyMasterWithName(name string) (*AWSGuardDutyMaster, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSGuardDutyMaster: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSGuardDutyMaster not found", name) +} + +// GetAllAWSGuardDutyMemberResources retrieves all AWSGuardDutyMember items from an AWS CloudFormation template +func (t *Template) GetAllAWSGuardDutyMemberResources() map[string]*AWSGuardDutyMember { + results := map[string]*AWSGuardDutyMember{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSGuardDutyMember: + results[name] = resource + } + } + return results +} + +// GetAWSGuardDutyMemberWithName retrieves all AWSGuardDutyMember items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSGuardDutyMemberWithName(name string) (*AWSGuardDutyMember, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSGuardDutyMember: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSGuardDutyMember not found", name) +} + +// GetAllAWSGuardDutyThreatIntelSetResources retrieves all AWSGuardDutyThreatIntelSet items from an AWS CloudFormation template +func (t *Template) GetAllAWSGuardDutyThreatIntelSetResources() map[string]*AWSGuardDutyThreatIntelSet { + results := map[string]*AWSGuardDutyThreatIntelSet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSGuardDutyThreatIntelSet: + results[name] = resource + } + } + return results +} + +// GetAWSGuardDutyThreatIntelSetWithName retrieves all AWSGuardDutyThreatIntelSet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSGuardDutyThreatIntelSetWithName(name string) (*AWSGuardDutyThreatIntelSet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSGuardDutyThreatIntelSet: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSGuardDutyThreatIntelSet not found", name) +} + +// GetAllAWSIAMAccessKeyResources retrieves all AWSIAMAccessKey items from an AWS CloudFormation template +func (t *Template) GetAllAWSIAMAccessKeyResources() map[string]*AWSIAMAccessKey { + results := map[string]*AWSIAMAccessKey{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIAMAccessKey: + results[name] = resource + } + } + return results +} + +// GetAWSIAMAccessKeyWithName retrieves all AWSIAMAccessKey items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIAMAccessKeyWithName(name string) (*AWSIAMAccessKey, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIAMAccessKey: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSIAMAccessKey not found", name) +} + +// GetAllAWSIAMGroupResources retrieves all AWSIAMGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSIAMGroupResources() map[string]*AWSIAMGroup { + results := map[string]*AWSIAMGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIAMGroup: + results[name] = resource + } + } + return results +} + +// GetAWSIAMGroupWithName retrieves all AWSIAMGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIAMGroupWithName(name string) (*AWSIAMGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIAMGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSIAMGroup not found", name) +} + +// GetAllAWSIAMInstanceProfileResources retrieves all AWSIAMInstanceProfile items from an AWS CloudFormation template +func (t *Template) GetAllAWSIAMInstanceProfileResources() map[string]*AWSIAMInstanceProfile { + results := map[string]*AWSIAMInstanceProfile{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIAMInstanceProfile: + results[name] = resource + } + } + return results +} + +// GetAWSIAMInstanceProfileWithName retrieves all AWSIAMInstanceProfile items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIAMInstanceProfileWithName(name string) (*AWSIAMInstanceProfile, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIAMInstanceProfile: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSIAMInstanceProfile not found", name) +} + +// GetAllAWSIAMManagedPolicyResources retrieves all AWSIAMManagedPolicy items from an AWS CloudFormation template +func (t *Template) GetAllAWSIAMManagedPolicyResources() map[string]*AWSIAMManagedPolicy { + results := map[string]*AWSIAMManagedPolicy{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIAMManagedPolicy: + results[name] = resource + } + } + return results +} + +// GetAWSIAMManagedPolicyWithName retrieves all AWSIAMManagedPolicy items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIAMManagedPolicyWithName(name string) (*AWSIAMManagedPolicy, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIAMManagedPolicy: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSIAMManagedPolicy not found", name) +} + +// GetAllAWSIAMPolicyResources retrieves all AWSIAMPolicy items from an AWS CloudFormation template +func (t *Template) GetAllAWSIAMPolicyResources() map[string]*AWSIAMPolicy { + results := map[string]*AWSIAMPolicy{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIAMPolicy: + results[name] = resource + } + } + return results +} + +// GetAWSIAMPolicyWithName retrieves all AWSIAMPolicy items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIAMPolicyWithName(name string) (*AWSIAMPolicy, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIAMPolicy: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSIAMPolicy not found", name) +} + +// GetAllAWSIAMRoleResources retrieves all AWSIAMRole items from an AWS CloudFormation template +func (t *Template) GetAllAWSIAMRoleResources() map[string]*AWSIAMRole { + results := map[string]*AWSIAMRole{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIAMRole: + results[name] = resource + } + } + return results +} + +// GetAWSIAMRoleWithName retrieves all AWSIAMRole items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIAMRoleWithName(name string) (*AWSIAMRole, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIAMRole: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSIAMRole not found", name) +} + +// GetAllAWSIAMServiceLinkedRoleResources retrieves all AWSIAMServiceLinkedRole items from an AWS CloudFormation template +func (t *Template) GetAllAWSIAMServiceLinkedRoleResources() map[string]*AWSIAMServiceLinkedRole { + results := map[string]*AWSIAMServiceLinkedRole{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIAMServiceLinkedRole: + results[name] = resource + } + } + return results +} + +// GetAWSIAMServiceLinkedRoleWithName retrieves all AWSIAMServiceLinkedRole items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIAMServiceLinkedRoleWithName(name string) (*AWSIAMServiceLinkedRole, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIAMServiceLinkedRole: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSIAMServiceLinkedRole not found", name) +} + +// GetAllAWSIAMUserResources retrieves all AWSIAMUser items from an AWS CloudFormation template +func (t *Template) GetAllAWSIAMUserResources() map[string]*AWSIAMUser { + results := map[string]*AWSIAMUser{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIAMUser: + results[name] = resource + } + } + return results +} + +// GetAWSIAMUserWithName retrieves all AWSIAMUser items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIAMUserWithName(name string) (*AWSIAMUser, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIAMUser: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSIAMUser not found", name) +} + +// GetAllAWSIAMUserToGroupAdditionResources retrieves all AWSIAMUserToGroupAddition items from an AWS CloudFormation template +func (t *Template) GetAllAWSIAMUserToGroupAdditionResources() map[string]*AWSIAMUserToGroupAddition { + results := map[string]*AWSIAMUserToGroupAddition{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIAMUserToGroupAddition: + results[name] = resource + } + } + return results +} + +// GetAWSIAMUserToGroupAdditionWithName retrieves all AWSIAMUserToGroupAddition items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIAMUserToGroupAdditionWithName(name string) (*AWSIAMUserToGroupAddition, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIAMUserToGroupAddition: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSIAMUserToGroupAddition not found", name) +} + +// GetAllAWSInspectorAssessmentTargetResources retrieves all AWSInspectorAssessmentTarget items from an AWS CloudFormation template +func (t *Template) GetAllAWSInspectorAssessmentTargetResources() map[string]*AWSInspectorAssessmentTarget { + results := map[string]*AWSInspectorAssessmentTarget{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSInspectorAssessmentTarget: + results[name] = resource + } + } + return results +} + +// GetAWSInspectorAssessmentTargetWithName retrieves all AWSInspectorAssessmentTarget items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSInspectorAssessmentTargetWithName(name string) (*AWSInspectorAssessmentTarget, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSInspectorAssessmentTarget: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSInspectorAssessmentTarget not found", name) +} + +// GetAllAWSInspectorAssessmentTemplateResources retrieves all AWSInspectorAssessmentTemplate items from an AWS CloudFormation template +func (t *Template) GetAllAWSInspectorAssessmentTemplateResources() map[string]*AWSInspectorAssessmentTemplate { + results := map[string]*AWSInspectorAssessmentTemplate{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSInspectorAssessmentTemplate: + results[name] = resource + } + } + return results +} + +// GetAWSInspectorAssessmentTemplateWithName retrieves all AWSInspectorAssessmentTemplate items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSInspectorAssessmentTemplateWithName(name string) (*AWSInspectorAssessmentTemplate, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSInspectorAssessmentTemplate: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSInspectorAssessmentTemplate not found", name) +} + +// GetAllAWSInspectorResourceGroupResources retrieves all AWSInspectorResourceGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSInspectorResourceGroupResources() map[string]*AWSInspectorResourceGroup { + results := map[string]*AWSInspectorResourceGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSInspectorResourceGroup: + results[name] = resource + } + } + return results +} + +// GetAWSInspectorResourceGroupWithName retrieves all AWSInspectorResourceGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSInspectorResourceGroupWithName(name string) (*AWSInspectorResourceGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSInspectorResourceGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSInspectorResourceGroup not found", name) +} + +// GetAllAWSIoT1ClickDeviceResources retrieves all AWSIoT1ClickDevice items from an AWS CloudFormation template +func (t *Template) GetAllAWSIoT1ClickDeviceResources() map[string]*AWSIoT1ClickDevice { + results := map[string]*AWSIoT1ClickDevice{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIoT1ClickDevice: + results[name] = resource + } + } + return results +} + +// GetAWSIoT1ClickDeviceWithName retrieves all AWSIoT1ClickDevice items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIoT1ClickDeviceWithName(name string) (*AWSIoT1ClickDevice, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIoT1ClickDevice: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSIoT1ClickDevice not found", name) +} + +// GetAllAWSIoT1ClickPlacementResources retrieves all AWSIoT1ClickPlacement items from an AWS CloudFormation template +func (t *Template) GetAllAWSIoT1ClickPlacementResources() map[string]*AWSIoT1ClickPlacement { + results := map[string]*AWSIoT1ClickPlacement{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIoT1ClickPlacement: + results[name] = resource + } + } + return results +} + +// GetAWSIoT1ClickPlacementWithName retrieves all AWSIoT1ClickPlacement items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIoT1ClickPlacementWithName(name string) (*AWSIoT1ClickPlacement, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIoT1ClickPlacement: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSIoT1ClickPlacement not found", name) +} + +// GetAllAWSIoT1ClickProjectResources retrieves all AWSIoT1ClickProject items from an AWS CloudFormation template +func (t *Template) GetAllAWSIoT1ClickProjectResources() map[string]*AWSIoT1ClickProject { + results := map[string]*AWSIoT1ClickProject{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIoT1ClickProject: + results[name] = resource + } + } + return results +} + +// GetAWSIoT1ClickProjectWithName retrieves all AWSIoT1ClickProject items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIoT1ClickProjectWithName(name string) (*AWSIoT1ClickProject, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIoT1ClickProject: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSIoT1ClickProject not found", name) +} + +// GetAllAWSIoTCertificateResources retrieves all AWSIoTCertificate items from an AWS CloudFormation template +func (t *Template) GetAllAWSIoTCertificateResources() map[string]*AWSIoTCertificate { + results := map[string]*AWSIoTCertificate{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIoTCertificate: + results[name] = resource + } + } + return results +} + +// GetAWSIoTCertificateWithName retrieves all AWSIoTCertificate items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIoTCertificateWithName(name string) (*AWSIoTCertificate, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIoTCertificate: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSIoTCertificate not found", name) +} + +// GetAllAWSIoTPolicyResources retrieves all AWSIoTPolicy items from an AWS CloudFormation template +func (t *Template) GetAllAWSIoTPolicyResources() map[string]*AWSIoTPolicy { + results := map[string]*AWSIoTPolicy{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIoTPolicy: + results[name] = resource + } + } + return results +} + +// GetAWSIoTPolicyWithName retrieves all AWSIoTPolicy items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIoTPolicyWithName(name string) (*AWSIoTPolicy, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIoTPolicy: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSIoTPolicy not found", name) +} + +// GetAllAWSIoTPolicyPrincipalAttachmentResources retrieves all AWSIoTPolicyPrincipalAttachment items from an AWS CloudFormation template +func (t *Template) GetAllAWSIoTPolicyPrincipalAttachmentResources() map[string]*AWSIoTPolicyPrincipalAttachment { + results := map[string]*AWSIoTPolicyPrincipalAttachment{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIoTPolicyPrincipalAttachment: + results[name] = resource + } + } + return results +} + +// GetAWSIoTPolicyPrincipalAttachmentWithName retrieves all AWSIoTPolicyPrincipalAttachment items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIoTPolicyPrincipalAttachmentWithName(name string) (*AWSIoTPolicyPrincipalAttachment, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIoTPolicyPrincipalAttachment: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSIoTPolicyPrincipalAttachment not found", name) +} + +// GetAllAWSIoTThingResources retrieves all AWSIoTThing items from an AWS CloudFormation template +func (t *Template) GetAllAWSIoTThingResources() map[string]*AWSIoTThing { + results := map[string]*AWSIoTThing{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIoTThing: + results[name] = resource + } + } + return results +} + +// GetAWSIoTThingWithName retrieves all AWSIoTThing items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIoTThingWithName(name string) (*AWSIoTThing, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIoTThing: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSIoTThing not found", name) +} + +// GetAllAWSIoTThingPrincipalAttachmentResources retrieves all AWSIoTThingPrincipalAttachment items from an AWS CloudFormation template +func (t *Template) GetAllAWSIoTThingPrincipalAttachmentResources() map[string]*AWSIoTThingPrincipalAttachment { + results := map[string]*AWSIoTThingPrincipalAttachment{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIoTThingPrincipalAttachment: + results[name] = resource + } + } + return results +} + +// GetAWSIoTThingPrincipalAttachmentWithName retrieves all AWSIoTThingPrincipalAttachment items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIoTThingPrincipalAttachmentWithName(name string) (*AWSIoTThingPrincipalAttachment, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIoTThingPrincipalAttachment: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSIoTThingPrincipalAttachment not found", name) +} + +// GetAllAWSIoTTopicRuleResources retrieves all AWSIoTTopicRule items from an AWS CloudFormation template +func (t *Template) GetAllAWSIoTTopicRuleResources() map[string]*AWSIoTTopicRule { + results := map[string]*AWSIoTTopicRule{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIoTTopicRule: + results[name] = resource + } + } + return results +} + +// GetAWSIoTTopicRuleWithName retrieves all AWSIoTTopicRule items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIoTTopicRuleWithName(name string) (*AWSIoTTopicRule, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIoTTopicRule: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSIoTTopicRule not found", name) +} + +// GetAllAWSIoTAnalyticsChannelResources retrieves all AWSIoTAnalyticsChannel items from an AWS CloudFormation template +func (t *Template) GetAllAWSIoTAnalyticsChannelResources() map[string]*AWSIoTAnalyticsChannel { + results := map[string]*AWSIoTAnalyticsChannel{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIoTAnalyticsChannel: + results[name] = resource + } + } + return results +} + +// GetAWSIoTAnalyticsChannelWithName retrieves all AWSIoTAnalyticsChannel items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIoTAnalyticsChannelWithName(name string) (*AWSIoTAnalyticsChannel, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIoTAnalyticsChannel: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSIoTAnalyticsChannel not found", name) +} + +// GetAllAWSIoTAnalyticsDatasetResources retrieves all AWSIoTAnalyticsDataset items from an AWS CloudFormation template +func (t *Template) GetAllAWSIoTAnalyticsDatasetResources() map[string]*AWSIoTAnalyticsDataset { + results := map[string]*AWSIoTAnalyticsDataset{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIoTAnalyticsDataset: + results[name] = resource + } + } + return results +} + +// GetAWSIoTAnalyticsDatasetWithName retrieves all AWSIoTAnalyticsDataset items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIoTAnalyticsDatasetWithName(name string) (*AWSIoTAnalyticsDataset, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIoTAnalyticsDataset: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSIoTAnalyticsDataset not found", name) +} + +// GetAllAWSIoTAnalyticsDatastoreResources retrieves all AWSIoTAnalyticsDatastore items from an AWS CloudFormation template +func (t *Template) GetAllAWSIoTAnalyticsDatastoreResources() map[string]*AWSIoTAnalyticsDatastore { + results := map[string]*AWSIoTAnalyticsDatastore{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIoTAnalyticsDatastore: + results[name] = resource + } + } + return results +} + +// GetAWSIoTAnalyticsDatastoreWithName retrieves all AWSIoTAnalyticsDatastore items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIoTAnalyticsDatastoreWithName(name string) (*AWSIoTAnalyticsDatastore, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIoTAnalyticsDatastore: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSIoTAnalyticsDatastore not found", name) +} + +// GetAllAWSIoTAnalyticsPipelineResources retrieves all AWSIoTAnalyticsPipeline items from an AWS CloudFormation template +func (t *Template) GetAllAWSIoTAnalyticsPipelineResources() map[string]*AWSIoTAnalyticsPipeline { + results := map[string]*AWSIoTAnalyticsPipeline{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSIoTAnalyticsPipeline: + results[name] = resource + } + } + return results +} + +// GetAWSIoTAnalyticsPipelineWithName retrieves all AWSIoTAnalyticsPipeline items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSIoTAnalyticsPipelineWithName(name string) (*AWSIoTAnalyticsPipeline, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSIoTAnalyticsPipeline: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSIoTAnalyticsPipeline not found", name) +} + +// GetAllAWSKMSAliasResources retrieves all AWSKMSAlias items from an AWS CloudFormation template +func (t *Template) GetAllAWSKMSAliasResources() map[string]*AWSKMSAlias { + results := map[string]*AWSKMSAlias{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSKMSAlias: + results[name] = resource + } + } + return results +} + +// GetAWSKMSAliasWithName retrieves all AWSKMSAlias items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSKMSAliasWithName(name string) (*AWSKMSAlias, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSKMSAlias: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSKMSAlias not found", name) +} + +// GetAllAWSKMSKeyResources retrieves all AWSKMSKey items from an AWS CloudFormation template +func (t *Template) GetAllAWSKMSKeyResources() map[string]*AWSKMSKey { + results := map[string]*AWSKMSKey{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSKMSKey: + results[name] = resource + } + } + return results +} + +// GetAWSKMSKeyWithName retrieves all AWSKMSKey items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSKMSKeyWithName(name string) (*AWSKMSKey, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSKMSKey: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSKMSKey not found", name) +} + +// GetAllAWSKinesisStreamResources retrieves all AWSKinesisStream items from an AWS CloudFormation template +func (t *Template) GetAllAWSKinesisStreamResources() map[string]*AWSKinesisStream { + results := map[string]*AWSKinesisStream{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSKinesisStream: + results[name] = resource + } + } + return results +} + +// GetAWSKinesisStreamWithName retrieves all AWSKinesisStream items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSKinesisStreamWithName(name string) (*AWSKinesisStream, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSKinesisStream: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSKinesisStream not found", name) +} + +// GetAllAWSKinesisStreamConsumerResources retrieves all AWSKinesisStreamConsumer items from an AWS CloudFormation template +func (t *Template) GetAllAWSKinesisStreamConsumerResources() map[string]*AWSKinesisStreamConsumer { + results := map[string]*AWSKinesisStreamConsumer{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSKinesisStreamConsumer: + results[name] = resource + } + } + return results +} + +// GetAWSKinesisStreamConsumerWithName retrieves all AWSKinesisStreamConsumer items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSKinesisStreamConsumerWithName(name string) (*AWSKinesisStreamConsumer, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSKinesisStreamConsumer: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSKinesisStreamConsumer not found", name) +} + +// GetAllAWSKinesisAnalyticsApplicationResources retrieves all AWSKinesisAnalyticsApplication items from an AWS CloudFormation template +func (t *Template) GetAllAWSKinesisAnalyticsApplicationResources() map[string]*AWSKinesisAnalyticsApplication { + results := map[string]*AWSKinesisAnalyticsApplication{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSKinesisAnalyticsApplication: + results[name] = resource + } + } + return results +} + +// GetAWSKinesisAnalyticsApplicationWithName retrieves all AWSKinesisAnalyticsApplication items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSKinesisAnalyticsApplicationWithName(name string) (*AWSKinesisAnalyticsApplication, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSKinesisAnalyticsApplication: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSKinesisAnalyticsApplication not found", name) +} + +// GetAllAWSKinesisAnalyticsApplicationOutputResources retrieves all AWSKinesisAnalyticsApplicationOutput items from an AWS CloudFormation template +func (t *Template) GetAllAWSKinesisAnalyticsApplicationOutputResources() map[string]*AWSKinesisAnalyticsApplicationOutput { + results := map[string]*AWSKinesisAnalyticsApplicationOutput{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSKinesisAnalyticsApplicationOutput: + results[name] = resource + } + } + return results +} + +// GetAWSKinesisAnalyticsApplicationOutputWithName retrieves all AWSKinesisAnalyticsApplicationOutput items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSKinesisAnalyticsApplicationOutputWithName(name string) (*AWSKinesisAnalyticsApplicationOutput, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSKinesisAnalyticsApplicationOutput: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSKinesisAnalyticsApplicationOutput not found", name) +} + +// GetAllAWSKinesisAnalyticsApplicationReferenceDataSourceResources retrieves all AWSKinesisAnalyticsApplicationReferenceDataSource items from an AWS CloudFormation template +func (t *Template) GetAllAWSKinesisAnalyticsApplicationReferenceDataSourceResources() map[string]*AWSKinesisAnalyticsApplicationReferenceDataSource { + results := map[string]*AWSKinesisAnalyticsApplicationReferenceDataSource{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSKinesisAnalyticsApplicationReferenceDataSource: + results[name] = resource + } + } + return results +} + +// GetAWSKinesisAnalyticsApplicationReferenceDataSourceWithName retrieves all AWSKinesisAnalyticsApplicationReferenceDataSource items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSKinesisAnalyticsApplicationReferenceDataSourceWithName(name string) (*AWSKinesisAnalyticsApplicationReferenceDataSource, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSKinesisAnalyticsApplicationReferenceDataSource: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSKinesisAnalyticsApplicationReferenceDataSource not found", name) +} + +// GetAllAWSKinesisAnalyticsV2ApplicationResources retrieves all AWSKinesisAnalyticsV2Application items from an AWS CloudFormation template +func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationResources() map[string]*AWSKinesisAnalyticsV2Application { + results := map[string]*AWSKinesisAnalyticsV2Application{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSKinesisAnalyticsV2Application: + results[name] = resource + } + } + return results +} + +// GetAWSKinesisAnalyticsV2ApplicationWithName retrieves all AWSKinesisAnalyticsV2Application items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSKinesisAnalyticsV2ApplicationWithName(name string) (*AWSKinesisAnalyticsV2Application, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSKinesisAnalyticsV2Application: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSKinesisAnalyticsV2Application not found", name) +} + +// GetAllAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionResources retrieves all AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption items from an AWS CloudFormation template +func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionResources() map[string]*AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption { + results := map[string]*AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption: + results[name] = resource + } + } + return results +} + +// GetAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionWithName retrieves all AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionWithName(name string) (*AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption not found", name) +} + +// GetAllAWSKinesisAnalyticsV2ApplicationOutputResources retrieves all AWSKinesisAnalyticsV2ApplicationOutput items from an AWS CloudFormation template +func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationOutputResources() map[string]*AWSKinesisAnalyticsV2ApplicationOutput { + results := map[string]*AWSKinesisAnalyticsV2ApplicationOutput{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSKinesisAnalyticsV2ApplicationOutput: + results[name] = resource + } + } + return results +} + +// GetAWSKinesisAnalyticsV2ApplicationOutputWithName retrieves all AWSKinesisAnalyticsV2ApplicationOutput items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSKinesisAnalyticsV2ApplicationOutputWithName(name string) (*AWSKinesisAnalyticsV2ApplicationOutput, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSKinesisAnalyticsV2ApplicationOutput: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSKinesisAnalyticsV2ApplicationOutput not found", name) +} + +// GetAllAWSKinesisAnalyticsV2ApplicationReferenceDataSourceResources retrieves all AWSKinesisAnalyticsV2ApplicationReferenceDataSource items from an AWS CloudFormation template +func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationReferenceDataSourceResources() map[string]*AWSKinesisAnalyticsV2ApplicationReferenceDataSource { + results := map[string]*AWSKinesisAnalyticsV2ApplicationReferenceDataSource{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSKinesisAnalyticsV2ApplicationReferenceDataSource: + results[name] = resource + } + } + return results +} + +// GetAWSKinesisAnalyticsV2ApplicationReferenceDataSourceWithName retrieves all AWSKinesisAnalyticsV2ApplicationReferenceDataSource items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSKinesisAnalyticsV2ApplicationReferenceDataSourceWithName(name string) (*AWSKinesisAnalyticsV2ApplicationReferenceDataSource, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSKinesisAnalyticsV2ApplicationReferenceDataSource: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSKinesisAnalyticsV2ApplicationReferenceDataSource not found", name) +} + +// GetAllAWSKinesisFirehoseDeliveryStreamResources retrieves all AWSKinesisFirehoseDeliveryStream items from an AWS CloudFormation template +func (t *Template) GetAllAWSKinesisFirehoseDeliveryStreamResources() map[string]*AWSKinesisFirehoseDeliveryStream { + results := map[string]*AWSKinesisFirehoseDeliveryStream{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSKinesisFirehoseDeliveryStream: + results[name] = resource + } + } + return results +} + +// GetAWSKinesisFirehoseDeliveryStreamWithName retrieves all AWSKinesisFirehoseDeliveryStream items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSKinesisFirehoseDeliveryStreamWithName(name string) (*AWSKinesisFirehoseDeliveryStream, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSKinesisFirehoseDeliveryStream: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSKinesisFirehoseDeliveryStream not found", name) +} + +// GetAllAWSLambdaAliasResources retrieves all AWSLambdaAlias items from an AWS CloudFormation template +func (t *Template) GetAllAWSLambdaAliasResources() map[string]*AWSLambdaAlias { + results := map[string]*AWSLambdaAlias{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSLambdaAlias: + results[name] = resource + } + } + return results +} + +// GetAWSLambdaAliasWithName retrieves all AWSLambdaAlias items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSLambdaAliasWithName(name string) (*AWSLambdaAlias, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSLambdaAlias: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSLambdaAlias not found", name) +} + +// GetAllAWSLambdaEventSourceMappingResources retrieves all AWSLambdaEventSourceMapping items from an AWS CloudFormation template +func (t *Template) GetAllAWSLambdaEventSourceMappingResources() map[string]*AWSLambdaEventSourceMapping { + results := map[string]*AWSLambdaEventSourceMapping{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSLambdaEventSourceMapping: + results[name] = resource + } + } + return results +} + +// GetAWSLambdaEventSourceMappingWithName retrieves all AWSLambdaEventSourceMapping items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSLambdaEventSourceMappingWithName(name string) (*AWSLambdaEventSourceMapping, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSLambdaEventSourceMapping: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSLambdaEventSourceMapping not found", name) +} + +// GetAllAWSLambdaFunctionResources retrieves all AWSLambdaFunction items from an AWS CloudFormation template +func (t *Template) GetAllAWSLambdaFunctionResources() map[string]*AWSLambdaFunction { + results := map[string]*AWSLambdaFunction{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSLambdaFunction: + results[name] = resource + } + } + return results +} + +// GetAWSLambdaFunctionWithName retrieves all AWSLambdaFunction items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSLambdaFunctionWithName(name string) (*AWSLambdaFunction, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSLambdaFunction: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSLambdaFunction not found", name) +} + +// GetAllAWSLambdaLayerVersionResources retrieves all AWSLambdaLayerVersion items from an AWS CloudFormation template +func (t *Template) GetAllAWSLambdaLayerVersionResources() map[string]*AWSLambdaLayerVersion { + results := map[string]*AWSLambdaLayerVersion{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSLambdaLayerVersion: + results[name] = resource + } + } + return results +} + +// GetAWSLambdaLayerVersionWithName retrieves all AWSLambdaLayerVersion items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSLambdaLayerVersionWithName(name string) (*AWSLambdaLayerVersion, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSLambdaLayerVersion: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSLambdaLayerVersion not found", name) +} + +// GetAllAWSLambdaLayerVersionPermissionResources retrieves all AWSLambdaLayerVersionPermission items from an AWS CloudFormation template +func (t *Template) GetAllAWSLambdaLayerVersionPermissionResources() map[string]*AWSLambdaLayerVersionPermission { + results := map[string]*AWSLambdaLayerVersionPermission{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSLambdaLayerVersionPermission: + results[name] = resource + } + } + return results +} + +// GetAWSLambdaLayerVersionPermissionWithName retrieves all AWSLambdaLayerVersionPermission items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSLambdaLayerVersionPermissionWithName(name string) (*AWSLambdaLayerVersionPermission, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSLambdaLayerVersionPermission: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSLambdaLayerVersionPermission not found", name) +} + +// GetAllAWSLambdaPermissionResources retrieves all AWSLambdaPermission items from an AWS CloudFormation template +func (t *Template) GetAllAWSLambdaPermissionResources() map[string]*AWSLambdaPermission { + results := map[string]*AWSLambdaPermission{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSLambdaPermission: + results[name] = resource + } + } + return results +} + +// GetAWSLambdaPermissionWithName retrieves all AWSLambdaPermission items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSLambdaPermissionWithName(name string) (*AWSLambdaPermission, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSLambdaPermission: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSLambdaPermission not found", name) +} + +// GetAllAWSLambdaVersionResources retrieves all AWSLambdaVersion items from an AWS CloudFormation template +func (t *Template) GetAllAWSLambdaVersionResources() map[string]*AWSLambdaVersion { + results := map[string]*AWSLambdaVersion{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSLambdaVersion: + results[name] = resource + } + } + return results +} + +// GetAWSLambdaVersionWithName retrieves all AWSLambdaVersion items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSLambdaVersionWithName(name string) (*AWSLambdaVersion, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSLambdaVersion: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSLambdaVersion not found", name) +} + +// GetAllAWSLogsDestinationResources retrieves all AWSLogsDestination items from an AWS CloudFormation template +func (t *Template) GetAllAWSLogsDestinationResources() map[string]*AWSLogsDestination { + results := map[string]*AWSLogsDestination{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSLogsDestination: + results[name] = resource + } + } + return results +} + +// GetAWSLogsDestinationWithName retrieves all AWSLogsDestination items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSLogsDestinationWithName(name string) (*AWSLogsDestination, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSLogsDestination: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSLogsDestination not found", name) +} + +// GetAllAWSLogsLogGroupResources retrieves all AWSLogsLogGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSLogsLogGroupResources() map[string]*AWSLogsLogGroup { + results := map[string]*AWSLogsLogGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSLogsLogGroup: + results[name] = resource + } + } + return results +} + +// GetAWSLogsLogGroupWithName retrieves all AWSLogsLogGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSLogsLogGroupWithName(name string) (*AWSLogsLogGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSLogsLogGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSLogsLogGroup not found", name) +} + +// GetAllAWSLogsLogStreamResources retrieves all AWSLogsLogStream items from an AWS CloudFormation template +func (t *Template) GetAllAWSLogsLogStreamResources() map[string]*AWSLogsLogStream { + results := map[string]*AWSLogsLogStream{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSLogsLogStream: + results[name] = resource + } + } + return results +} + +// GetAWSLogsLogStreamWithName retrieves all AWSLogsLogStream items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSLogsLogStreamWithName(name string) (*AWSLogsLogStream, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSLogsLogStream: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSLogsLogStream not found", name) +} + +// GetAllAWSLogsMetricFilterResources retrieves all AWSLogsMetricFilter items from an AWS CloudFormation template +func (t *Template) GetAllAWSLogsMetricFilterResources() map[string]*AWSLogsMetricFilter { + results := map[string]*AWSLogsMetricFilter{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSLogsMetricFilter: + results[name] = resource + } + } + return results +} + +// GetAWSLogsMetricFilterWithName retrieves all AWSLogsMetricFilter items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSLogsMetricFilterWithName(name string) (*AWSLogsMetricFilter, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSLogsMetricFilter: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSLogsMetricFilter not found", name) +} + +// GetAllAWSLogsSubscriptionFilterResources retrieves all AWSLogsSubscriptionFilter items from an AWS CloudFormation template +func (t *Template) GetAllAWSLogsSubscriptionFilterResources() map[string]*AWSLogsSubscriptionFilter { + results := map[string]*AWSLogsSubscriptionFilter{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSLogsSubscriptionFilter: + results[name] = resource + } + } + return results +} + +// GetAWSLogsSubscriptionFilterWithName retrieves all AWSLogsSubscriptionFilter items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSLogsSubscriptionFilterWithName(name string) (*AWSLogsSubscriptionFilter, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSLogsSubscriptionFilter: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSLogsSubscriptionFilter not found", name) +} + +// GetAllAWSNeptuneDBClusterResources retrieves all AWSNeptuneDBCluster items from an AWS CloudFormation template +func (t *Template) GetAllAWSNeptuneDBClusterResources() map[string]*AWSNeptuneDBCluster { + results := map[string]*AWSNeptuneDBCluster{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSNeptuneDBCluster: + results[name] = resource + } + } + return results +} + +// GetAWSNeptuneDBClusterWithName retrieves all AWSNeptuneDBCluster items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSNeptuneDBClusterWithName(name string) (*AWSNeptuneDBCluster, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSNeptuneDBCluster: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSNeptuneDBCluster not found", name) +} + +// GetAllAWSNeptuneDBClusterParameterGroupResources retrieves all AWSNeptuneDBClusterParameterGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSNeptuneDBClusterParameterGroupResources() map[string]*AWSNeptuneDBClusterParameterGroup { + results := map[string]*AWSNeptuneDBClusterParameterGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSNeptuneDBClusterParameterGroup: + results[name] = resource + } + } + return results +} + +// GetAWSNeptuneDBClusterParameterGroupWithName retrieves all AWSNeptuneDBClusterParameterGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSNeptuneDBClusterParameterGroupWithName(name string) (*AWSNeptuneDBClusterParameterGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSNeptuneDBClusterParameterGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSNeptuneDBClusterParameterGroup not found", name) +} + +// GetAllAWSNeptuneDBInstanceResources retrieves all AWSNeptuneDBInstance items from an AWS CloudFormation template +func (t *Template) GetAllAWSNeptuneDBInstanceResources() map[string]*AWSNeptuneDBInstance { + results := map[string]*AWSNeptuneDBInstance{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSNeptuneDBInstance: + results[name] = resource + } + } + return results +} + +// GetAWSNeptuneDBInstanceWithName retrieves all AWSNeptuneDBInstance items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSNeptuneDBInstanceWithName(name string) (*AWSNeptuneDBInstance, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSNeptuneDBInstance: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSNeptuneDBInstance not found", name) +} + +// GetAllAWSNeptuneDBParameterGroupResources retrieves all AWSNeptuneDBParameterGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSNeptuneDBParameterGroupResources() map[string]*AWSNeptuneDBParameterGroup { + results := map[string]*AWSNeptuneDBParameterGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSNeptuneDBParameterGroup: + results[name] = resource + } + } + return results +} + +// GetAWSNeptuneDBParameterGroupWithName retrieves all AWSNeptuneDBParameterGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSNeptuneDBParameterGroupWithName(name string) (*AWSNeptuneDBParameterGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSNeptuneDBParameterGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSNeptuneDBParameterGroup not found", name) +} + +// GetAllAWSNeptuneDBSubnetGroupResources retrieves all AWSNeptuneDBSubnetGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSNeptuneDBSubnetGroupResources() map[string]*AWSNeptuneDBSubnetGroup { + results := map[string]*AWSNeptuneDBSubnetGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSNeptuneDBSubnetGroup: + results[name] = resource + } + } + return results +} + +// GetAWSNeptuneDBSubnetGroupWithName retrieves all AWSNeptuneDBSubnetGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSNeptuneDBSubnetGroupWithName(name string) (*AWSNeptuneDBSubnetGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSNeptuneDBSubnetGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSNeptuneDBSubnetGroup not found", name) +} + +// GetAllAWSOpsWorksAppResources retrieves all AWSOpsWorksApp items from an AWS CloudFormation template +func (t *Template) GetAllAWSOpsWorksAppResources() map[string]*AWSOpsWorksApp { + results := map[string]*AWSOpsWorksApp{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSOpsWorksApp: + results[name] = resource + } + } + return results +} + +// GetAWSOpsWorksAppWithName retrieves all AWSOpsWorksApp items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSOpsWorksAppWithName(name string) (*AWSOpsWorksApp, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSOpsWorksApp: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSOpsWorksApp not found", name) +} + +// GetAllAWSOpsWorksElasticLoadBalancerAttachmentResources retrieves all AWSOpsWorksElasticLoadBalancerAttachment items from an AWS CloudFormation template +func (t *Template) GetAllAWSOpsWorksElasticLoadBalancerAttachmentResources() map[string]*AWSOpsWorksElasticLoadBalancerAttachment { + results := map[string]*AWSOpsWorksElasticLoadBalancerAttachment{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSOpsWorksElasticLoadBalancerAttachment: + results[name] = resource + } + } + return results +} + +// GetAWSOpsWorksElasticLoadBalancerAttachmentWithName retrieves all AWSOpsWorksElasticLoadBalancerAttachment items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSOpsWorksElasticLoadBalancerAttachmentWithName(name string) (*AWSOpsWorksElasticLoadBalancerAttachment, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSOpsWorksElasticLoadBalancerAttachment: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSOpsWorksElasticLoadBalancerAttachment not found", name) +} + +// GetAllAWSOpsWorksInstanceResources retrieves all AWSOpsWorksInstance items from an AWS CloudFormation template +func (t *Template) GetAllAWSOpsWorksInstanceResources() map[string]*AWSOpsWorksInstance { + results := map[string]*AWSOpsWorksInstance{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSOpsWorksInstance: + results[name] = resource + } + } + return results +} + +// GetAWSOpsWorksInstanceWithName retrieves all AWSOpsWorksInstance items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSOpsWorksInstanceWithName(name string) (*AWSOpsWorksInstance, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSOpsWorksInstance: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSOpsWorksInstance not found", name) +} + +// GetAllAWSOpsWorksLayerResources retrieves all AWSOpsWorksLayer items from an AWS CloudFormation template +func (t *Template) GetAllAWSOpsWorksLayerResources() map[string]*AWSOpsWorksLayer { + results := map[string]*AWSOpsWorksLayer{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSOpsWorksLayer: + results[name] = resource + } + } + return results +} + +// GetAWSOpsWorksLayerWithName retrieves all AWSOpsWorksLayer items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSOpsWorksLayerWithName(name string) (*AWSOpsWorksLayer, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSOpsWorksLayer: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSOpsWorksLayer not found", name) +} + +// GetAllAWSOpsWorksStackResources retrieves all AWSOpsWorksStack items from an AWS CloudFormation template +func (t *Template) GetAllAWSOpsWorksStackResources() map[string]*AWSOpsWorksStack { + results := map[string]*AWSOpsWorksStack{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSOpsWorksStack: + results[name] = resource + } + } + return results +} + +// GetAWSOpsWorksStackWithName retrieves all AWSOpsWorksStack items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSOpsWorksStackWithName(name string) (*AWSOpsWorksStack, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSOpsWorksStack: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSOpsWorksStack not found", name) +} + +// GetAllAWSOpsWorksUserProfileResources retrieves all AWSOpsWorksUserProfile items from an AWS CloudFormation template +func (t *Template) GetAllAWSOpsWorksUserProfileResources() map[string]*AWSOpsWorksUserProfile { + results := map[string]*AWSOpsWorksUserProfile{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSOpsWorksUserProfile: + results[name] = resource + } + } + return results +} + +// GetAWSOpsWorksUserProfileWithName retrieves all AWSOpsWorksUserProfile items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSOpsWorksUserProfileWithName(name string) (*AWSOpsWorksUserProfile, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSOpsWorksUserProfile: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSOpsWorksUserProfile not found", name) +} + +// GetAllAWSOpsWorksVolumeResources retrieves all AWSOpsWorksVolume items from an AWS CloudFormation template +func (t *Template) GetAllAWSOpsWorksVolumeResources() map[string]*AWSOpsWorksVolume { + results := map[string]*AWSOpsWorksVolume{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSOpsWorksVolume: + results[name] = resource + } + } + return results +} + +// GetAWSOpsWorksVolumeWithName retrieves all AWSOpsWorksVolume items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSOpsWorksVolumeWithName(name string) (*AWSOpsWorksVolume, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSOpsWorksVolume: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSOpsWorksVolume not found", name) +} + +// GetAllAWSOpsWorksCMServerResources retrieves all AWSOpsWorksCMServer items from an AWS CloudFormation template +func (t *Template) GetAllAWSOpsWorksCMServerResources() map[string]*AWSOpsWorksCMServer { + results := map[string]*AWSOpsWorksCMServer{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSOpsWorksCMServer: + results[name] = resource + } + } + return results +} + +// GetAWSOpsWorksCMServerWithName retrieves all AWSOpsWorksCMServer items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSOpsWorksCMServerWithName(name string) (*AWSOpsWorksCMServer, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSOpsWorksCMServer: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSOpsWorksCMServer not found", name) +} + +// GetAllAWSRAMResourceShareResources retrieves all AWSRAMResourceShare items from an AWS CloudFormation template +func (t *Template) GetAllAWSRAMResourceShareResources() map[string]*AWSRAMResourceShare { + results := map[string]*AWSRAMResourceShare{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRAMResourceShare: + results[name] = resource + } + } + return results +} + +// GetAWSRAMResourceShareWithName retrieves all AWSRAMResourceShare items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRAMResourceShareWithName(name string) (*AWSRAMResourceShare, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRAMResourceShare: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRAMResourceShare not found", name) +} + +// GetAllAWSRDSDBClusterResources retrieves all AWSRDSDBCluster items from an AWS CloudFormation template +func (t *Template) GetAllAWSRDSDBClusterResources() map[string]*AWSRDSDBCluster { + results := map[string]*AWSRDSDBCluster{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRDSDBCluster: + results[name] = resource + } + } + return results +} + +// GetAWSRDSDBClusterWithName retrieves all AWSRDSDBCluster items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRDSDBClusterWithName(name string) (*AWSRDSDBCluster, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRDSDBCluster: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRDSDBCluster not found", name) +} + +// GetAllAWSRDSDBClusterParameterGroupResources retrieves all AWSRDSDBClusterParameterGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSRDSDBClusterParameterGroupResources() map[string]*AWSRDSDBClusterParameterGroup { + results := map[string]*AWSRDSDBClusterParameterGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRDSDBClusterParameterGroup: + results[name] = resource + } + } + return results +} + +// GetAWSRDSDBClusterParameterGroupWithName retrieves all AWSRDSDBClusterParameterGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRDSDBClusterParameterGroupWithName(name string) (*AWSRDSDBClusterParameterGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRDSDBClusterParameterGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRDSDBClusterParameterGroup not found", name) +} + +// GetAllAWSRDSDBInstanceResources retrieves all AWSRDSDBInstance items from an AWS CloudFormation template +func (t *Template) GetAllAWSRDSDBInstanceResources() map[string]*AWSRDSDBInstance { + results := map[string]*AWSRDSDBInstance{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRDSDBInstance: + results[name] = resource + } + } + return results +} + +// GetAWSRDSDBInstanceWithName retrieves all AWSRDSDBInstance items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRDSDBInstanceWithName(name string) (*AWSRDSDBInstance, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRDSDBInstance: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRDSDBInstance not found", name) +} + +// GetAllAWSRDSDBParameterGroupResources retrieves all AWSRDSDBParameterGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSRDSDBParameterGroupResources() map[string]*AWSRDSDBParameterGroup { + results := map[string]*AWSRDSDBParameterGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRDSDBParameterGroup: + results[name] = resource + } + } + return results +} + +// GetAWSRDSDBParameterGroupWithName retrieves all AWSRDSDBParameterGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRDSDBParameterGroupWithName(name string) (*AWSRDSDBParameterGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRDSDBParameterGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRDSDBParameterGroup not found", name) +} + +// GetAllAWSRDSDBSecurityGroupResources retrieves all AWSRDSDBSecurityGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSRDSDBSecurityGroupResources() map[string]*AWSRDSDBSecurityGroup { + results := map[string]*AWSRDSDBSecurityGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRDSDBSecurityGroup: + results[name] = resource + } + } + return results +} + +// GetAWSRDSDBSecurityGroupWithName retrieves all AWSRDSDBSecurityGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRDSDBSecurityGroupWithName(name string) (*AWSRDSDBSecurityGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRDSDBSecurityGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRDSDBSecurityGroup not found", name) +} + +// GetAllAWSRDSDBSecurityGroupIngressResources retrieves all AWSRDSDBSecurityGroupIngress items from an AWS CloudFormation template +func (t *Template) GetAllAWSRDSDBSecurityGroupIngressResources() map[string]*AWSRDSDBSecurityGroupIngress { + results := map[string]*AWSRDSDBSecurityGroupIngress{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRDSDBSecurityGroupIngress: + results[name] = resource + } + } + return results +} + +// GetAWSRDSDBSecurityGroupIngressWithName retrieves all AWSRDSDBSecurityGroupIngress items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRDSDBSecurityGroupIngressWithName(name string) (*AWSRDSDBSecurityGroupIngress, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRDSDBSecurityGroupIngress: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRDSDBSecurityGroupIngress not found", name) +} + +// GetAllAWSRDSDBSubnetGroupResources retrieves all AWSRDSDBSubnetGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSRDSDBSubnetGroupResources() map[string]*AWSRDSDBSubnetGroup { + results := map[string]*AWSRDSDBSubnetGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRDSDBSubnetGroup: + results[name] = resource + } + } + return results +} + +// GetAWSRDSDBSubnetGroupWithName retrieves all AWSRDSDBSubnetGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRDSDBSubnetGroupWithName(name string) (*AWSRDSDBSubnetGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRDSDBSubnetGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRDSDBSubnetGroup not found", name) +} + +// GetAllAWSRDSEventSubscriptionResources retrieves all AWSRDSEventSubscription items from an AWS CloudFormation template +func (t *Template) GetAllAWSRDSEventSubscriptionResources() map[string]*AWSRDSEventSubscription { + results := map[string]*AWSRDSEventSubscription{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRDSEventSubscription: + results[name] = resource + } + } + return results +} + +// GetAWSRDSEventSubscriptionWithName retrieves all AWSRDSEventSubscription items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRDSEventSubscriptionWithName(name string) (*AWSRDSEventSubscription, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRDSEventSubscription: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRDSEventSubscription not found", name) +} + +// GetAllAWSRDSOptionGroupResources retrieves all AWSRDSOptionGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSRDSOptionGroupResources() map[string]*AWSRDSOptionGroup { + results := map[string]*AWSRDSOptionGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRDSOptionGroup: + results[name] = resource + } + } + return results +} + +// GetAWSRDSOptionGroupWithName retrieves all AWSRDSOptionGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRDSOptionGroupWithName(name string) (*AWSRDSOptionGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRDSOptionGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRDSOptionGroup not found", name) +} + +// GetAllAWSRedshiftClusterResources retrieves all AWSRedshiftCluster items from an AWS CloudFormation template +func (t *Template) GetAllAWSRedshiftClusterResources() map[string]*AWSRedshiftCluster { + results := map[string]*AWSRedshiftCluster{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRedshiftCluster: + results[name] = resource + } + } + return results +} + +// GetAWSRedshiftClusterWithName retrieves all AWSRedshiftCluster items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRedshiftClusterWithName(name string) (*AWSRedshiftCluster, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRedshiftCluster: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRedshiftCluster not found", name) +} + +// GetAllAWSRedshiftClusterParameterGroupResources retrieves all AWSRedshiftClusterParameterGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSRedshiftClusterParameterGroupResources() map[string]*AWSRedshiftClusterParameterGroup { + results := map[string]*AWSRedshiftClusterParameterGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRedshiftClusterParameterGroup: + results[name] = resource + } + } + return results +} + +// GetAWSRedshiftClusterParameterGroupWithName retrieves all AWSRedshiftClusterParameterGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRedshiftClusterParameterGroupWithName(name string) (*AWSRedshiftClusterParameterGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRedshiftClusterParameterGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRedshiftClusterParameterGroup not found", name) +} + +// GetAllAWSRedshiftClusterSecurityGroupResources retrieves all AWSRedshiftClusterSecurityGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSRedshiftClusterSecurityGroupResources() map[string]*AWSRedshiftClusterSecurityGroup { + results := map[string]*AWSRedshiftClusterSecurityGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRedshiftClusterSecurityGroup: + results[name] = resource + } + } + return results +} + +// GetAWSRedshiftClusterSecurityGroupWithName retrieves all AWSRedshiftClusterSecurityGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRedshiftClusterSecurityGroupWithName(name string) (*AWSRedshiftClusterSecurityGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRedshiftClusterSecurityGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRedshiftClusterSecurityGroup not found", name) +} + +// GetAllAWSRedshiftClusterSecurityGroupIngressResources retrieves all AWSRedshiftClusterSecurityGroupIngress items from an AWS CloudFormation template +func (t *Template) GetAllAWSRedshiftClusterSecurityGroupIngressResources() map[string]*AWSRedshiftClusterSecurityGroupIngress { + results := map[string]*AWSRedshiftClusterSecurityGroupIngress{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRedshiftClusterSecurityGroupIngress: + results[name] = resource + } + } + return results +} + +// GetAWSRedshiftClusterSecurityGroupIngressWithName retrieves all AWSRedshiftClusterSecurityGroupIngress items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRedshiftClusterSecurityGroupIngressWithName(name string) (*AWSRedshiftClusterSecurityGroupIngress, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRedshiftClusterSecurityGroupIngress: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRedshiftClusterSecurityGroupIngress not found", name) +} + +// GetAllAWSRedshiftClusterSubnetGroupResources retrieves all AWSRedshiftClusterSubnetGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSRedshiftClusterSubnetGroupResources() map[string]*AWSRedshiftClusterSubnetGroup { + results := map[string]*AWSRedshiftClusterSubnetGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRedshiftClusterSubnetGroup: + results[name] = resource + } + } + return results +} + +// GetAWSRedshiftClusterSubnetGroupWithName retrieves all AWSRedshiftClusterSubnetGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRedshiftClusterSubnetGroupWithName(name string) (*AWSRedshiftClusterSubnetGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRedshiftClusterSubnetGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRedshiftClusterSubnetGroup not found", name) +} + +// GetAllAWSRoboMakerFleetResources retrieves all AWSRoboMakerFleet items from an AWS CloudFormation template +func (t *Template) GetAllAWSRoboMakerFleetResources() map[string]*AWSRoboMakerFleet { + results := map[string]*AWSRoboMakerFleet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRoboMakerFleet: + results[name] = resource + } + } + return results +} + +// GetAWSRoboMakerFleetWithName retrieves all AWSRoboMakerFleet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRoboMakerFleetWithName(name string) (*AWSRoboMakerFleet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRoboMakerFleet: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRoboMakerFleet not found", name) +} + +// GetAllAWSRoboMakerRobotResources retrieves all AWSRoboMakerRobot items from an AWS CloudFormation template +func (t *Template) GetAllAWSRoboMakerRobotResources() map[string]*AWSRoboMakerRobot { + results := map[string]*AWSRoboMakerRobot{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRoboMakerRobot: + results[name] = resource + } + } + return results +} + +// GetAWSRoboMakerRobotWithName retrieves all AWSRoboMakerRobot items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRoboMakerRobotWithName(name string) (*AWSRoboMakerRobot, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRoboMakerRobot: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRoboMakerRobot not found", name) +} + +// GetAllAWSRoboMakerRobotApplicationResources retrieves all AWSRoboMakerRobotApplication items from an AWS CloudFormation template +func (t *Template) GetAllAWSRoboMakerRobotApplicationResources() map[string]*AWSRoboMakerRobotApplication { + results := map[string]*AWSRoboMakerRobotApplication{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRoboMakerRobotApplication: + results[name] = resource + } + } + return results +} + +// GetAWSRoboMakerRobotApplicationWithName retrieves all AWSRoboMakerRobotApplication items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRoboMakerRobotApplicationWithName(name string) (*AWSRoboMakerRobotApplication, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRoboMakerRobotApplication: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRoboMakerRobotApplication not found", name) +} + +// GetAllAWSRoboMakerRobotApplicationVersionResources retrieves all AWSRoboMakerRobotApplicationVersion items from an AWS CloudFormation template +func (t *Template) GetAllAWSRoboMakerRobotApplicationVersionResources() map[string]*AWSRoboMakerRobotApplicationVersion { + results := map[string]*AWSRoboMakerRobotApplicationVersion{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRoboMakerRobotApplicationVersion: + results[name] = resource + } + } + return results +} + +// GetAWSRoboMakerRobotApplicationVersionWithName retrieves all AWSRoboMakerRobotApplicationVersion items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRoboMakerRobotApplicationVersionWithName(name string) (*AWSRoboMakerRobotApplicationVersion, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRoboMakerRobotApplicationVersion: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRoboMakerRobotApplicationVersion not found", name) +} + +// GetAllAWSRoboMakerSimulationApplicationResources retrieves all AWSRoboMakerSimulationApplication items from an AWS CloudFormation template +func (t *Template) GetAllAWSRoboMakerSimulationApplicationResources() map[string]*AWSRoboMakerSimulationApplication { + results := map[string]*AWSRoboMakerSimulationApplication{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRoboMakerSimulationApplication: + results[name] = resource + } + } + return results +} + +// GetAWSRoboMakerSimulationApplicationWithName retrieves all AWSRoboMakerSimulationApplication items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRoboMakerSimulationApplicationWithName(name string) (*AWSRoboMakerSimulationApplication, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRoboMakerSimulationApplication: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRoboMakerSimulationApplication not found", name) +} + +// GetAllAWSRoboMakerSimulationApplicationVersionResources retrieves all AWSRoboMakerSimulationApplicationVersion items from an AWS CloudFormation template +func (t *Template) GetAllAWSRoboMakerSimulationApplicationVersionResources() map[string]*AWSRoboMakerSimulationApplicationVersion { + results := map[string]*AWSRoboMakerSimulationApplicationVersion{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRoboMakerSimulationApplicationVersion: + results[name] = resource + } + } + return results +} + +// GetAWSRoboMakerSimulationApplicationVersionWithName retrieves all AWSRoboMakerSimulationApplicationVersion items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRoboMakerSimulationApplicationVersionWithName(name string) (*AWSRoboMakerSimulationApplicationVersion, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRoboMakerSimulationApplicationVersion: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRoboMakerSimulationApplicationVersion not found", name) +} + +// GetAllAWSRoute53HealthCheckResources retrieves all AWSRoute53HealthCheck items from an AWS CloudFormation template +func (t *Template) GetAllAWSRoute53HealthCheckResources() map[string]*AWSRoute53HealthCheck { + results := map[string]*AWSRoute53HealthCheck{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRoute53HealthCheck: + results[name] = resource + } + } + return results +} + +// GetAWSRoute53HealthCheckWithName retrieves all AWSRoute53HealthCheck items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRoute53HealthCheckWithName(name string) (*AWSRoute53HealthCheck, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRoute53HealthCheck: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRoute53HealthCheck not found", name) +} + +// GetAllAWSRoute53HostedZoneResources retrieves all AWSRoute53HostedZone items from an AWS CloudFormation template +func (t *Template) GetAllAWSRoute53HostedZoneResources() map[string]*AWSRoute53HostedZone { + results := map[string]*AWSRoute53HostedZone{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRoute53HostedZone: + results[name] = resource + } + } + return results +} + +// GetAWSRoute53HostedZoneWithName retrieves all AWSRoute53HostedZone items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRoute53HostedZoneWithName(name string) (*AWSRoute53HostedZone, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRoute53HostedZone: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRoute53HostedZone not found", name) +} + +// GetAllAWSRoute53RecordSetResources retrieves all AWSRoute53RecordSet items from an AWS CloudFormation template +func (t *Template) GetAllAWSRoute53RecordSetResources() map[string]*AWSRoute53RecordSet { + results := map[string]*AWSRoute53RecordSet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRoute53RecordSet: + results[name] = resource + } + } + return results +} + +// GetAWSRoute53RecordSetWithName retrieves all AWSRoute53RecordSet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRoute53RecordSetWithName(name string) (*AWSRoute53RecordSet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRoute53RecordSet: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRoute53RecordSet not found", name) +} + +// GetAllAWSRoute53RecordSetGroupResources retrieves all AWSRoute53RecordSetGroup items from an AWS CloudFormation template +func (t *Template) GetAllAWSRoute53RecordSetGroupResources() map[string]*AWSRoute53RecordSetGroup { + results := map[string]*AWSRoute53RecordSetGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRoute53RecordSetGroup: + results[name] = resource + } + } + return results +} + +// GetAWSRoute53RecordSetGroupWithName retrieves all AWSRoute53RecordSetGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRoute53RecordSetGroupWithName(name string) (*AWSRoute53RecordSetGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRoute53RecordSetGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRoute53RecordSetGroup not found", name) +} + +// GetAllAWSRoute53ResolverResolverEndpointResources retrieves all AWSRoute53ResolverResolverEndpoint items from an AWS CloudFormation template +func (t *Template) GetAllAWSRoute53ResolverResolverEndpointResources() map[string]*AWSRoute53ResolverResolverEndpoint { + results := map[string]*AWSRoute53ResolverResolverEndpoint{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRoute53ResolverResolverEndpoint: + results[name] = resource + } + } + return results +} + +// GetAWSRoute53ResolverResolverEndpointWithName retrieves all AWSRoute53ResolverResolverEndpoint items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRoute53ResolverResolverEndpointWithName(name string) (*AWSRoute53ResolverResolverEndpoint, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRoute53ResolverResolverEndpoint: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRoute53ResolverResolverEndpoint not found", name) +} + +// GetAllAWSRoute53ResolverResolverRuleResources retrieves all AWSRoute53ResolverResolverRule items from an AWS CloudFormation template +func (t *Template) GetAllAWSRoute53ResolverResolverRuleResources() map[string]*AWSRoute53ResolverResolverRule { + results := map[string]*AWSRoute53ResolverResolverRule{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRoute53ResolverResolverRule: + results[name] = resource + } + } + return results +} + +// GetAWSRoute53ResolverResolverRuleWithName retrieves all AWSRoute53ResolverResolverRule items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRoute53ResolverResolverRuleWithName(name string) (*AWSRoute53ResolverResolverRule, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRoute53ResolverResolverRule: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRoute53ResolverResolverRule not found", name) +} + +// GetAllAWSRoute53ResolverResolverRuleAssociationResources retrieves all AWSRoute53ResolverResolverRuleAssociation items from an AWS CloudFormation template +func (t *Template) GetAllAWSRoute53ResolverResolverRuleAssociationResources() map[string]*AWSRoute53ResolverResolverRuleAssociation { + results := map[string]*AWSRoute53ResolverResolverRuleAssociation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSRoute53ResolverResolverRuleAssociation: + results[name] = resource + } + } + return results +} + +// GetAWSRoute53ResolverResolverRuleAssociationWithName retrieves all AWSRoute53ResolverResolverRuleAssociation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSRoute53ResolverResolverRuleAssociationWithName(name string) (*AWSRoute53ResolverResolverRuleAssociation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSRoute53ResolverResolverRuleAssociation: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSRoute53ResolverResolverRuleAssociation not found", name) +} + +// GetAllAWSS3BucketResources retrieves all AWSS3Bucket items from an AWS CloudFormation template +func (t *Template) GetAllAWSS3BucketResources() map[string]*AWSS3Bucket { + results := map[string]*AWSS3Bucket{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSS3Bucket: + results[name] = resource + } + } + return results +} + +// GetAWSS3BucketWithName retrieves all AWSS3Bucket items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSS3BucketWithName(name string) (*AWSS3Bucket, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSS3Bucket: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSS3Bucket not found", name) +} + +// GetAllAWSS3BucketPolicyResources retrieves all AWSS3BucketPolicy items from an AWS CloudFormation template +func (t *Template) GetAllAWSS3BucketPolicyResources() map[string]*AWSS3BucketPolicy { + results := map[string]*AWSS3BucketPolicy{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSS3BucketPolicy: + results[name] = resource + } + } + return results +} + +// GetAWSS3BucketPolicyWithName retrieves all AWSS3BucketPolicy items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSS3BucketPolicyWithName(name string) (*AWSS3BucketPolicy, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSS3BucketPolicy: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSS3BucketPolicy not found", name) +} + +// GetAllAWSSDBDomainResources retrieves all AWSSDBDomain items from an AWS CloudFormation template +func (t *Template) GetAllAWSSDBDomainResources() map[string]*AWSSDBDomain { + results := map[string]*AWSSDBDomain{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSDBDomain: + results[name] = resource + } + } + return results +} + +// GetAWSSDBDomainWithName retrieves all AWSSDBDomain items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSDBDomainWithName(name string) (*AWSSDBDomain, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSDBDomain: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSDBDomain not found", name) +} + +// GetAllAWSSESConfigurationSetResources retrieves all AWSSESConfigurationSet items from an AWS CloudFormation template +func (t *Template) GetAllAWSSESConfigurationSetResources() map[string]*AWSSESConfigurationSet { + results := map[string]*AWSSESConfigurationSet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSESConfigurationSet: + results[name] = resource + } + } + return results +} + +// GetAWSSESConfigurationSetWithName retrieves all AWSSESConfigurationSet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSESConfigurationSetWithName(name string) (*AWSSESConfigurationSet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSESConfigurationSet: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSESConfigurationSet not found", name) +} + +// GetAllAWSSESConfigurationSetEventDestinationResources retrieves all AWSSESConfigurationSetEventDestination items from an AWS CloudFormation template +func (t *Template) GetAllAWSSESConfigurationSetEventDestinationResources() map[string]*AWSSESConfigurationSetEventDestination { + results := map[string]*AWSSESConfigurationSetEventDestination{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSESConfigurationSetEventDestination: + results[name] = resource + } + } + return results +} + +// GetAWSSESConfigurationSetEventDestinationWithName retrieves all AWSSESConfigurationSetEventDestination items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSESConfigurationSetEventDestinationWithName(name string) (*AWSSESConfigurationSetEventDestination, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSESConfigurationSetEventDestination: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSESConfigurationSetEventDestination not found", name) +} + +// GetAllAWSSESReceiptFilterResources retrieves all AWSSESReceiptFilter items from an AWS CloudFormation template +func (t *Template) GetAllAWSSESReceiptFilterResources() map[string]*AWSSESReceiptFilter { + results := map[string]*AWSSESReceiptFilter{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSESReceiptFilter: + results[name] = resource + } + } + return results +} + +// GetAWSSESReceiptFilterWithName retrieves all AWSSESReceiptFilter items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSESReceiptFilterWithName(name string) (*AWSSESReceiptFilter, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSESReceiptFilter: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSESReceiptFilter not found", name) +} + +// GetAllAWSSESReceiptRuleResources retrieves all AWSSESReceiptRule items from an AWS CloudFormation template +func (t *Template) GetAllAWSSESReceiptRuleResources() map[string]*AWSSESReceiptRule { + results := map[string]*AWSSESReceiptRule{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSESReceiptRule: + results[name] = resource + } + } + return results +} + +// GetAWSSESReceiptRuleWithName retrieves all AWSSESReceiptRule items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSESReceiptRuleWithName(name string) (*AWSSESReceiptRule, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSESReceiptRule: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSESReceiptRule not found", name) +} + +// GetAllAWSSESReceiptRuleSetResources retrieves all AWSSESReceiptRuleSet items from an AWS CloudFormation template +func (t *Template) GetAllAWSSESReceiptRuleSetResources() map[string]*AWSSESReceiptRuleSet { + results := map[string]*AWSSESReceiptRuleSet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSESReceiptRuleSet: + results[name] = resource + } + } + return results +} + +// GetAWSSESReceiptRuleSetWithName retrieves all AWSSESReceiptRuleSet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSESReceiptRuleSetWithName(name string) (*AWSSESReceiptRuleSet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSESReceiptRuleSet: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSESReceiptRuleSet not found", name) +} + +// GetAllAWSSESTemplateResources retrieves all AWSSESTemplate items from an AWS CloudFormation template +func (t *Template) GetAllAWSSESTemplateResources() map[string]*AWSSESTemplate { + results := map[string]*AWSSESTemplate{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSESTemplate: + results[name] = resource + } + } + return results +} + +// GetAWSSESTemplateWithName retrieves all AWSSESTemplate items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSESTemplateWithName(name string) (*AWSSESTemplate, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSESTemplate: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSESTemplate not found", name) +} + +// GetAllAWSSNSSubscriptionResources retrieves all AWSSNSSubscription items from an AWS CloudFormation template +func (t *Template) GetAllAWSSNSSubscriptionResources() map[string]*AWSSNSSubscription { + results := map[string]*AWSSNSSubscription{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSNSSubscription: + results[name] = resource + } + } + return results +} + +// GetAWSSNSSubscriptionWithName retrieves all AWSSNSSubscription items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSNSSubscriptionWithName(name string) (*AWSSNSSubscription, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSNSSubscription: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSNSSubscription not found", name) +} + +// GetAllAWSSNSTopicResources retrieves all AWSSNSTopic items from an AWS CloudFormation template +func (t *Template) GetAllAWSSNSTopicResources() map[string]*AWSSNSTopic { + results := map[string]*AWSSNSTopic{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSNSTopic: + results[name] = resource + } + } + return results +} + +// GetAWSSNSTopicWithName retrieves all AWSSNSTopic items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSNSTopicWithName(name string) (*AWSSNSTopic, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSNSTopic: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSNSTopic not found", name) +} + +// GetAllAWSSNSTopicPolicyResources retrieves all AWSSNSTopicPolicy items from an AWS CloudFormation template +func (t *Template) GetAllAWSSNSTopicPolicyResources() map[string]*AWSSNSTopicPolicy { + results := map[string]*AWSSNSTopicPolicy{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSNSTopicPolicy: + results[name] = resource + } + } + return results +} + +// GetAWSSNSTopicPolicyWithName retrieves all AWSSNSTopicPolicy items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSNSTopicPolicyWithName(name string) (*AWSSNSTopicPolicy, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSNSTopicPolicy: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSNSTopicPolicy not found", name) +} + +// GetAllAWSSQSQueueResources retrieves all AWSSQSQueue items from an AWS CloudFormation template +func (t *Template) GetAllAWSSQSQueueResources() map[string]*AWSSQSQueue { + results := map[string]*AWSSQSQueue{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSQSQueue: + results[name] = resource + } + } + return results +} + +// GetAWSSQSQueueWithName retrieves all AWSSQSQueue items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSQSQueueWithName(name string) (*AWSSQSQueue, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSQSQueue: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSQSQueue not found", name) +} + +// GetAllAWSSQSQueuePolicyResources retrieves all AWSSQSQueuePolicy items from an AWS CloudFormation template +func (t *Template) GetAllAWSSQSQueuePolicyResources() map[string]*AWSSQSQueuePolicy { + results := map[string]*AWSSQSQueuePolicy{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSQSQueuePolicy: + results[name] = resource + } + } + return results +} + +// GetAWSSQSQueuePolicyWithName retrieves all AWSSQSQueuePolicy items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSQSQueuePolicyWithName(name string) (*AWSSQSQueuePolicy, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSQSQueuePolicy: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSQSQueuePolicy not found", name) +} + +// GetAllAWSSSMAssociationResources retrieves all AWSSSMAssociation items from an AWS CloudFormation template +func (t *Template) GetAllAWSSSMAssociationResources() map[string]*AWSSSMAssociation { + results := map[string]*AWSSSMAssociation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSSMAssociation: + results[name] = resource + } + } + return results +} + +// GetAWSSSMAssociationWithName retrieves all AWSSSMAssociation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSSMAssociationWithName(name string) (*AWSSSMAssociation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSSMAssociation: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSSMAssociation not found", name) +} + +// GetAllAWSSSMDocumentResources retrieves all AWSSSMDocument items from an AWS CloudFormation template +func (t *Template) GetAllAWSSSMDocumentResources() map[string]*AWSSSMDocument { + results := map[string]*AWSSSMDocument{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSSMDocument: + results[name] = resource + } + } + return results +} + +// GetAWSSSMDocumentWithName retrieves all AWSSSMDocument items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSSMDocumentWithName(name string) (*AWSSSMDocument, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSSMDocument: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSSMDocument not found", name) +} + +// GetAllAWSSSMMaintenanceWindowResources retrieves all AWSSSMMaintenanceWindow items from an AWS CloudFormation template +func (t *Template) GetAllAWSSSMMaintenanceWindowResources() map[string]*AWSSSMMaintenanceWindow { + results := map[string]*AWSSSMMaintenanceWindow{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSSMMaintenanceWindow: + results[name] = resource + } + } + return results +} + +// GetAWSSSMMaintenanceWindowWithName retrieves all AWSSSMMaintenanceWindow items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSSMMaintenanceWindowWithName(name string) (*AWSSSMMaintenanceWindow, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSSMMaintenanceWindow: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSSMMaintenanceWindow not found", name) +} + +// GetAllAWSSSMMaintenanceWindowTaskResources retrieves all AWSSSMMaintenanceWindowTask items from an AWS CloudFormation template +func (t *Template) GetAllAWSSSMMaintenanceWindowTaskResources() map[string]*AWSSSMMaintenanceWindowTask { + results := map[string]*AWSSSMMaintenanceWindowTask{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSSMMaintenanceWindowTask: + results[name] = resource + } + } + return results +} + +// GetAWSSSMMaintenanceWindowTaskWithName retrieves all AWSSSMMaintenanceWindowTask items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSSMMaintenanceWindowTaskWithName(name string) (*AWSSSMMaintenanceWindowTask, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSSMMaintenanceWindowTask: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSSMMaintenanceWindowTask not found", name) +} + +// GetAllAWSSSMParameterResources retrieves all AWSSSMParameter items from an AWS CloudFormation template +func (t *Template) GetAllAWSSSMParameterResources() map[string]*AWSSSMParameter { + results := map[string]*AWSSSMParameter{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSSMParameter: + results[name] = resource + } + } + return results +} + +// GetAWSSSMParameterWithName retrieves all AWSSSMParameter items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSSMParameterWithName(name string) (*AWSSSMParameter, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSSMParameter: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSSMParameter not found", name) +} + +// GetAllAWSSSMPatchBaselineResources retrieves all AWSSSMPatchBaseline items from an AWS CloudFormation template +func (t *Template) GetAllAWSSSMPatchBaselineResources() map[string]*AWSSSMPatchBaseline { + results := map[string]*AWSSSMPatchBaseline{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSSMPatchBaseline: + results[name] = resource + } + } + return results +} + +// GetAWSSSMPatchBaselineWithName retrieves all AWSSSMPatchBaseline items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSSMPatchBaselineWithName(name string) (*AWSSSMPatchBaseline, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSSMPatchBaseline: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSSMPatchBaseline not found", name) +} + +// GetAllAWSSSMResourceDataSyncResources retrieves all AWSSSMResourceDataSync items from an AWS CloudFormation template +func (t *Template) GetAllAWSSSMResourceDataSyncResources() map[string]*AWSSSMResourceDataSync { + results := map[string]*AWSSSMResourceDataSync{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSSMResourceDataSync: + results[name] = resource + } + } + return results +} + +// GetAWSSSMResourceDataSyncWithName retrieves all AWSSSMResourceDataSync items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSSMResourceDataSyncWithName(name string) (*AWSSSMResourceDataSync, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSSMResourceDataSync: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSSMResourceDataSync not found", name) +} + +// GetAllAWSSageMakerEndpointResources retrieves all AWSSageMakerEndpoint items from an AWS CloudFormation template +func (t *Template) GetAllAWSSageMakerEndpointResources() map[string]*AWSSageMakerEndpoint { + results := map[string]*AWSSageMakerEndpoint{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSageMakerEndpoint: + results[name] = resource + } + } + return results +} + +// GetAWSSageMakerEndpointWithName retrieves all AWSSageMakerEndpoint items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSageMakerEndpointWithName(name string) (*AWSSageMakerEndpoint, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSageMakerEndpoint: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSageMakerEndpoint not found", name) +} + +// GetAllAWSSageMakerEndpointConfigResources retrieves all AWSSageMakerEndpointConfig items from an AWS CloudFormation template +func (t *Template) GetAllAWSSageMakerEndpointConfigResources() map[string]*AWSSageMakerEndpointConfig { + results := map[string]*AWSSageMakerEndpointConfig{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSageMakerEndpointConfig: + results[name] = resource + } + } + return results +} + +// GetAWSSageMakerEndpointConfigWithName retrieves all AWSSageMakerEndpointConfig items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSageMakerEndpointConfigWithName(name string) (*AWSSageMakerEndpointConfig, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSageMakerEndpointConfig: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSageMakerEndpointConfig not found", name) +} + +// GetAllAWSSageMakerModelResources retrieves all AWSSageMakerModel items from an AWS CloudFormation template +func (t *Template) GetAllAWSSageMakerModelResources() map[string]*AWSSageMakerModel { + results := map[string]*AWSSageMakerModel{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSageMakerModel: + results[name] = resource + } + } + return results +} + +// GetAWSSageMakerModelWithName retrieves all AWSSageMakerModel items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSageMakerModelWithName(name string) (*AWSSageMakerModel, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSageMakerModel: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSageMakerModel not found", name) +} + +// GetAllAWSSageMakerNotebookInstanceResources retrieves all AWSSageMakerNotebookInstance items from an AWS CloudFormation template +func (t *Template) GetAllAWSSageMakerNotebookInstanceResources() map[string]*AWSSageMakerNotebookInstance { + results := map[string]*AWSSageMakerNotebookInstance{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSageMakerNotebookInstance: + results[name] = resource + } + } + return results +} + +// GetAWSSageMakerNotebookInstanceWithName retrieves all AWSSageMakerNotebookInstance items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSageMakerNotebookInstanceWithName(name string) (*AWSSageMakerNotebookInstance, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSageMakerNotebookInstance: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSageMakerNotebookInstance not found", name) +} + +// GetAllAWSSageMakerNotebookInstanceLifecycleConfigResources retrieves all AWSSageMakerNotebookInstanceLifecycleConfig items from an AWS CloudFormation template +func (t *Template) GetAllAWSSageMakerNotebookInstanceLifecycleConfigResources() map[string]*AWSSageMakerNotebookInstanceLifecycleConfig { + results := map[string]*AWSSageMakerNotebookInstanceLifecycleConfig{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSageMakerNotebookInstanceLifecycleConfig: + results[name] = resource + } + } + return results +} + +// GetAWSSageMakerNotebookInstanceLifecycleConfigWithName retrieves all AWSSageMakerNotebookInstanceLifecycleConfig items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSageMakerNotebookInstanceLifecycleConfigWithName(name string) (*AWSSageMakerNotebookInstanceLifecycleConfig, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSageMakerNotebookInstanceLifecycleConfig: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSageMakerNotebookInstanceLifecycleConfig not found", name) +} + +// GetAllAWSSecretsManagerResourcePolicyResources retrieves all AWSSecretsManagerResourcePolicy items from an AWS CloudFormation template +func (t *Template) GetAllAWSSecretsManagerResourcePolicyResources() map[string]*AWSSecretsManagerResourcePolicy { + results := map[string]*AWSSecretsManagerResourcePolicy{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSecretsManagerResourcePolicy: + results[name] = resource + } + } + return results +} + +// GetAWSSecretsManagerResourcePolicyWithName retrieves all AWSSecretsManagerResourcePolicy items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSecretsManagerResourcePolicyWithName(name string) (*AWSSecretsManagerResourcePolicy, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSecretsManagerResourcePolicy: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSecretsManagerResourcePolicy not found", name) +} + +// GetAllAWSSecretsManagerRotationScheduleResources retrieves all AWSSecretsManagerRotationSchedule items from an AWS CloudFormation template +func (t *Template) GetAllAWSSecretsManagerRotationScheduleResources() map[string]*AWSSecretsManagerRotationSchedule { + results := map[string]*AWSSecretsManagerRotationSchedule{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSecretsManagerRotationSchedule: + results[name] = resource + } + } + return results +} + +// GetAWSSecretsManagerRotationScheduleWithName retrieves all AWSSecretsManagerRotationSchedule items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSecretsManagerRotationScheduleWithName(name string) (*AWSSecretsManagerRotationSchedule, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSecretsManagerRotationSchedule: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSecretsManagerRotationSchedule not found", name) +} + +// GetAllAWSSecretsManagerSecretResources retrieves all AWSSecretsManagerSecret items from an AWS CloudFormation template +func (t *Template) GetAllAWSSecretsManagerSecretResources() map[string]*AWSSecretsManagerSecret { + results := map[string]*AWSSecretsManagerSecret{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSecretsManagerSecret: + results[name] = resource + } + } + return results +} + +// GetAWSSecretsManagerSecretWithName retrieves all AWSSecretsManagerSecret items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSecretsManagerSecretWithName(name string) (*AWSSecretsManagerSecret, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSecretsManagerSecret: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSecretsManagerSecret not found", name) +} + +// GetAllAWSSecretsManagerSecretTargetAttachmentResources retrieves all AWSSecretsManagerSecretTargetAttachment items from an AWS CloudFormation template +func (t *Template) GetAllAWSSecretsManagerSecretTargetAttachmentResources() map[string]*AWSSecretsManagerSecretTargetAttachment { + results := map[string]*AWSSecretsManagerSecretTargetAttachment{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSSecretsManagerSecretTargetAttachment: + results[name] = resource + } + } + return results +} + +// GetAWSSecretsManagerSecretTargetAttachmentWithName retrieves all AWSSecretsManagerSecretTargetAttachment items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSSecretsManagerSecretTargetAttachmentWithName(name string) (*AWSSecretsManagerSecretTargetAttachment, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSSecretsManagerSecretTargetAttachment: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSSecretsManagerSecretTargetAttachment not found", name) +} + +// GetAllAWSServerlessApiResources retrieves all AWSServerlessApi items from an AWS CloudFormation template +func (t *Template) GetAllAWSServerlessApiResources() map[string]*AWSServerlessApi { + results := map[string]*AWSServerlessApi{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServerlessApi: + results[name] = resource + } + } + return results +} + +// GetAWSServerlessApiWithName retrieves all AWSServerlessApi items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServerlessApiWithName(name string) (*AWSServerlessApi, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServerlessApi: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSServerlessApi not found", name) +} + +// GetAllAWSServerlessApplicationResources retrieves all AWSServerlessApplication items from an AWS CloudFormation template +func (t *Template) GetAllAWSServerlessApplicationResources() map[string]*AWSServerlessApplication { + results := map[string]*AWSServerlessApplication{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServerlessApplication: + results[name] = resource + } + } + return results +} + +// GetAWSServerlessApplicationWithName retrieves all AWSServerlessApplication items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServerlessApplicationWithName(name string) (*AWSServerlessApplication, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServerlessApplication: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSServerlessApplication not found", name) +} + +// GetAllAWSServerlessFunctionResources retrieves all AWSServerlessFunction items from an AWS CloudFormation template +func (t *Template) GetAllAWSServerlessFunctionResources() map[string]*AWSServerlessFunction { + results := map[string]*AWSServerlessFunction{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServerlessFunction: + results[name] = resource + } + } + return results +} + +// GetAWSServerlessFunctionWithName retrieves all AWSServerlessFunction items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServerlessFunctionWithName(name string) (*AWSServerlessFunction, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServerlessFunction: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSServerlessFunction not found", name) +} + +// GetAllAWSServerlessLayerVersionResources retrieves all AWSServerlessLayerVersion items from an AWS CloudFormation template +func (t *Template) GetAllAWSServerlessLayerVersionResources() map[string]*AWSServerlessLayerVersion { + results := map[string]*AWSServerlessLayerVersion{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServerlessLayerVersion: + results[name] = resource + } + } + return results +} + +// GetAWSServerlessLayerVersionWithName retrieves all AWSServerlessLayerVersion items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServerlessLayerVersionWithName(name string) (*AWSServerlessLayerVersion, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServerlessLayerVersion: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSServerlessLayerVersion not found", name) +} + +// GetAllAWSServerlessSimpleTableResources retrieves all AWSServerlessSimpleTable items from an AWS CloudFormation template +func (t *Template) GetAllAWSServerlessSimpleTableResources() map[string]*AWSServerlessSimpleTable { + results := map[string]*AWSServerlessSimpleTable{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServerlessSimpleTable: + results[name] = resource + } + } + return results +} + +// GetAWSServerlessSimpleTableWithName retrieves all AWSServerlessSimpleTable items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServerlessSimpleTableWithName(name string) (*AWSServerlessSimpleTable, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServerlessSimpleTable: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSServerlessSimpleTable not found", name) +} + +// GetAllAWSServiceCatalogAcceptedPortfolioShareResources retrieves all AWSServiceCatalogAcceptedPortfolioShare items from an AWS CloudFormation template +func (t *Template) GetAllAWSServiceCatalogAcceptedPortfolioShareResources() map[string]*AWSServiceCatalogAcceptedPortfolioShare { + results := map[string]*AWSServiceCatalogAcceptedPortfolioShare{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServiceCatalogAcceptedPortfolioShare: + results[name] = resource + } + } + return results +} + +// GetAWSServiceCatalogAcceptedPortfolioShareWithName retrieves all AWSServiceCatalogAcceptedPortfolioShare items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServiceCatalogAcceptedPortfolioShareWithName(name string) (*AWSServiceCatalogAcceptedPortfolioShare, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServiceCatalogAcceptedPortfolioShare: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSServiceCatalogAcceptedPortfolioShare not found", name) +} + +// GetAllAWSServiceCatalogCloudFormationProductResources retrieves all AWSServiceCatalogCloudFormationProduct items from an AWS CloudFormation template +func (t *Template) GetAllAWSServiceCatalogCloudFormationProductResources() map[string]*AWSServiceCatalogCloudFormationProduct { + results := map[string]*AWSServiceCatalogCloudFormationProduct{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServiceCatalogCloudFormationProduct: + results[name] = resource + } + } + return results +} + +// GetAWSServiceCatalogCloudFormationProductWithName retrieves all AWSServiceCatalogCloudFormationProduct items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServiceCatalogCloudFormationProductWithName(name string) (*AWSServiceCatalogCloudFormationProduct, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServiceCatalogCloudFormationProduct: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSServiceCatalogCloudFormationProduct not found", name) +} + +// GetAllAWSServiceCatalogCloudFormationProvisionedProductResources retrieves all AWSServiceCatalogCloudFormationProvisionedProduct items from an AWS CloudFormation template +func (t *Template) GetAllAWSServiceCatalogCloudFormationProvisionedProductResources() map[string]*AWSServiceCatalogCloudFormationProvisionedProduct { + results := map[string]*AWSServiceCatalogCloudFormationProvisionedProduct{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServiceCatalogCloudFormationProvisionedProduct: + results[name] = resource + } + } + return results +} + +// GetAWSServiceCatalogCloudFormationProvisionedProductWithName retrieves all AWSServiceCatalogCloudFormationProvisionedProduct items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServiceCatalogCloudFormationProvisionedProductWithName(name string) (*AWSServiceCatalogCloudFormationProvisionedProduct, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServiceCatalogCloudFormationProvisionedProduct: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSServiceCatalogCloudFormationProvisionedProduct not found", name) +} + +// GetAllAWSServiceCatalogLaunchNotificationConstraintResources retrieves all AWSServiceCatalogLaunchNotificationConstraint items from an AWS CloudFormation template +func (t *Template) GetAllAWSServiceCatalogLaunchNotificationConstraintResources() map[string]*AWSServiceCatalogLaunchNotificationConstraint { + results := map[string]*AWSServiceCatalogLaunchNotificationConstraint{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServiceCatalogLaunchNotificationConstraint: + results[name] = resource + } + } + return results +} + +// GetAWSServiceCatalogLaunchNotificationConstraintWithName retrieves all AWSServiceCatalogLaunchNotificationConstraint items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServiceCatalogLaunchNotificationConstraintWithName(name string) (*AWSServiceCatalogLaunchNotificationConstraint, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServiceCatalogLaunchNotificationConstraint: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSServiceCatalogLaunchNotificationConstraint not found", name) +} + +// GetAllAWSServiceCatalogLaunchRoleConstraintResources retrieves all AWSServiceCatalogLaunchRoleConstraint items from an AWS CloudFormation template +func (t *Template) GetAllAWSServiceCatalogLaunchRoleConstraintResources() map[string]*AWSServiceCatalogLaunchRoleConstraint { + results := map[string]*AWSServiceCatalogLaunchRoleConstraint{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServiceCatalogLaunchRoleConstraint: + results[name] = resource + } + } + return results +} + +// GetAWSServiceCatalogLaunchRoleConstraintWithName retrieves all AWSServiceCatalogLaunchRoleConstraint items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServiceCatalogLaunchRoleConstraintWithName(name string) (*AWSServiceCatalogLaunchRoleConstraint, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServiceCatalogLaunchRoleConstraint: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSServiceCatalogLaunchRoleConstraint not found", name) +} + +// GetAllAWSServiceCatalogLaunchTemplateConstraintResources retrieves all AWSServiceCatalogLaunchTemplateConstraint items from an AWS CloudFormation template +func (t *Template) GetAllAWSServiceCatalogLaunchTemplateConstraintResources() map[string]*AWSServiceCatalogLaunchTemplateConstraint { + results := map[string]*AWSServiceCatalogLaunchTemplateConstraint{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServiceCatalogLaunchTemplateConstraint: + results[name] = resource + } + } + return results +} + +// GetAWSServiceCatalogLaunchTemplateConstraintWithName retrieves all AWSServiceCatalogLaunchTemplateConstraint items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServiceCatalogLaunchTemplateConstraintWithName(name string) (*AWSServiceCatalogLaunchTemplateConstraint, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServiceCatalogLaunchTemplateConstraint: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSServiceCatalogLaunchTemplateConstraint not found", name) +} + +// GetAllAWSServiceCatalogPortfolioResources retrieves all AWSServiceCatalogPortfolio items from an AWS CloudFormation template +func (t *Template) GetAllAWSServiceCatalogPortfolioResources() map[string]*AWSServiceCatalogPortfolio { + results := map[string]*AWSServiceCatalogPortfolio{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServiceCatalogPortfolio: + results[name] = resource + } + } + return results +} + +// GetAWSServiceCatalogPortfolioWithName retrieves all AWSServiceCatalogPortfolio items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServiceCatalogPortfolioWithName(name string) (*AWSServiceCatalogPortfolio, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServiceCatalogPortfolio: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSServiceCatalogPortfolio not found", name) +} + +// GetAllAWSServiceCatalogPortfolioPrincipalAssociationResources retrieves all AWSServiceCatalogPortfolioPrincipalAssociation items from an AWS CloudFormation template +func (t *Template) GetAllAWSServiceCatalogPortfolioPrincipalAssociationResources() map[string]*AWSServiceCatalogPortfolioPrincipalAssociation { + results := map[string]*AWSServiceCatalogPortfolioPrincipalAssociation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServiceCatalogPortfolioPrincipalAssociation: + results[name] = resource + } + } + return results +} + +// GetAWSServiceCatalogPortfolioPrincipalAssociationWithName retrieves all AWSServiceCatalogPortfolioPrincipalAssociation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServiceCatalogPortfolioPrincipalAssociationWithName(name string) (*AWSServiceCatalogPortfolioPrincipalAssociation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServiceCatalogPortfolioPrincipalAssociation: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSServiceCatalogPortfolioPrincipalAssociation not found", name) +} + +// GetAllAWSServiceCatalogPortfolioProductAssociationResources retrieves all AWSServiceCatalogPortfolioProductAssociation items from an AWS CloudFormation template +func (t *Template) GetAllAWSServiceCatalogPortfolioProductAssociationResources() map[string]*AWSServiceCatalogPortfolioProductAssociation { + results := map[string]*AWSServiceCatalogPortfolioProductAssociation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServiceCatalogPortfolioProductAssociation: + results[name] = resource + } + } + return results +} + +// GetAWSServiceCatalogPortfolioProductAssociationWithName retrieves all AWSServiceCatalogPortfolioProductAssociation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServiceCatalogPortfolioProductAssociationWithName(name string) (*AWSServiceCatalogPortfolioProductAssociation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServiceCatalogPortfolioProductAssociation: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSServiceCatalogPortfolioProductAssociation not found", name) +} + +// GetAllAWSServiceCatalogPortfolioShareResources retrieves all AWSServiceCatalogPortfolioShare items from an AWS CloudFormation template +func (t *Template) GetAllAWSServiceCatalogPortfolioShareResources() map[string]*AWSServiceCatalogPortfolioShare { + results := map[string]*AWSServiceCatalogPortfolioShare{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServiceCatalogPortfolioShare: + results[name] = resource + } + } + return results +} + +// GetAWSServiceCatalogPortfolioShareWithName retrieves all AWSServiceCatalogPortfolioShare items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServiceCatalogPortfolioShareWithName(name string) (*AWSServiceCatalogPortfolioShare, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServiceCatalogPortfolioShare: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSServiceCatalogPortfolioShare not found", name) +} + +// GetAllAWSServiceCatalogTagOptionResources retrieves all AWSServiceCatalogTagOption items from an AWS CloudFormation template +func (t *Template) GetAllAWSServiceCatalogTagOptionResources() map[string]*AWSServiceCatalogTagOption { + results := map[string]*AWSServiceCatalogTagOption{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServiceCatalogTagOption: + results[name] = resource + } + } + return results +} + +// GetAWSServiceCatalogTagOptionWithName retrieves all AWSServiceCatalogTagOption items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServiceCatalogTagOptionWithName(name string) (*AWSServiceCatalogTagOption, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServiceCatalogTagOption: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSServiceCatalogTagOption not found", name) +} + +// GetAllAWSServiceCatalogTagOptionAssociationResources retrieves all AWSServiceCatalogTagOptionAssociation items from an AWS CloudFormation template +func (t *Template) GetAllAWSServiceCatalogTagOptionAssociationResources() map[string]*AWSServiceCatalogTagOptionAssociation { + results := map[string]*AWSServiceCatalogTagOptionAssociation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServiceCatalogTagOptionAssociation: + results[name] = resource + } + } + return results +} + +// GetAWSServiceCatalogTagOptionAssociationWithName retrieves all AWSServiceCatalogTagOptionAssociation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServiceCatalogTagOptionAssociationWithName(name string) (*AWSServiceCatalogTagOptionAssociation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServiceCatalogTagOptionAssociation: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSServiceCatalogTagOptionAssociation not found", name) +} + +// GetAllAWSServiceDiscoveryHttpNamespaceResources retrieves all AWSServiceDiscoveryHttpNamespace items from an AWS CloudFormation template +func (t *Template) GetAllAWSServiceDiscoveryHttpNamespaceResources() map[string]*AWSServiceDiscoveryHttpNamespace { + results := map[string]*AWSServiceDiscoveryHttpNamespace{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServiceDiscoveryHttpNamespace: + results[name] = resource + } + } + return results +} + +// GetAWSServiceDiscoveryHttpNamespaceWithName retrieves all AWSServiceDiscoveryHttpNamespace items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServiceDiscoveryHttpNamespaceWithName(name string) (*AWSServiceDiscoveryHttpNamespace, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServiceDiscoveryHttpNamespace: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSServiceDiscoveryHttpNamespace not found", name) +} + +// GetAllAWSServiceDiscoveryInstanceResources retrieves all AWSServiceDiscoveryInstance items from an AWS CloudFormation template +func (t *Template) GetAllAWSServiceDiscoveryInstanceResources() map[string]*AWSServiceDiscoveryInstance { + results := map[string]*AWSServiceDiscoveryInstance{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServiceDiscoveryInstance: + results[name] = resource + } + } + return results +} + +// GetAWSServiceDiscoveryInstanceWithName retrieves all AWSServiceDiscoveryInstance items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServiceDiscoveryInstanceWithName(name string) (*AWSServiceDiscoveryInstance, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServiceDiscoveryInstance: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSServiceDiscoveryInstance not found", name) +} + +// GetAllAWSServiceDiscoveryPrivateDnsNamespaceResources retrieves all AWSServiceDiscoveryPrivateDnsNamespace items from an AWS CloudFormation template +func (t *Template) GetAllAWSServiceDiscoveryPrivateDnsNamespaceResources() map[string]*AWSServiceDiscoveryPrivateDnsNamespace { + results := map[string]*AWSServiceDiscoveryPrivateDnsNamespace{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServiceDiscoveryPrivateDnsNamespace: + results[name] = resource + } + } + return results +} + +// GetAWSServiceDiscoveryPrivateDnsNamespaceWithName retrieves all AWSServiceDiscoveryPrivateDnsNamespace items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServiceDiscoveryPrivateDnsNamespaceWithName(name string) (*AWSServiceDiscoveryPrivateDnsNamespace, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServiceDiscoveryPrivateDnsNamespace: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSServiceDiscoveryPrivateDnsNamespace not found", name) +} + +// GetAllAWSServiceDiscoveryPublicDnsNamespaceResources retrieves all AWSServiceDiscoveryPublicDnsNamespace items from an AWS CloudFormation template +func (t *Template) GetAllAWSServiceDiscoveryPublicDnsNamespaceResources() map[string]*AWSServiceDiscoveryPublicDnsNamespace { + results := map[string]*AWSServiceDiscoveryPublicDnsNamespace{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServiceDiscoveryPublicDnsNamespace: + results[name] = resource + } + } + return results +} + +// GetAWSServiceDiscoveryPublicDnsNamespaceWithName retrieves all AWSServiceDiscoveryPublicDnsNamespace items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServiceDiscoveryPublicDnsNamespaceWithName(name string) (*AWSServiceDiscoveryPublicDnsNamespace, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServiceDiscoveryPublicDnsNamespace: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSServiceDiscoveryPublicDnsNamespace not found", name) +} + +// GetAllAWSServiceDiscoveryServiceResources retrieves all AWSServiceDiscoveryService items from an AWS CloudFormation template +func (t *Template) GetAllAWSServiceDiscoveryServiceResources() map[string]*AWSServiceDiscoveryService { + results := map[string]*AWSServiceDiscoveryService{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSServiceDiscoveryService: + results[name] = resource + } + } + return results +} + +// GetAWSServiceDiscoveryServiceWithName retrieves all AWSServiceDiscoveryService items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSServiceDiscoveryServiceWithName(name string) (*AWSServiceDiscoveryService, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSServiceDiscoveryService: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSServiceDiscoveryService not found", name) +} + +// GetAllAWSStepFunctionsActivityResources retrieves all AWSStepFunctionsActivity items from an AWS CloudFormation template +func (t *Template) GetAllAWSStepFunctionsActivityResources() map[string]*AWSStepFunctionsActivity { + results := map[string]*AWSStepFunctionsActivity{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSStepFunctionsActivity: + results[name] = resource + } + } + return results +} + +// GetAWSStepFunctionsActivityWithName retrieves all AWSStepFunctionsActivity items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSStepFunctionsActivityWithName(name string) (*AWSStepFunctionsActivity, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSStepFunctionsActivity: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSStepFunctionsActivity not found", name) +} + +// GetAllAWSStepFunctionsStateMachineResources retrieves all AWSStepFunctionsStateMachine items from an AWS CloudFormation template +func (t *Template) GetAllAWSStepFunctionsStateMachineResources() map[string]*AWSStepFunctionsStateMachine { + results := map[string]*AWSStepFunctionsStateMachine{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSStepFunctionsStateMachine: + results[name] = resource + } + } + return results +} + +// GetAWSStepFunctionsStateMachineWithName retrieves all AWSStepFunctionsStateMachine items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSStepFunctionsStateMachineWithName(name string) (*AWSStepFunctionsStateMachine, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSStepFunctionsStateMachine: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSStepFunctionsStateMachine not found", name) +} + +// GetAllAWSWAFByteMatchSetResources retrieves all AWSWAFByteMatchSet items from an AWS CloudFormation template +func (t *Template) GetAllAWSWAFByteMatchSetResources() map[string]*AWSWAFByteMatchSet { + results := map[string]*AWSWAFByteMatchSet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSWAFByteMatchSet: + results[name] = resource + } + } + return results +} + +// GetAWSWAFByteMatchSetWithName retrieves all AWSWAFByteMatchSet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSWAFByteMatchSetWithName(name string) (*AWSWAFByteMatchSet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSWAFByteMatchSet: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSWAFByteMatchSet not found", name) +} + +// GetAllAWSWAFIPSetResources retrieves all AWSWAFIPSet items from an AWS CloudFormation template +func (t *Template) GetAllAWSWAFIPSetResources() map[string]*AWSWAFIPSet { + results := map[string]*AWSWAFIPSet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSWAFIPSet: + results[name] = resource + } + } + return results +} + +// GetAWSWAFIPSetWithName retrieves all AWSWAFIPSet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSWAFIPSetWithName(name string) (*AWSWAFIPSet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSWAFIPSet: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSWAFIPSet not found", name) +} + +// GetAllAWSWAFRuleResources retrieves all AWSWAFRule items from an AWS CloudFormation template +func (t *Template) GetAllAWSWAFRuleResources() map[string]*AWSWAFRule { + results := map[string]*AWSWAFRule{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSWAFRule: + results[name] = resource + } + } + return results +} + +// GetAWSWAFRuleWithName retrieves all AWSWAFRule items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSWAFRuleWithName(name string) (*AWSWAFRule, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSWAFRule: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSWAFRule not found", name) +} + +// GetAllAWSWAFSizeConstraintSetResources retrieves all AWSWAFSizeConstraintSet items from an AWS CloudFormation template +func (t *Template) GetAllAWSWAFSizeConstraintSetResources() map[string]*AWSWAFSizeConstraintSet { + results := map[string]*AWSWAFSizeConstraintSet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSWAFSizeConstraintSet: + results[name] = resource + } + } + return results +} + +// GetAWSWAFSizeConstraintSetWithName retrieves all AWSWAFSizeConstraintSet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSWAFSizeConstraintSetWithName(name string) (*AWSWAFSizeConstraintSet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSWAFSizeConstraintSet: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSWAFSizeConstraintSet not found", name) +} + +// GetAllAWSWAFSqlInjectionMatchSetResources retrieves all AWSWAFSqlInjectionMatchSet items from an AWS CloudFormation template +func (t *Template) GetAllAWSWAFSqlInjectionMatchSetResources() map[string]*AWSWAFSqlInjectionMatchSet { + results := map[string]*AWSWAFSqlInjectionMatchSet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSWAFSqlInjectionMatchSet: + results[name] = resource + } + } + return results +} + +// GetAWSWAFSqlInjectionMatchSetWithName retrieves all AWSWAFSqlInjectionMatchSet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSWAFSqlInjectionMatchSetWithName(name string) (*AWSWAFSqlInjectionMatchSet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSWAFSqlInjectionMatchSet: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSWAFSqlInjectionMatchSet not found", name) +} + +// GetAllAWSWAFWebACLResources retrieves all AWSWAFWebACL items from an AWS CloudFormation template +func (t *Template) GetAllAWSWAFWebACLResources() map[string]*AWSWAFWebACL { + results := map[string]*AWSWAFWebACL{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSWAFWebACL: + results[name] = resource + } + } + return results +} + +// GetAWSWAFWebACLWithName retrieves all AWSWAFWebACL items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSWAFWebACLWithName(name string) (*AWSWAFWebACL, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSWAFWebACL: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSWAFWebACL not found", name) +} + +// GetAllAWSWAFXssMatchSetResources retrieves all AWSWAFXssMatchSet items from an AWS CloudFormation template +func (t *Template) GetAllAWSWAFXssMatchSetResources() map[string]*AWSWAFXssMatchSet { + results := map[string]*AWSWAFXssMatchSet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSWAFXssMatchSet: + results[name] = resource + } + } + return results +} + +// GetAWSWAFXssMatchSetWithName retrieves all AWSWAFXssMatchSet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSWAFXssMatchSetWithName(name string) (*AWSWAFXssMatchSet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSWAFXssMatchSet: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSWAFXssMatchSet not found", name) +} + +// GetAllAWSWAFRegionalByteMatchSetResources retrieves all AWSWAFRegionalByteMatchSet items from an AWS CloudFormation template +func (t *Template) GetAllAWSWAFRegionalByteMatchSetResources() map[string]*AWSWAFRegionalByteMatchSet { + results := map[string]*AWSWAFRegionalByteMatchSet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSWAFRegionalByteMatchSet: + results[name] = resource + } + } + return results +} + +// GetAWSWAFRegionalByteMatchSetWithName retrieves all AWSWAFRegionalByteMatchSet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSWAFRegionalByteMatchSetWithName(name string) (*AWSWAFRegionalByteMatchSet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSWAFRegionalByteMatchSet: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSWAFRegionalByteMatchSet not found", name) +} + +// GetAllAWSWAFRegionalIPSetResources retrieves all AWSWAFRegionalIPSet items from an AWS CloudFormation template +func (t *Template) GetAllAWSWAFRegionalIPSetResources() map[string]*AWSWAFRegionalIPSet { + results := map[string]*AWSWAFRegionalIPSet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSWAFRegionalIPSet: + results[name] = resource + } + } + return results +} + +// GetAWSWAFRegionalIPSetWithName retrieves all AWSWAFRegionalIPSet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSWAFRegionalIPSetWithName(name string) (*AWSWAFRegionalIPSet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSWAFRegionalIPSet: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSWAFRegionalIPSet not found", name) +} + +// GetAllAWSWAFRegionalRuleResources retrieves all AWSWAFRegionalRule items from an AWS CloudFormation template +func (t *Template) GetAllAWSWAFRegionalRuleResources() map[string]*AWSWAFRegionalRule { + results := map[string]*AWSWAFRegionalRule{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSWAFRegionalRule: + results[name] = resource + } + } + return results +} + +// GetAWSWAFRegionalRuleWithName retrieves all AWSWAFRegionalRule items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSWAFRegionalRuleWithName(name string) (*AWSWAFRegionalRule, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSWAFRegionalRule: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSWAFRegionalRule not found", name) +} + +// GetAllAWSWAFRegionalSizeConstraintSetResources retrieves all AWSWAFRegionalSizeConstraintSet items from an AWS CloudFormation template +func (t *Template) GetAllAWSWAFRegionalSizeConstraintSetResources() map[string]*AWSWAFRegionalSizeConstraintSet { + results := map[string]*AWSWAFRegionalSizeConstraintSet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSWAFRegionalSizeConstraintSet: + results[name] = resource + } + } + return results +} + +// GetAWSWAFRegionalSizeConstraintSetWithName retrieves all AWSWAFRegionalSizeConstraintSet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSWAFRegionalSizeConstraintSetWithName(name string) (*AWSWAFRegionalSizeConstraintSet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSWAFRegionalSizeConstraintSet: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSWAFRegionalSizeConstraintSet not found", name) +} + +// GetAllAWSWAFRegionalSqlInjectionMatchSetResources retrieves all AWSWAFRegionalSqlInjectionMatchSet items from an AWS CloudFormation template +func (t *Template) GetAllAWSWAFRegionalSqlInjectionMatchSetResources() map[string]*AWSWAFRegionalSqlInjectionMatchSet { + results := map[string]*AWSWAFRegionalSqlInjectionMatchSet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSWAFRegionalSqlInjectionMatchSet: + results[name] = resource + } + } + return results +} + +// GetAWSWAFRegionalSqlInjectionMatchSetWithName retrieves all AWSWAFRegionalSqlInjectionMatchSet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSWAFRegionalSqlInjectionMatchSetWithName(name string) (*AWSWAFRegionalSqlInjectionMatchSet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSWAFRegionalSqlInjectionMatchSet: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSWAFRegionalSqlInjectionMatchSet not found", name) +} + +// GetAllAWSWAFRegionalWebACLResources retrieves all AWSWAFRegionalWebACL items from an AWS CloudFormation template +func (t *Template) GetAllAWSWAFRegionalWebACLResources() map[string]*AWSWAFRegionalWebACL { + results := map[string]*AWSWAFRegionalWebACL{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSWAFRegionalWebACL: + results[name] = resource + } + } + return results +} + +// GetAWSWAFRegionalWebACLWithName retrieves all AWSWAFRegionalWebACL items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSWAFRegionalWebACLWithName(name string) (*AWSWAFRegionalWebACL, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSWAFRegionalWebACL: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSWAFRegionalWebACL not found", name) +} + +// GetAllAWSWAFRegionalWebACLAssociationResources retrieves all AWSWAFRegionalWebACLAssociation items from an AWS CloudFormation template +func (t *Template) GetAllAWSWAFRegionalWebACLAssociationResources() map[string]*AWSWAFRegionalWebACLAssociation { + results := map[string]*AWSWAFRegionalWebACLAssociation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSWAFRegionalWebACLAssociation: + results[name] = resource + } + } + return results +} + +// GetAWSWAFRegionalWebACLAssociationWithName retrieves all AWSWAFRegionalWebACLAssociation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSWAFRegionalWebACLAssociationWithName(name string) (*AWSWAFRegionalWebACLAssociation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSWAFRegionalWebACLAssociation: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSWAFRegionalWebACLAssociation not found", name) +} + +// GetAllAWSWAFRegionalXssMatchSetResources retrieves all AWSWAFRegionalXssMatchSet items from an AWS CloudFormation template +func (t *Template) GetAllAWSWAFRegionalXssMatchSetResources() map[string]*AWSWAFRegionalXssMatchSet { + results := map[string]*AWSWAFRegionalXssMatchSet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSWAFRegionalXssMatchSet: + results[name] = resource + } + } + return results +} + +// GetAWSWAFRegionalXssMatchSetWithName retrieves all AWSWAFRegionalXssMatchSet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSWAFRegionalXssMatchSetWithName(name string) (*AWSWAFRegionalXssMatchSet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSWAFRegionalXssMatchSet: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSWAFRegionalXssMatchSet not found", name) +} + +// GetAllAWSWorkSpacesWorkspaceResources retrieves all AWSWorkSpacesWorkspace items from an AWS CloudFormation template +func (t *Template) GetAllAWSWorkSpacesWorkspaceResources() map[string]*AWSWorkSpacesWorkspace { + results := map[string]*AWSWorkSpacesWorkspace{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AWSWorkSpacesWorkspace: + results[name] = resource + } + } + return results +} + +// GetAWSWorkSpacesWorkspaceWithName retrieves all AWSWorkSpacesWorkspace items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAWSWorkSpacesWorkspaceWithName(name string) (*AWSWorkSpacesWorkspace, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AWSWorkSpacesWorkspace: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type AWSWorkSpacesWorkspace not found", name) +} + +// GetAllAlexaASKSkillResources retrieves all AlexaASKSkill items from an AWS CloudFormation template +func (t *Template) GetAllAlexaASKSkillResources() map[string]*AlexaASKSkill { + results := map[string]*AlexaASKSkill{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *AlexaASKSkill: + results[name] = resource + } + } + return results +} + +// GetAlexaASKSkillWithName retrieves all AlexaASKSkill items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAlexaASKSkillWithName(name string) (*AlexaASKSkill, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *AlexaASKSkill: + return resource, nil + } } + return nil, fmt.Errorf("resource %q of type AlexaASKSkill not found", name) } diff --git a/cloudformation/aws-amazonmq-broker.go b/cloudformation/aws-amazonmq-broker.go index d236670344..4c86d2c1e6 100644 --- a/cloudformation/aws-amazonmq-broker.go +++ b/cloudformation/aws-amazonmq-broker.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -177,63 +176,3 @@ func (r *AWSAmazonMQBroker) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAmazonMQBrokerResources retrieves all AWSAmazonMQBroker items from an AWS CloudFormation template -func (t *Template) GetAllAWSAmazonMQBrokerResources() map[string]*AWSAmazonMQBroker { - results := map[string]*AWSAmazonMQBroker{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAmazonMQBroker: - results[name] = &resource - case *AWSAmazonMQBroker: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AmazonMQ::Broker" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAmazonMQBroker - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAmazonMQBrokerWithName retrieves all AWSAmazonMQBroker items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAmazonMQBrokerWithName(name string) (*AWSAmazonMQBroker, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAmazonMQBroker: - return &resource, nil - case *AWSAmazonMQBroker: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AmazonMQ::Broker" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAmazonMQBroker - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-amazonmq-configuration.go b/cloudformation/aws-amazonmq-configuration.go index 895bf6d819..8073f976dd 100644 --- a/cloudformation/aws-amazonmq-configuration.go +++ b/cloudformation/aws-amazonmq-configuration.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -137,63 +136,3 @@ func (r *AWSAmazonMQConfiguration) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAmazonMQConfigurationResources retrieves all AWSAmazonMQConfiguration items from an AWS CloudFormation template -func (t *Template) GetAllAWSAmazonMQConfigurationResources() map[string]*AWSAmazonMQConfiguration { - results := map[string]*AWSAmazonMQConfiguration{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAmazonMQConfiguration: - results[name] = &resource - case *AWSAmazonMQConfiguration: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AmazonMQ::Configuration" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAmazonMQConfiguration - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAmazonMQConfigurationWithName retrieves all AWSAmazonMQConfiguration items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAmazonMQConfigurationWithName(name string) (*AWSAmazonMQConfiguration, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAmazonMQConfiguration: - return &resource, nil - case *AWSAmazonMQConfiguration: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AmazonMQ::Configuration" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAmazonMQConfiguration - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-amazonmq-configurationassociation.go b/cloudformation/aws-amazonmq-configurationassociation.go index 667c1791c4..a34f85b755 100644 --- a/cloudformation/aws-amazonmq-configurationassociation.go +++ b/cloudformation/aws-amazonmq-configurationassociation.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSAmazonMQConfigurationAssociation) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAmazonMQConfigurationAssociationResources retrieves all AWSAmazonMQConfigurationAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSAmazonMQConfigurationAssociationResources() map[string]*AWSAmazonMQConfigurationAssociation { - results := map[string]*AWSAmazonMQConfigurationAssociation{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAmazonMQConfigurationAssociation: - results[name] = &resource - case *AWSAmazonMQConfigurationAssociation: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AmazonMQ::ConfigurationAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAmazonMQConfigurationAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAmazonMQConfigurationAssociationWithName retrieves all AWSAmazonMQConfigurationAssociation items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAmazonMQConfigurationAssociationWithName(name string) (*AWSAmazonMQConfigurationAssociation, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAmazonMQConfigurationAssociation: - return &resource, nil - case *AWSAmazonMQConfigurationAssociation: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AmazonMQ::ConfigurationAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAmazonMQConfigurationAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigateway-account.go b/cloudformation/aws-apigateway-account.go index b61516f453..e0b3dc251e 100644 --- a/cloudformation/aws-apigateway-account.go +++ b/cloudformation/aws-apigateway-account.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -112,63 +111,3 @@ func (r *AWSApiGatewayAccount) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayAccountResources retrieves all AWSApiGatewayAccount items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayAccountResources() map[string]*AWSApiGatewayAccount { - results := map[string]*AWSApiGatewayAccount{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayAccount: - results[name] = &resource - case *AWSApiGatewayAccount: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::Account" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayAccount - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayAccountWithName retrieves all AWSApiGatewayAccount items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayAccountWithName(name string) (*AWSApiGatewayAccount, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayAccount: - return &resource, nil - case *AWSApiGatewayAccount: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::Account" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayAccount - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigateway-apikey.go b/cloudformation/aws-apigateway-apikey.go index 49775a51cc..581989188f 100644 --- a/cloudformation/aws-apigateway-apikey.go +++ b/cloudformation/aws-apigateway-apikey.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSApiGatewayApiKey) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayApiKeyResources retrieves all AWSApiGatewayApiKey items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayApiKeyResources() map[string]*AWSApiGatewayApiKey { - results := map[string]*AWSApiGatewayApiKey{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayApiKey: - results[name] = &resource - case *AWSApiGatewayApiKey: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::ApiKey" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayApiKey - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayApiKeyWithName retrieves all AWSApiGatewayApiKey items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayApiKeyWithName(name string) (*AWSApiGatewayApiKey, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayApiKey: - return &resource, nil - case *AWSApiGatewayApiKey: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::ApiKey" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayApiKey - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigateway-authorizer.go b/cloudformation/aws-apigateway-authorizer.go index e9b47fd162..69b92d3dda 100644 --- a/cloudformation/aws-apigateway-authorizer.go +++ b/cloudformation/aws-apigateway-authorizer.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -157,63 +156,3 @@ func (r *AWSApiGatewayAuthorizer) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayAuthorizerResources retrieves all AWSApiGatewayAuthorizer items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayAuthorizerResources() map[string]*AWSApiGatewayAuthorizer { - results := map[string]*AWSApiGatewayAuthorizer{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayAuthorizer: - results[name] = &resource - case *AWSApiGatewayAuthorizer: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::Authorizer" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayAuthorizer - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayAuthorizerWithName retrieves all AWSApiGatewayAuthorizer items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayAuthorizerWithName(name string) (*AWSApiGatewayAuthorizer, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayAuthorizer: - return &resource, nil - case *AWSApiGatewayAuthorizer: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::Authorizer" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayAuthorizer - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigateway-basepathmapping.go b/cloudformation/aws-apigateway-basepathmapping.go index b0befdfb67..61b9bf9093 100644 --- a/cloudformation/aws-apigateway-basepathmapping.go +++ b/cloudformation/aws-apigateway-basepathmapping.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSApiGatewayBasePathMapping) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayBasePathMappingResources retrieves all AWSApiGatewayBasePathMapping items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayBasePathMappingResources() map[string]*AWSApiGatewayBasePathMapping { - results := map[string]*AWSApiGatewayBasePathMapping{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayBasePathMapping: - results[name] = &resource - case *AWSApiGatewayBasePathMapping: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::BasePathMapping" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayBasePathMapping - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayBasePathMappingWithName retrieves all AWSApiGatewayBasePathMapping items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayBasePathMappingWithName(name string) (*AWSApiGatewayBasePathMapping, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayBasePathMapping: - return &resource, nil - case *AWSApiGatewayBasePathMapping: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::BasePathMapping" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayBasePathMapping - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigateway-clientcertificate.go b/cloudformation/aws-apigateway-clientcertificate.go index 11cfd59189..4c68db3174 100644 --- a/cloudformation/aws-apigateway-clientcertificate.go +++ b/cloudformation/aws-apigateway-clientcertificate.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -112,63 +111,3 @@ func (r *AWSApiGatewayClientCertificate) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayClientCertificateResources retrieves all AWSApiGatewayClientCertificate items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayClientCertificateResources() map[string]*AWSApiGatewayClientCertificate { - results := map[string]*AWSApiGatewayClientCertificate{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayClientCertificate: - results[name] = &resource - case *AWSApiGatewayClientCertificate: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::ClientCertificate" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayClientCertificate - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayClientCertificateWithName retrieves all AWSApiGatewayClientCertificate items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayClientCertificateWithName(name string) (*AWSApiGatewayClientCertificate, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayClientCertificate: - return &resource, nil - case *AWSApiGatewayClientCertificate: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::ClientCertificate" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayClientCertificate - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigateway-deployment.go b/cloudformation/aws-apigateway-deployment.go index 69f9b47e7d..0721b07a05 100644 --- a/cloudformation/aws-apigateway-deployment.go +++ b/cloudformation/aws-apigateway-deployment.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSApiGatewayDeployment) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayDeploymentResources retrieves all AWSApiGatewayDeployment items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayDeploymentResources() map[string]*AWSApiGatewayDeployment { - results := map[string]*AWSApiGatewayDeployment{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayDeployment: - results[name] = &resource - case *AWSApiGatewayDeployment: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::Deployment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayDeployment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayDeploymentWithName retrieves all AWSApiGatewayDeployment items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayDeploymentWithName(name string) (*AWSApiGatewayDeployment, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayDeployment: - return &resource, nil - case *AWSApiGatewayDeployment: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::Deployment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayDeployment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigateway-documentationpart.go b/cloudformation/aws-apigateway-documentationpart.go index 4fb43bc409..f9e6728f42 100644 --- a/cloudformation/aws-apigateway-documentationpart.go +++ b/cloudformation/aws-apigateway-documentationpart.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSApiGatewayDocumentationPart) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayDocumentationPartResources retrieves all AWSApiGatewayDocumentationPart items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayDocumentationPartResources() map[string]*AWSApiGatewayDocumentationPart { - results := map[string]*AWSApiGatewayDocumentationPart{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayDocumentationPart: - results[name] = &resource - case *AWSApiGatewayDocumentationPart: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::DocumentationPart" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayDocumentationPart - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayDocumentationPartWithName retrieves all AWSApiGatewayDocumentationPart items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayDocumentationPartWithName(name string) (*AWSApiGatewayDocumentationPart, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayDocumentationPart: - return &resource, nil - case *AWSApiGatewayDocumentationPart: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::DocumentationPart" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayDocumentationPart - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigateway-documentationversion.go b/cloudformation/aws-apigateway-documentationversion.go index 2a44b798df..7c80391e51 100644 --- a/cloudformation/aws-apigateway-documentationversion.go +++ b/cloudformation/aws-apigateway-documentationversion.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSApiGatewayDocumentationVersion) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayDocumentationVersionResources retrieves all AWSApiGatewayDocumentationVersion items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayDocumentationVersionResources() map[string]*AWSApiGatewayDocumentationVersion { - results := map[string]*AWSApiGatewayDocumentationVersion{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayDocumentationVersion: - results[name] = &resource - case *AWSApiGatewayDocumentationVersion: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::DocumentationVersion" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayDocumentationVersion - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayDocumentationVersionWithName retrieves all AWSApiGatewayDocumentationVersion items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayDocumentationVersionWithName(name string) (*AWSApiGatewayDocumentationVersion, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayDocumentationVersion: - return &resource, nil - case *AWSApiGatewayDocumentationVersion: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::DocumentationVersion" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayDocumentationVersion - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigateway-domainname.go b/cloudformation/aws-apigateway-domainname.go index f86756aa60..50cabc315a 100644 --- a/cloudformation/aws-apigateway-domainname.go +++ b/cloudformation/aws-apigateway-domainname.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSApiGatewayDomainName) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayDomainNameResources retrieves all AWSApiGatewayDomainName items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayDomainNameResources() map[string]*AWSApiGatewayDomainName { - results := map[string]*AWSApiGatewayDomainName{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayDomainName: - results[name] = &resource - case *AWSApiGatewayDomainName: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::DomainName" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayDomainName - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayDomainNameWithName retrieves all AWSApiGatewayDomainName items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayDomainNameWithName(name string) (*AWSApiGatewayDomainName, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayDomainName: - return &resource, nil - case *AWSApiGatewayDomainName: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::DomainName" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayDomainName - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigateway-gatewayresponse.go b/cloudformation/aws-apigateway-gatewayresponse.go index 110a060d80..efc71c250d 100644 --- a/cloudformation/aws-apigateway-gatewayresponse.go +++ b/cloudformation/aws-apigateway-gatewayresponse.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSApiGatewayGatewayResponse) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayGatewayResponseResources retrieves all AWSApiGatewayGatewayResponse items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayGatewayResponseResources() map[string]*AWSApiGatewayGatewayResponse { - results := map[string]*AWSApiGatewayGatewayResponse{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayGatewayResponse: - results[name] = &resource - case *AWSApiGatewayGatewayResponse: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::GatewayResponse" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayGatewayResponse - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayGatewayResponseWithName retrieves all AWSApiGatewayGatewayResponse items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayGatewayResponseWithName(name string) (*AWSApiGatewayGatewayResponse, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayGatewayResponse: - return &resource, nil - case *AWSApiGatewayGatewayResponse: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::GatewayResponse" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayGatewayResponse - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigateway-method.go b/cloudformation/aws-apigateway-method.go index ea0bf53b0e..5e0ce1d9dc 100644 --- a/cloudformation/aws-apigateway-method.go +++ b/cloudformation/aws-apigateway-method.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -172,63 +171,3 @@ func (r *AWSApiGatewayMethod) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayMethodResources retrieves all AWSApiGatewayMethod items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayMethodResources() map[string]*AWSApiGatewayMethod { - results := map[string]*AWSApiGatewayMethod{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayMethod: - results[name] = &resource - case *AWSApiGatewayMethod: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::Method" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayMethod - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayMethodWithName retrieves all AWSApiGatewayMethod items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayMethodWithName(name string) (*AWSApiGatewayMethod, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayMethod: - return &resource, nil - case *AWSApiGatewayMethod: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::Method" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayMethod - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigateway-model.go b/cloudformation/aws-apigateway-model.go index 529abbad66..a65d2de7ee 100644 --- a/cloudformation/aws-apigateway-model.go +++ b/cloudformation/aws-apigateway-model.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSApiGatewayModel) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayModelResources retrieves all AWSApiGatewayModel items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayModelResources() map[string]*AWSApiGatewayModel { - results := map[string]*AWSApiGatewayModel{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayModel: - results[name] = &resource - case *AWSApiGatewayModel: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::Model" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayModel - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayModelWithName retrieves all AWSApiGatewayModel items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayModelWithName(name string) (*AWSApiGatewayModel, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayModel: - return &resource, nil - case *AWSApiGatewayModel: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::Model" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayModel - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigateway-requestvalidator.go b/cloudformation/aws-apigateway-requestvalidator.go index bdea89f5cb..d9884af53b 100644 --- a/cloudformation/aws-apigateway-requestvalidator.go +++ b/cloudformation/aws-apigateway-requestvalidator.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSApiGatewayRequestValidator) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayRequestValidatorResources retrieves all AWSApiGatewayRequestValidator items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayRequestValidatorResources() map[string]*AWSApiGatewayRequestValidator { - results := map[string]*AWSApiGatewayRequestValidator{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayRequestValidator: - results[name] = &resource - case *AWSApiGatewayRequestValidator: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::RequestValidator" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayRequestValidator - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayRequestValidatorWithName retrieves all AWSApiGatewayRequestValidator items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayRequestValidatorWithName(name string) (*AWSApiGatewayRequestValidator, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayRequestValidator: - return &resource, nil - case *AWSApiGatewayRequestValidator: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::RequestValidator" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayRequestValidator - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigateway-resource.go b/cloudformation/aws-apigateway-resource.go index fdd990b4e1..028a83a516 100644 --- a/cloudformation/aws-apigateway-resource.go +++ b/cloudformation/aws-apigateway-resource.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSApiGatewayResource) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayResourceResources retrieves all AWSApiGatewayResource items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayResourceResources() map[string]*AWSApiGatewayResource { - results := map[string]*AWSApiGatewayResource{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayResource: - results[name] = &resource - case *AWSApiGatewayResource: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::Resource" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayResource - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayResourceWithName retrieves all AWSApiGatewayResource items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayResourceWithName(name string) (*AWSApiGatewayResource, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayResource: - return &resource, nil - case *AWSApiGatewayResource: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::Resource" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayResource - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigateway-restapi.go b/cloudformation/aws-apigateway-restapi.go index 89d1f89d66..336b31fadc 100644 --- a/cloudformation/aws-apigateway-restapi.go +++ b/cloudformation/aws-apigateway-restapi.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -167,63 +166,3 @@ func (r *AWSApiGatewayRestApi) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayRestApiResources retrieves all AWSApiGatewayRestApi items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayRestApiResources() map[string]*AWSApiGatewayRestApi { - results := map[string]*AWSApiGatewayRestApi{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayRestApi: - results[name] = &resource - case *AWSApiGatewayRestApi: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::RestApi" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayRestApi - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayRestApiWithName retrieves all AWSApiGatewayRestApi items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayRestApiWithName(name string) (*AWSApiGatewayRestApi, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayRestApi: - return &resource, nil - case *AWSApiGatewayRestApi: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::RestApi" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayRestApi - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigateway-stage.go b/cloudformation/aws-apigateway-stage.go index 343896df29..b7d4e845d5 100644 --- a/cloudformation/aws-apigateway-stage.go +++ b/cloudformation/aws-apigateway-stage.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -177,63 +176,3 @@ func (r *AWSApiGatewayStage) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayStageResources retrieves all AWSApiGatewayStage items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayStageResources() map[string]*AWSApiGatewayStage { - results := map[string]*AWSApiGatewayStage{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayStage: - results[name] = &resource - case *AWSApiGatewayStage: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::Stage" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayStage - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayStageWithName retrieves all AWSApiGatewayStage items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayStageWithName(name string) (*AWSApiGatewayStage, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayStage: - return &resource, nil - case *AWSApiGatewayStage: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::Stage" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayStage - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigateway-usageplan.go b/cloudformation/aws-apigateway-usageplan.go index 8c053b304b..21c5f8a179 100644 --- a/cloudformation/aws-apigateway-usageplan.go +++ b/cloudformation/aws-apigateway-usageplan.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSApiGatewayUsagePlan) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayUsagePlanResources retrieves all AWSApiGatewayUsagePlan items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayUsagePlanResources() map[string]*AWSApiGatewayUsagePlan { - results := map[string]*AWSApiGatewayUsagePlan{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayUsagePlan: - results[name] = &resource - case *AWSApiGatewayUsagePlan: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::UsagePlan" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayUsagePlan - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayUsagePlanWithName retrieves all AWSApiGatewayUsagePlan items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayUsagePlanWithName(name string) (*AWSApiGatewayUsagePlan, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayUsagePlan: - return &resource, nil - case *AWSApiGatewayUsagePlan: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::UsagePlan" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayUsagePlan - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigateway-usageplankey.go b/cloudformation/aws-apigateway-usageplankey.go index 91d9a7bcdf..e83bf4d191 100644 --- a/cloudformation/aws-apigateway-usageplankey.go +++ b/cloudformation/aws-apigateway-usageplankey.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSApiGatewayUsagePlanKey) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayUsagePlanKeyResources retrieves all AWSApiGatewayUsagePlanKey items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayUsagePlanKeyResources() map[string]*AWSApiGatewayUsagePlanKey { - results := map[string]*AWSApiGatewayUsagePlanKey{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayUsagePlanKey: - results[name] = &resource - case *AWSApiGatewayUsagePlanKey: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::UsagePlanKey" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayUsagePlanKey - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayUsagePlanKeyWithName retrieves all AWSApiGatewayUsagePlanKey items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayUsagePlanKeyWithName(name string) (*AWSApiGatewayUsagePlanKey, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayUsagePlanKey: - return &resource, nil - case *AWSApiGatewayUsagePlanKey: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::UsagePlanKey" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayUsagePlanKey - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigateway-vpclink.go b/cloudformation/aws-apigateway-vpclink.go index 4623d273eb..6920d10208 100644 --- a/cloudformation/aws-apigateway-vpclink.go +++ b/cloudformation/aws-apigateway-vpclink.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSApiGatewayVpcLink) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayVpcLinkResources retrieves all AWSApiGatewayVpcLink items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayVpcLinkResources() map[string]*AWSApiGatewayVpcLink { - results := map[string]*AWSApiGatewayVpcLink{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayVpcLink: - results[name] = &resource - case *AWSApiGatewayVpcLink: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::VpcLink" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayVpcLink - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayVpcLinkWithName retrieves all AWSApiGatewayVpcLink items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayVpcLinkWithName(name string) (*AWSApiGatewayVpcLink, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayVpcLink: - return &resource, nil - case *AWSApiGatewayVpcLink: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGateway::VpcLink" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayVpcLink - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigatewayv2-api.go b/cloudformation/aws-apigatewayv2-api.go index 8ff7456b6f..11705af61d 100644 --- a/cloudformation/aws-apigatewayv2-api.go +++ b/cloudformation/aws-apigatewayv2-api.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSApiGatewayV2Api) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayV2ApiResources retrieves all AWSApiGatewayV2Api items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayV2ApiResources() map[string]*AWSApiGatewayV2Api { - results := map[string]*AWSApiGatewayV2Api{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayV2Api: - results[name] = &resource - case *AWSApiGatewayV2Api: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGatewayV2::Api" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayV2Api - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayV2ApiWithName retrieves all AWSApiGatewayV2Api items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayV2ApiWithName(name string) (*AWSApiGatewayV2Api, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayV2Api: - return &resource, nil - case *AWSApiGatewayV2Api: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGatewayV2::Api" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayV2Api - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigatewayv2-authorizer.go b/cloudformation/aws-apigatewayv2-authorizer.go index 07303dfdec..aca8ad4d6e 100644 --- a/cloudformation/aws-apigatewayv2-authorizer.go +++ b/cloudformation/aws-apigatewayv2-authorizer.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -147,63 +146,3 @@ func (r *AWSApiGatewayV2Authorizer) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayV2AuthorizerResources retrieves all AWSApiGatewayV2Authorizer items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayV2AuthorizerResources() map[string]*AWSApiGatewayV2Authorizer { - results := map[string]*AWSApiGatewayV2Authorizer{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayV2Authorizer: - results[name] = &resource - case *AWSApiGatewayV2Authorizer: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGatewayV2::Authorizer" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayV2Authorizer - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayV2AuthorizerWithName retrieves all AWSApiGatewayV2Authorizer items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayV2AuthorizerWithName(name string) (*AWSApiGatewayV2Authorizer, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayV2Authorizer: - return &resource, nil - case *AWSApiGatewayV2Authorizer: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGatewayV2::Authorizer" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayV2Authorizer - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigatewayv2-deployment.go b/cloudformation/aws-apigatewayv2-deployment.go index de8fa26945..b552d3c77c 100644 --- a/cloudformation/aws-apigatewayv2-deployment.go +++ b/cloudformation/aws-apigatewayv2-deployment.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSApiGatewayV2Deployment) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayV2DeploymentResources retrieves all AWSApiGatewayV2Deployment items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayV2DeploymentResources() map[string]*AWSApiGatewayV2Deployment { - results := map[string]*AWSApiGatewayV2Deployment{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayV2Deployment: - results[name] = &resource - case *AWSApiGatewayV2Deployment: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGatewayV2::Deployment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayV2Deployment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayV2DeploymentWithName retrieves all AWSApiGatewayV2Deployment items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayV2DeploymentWithName(name string) (*AWSApiGatewayV2Deployment, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayV2Deployment: - return &resource, nil - case *AWSApiGatewayV2Deployment: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGatewayV2::Deployment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayV2Deployment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigatewayv2-integration.go b/cloudformation/aws-apigatewayv2-integration.go index 7d49f923e6..1795d6a38e 100644 --- a/cloudformation/aws-apigatewayv2-integration.go +++ b/cloudformation/aws-apigatewayv2-integration.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -172,63 +171,3 @@ func (r *AWSApiGatewayV2Integration) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayV2IntegrationResources retrieves all AWSApiGatewayV2Integration items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayV2IntegrationResources() map[string]*AWSApiGatewayV2Integration { - results := map[string]*AWSApiGatewayV2Integration{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayV2Integration: - results[name] = &resource - case *AWSApiGatewayV2Integration: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGatewayV2::Integration" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayV2Integration - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayV2IntegrationWithName retrieves all AWSApiGatewayV2Integration items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayV2IntegrationWithName(name string) (*AWSApiGatewayV2Integration, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayV2Integration: - return &resource, nil - case *AWSApiGatewayV2Integration: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGatewayV2::Integration" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayV2Integration - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigatewayv2-integrationresponse.go b/cloudformation/aws-apigatewayv2-integrationresponse.go index 18a64c45cb..df25d88589 100644 --- a/cloudformation/aws-apigatewayv2-integrationresponse.go +++ b/cloudformation/aws-apigatewayv2-integrationresponse.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSApiGatewayV2IntegrationResponse) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayV2IntegrationResponseResources retrieves all AWSApiGatewayV2IntegrationResponse items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayV2IntegrationResponseResources() map[string]*AWSApiGatewayV2IntegrationResponse { - results := map[string]*AWSApiGatewayV2IntegrationResponse{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayV2IntegrationResponse: - results[name] = &resource - case *AWSApiGatewayV2IntegrationResponse: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGatewayV2::IntegrationResponse" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayV2IntegrationResponse - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayV2IntegrationResponseWithName retrieves all AWSApiGatewayV2IntegrationResponse items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayV2IntegrationResponseWithName(name string) (*AWSApiGatewayV2IntegrationResponse, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayV2IntegrationResponse: - return &resource, nil - case *AWSApiGatewayV2IntegrationResponse: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGatewayV2::IntegrationResponse" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayV2IntegrationResponse - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigatewayv2-model.go b/cloudformation/aws-apigatewayv2-model.go index 943cfac582..ecf470d805 100644 --- a/cloudformation/aws-apigatewayv2-model.go +++ b/cloudformation/aws-apigatewayv2-model.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSApiGatewayV2Model) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayV2ModelResources retrieves all AWSApiGatewayV2Model items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayV2ModelResources() map[string]*AWSApiGatewayV2Model { - results := map[string]*AWSApiGatewayV2Model{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayV2Model: - results[name] = &resource - case *AWSApiGatewayV2Model: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGatewayV2::Model" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayV2Model - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayV2ModelWithName retrieves all AWSApiGatewayV2Model items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayV2ModelWithName(name string) (*AWSApiGatewayV2Model, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayV2Model: - return &resource, nil - case *AWSApiGatewayV2Model: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGatewayV2::Model" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayV2Model - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigatewayv2-route.go b/cloudformation/aws-apigatewayv2-route.go index e665a8aeea..a10d174ea1 100644 --- a/cloudformation/aws-apigatewayv2-route.go +++ b/cloudformation/aws-apigatewayv2-route.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -167,63 +166,3 @@ func (r *AWSApiGatewayV2Route) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayV2RouteResources retrieves all AWSApiGatewayV2Route items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayV2RouteResources() map[string]*AWSApiGatewayV2Route { - results := map[string]*AWSApiGatewayV2Route{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayV2Route: - results[name] = &resource - case *AWSApiGatewayV2Route: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGatewayV2::Route" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayV2Route - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayV2RouteWithName retrieves all AWSApiGatewayV2Route items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayV2RouteWithName(name string) (*AWSApiGatewayV2Route, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayV2Route: - return &resource, nil - case *AWSApiGatewayV2Route: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGatewayV2::Route" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayV2Route - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigatewayv2-routeresponse.go b/cloudformation/aws-apigatewayv2-routeresponse.go index d171462552..8b3ce26573 100644 --- a/cloudformation/aws-apigatewayv2-routeresponse.go +++ b/cloudformation/aws-apigatewayv2-routeresponse.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -137,63 +136,3 @@ func (r *AWSApiGatewayV2RouteResponse) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayV2RouteResponseResources retrieves all AWSApiGatewayV2RouteResponse items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayV2RouteResponseResources() map[string]*AWSApiGatewayV2RouteResponse { - results := map[string]*AWSApiGatewayV2RouteResponse{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayV2RouteResponse: - results[name] = &resource - case *AWSApiGatewayV2RouteResponse: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGatewayV2::RouteResponse" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayV2RouteResponse - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayV2RouteResponseWithName retrieves all AWSApiGatewayV2RouteResponse items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayV2RouteResponseWithName(name string) (*AWSApiGatewayV2RouteResponse, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayV2RouteResponse: - return &resource, nil - case *AWSApiGatewayV2RouteResponse: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGatewayV2::RouteResponse" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayV2RouteResponse - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-apigatewayv2-stage.go b/cloudformation/aws-apigatewayv2-stage.go index 4c3ef35526..5ec4b1cc4e 100644 --- a/cloudformation/aws-apigatewayv2-stage.go +++ b/cloudformation/aws-apigatewayv2-stage.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -152,63 +151,3 @@ func (r *AWSApiGatewayV2Stage) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApiGatewayV2StageResources retrieves all AWSApiGatewayV2Stage items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayV2StageResources() map[string]*AWSApiGatewayV2Stage { - results := map[string]*AWSApiGatewayV2Stage{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApiGatewayV2Stage: - results[name] = &resource - case *AWSApiGatewayV2Stage: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGatewayV2::Stage" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayV2Stage - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApiGatewayV2StageWithName retrieves all AWSApiGatewayV2Stage items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayV2StageWithName(name string) (*AWSApiGatewayV2Stage, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApiGatewayV2Stage: - return &resource, nil - case *AWSApiGatewayV2Stage: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApiGatewayV2::Stage" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApiGatewayV2Stage - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-applicationautoscaling-scalabletarget.go b/cloudformation/aws-applicationautoscaling-scalabletarget.go index 0578b4dbd0..f1e748662a 100644 --- a/cloudformation/aws-applicationautoscaling-scalabletarget.go +++ b/cloudformation/aws-applicationautoscaling-scalabletarget.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSApplicationAutoScalingScalableTarget) UnmarshalJSON(b []byte) error return nil } - -// GetAllAWSApplicationAutoScalingScalableTargetResources retrieves all AWSApplicationAutoScalingScalableTarget items from an AWS CloudFormation template -func (t *Template) GetAllAWSApplicationAutoScalingScalableTargetResources() map[string]*AWSApplicationAutoScalingScalableTarget { - results := map[string]*AWSApplicationAutoScalingScalableTarget{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApplicationAutoScalingScalableTarget: - results[name] = &resource - case *AWSApplicationAutoScalingScalableTarget: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApplicationAutoScaling::ScalableTarget" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApplicationAutoScalingScalableTarget - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApplicationAutoScalingScalableTargetWithName retrieves all AWSApplicationAutoScalingScalableTarget items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApplicationAutoScalingScalableTargetWithName(name string) (*AWSApplicationAutoScalingScalableTarget, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApplicationAutoScalingScalableTarget: - return &resource, nil - case *AWSApplicationAutoScalingScalableTarget: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApplicationAutoScaling::ScalableTarget" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApplicationAutoScalingScalableTarget - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-applicationautoscaling-scalingpolicy.go b/cloudformation/aws-applicationautoscaling-scalingpolicy.go index 1ba53a12c6..db8c22cb94 100644 --- a/cloudformation/aws-applicationautoscaling-scalingpolicy.go +++ b/cloudformation/aws-applicationautoscaling-scalingpolicy.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -147,63 +146,3 @@ func (r *AWSApplicationAutoScalingScalingPolicy) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSApplicationAutoScalingScalingPolicyResources retrieves all AWSApplicationAutoScalingScalingPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSApplicationAutoScalingScalingPolicyResources() map[string]*AWSApplicationAutoScalingScalingPolicy { - results := map[string]*AWSApplicationAutoScalingScalingPolicy{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSApplicationAutoScalingScalingPolicy: - results[name] = &resource - case *AWSApplicationAutoScalingScalingPolicy: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApplicationAutoScaling::ScalingPolicy" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApplicationAutoScalingScalingPolicy - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSApplicationAutoScalingScalingPolicyWithName retrieves all AWSApplicationAutoScalingScalingPolicy items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApplicationAutoScalingScalingPolicyWithName(name string) (*AWSApplicationAutoScalingScalingPolicy, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSApplicationAutoScalingScalingPolicy: - return &resource, nil - case *AWSApplicationAutoScalingScalingPolicy: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ApplicationAutoScaling::ScalingPolicy" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSApplicationAutoScalingScalingPolicy - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-appstream-directoryconfig.go b/cloudformation/aws-appstream-directoryconfig.go index 7efc9277ba..a5300670b6 100644 --- a/cloudformation/aws-appstream-directoryconfig.go +++ b/cloudformation/aws-appstream-directoryconfig.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSAppStreamDirectoryConfig) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAppStreamDirectoryConfigResources retrieves all AWSAppStreamDirectoryConfig items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppStreamDirectoryConfigResources() map[string]*AWSAppStreamDirectoryConfig { - results := map[string]*AWSAppStreamDirectoryConfig{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAppStreamDirectoryConfig: - results[name] = &resource - case *AWSAppStreamDirectoryConfig: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppStream::DirectoryConfig" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppStreamDirectoryConfig - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAppStreamDirectoryConfigWithName retrieves all AWSAppStreamDirectoryConfig items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppStreamDirectoryConfigWithName(name string) (*AWSAppStreamDirectoryConfig, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAppStreamDirectoryConfig: - return &resource, nil - case *AWSAppStreamDirectoryConfig: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppStream::DirectoryConfig" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppStreamDirectoryConfig - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-appstream-fleet.go b/cloudformation/aws-appstream-fleet.go index 94dfd7891a..e685e03626 100644 --- a/cloudformation/aws-appstream-fleet.go +++ b/cloudformation/aws-appstream-fleet.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -172,63 +171,3 @@ func (r *AWSAppStreamFleet) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAppStreamFleetResources retrieves all AWSAppStreamFleet items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppStreamFleetResources() map[string]*AWSAppStreamFleet { - results := map[string]*AWSAppStreamFleet{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAppStreamFleet: - results[name] = &resource - case *AWSAppStreamFleet: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppStream::Fleet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppStreamFleet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAppStreamFleetWithName retrieves all AWSAppStreamFleet items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppStreamFleetWithName(name string) (*AWSAppStreamFleet, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAppStreamFleet: - return &resource, nil - case *AWSAppStreamFleet: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppStream::Fleet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppStreamFleet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-appstream-imagebuilder.go b/cloudformation/aws-appstream-imagebuilder.go index 68f3fc7e17..96cd4382cc 100644 --- a/cloudformation/aws-appstream-imagebuilder.go +++ b/cloudformation/aws-appstream-imagebuilder.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -157,63 +156,3 @@ func (r *AWSAppStreamImageBuilder) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAppStreamImageBuilderResources retrieves all AWSAppStreamImageBuilder items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppStreamImageBuilderResources() map[string]*AWSAppStreamImageBuilder { - results := map[string]*AWSAppStreamImageBuilder{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAppStreamImageBuilder: - results[name] = &resource - case *AWSAppStreamImageBuilder: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppStream::ImageBuilder" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppStreamImageBuilder - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAppStreamImageBuilderWithName retrieves all AWSAppStreamImageBuilder items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppStreamImageBuilderWithName(name string) (*AWSAppStreamImageBuilder, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAppStreamImageBuilder: - return &resource, nil - case *AWSAppStreamImageBuilder: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppStream::ImageBuilder" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppStreamImageBuilder - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-appstream-stack.go b/cloudformation/aws-appstream-stack.go index 0099576657..634a02604c 100644 --- a/cloudformation/aws-appstream-stack.go +++ b/cloudformation/aws-appstream-stack.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -157,63 +156,3 @@ func (r *AWSAppStreamStack) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAppStreamStackResources retrieves all AWSAppStreamStack items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppStreamStackResources() map[string]*AWSAppStreamStack { - results := map[string]*AWSAppStreamStack{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAppStreamStack: - results[name] = &resource - case *AWSAppStreamStack: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppStream::Stack" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppStreamStack - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAppStreamStackWithName retrieves all AWSAppStreamStack items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppStreamStackWithName(name string) (*AWSAppStreamStack, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAppStreamStack: - return &resource, nil - case *AWSAppStreamStack: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppStream::Stack" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppStreamStack - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-appstream-stackfleetassociation.go b/cloudformation/aws-appstream-stackfleetassociation.go index e35abab60e..b7678213c9 100644 --- a/cloudformation/aws-appstream-stackfleetassociation.go +++ b/cloudformation/aws-appstream-stackfleetassociation.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSAppStreamStackFleetAssociation) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAppStreamStackFleetAssociationResources retrieves all AWSAppStreamStackFleetAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppStreamStackFleetAssociationResources() map[string]*AWSAppStreamStackFleetAssociation { - results := map[string]*AWSAppStreamStackFleetAssociation{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAppStreamStackFleetAssociation: - results[name] = &resource - case *AWSAppStreamStackFleetAssociation: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppStream::StackFleetAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppStreamStackFleetAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAppStreamStackFleetAssociationWithName retrieves all AWSAppStreamStackFleetAssociation items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppStreamStackFleetAssociationWithName(name string) (*AWSAppStreamStackFleetAssociation, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAppStreamStackFleetAssociation: - return &resource, nil - case *AWSAppStreamStackFleetAssociation: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppStream::StackFleetAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppStreamStackFleetAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-appstream-stackuserassociation.go b/cloudformation/aws-appstream-stackuserassociation.go index 44cdcafd70..3c5504f3b0 100644 --- a/cloudformation/aws-appstream-stackuserassociation.go +++ b/cloudformation/aws-appstream-stackuserassociation.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSAppStreamStackUserAssociation) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAppStreamStackUserAssociationResources retrieves all AWSAppStreamStackUserAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppStreamStackUserAssociationResources() map[string]*AWSAppStreamStackUserAssociation { - results := map[string]*AWSAppStreamStackUserAssociation{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAppStreamStackUserAssociation: - results[name] = &resource - case *AWSAppStreamStackUserAssociation: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppStream::StackUserAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppStreamStackUserAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAppStreamStackUserAssociationWithName retrieves all AWSAppStreamStackUserAssociation items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppStreamStackUserAssociationWithName(name string) (*AWSAppStreamStackUserAssociation, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAppStreamStackUserAssociation: - return &resource, nil - case *AWSAppStreamStackUserAssociation: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppStream::StackUserAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppStreamStackUserAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-appstream-user.go b/cloudformation/aws-appstream-user.go index 7264094e2a..5592e0d32c 100644 --- a/cloudformation/aws-appstream-user.go +++ b/cloudformation/aws-appstream-user.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSAppStreamUser) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAppStreamUserResources retrieves all AWSAppStreamUser items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppStreamUserResources() map[string]*AWSAppStreamUser { - results := map[string]*AWSAppStreamUser{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAppStreamUser: - results[name] = &resource - case *AWSAppStreamUser: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppStream::User" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppStreamUser - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAppStreamUserWithName retrieves all AWSAppStreamUser items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppStreamUserWithName(name string) (*AWSAppStreamUser, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAppStreamUser: - return &resource, nil - case *AWSAppStreamUser: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppStream::User" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppStreamUser - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-appsync-apikey.go b/cloudformation/aws-appsync-apikey.go index f5b36cd837..075bbe29c5 100644 --- a/cloudformation/aws-appsync-apikey.go +++ b/cloudformation/aws-appsync-apikey.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSAppSyncApiKey) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAppSyncApiKeyResources retrieves all AWSAppSyncApiKey items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppSyncApiKeyResources() map[string]*AWSAppSyncApiKey { - results := map[string]*AWSAppSyncApiKey{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAppSyncApiKey: - results[name] = &resource - case *AWSAppSyncApiKey: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppSync::ApiKey" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppSyncApiKey - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAppSyncApiKeyWithName retrieves all AWSAppSyncApiKey items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppSyncApiKeyWithName(name string) (*AWSAppSyncApiKey, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAppSyncApiKey: - return &resource, nil - case *AWSAppSyncApiKey: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppSync::ApiKey" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppSyncApiKey - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-appsync-datasource.go b/cloudformation/aws-appsync-datasource.go index 86bfd78eeb..e1fb16fe96 100644 --- a/cloudformation/aws-appsync-datasource.go +++ b/cloudformation/aws-appsync-datasource.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -157,63 +156,3 @@ func (r *AWSAppSyncDataSource) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAppSyncDataSourceResources retrieves all AWSAppSyncDataSource items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppSyncDataSourceResources() map[string]*AWSAppSyncDataSource { - results := map[string]*AWSAppSyncDataSource{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAppSyncDataSource: - results[name] = &resource - case *AWSAppSyncDataSource: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppSync::DataSource" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppSyncDataSource - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAppSyncDataSourceWithName retrieves all AWSAppSyncDataSource items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppSyncDataSourceWithName(name string) (*AWSAppSyncDataSource, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAppSyncDataSource: - return &resource, nil - case *AWSAppSyncDataSource: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppSync::DataSource" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppSyncDataSource - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-appsync-functionconfiguration.go b/cloudformation/aws-appsync-functionconfiguration.go index 27faba362a..296c22e733 100644 --- a/cloudformation/aws-appsync-functionconfiguration.go +++ b/cloudformation/aws-appsync-functionconfiguration.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -152,63 +151,3 @@ func (r *AWSAppSyncFunctionConfiguration) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAppSyncFunctionConfigurationResources retrieves all AWSAppSyncFunctionConfiguration items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppSyncFunctionConfigurationResources() map[string]*AWSAppSyncFunctionConfiguration { - results := map[string]*AWSAppSyncFunctionConfiguration{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAppSyncFunctionConfiguration: - results[name] = &resource - case *AWSAppSyncFunctionConfiguration: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppSync::FunctionConfiguration" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppSyncFunctionConfiguration - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAppSyncFunctionConfigurationWithName retrieves all AWSAppSyncFunctionConfiguration items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppSyncFunctionConfigurationWithName(name string) (*AWSAppSyncFunctionConfiguration, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAppSyncFunctionConfiguration: - return &resource, nil - case *AWSAppSyncFunctionConfiguration: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppSync::FunctionConfiguration" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppSyncFunctionConfiguration - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-appsync-graphqlapi.go b/cloudformation/aws-appsync-graphqlapi.go index 3b541ee8e9..75a02a24b8 100644 --- a/cloudformation/aws-appsync-graphqlapi.go +++ b/cloudformation/aws-appsync-graphqlapi.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSAppSyncGraphQLApi) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAppSyncGraphQLApiResources retrieves all AWSAppSyncGraphQLApi items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppSyncGraphQLApiResources() map[string]*AWSAppSyncGraphQLApi { - results := map[string]*AWSAppSyncGraphQLApi{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAppSyncGraphQLApi: - results[name] = &resource - case *AWSAppSyncGraphQLApi: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppSync::GraphQLApi" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppSyncGraphQLApi - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAppSyncGraphQLApiWithName retrieves all AWSAppSyncGraphQLApi items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppSyncGraphQLApiWithName(name string) (*AWSAppSyncGraphQLApi, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAppSyncGraphQLApi: - return &resource, nil - case *AWSAppSyncGraphQLApi: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppSync::GraphQLApi" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppSyncGraphQLApi - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-appsync-graphqlschema.go b/cloudformation/aws-appsync-graphqlschema.go index c933483589..79b96ca67e 100644 --- a/cloudformation/aws-appsync-graphqlschema.go +++ b/cloudformation/aws-appsync-graphqlschema.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSAppSyncGraphQLSchema) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAppSyncGraphQLSchemaResources retrieves all AWSAppSyncGraphQLSchema items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppSyncGraphQLSchemaResources() map[string]*AWSAppSyncGraphQLSchema { - results := map[string]*AWSAppSyncGraphQLSchema{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAppSyncGraphQLSchema: - results[name] = &resource - case *AWSAppSyncGraphQLSchema: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppSync::GraphQLSchema" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppSyncGraphQLSchema - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAppSyncGraphQLSchemaWithName retrieves all AWSAppSyncGraphQLSchema items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppSyncGraphQLSchemaWithName(name string) (*AWSAppSyncGraphQLSchema, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAppSyncGraphQLSchema: - return &resource, nil - case *AWSAppSyncGraphQLSchema: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppSync::GraphQLSchema" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppSyncGraphQLSchema - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-appsync-resolver.go b/cloudformation/aws-appsync-resolver.go index 7bc3390ea3..9c6bb56ef5 100644 --- a/cloudformation/aws-appsync-resolver.go +++ b/cloudformation/aws-appsync-resolver.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -157,63 +156,3 @@ func (r *AWSAppSyncResolver) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAppSyncResolverResources retrieves all AWSAppSyncResolver items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppSyncResolverResources() map[string]*AWSAppSyncResolver { - results := map[string]*AWSAppSyncResolver{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAppSyncResolver: - results[name] = &resource - case *AWSAppSyncResolver: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppSync::Resolver" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppSyncResolver - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAppSyncResolverWithName retrieves all AWSAppSyncResolver items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppSyncResolverWithName(name string) (*AWSAppSyncResolver, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAppSyncResolver: - return &resource, nil - case *AWSAppSyncResolver: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AppSync::Resolver" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAppSyncResolver - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-athena-namedquery.go b/cloudformation/aws-athena-namedquery.go index 6b9bf9b3e2..2e98ce48d8 100644 --- a/cloudformation/aws-athena-namedquery.go +++ b/cloudformation/aws-athena-namedquery.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSAthenaNamedQuery) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAthenaNamedQueryResources retrieves all AWSAthenaNamedQuery items from an AWS CloudFormation template -func (t *Template) GetAllAWSAthenaNamedQueryResources() map[string]*AWSAthenaNamedQuery { - results := map[string]*AWSAthenaNamedQuery{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAthenaNamedQuery: - results[name] = &resource - case *AWSAthenaNamedQuery: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Athena::NamedQuery" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAthenaNamedQuery - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAthenaNamedQueryWithName retrieves all AWSAthenaNamedQuery items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAthenaNamedQueryWithName(name string) (*AWSAthenaNamedQuery, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAthenaNamedQuery: - return &resource, nil - case *AWSAthenaNamedQuery: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Athena::NamedQuery" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAthenaNamedQuery - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-autoscaling-autoscalinggroup.go b/cloudformation/aws-autoscaling-autoscalinggroup.go index 466a3769bc..5123c8129d 100644 --- a/cloudformation/aws-autoscaling-autoscalinggroup.go +++ b/cloudformation/aws-autoscaling-autoscalinggroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -239,63 +238,3 @@ func (r *AWSAutoScalingAutoScalingGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAutoScalingAutoScalingGroupResources retrieves all AWSAutoScalingAutoScalingGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSAutoScalingAutoScalingGroupResources() map[string]*AWSAutoScalingAutoScalingGroup { - results := map[string]*AWSAutoScalingAutoScalingGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAutoScalingAutoScalingGroup: - results[name] = &resource - case *AWSAutoScalingAutoScalingGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AutoScaling::AutoScalingGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAutoScalingAutoScalingGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAutoScalingAutoScalingGroupWithName retrieves all AWSAutoScalingAutoScalingGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAutoScalingAutoScalingGroupWithName(name string) (*AWSAutoScalingAutoScalingGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAutoScalingAutoScalingGroup: - return &resource, nil - case *AWSAutoScalingAutoScalingGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AutoScaling::AutoScalingGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAutoScalingAutoScalingGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-autoscaling-launchconfiguration.go b/cloudformation/aws-autoscaling-launchconfiguration.go index 6827754258..5e31d12633 100644 --- a/cloudformation/aws-autoscaling-launchconfiguration.go +++ b/cloudformation/aws-autoscaling-launchconfiguration.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -197,63 +196,3 @@ func (r *AWSAutoScalingLaunchConfiguration) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAutoScalingLaunchConfigurationResources retrieves all AWSAutoScalingLaunchConfiguration items from an AWS CloudFormation template -func (t *Template) GetAllAWSAutoScalingLaunchConfigurationResources() map[string]*AWSAutoScalingLaunchConfiguration { - results := map[string]*AWSAutoScalingLaunchConfiguration{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAutoScalingLaunchConfiguration: - results[name] = &resource - case *AWSAutoScalingLaunchConfiguration: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AutoScaling::LaunchConfiguration" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAutoScalingLaunchConfiguration - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAutoScalingLaunchConfigurationWithName retrieves all AWSAutoScalingLaunchConfiguration items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAutoScalingLaunchConfigurationWithName(name string) (*AWSAutoScalingLaunchConfiguration, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAutoScalingLaunchConfiguration: - return &resource, nil - case *AWSAutoScalingLaunchConfiguration: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AutoScaling::LaunchConfiguration" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAutoScalingLaunchConfiguration - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-autoscaling-lifecyclehook.go b/cloudformation/aws-autoscaling-lifecyclehook.go index 1a5016b57f..66e20c3c0f 100644 --- a/cloudformation/aws-autoscaling-lifecyclehook.go +++ b/cloudformation/aws-autoscaling-lifecyclehook.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -147,63 +146,3 @@ func (r *AWSAutoScalingLifecycleHook) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAutoScalingLifecycleHookResources retrieves all AWSAutoScalingLifecycleHook items from an AWS CloudFormation template -func (t *Template) GetAllAWSAutoScalingLifecycleHookResources() map[string]*AWSAutoScalingLifecycleHook { - results := map[string]*AWSAutoScalingLifecycleHook{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAutoScalingLifecycleHook: - results[name] = &resource - case *AWSAutoScalingLifecycleHook: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AutoScaling::LifecycleHook" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAutoScalingLifecycleHook - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAutoScalingLifecycleHookWithName retrieves all AWSAutoScalingLifecycleHook items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAutoScalingLifecycleHookWithName(name string) (*AWSAutoScalingLifecycleHook, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAutoScalingLifecycleHook: - return &resource, nil - case *AWSAutoScalingLifecycleHook: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AutoScaling::LifecycleHook" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAutoScalingLifecycleHook - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-autoscaling-scalingpolicy.go b/cloudformation/aws-autoscaling-scalingpolicy.go index fc337037c0..8dd10f9a5f 100644 --- a/cloudformation/aws-autoscaling-scalingpolicy.go +++ b/cloudformation/aws-autoscaling-scalingpolicy.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -157,63 +156,3 @@ func (r *AWSAutoScalingScalingPolicy) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAutoScalingScalingPolicyResources retrieves all AWSAutoScalingScalingPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSAutoScalingScalingPolicyResources() map[string]*AWSAutoScalingScalingPolicy { - results := map[string]*AWSAutoScalingScalingPolicy{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAutoScalingScalingPolicy: - results[name] = &resource - case *AWSAutoScalingScalingPolicy: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AutoScaling::ScalingPolicy" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAutoScalingScalingPolicy - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAutoScalingScalingPolicyWithName retrieves all AWSAutoScalingScalingPolicy items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAutoScalingScalingPolicyWithName(name string) (*AWSAutoScalingScalingPolicy, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAutoScalingScalingPolicy: - return &resource, nil - case *AWSAutoScalingScalingPolicy: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AutoScaling::ScalingPolicy" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAutoScalingScalingPolicy - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-autoscaling-scheduledaction.go b/cloudformation/aws-autoscaling-scheduledaction.go index 30991b4548..fe4f9cc7e8 100644 --- a/cloudformation/aws-autoscaling-scheduledaction.go +++ b/cloudformation/aws-autoscaling-scheduledaction.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSAutoScalingScheduledAction) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAutoScalingScheduledActionResources retrieves all AWSAutoScalingScheduledAction items from an AWS CloudFormation template -func (t *Template) GetAllAWSAutoScalingScheduledActionResources() map[string]*AWSAutoScalingScheduledAction { - results := map[string]*AWSAutoScalingScheduledAction{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAutoScalingScheduledAction: - results[name] = &resource - case *AWSAutoScalingScheduledAction: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AutoScaling::ScheduledAction" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAutoScalingScheduledAction - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAutoScalingScheduledActionWithName retrieves all AWSAutoScalingScheduledAction items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAutoScalingScheduledActionWithName(name string) (*AWSAutoScalingScheduledAction, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAutoScalingScheduledAction: - return &resource, nil - case *AWSAutoScalingScheduledAction: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AutoScaling::ScheduledAction" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAutoScalingScheduledAction - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-autoscalingplans-scalingplan.go b/cloudformation/aws-autoscalingplans-scalingplan.go index 9a6109a328..c93d8acc3b 100644 --- a/cloudformation/aws-autoscalingplans-scalingplan.go +++ b/cloudformation/aws-autoscalingplans-scalingplan.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSAutoScalingPlansScalingPlan) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSAutoScalingPlansScalingPlanResources retrieves all AWSAutoScalingPlansScalingPlan items from an AWS CloudFormation template -func (t *Template) GetAllAWSAutoScalingPlansScalingPlanResources() map[string]*AWSAutoScalingPlansScalingPlan { - results := map[string]*AWSAutoScalingPlansScalingPlan{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSAutoScalingPlansScalingPlan: - results[name] = &resource - case *AWSAutoScalingPlansScalingPlan: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AutoScalingPlans::ScalingPlan" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAutoScalingPlansScalingPlan - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSAutoScalingPlansScalingPlanWithName retrieves all AWSAutoScalingPlansScalingPlan items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAutoScalingPlansScalingPlanWithName(name string) (*AWSAutoScalingPlansScalingPlan, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSAutoScalingPlansScalingPlan: - return &resource, nil - case *AWSAutoScalingPlansScalingPlan: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::AutoScalingPlans::ScalingPlan" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSAutoScalingPlansScalingPlan - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-batch-computeenvironment.go b/cloudformation/aws-batch-computeenvironment.go index df827e7578..e715e0ff9d 100644 --- a/cloudformation/aws-batch-computeenvironment.go +++ b/cloudformation/aws-batch-computeenvironment.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSBatchComputeEnvironment) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSBatchComputeEnvironmentResources retrieves all AWSBatchComputeEnvironment items from an AWS CloudFormation template -func (t *Template) GetAllAWSBatchComputeEnvironmentResources() map[string]*AWSBatchComputeEnvironment { - results := map[string]*AWSBatchComputeEnvironment{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSBatchComputeEnvironment: - results[name] = &resource - case *AWSBatchComputeEnvironment: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Batch::ComputeEnvironment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSBatchComputeEnvironment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSBatchComputeEnvironmentWithName retrieves all AWSBatchComputeEnvironment items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSBatchComputeEnvironmentWithName(name string) (*AWSBatchComputeEnvironment, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSBatchComputeEnvironment: - return &resource, nil - case *AWSBatchComputeEnvironment: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Batch::ComputeEnvironment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSBatchComputeEnvironment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-batch-jobdefinition.go b/cloudformation/aws-batch-jobdefinition.go index 7bc587fe64..33ebc96984 100644 --- a/cloudformation/aws-batch-jobdefinition.go +++ b/cloudformation/aws-batch-jobdefinition.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSBatchJobDefinition) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSBatchJobDefinitionResources retrieves all AWSBatchJobDefinition items from an AWS CloudFormation template -func (t *Template) GetAllAWSBatchJobDefinitionResources() map[string]*AWSBatchJobDefinition { - results := map[string]*AWSBatchJobDefinition{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSBatchJobDefinition: - results[name] = &resource - case *AWSBatchJobDefinition: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Batch::JobDefinition" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSBatchJobDefinition - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSBatchJobDefinitionWithName retrieves all AWSBatchJobDefinition items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSBatchJobDefinitionWithName(name string) (*AWSBatchJobDefinition, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSBatchJobDefinition: - return &resource, nil - case *AWSBatchJobDefinition: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Batch::JobDefinition" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSBatchJobDefinition - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-batch-jobqueue.go b/cloudformation/aws-batch-jobqueue.go index fbce7061ba..b997cfdc75 100644 --- a/cloudformation/aws-batch-jobqueue.go +++ b/cloudformation/aws-batch-jobqueue.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSBatchJobQueue) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSBatchJobQueueResources retrieves all AWSBatchJobQueue items from an AWS CloudFormation template -func (t *Template) GetAllAWSBatchJobQueueResources() map[string]*AWSBatchJobQueue { - results := map[string]*AWSBatchJobQueue{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSBatchJobQueue: - results[name] = &resource - case *AWSBatchJobQueue: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Batch::JobQueue" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSBatchJobQueue - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSBatchJobQueueWithName retrieves all AWSBatchJobQueue items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSBatchJobQueueWithName(name string) (*AWSBatchJobQueue, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSBatchJobQueue: - return &resource, nil - case *AWSBatchJobQueue: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Batch::JobQueue" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSBatchJobQueue - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-budgets-budget.go b/cloudformation/aws-budgets-budget.go index cba9bf0f92..81eb259bb2 100644 --- a/cloudformation/aws-budgets-budget.go +++ b/cloudformation/aws-budgets-budget.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSBudgetsBudget) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSBudgetsBudgetResources retrieves all AWSBudgetsBudget items from an AWS CloudFormation template -func (t *Template) GetAllAWSBudgetsBudgetResources() map[string]*AWSBudgetsBudget { - results := map[string]*AWSBudgetsBudget{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSBudgetsBudget: - results[name] = &resource - case *AWSBudgetsBudget: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Budgets::Budget" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSBudgetsBudget - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSBudgetsBudgetWithName retrieves all AWSBudgetsBudget items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSBudgetsBudgetWithName(name string) (*AWSBudgetsBudget, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSBudgetsBudget: - return &resource, nil - case *AWSBudgetsBudget: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Budgets::Budget" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSBudgetsBudget - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-certificatemanager-certificate.go b/cloudformation/aws-certificatemanager-certificate.go index 236631b903..2ad81cf0c9 100644 --- a/cloudformation/aws-certificatemanager-certificate.go +++ b/cloudformation/aws-certificatemanager-certificate.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSCertificateManagerCertificate) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCertificateManagerCertificateResources retrieves all AWSCertificateManagerCertificate items from an AWS CloudFormation template -func (t *Template) GetAllAWSCertificateManagerCertificateResources() map[string]*AWSCertificateManagerCertificate { - results := map[string]*AWSCertificateManagerCertificate{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCertificateManagerCertificate: - results[name] = &resource - case *AWSCertificateManagerCertificate: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CertificateManager::Certificate" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCertificateManagerCertificate - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCertificateManagerCertificateWithName retrieves all AWSCertificateManagerCertificate items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCertificateManagerCertificateWithName(name string) (*AWSCertificateManagerCertificate, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCertificateManagerCertificate: - return &resource, nil - case *AWSCertificateManagerCertificate: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CertificateManager::Certificate" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCertificateManagerCertificate - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-cloud9-environmentec2.go b/cloudformation/aws-cloud9-environmentec2.go index f8190b6828..c71d1b484f 100644 --- a/cloudformation/aws-cloud9-environmentec2.go +++ b/cloudformation/aws-cloud9-environmentec2.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSCloud9EnvironmentEC2) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCloud9EnvironmentEC2Resources retrieves all AWSCloud9EnvironmentEC2 items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloud9EnvironmentEC2Resources() map[string]*AWSCloud9EnvironmentEC2 { - results := map[string]*AWSCloud9EnvironmentEC2{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCloud9EnvironmentEC2: - results[name] = &resource - case *AWSCloud9EnvironmentEC2: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Cloud9::EnvironmentEC2" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloud9EnvironmentEC2 - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCloud9EnvironmentEC2WithName retrieves all AWSCloud9EnvironmentEC2 items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloud9EnvironmentEC2WithName(name string) (*AWSCloud9EnvironmentEC2, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCloud9EnvironmentEC2: - return &resource, nil - case *AWSCloud9EnvironmentEC2: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Cloud9::EnvironmentEC2" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloud9EnvironmentEC2 - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-cloudformation-customresource.go b/cloudformation/aws-cloudformation-customresource.go index 1b047d51a1..49ba2064f7 100644 --- a/cloudformation/aws-cloudformation-customresource.go +++ b/cloudformation/aws-cloudformation-customresource.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -112,63 +111,3 @@ func (r *AWSCloudFormationCustomResource) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCloudFormationCustomResourceResources retrieves all AWSCloudFormationCustomResource items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFormationCustomResourceResources() map[string]*AWSCloudFormationCustomResource { - results := map[string]*AWSCloudFormationCustomResource{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCloudFormationCustomResource: - results[name] = &resource - case *AWSCloudFormationCustomResource: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CloudFormation::CustomResource" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloudFormationCustomResource - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCloudFormationCustomResourceWithName retrieves all AWSCloudFormationCustomResource items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFormationCustomResourceWithName(name string) (*AWSCloudFormationCustomResource, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCloudFormationCustomResource: - return &resource, nil - case *AWSCloudFormationCustomResource: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CloudFormation::CustomResource" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloudFormationCustomResource - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-cloudformation-macro.go b/cloudformation/aws-cloudformation-macro.go index 0647115958..de16f5b40c 100644 --- a/cloudformation/aws-cloudformation-macro.go +++ b/cloudformation/aws-cloudformation-macro.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSCloudFormationMacro) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCloudFormationMacroResources retrieves all AWSCloudFormationMacro items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFormationMacroResources() map[string]*AWSCloudFormationMacro { - results := map[string]*AWSCloudFormationMacro{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCloudFormationMacro: - results[name] = &resource - case *AWSCloudFormationMacro: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CloudFormation::Macro" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloudFormationMacro - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCloudFormationMacroWithName retrieves all AWSCloudFormationMacro items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFormationMacroWithName(name string) (*AWSCloudFormationMacro, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCloudFormationMacro: - return &resource, nil - case *AWSCloudFormationMacro: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CloudFormation::Macro" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloudFormationMacro - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-cloudformation-stack.go b/cloudformation/aws-cloudformation-stack.go index 9f878d2b20..6e02155e5c 100644 --- a/cloudformation/aws-cloudformation-stack.go +++ b/cloudformation/aws-cloudformation-stack.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSCloudFormationStack) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCloudFormationStackResources retrieves all AWSCloudFormationStack items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFormationStackResources() map[string]*AWSCloudFormationStack { - results := map[string]*AWSCloudFormationStack{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCloudFormationStack: - results[name] = &resource - case *AWSCloudFormationStack: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CloudFormation::Stack" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloudFormationStack - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCloudFormationStackWithName retrieves all AWSCloudFormationStack items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFormationStackWithName(name string) (*AWSCloudFormationStack, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCloudFormationStack: - return &resource, nil - case *AWSCloudFormationStack: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CloudFormation::Stack" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloudFormationStack - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-cloudformation-waitcondition.go b/cloudformation/aws-cloudformation-waitcondition.go index c353c23c8c..9fa4ffc977 100644 --- a/cloudformation/aws-cloudformation-waitcondition.go +++ b/cloudformation/aws-cloudformation-waitcondition.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -135,63 +134,3 @@ func (r *AWSCloudFormationWaitCondition) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCloudFormationWaitConditionResources retrieves all AWSCloudFormationWaitCondition items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFormationWaitConditionResources() map[string]*AWSCloudFormationWaitCondition { - results := map[string]*AWSCloudFormationWaitCondition{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCloudFormationWaitCondition: - results[name] = &resource - case *AWSCloudFormationWaitCondition: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CloudFormation::WaitCondition" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloudFormationWaitCondition - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCloudFormationWaitConditionWithName retrieves all AWSCloudFormationWaitCondition items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFormationWaitConditionWithName(name string) (*AWSCloudFormationWaitCondition, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCloudFormationWaitCondition: - return &resource, nil - case *AWSCloudFormationWaitCondition: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CloudFormation::WaitCondition" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloudFormationWaitCondition - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-cloudformation-waitconditionhandle.go b/cloudformation/aws-cloudformation-waitconditionhandle.go index 79b30e92c4..01f4be30cc 100644 --- a/cloudformation/aws-cloudformation-waitconditionhandle.go +++ b/cloudformation/aws-cloudformation-waitconditionhandle.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -107,63 +106,3 @@ func (r *AWSCloudFormationWaitConditionHandle) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCloudFormationWaitConditionHandleResources retrieves all AWSCloudFormationWaitConditionHandle items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFormationWaitConditionHandleResources() map[string]*AWSCloudFormationWaitConditionHandle { - results := map[string]*AWSCloudFormationWaitConditionHandle{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCloudFormationWaitConditionHandle: - results[name] = &resource - case *AWSCloudFormationWaitConditionHandle: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CloudFormation::WaitConditionHandle" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloudFormationWaitConditionHandle - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCloudFormationWaitConditionHandleWithName retrieves all AWSCloudFormationWaitConditionHandle items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFormationWaitConditionHandleWithName(name string) (*AWSCloudFormationWaitConditionHandle, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCloudFormationWaitConditionHandle: - return &resource, nil - case *AWSCloudFormationWaitConditionHandle: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CloudFormation::WaitConditionHandle" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloudFormationWaitConditionHandle - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-cloudfront-cloudfrontoriginaccessidentity.go b/cloudformation/aws-cloudfront-cloudfrontoriginaccessidentity.go index 8114932278..f7dd8c9585 100644 --- a/cloudformation/aws-cloudfront-cloudfrontoriginaccessidentity.go +++ b/cloudformation/aws-cloudfront-cloudfrontoriginaccessidentity.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -112,63 +111,3 @@ func (r *AWSCloudFrontCloudFrontOriginAccessIdentity) UnmarshalJSON(b []byte) er return nil } - -// GetAllAWSCloudFrontCloudFrontOriginAccessIdentityResources retrieves all AWSCloudFrontCloudFrontOriginAccessIdentity items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFrontCloudFrontOriginAccessIdentityResources() map[string]*AWSCloudFrontCloudFrontOriginAccessIdentity { - results := map[string]*AWSCloudFrontCloudFrontOriginAccessIdentity{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCloudFrontCloudFrontOriginAccessIdentity: - results[name] = &resource - case *AWSCloudFrontCloudFrontOriginAccessIdentity: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CloudFront::CloudFrontOriginAccessIdentity" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloudFrontCloudFrontOriginAccessIdentity - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCloudFrontCloudFrontOriginAccessIdentityWithName retrieves all AWSCloudFrontCloudFrontOriginAccessIdentity items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFrontCloudFrontOriginAccessIdentityWithName(name string) (*AWSCloudFrontCloudFrontOriginAccessIdentity, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCloudFrontCloudFrontOriginAccessIdentity: - return &resource, nil - case *AWSCloudFrontCloudFrontOriginAccessIdentity: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CloudFront::CloudFrontOriginAccessIdentity" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloudFrontCloudFrontOriginAccessIdentity - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-cloudfront-distribution.go b/cloudformation/aws-cloudfront-distribution.go index e938c411c4..acd0900859 100644 --- a/cloudformation/aws-cloudfront-distribution.go +++ b/cloudformation/aws-cloudfront-distribution.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSCloudFrontDistribution) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCloudFrontDistributionResources retrieves all AWSCloudFrontDistribution items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFrontDistributionResources() map[string]*AWSCloudFrontDistribution { - results := map[string]*AWSCloudFrontDistribution{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCloudFrontDistribution: - results[name] = &resource - case *AWSCloudFrontDistribution: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CloudFront::Distribution" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloudFrontDistribution - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCloudFrontDistributionWithName retrieves all AWSCloudFrontDistribution items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFrontDistributionWithName(name string) (*AWSCloudFrontDistribution, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCloudFrontDistribution: - return &resource, nil - case *AWSCloudFrontDistribution: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CloudFront::Distribution" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloudFrontDistribution - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-cloudfront-streamingdistribution.go b/cloudformation/aws-cloudfront-streamingdistribution.go index 9613027415..dd6ff9a7bb 100644 --- a/cloudformation/aws-cloudfront-streamingdistribution.go +++ b/cloudformation/aws-cloudfront-streamingdistribution.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSCloudFrontStreamingDistribution) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCloudFrontStreamingDistributionResources retrieves all AWSCloudFrontStreamingDistribution items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFrontStreamingDistributionResources() map[string]*AWSCloudFrontStreamingDistribution { - results := map[string]*AWSCloudFrontStreamingDistribution{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCloudFrontStreamingDistribution: - results[name] = &resource - case *AWSCloudFrontStreamingDistribution: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CloudFront::StreamingDistribution" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloudFrontStreamingDistribution - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCloudFrontStreamingDistributionWithName retrieves all AWSCloudFrontStreamingDistribution items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFrontStreamingDistributionWithName(name string) (*AWSCloudFrontStreamingDistribution, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCloudFrontStreamingDistribution: - return &resource, nil - case *AWSCloudFrontStreamingDistribution: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CloudFront::StreamingDistribution" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloudFrontStreamingDistribution - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-cloudtrail-trail.go b/cloudformation/aws-cloudtrail-trail.go index cdbbb5fe1d..fe41419664 100644 --- a/cloudformation/aws-cloudtrail-trail.go +++ b/cloudformation/aws-cloudtrail-trail.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -172,63 +171,3 @@ func (r *AWSCloudTrailTrail) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCloudTrailTrailResources retrieves all AWSCloudTrailTrail items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudTrailTrailResources() map[string]*AWSCloudTrailTrail { - results := map[string]*AWSCloudTrailTrail{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCloudTrailTrail: - results[name] = &resource - case *AWSCloudTrailTrail: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CloudTrail::Trail" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloudTrailTrail - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCloudTrailTrailWithName retrieves all AWSCloudTrailTrail items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudTrailTrailWithName(name string) (*AWSCloudTrailTrail, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCloudTrailTrail: - return &resource, nil - case *AWSCloudTrailTrail: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CloudTrail::Trail" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloudTrailTrail - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-cloudwatch-alarm.go b/cloudformation/aws-cloudwatch-alarm.go index 83caa4d9ad..440ff9f330 100644 --- a/cloudformation/aws-cloudwatch-alarm.go +++ b/cloudformation/aws-cloudwatch-alarm.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -207,63 +206,3 @@ func (r *AWSCloudWatchAlarm) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCloudWatchAlarmResources retrieves all AWSCloudWatchAlarm items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudWatchAlarmResources() map[string]*AWSCloudWatchAlarm { - results := map[string]*AWSCloudWatchAlarm{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCloudWatchAlarm: - results[name] = &resource - case *AWSCloudWatchAlarm: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CloudWatch::Alarm" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloudWatchAlarm - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCloudWatchAlarmWithName retrieves all AWSCloudWatchAlarm items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudWatchAlarmWithName(name string) (*AWSCloudWatchAlarm, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCloudWatchAlarm: - return &resource, nil - case *AWSCloudWatchAlarm: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CloudWatch::Alarm" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloudWatchAlarm - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-cloudwatch-dashboard.go b/cloudformation/aws-cloudwatch-dashboard.go index 5c642dac4c..3ef3a145d4 100644 --- a/cloudformation/aws-cloudwatch-dashboard.go +++ b/cloudformation/aws-cloudwatch-dashboard.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSCloudWatchDashboard) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCloudWatchDashboardResources retrieves all AWSCloudWatchDashboard items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudWatchDashboardResources() map[string]*AWSCloudWatchDashboard { - results := map[string]*AWSCloudWatchDashboard{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCloudWatchDashboard: - results[name] = &resource - case *AWSCloudWatchDashboard: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CloudWatch::Dashboard" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloudWatchDashboard - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCloudWatchDashboardWithName retrieves all AWSCloudWatchDashboard items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudWatchDashboardWithName(name string) (*AWSCloudWatchDashboard, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCloudWatchDashboard: - return &resource, nil - case *AWSCloudWatchDashboard: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CloudWatch::Dashboard" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCloudWatchDashboard - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-codebuild-project.go b/cloudformation/aws-codebuild-project.go index d95f97e9ef..03ccf80b99 100644 --- a/cloudformation/aws-codebuild-project.go +++ b/cloudformation/aws-codebuild-project.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -192,63 +191,3 @@ func (r *AWSCodeBuildProject) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCodeBuildProjectResources retrieves all AWSCodeBuildProject items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodeBuildProjectResources() map[string]*AWSCodeBuildProject { - results := map[string]*AWSCodeBuildProject{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCodeBuildProject: - results[name] = &resource - case *AWSCodeBuildProject: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CodeBuild::Project" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCodeBuildProject - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCodeBuildProjectWithName retrieves all AWSCodeBuildProject items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodeBuildProjectWithName(name string) (*AWSCodeBuildProject, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCodeBuildProject: - return &resource, nil - case *AWSCodeBuildProject: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CodeBuild::Project" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCodeBuildProject - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-codecommit-repository.go b/cloudformation/aws-codecommit-repository.go index 207d4b609e..c45e30f9cc 100644 --- a/cloudformation/aws-codecommit-repository.go +++ b/cloudformation/aws-codecommit-repository.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSCodeCommitRepository) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCodeCommitRepositoryResources retrieves all AWSCodeCommitRepository items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodeCommitRepositoryResources() map[string]*AWSCodeCommitRepository { - results := map[string]*AWSCodeCommitRepository{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCodeCommitRepository: - results[name] = &resource - case *AWSCodeCommitRepository: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CodeCommit::Repository" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCodeCommitRepository - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCodeCommitRepositoryWithName retrieves all AWSCodeCommitRepository items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodeCommitRepositoryWithName(name string) (*AWSCodeCommitRepository, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCodeCommitRepository: - return &resource, nil - case *AWSCodeCommitRepository: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CodeCommit::Repository" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCodeCommitRepository - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-codedeploy-application.go b/cloudformation/aws-codedeploy-application.go index 41409f37ab..c35aea9c38 100644 --- a/cloudformation/aws-codedeploy-application.go +++ b/cloudformation/aws-codedeploy-application.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSCodeDeployApplication) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCodeDeployApplicationResources retrieves all AWSCodeDeployApplication items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodeDeployApplicationResources() map[string]*AWSCodeDeployApplication { - results := map[string]*AWSCodeDeployApplication{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCodeDeployApplication: - results[name] = &resource - case *AWSCodeDeployApplication: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CodeDeploy::Application" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCodeDeployApplication - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCodeDeployApplicationWithName retrieves all AWSCodeDeployApplication items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodeDeployApplicationWithName(name string) (*AWSCodeDeployApplication, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCodeDeployApplication: - return &resource, nil - case *AWSCodeDeployApplication: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CodeDeploy::Application" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCodeDeployApplication - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-codedeploy-deploymentconfig.go b/cloudformation/aws-codedeploy-deploymentconfig.go index 0f5f7f2dcd..dbd613970b 100644 --- a/cloudformation/aws-codedeploy-deploymentconfig.go +++ b/cloudformation/aws-codedeploy-deploymentconfig.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSCodeDeployDeploymentConfig) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCodeDeployDeploymentConfigResources retrieves all AWSCodeDeployDeploymentConfig items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodeDeployDeploymentConfigResources() map[string]*AWSCodeDeployDeploymentConfig { - results := map[string]*AWSCodeDeployDeploymentConfig{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCodeDeployDeploymentConfig: - results[name] = &resource - case *AWSCodeDeployDeploymentConfig: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CodeDeploy::DeploymentConfig" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCodeDeployDeploymentConfig - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCodeDeployDeploymentConfigWithName retrieves all AWSCodeDeployDeploymentConfig items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodeDeployDeploymentConfigWithName(name string) (*AWSCodeDeployDeploymentConfig, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCodeDeployDeploymentConfig: - return &resource, nil - case *AWSCodeDeployDeploymentConfig: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CodeDeploy::DeploymentConfig" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCodeDeployDeploymentConfig - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-codedeploy-deploymentgroup.go b/cloudformation/aws-codedeploy-deploymentgroup.go index 4a75b883db..7a2606e387 100644 --- a/cloudformation/aws-codedeploy-deploymentgroup.go +++ b/cloudformation/aws-codedeploy-deploymentgroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -182,63 +181,3 @@ func (r *AWSCodeDeployDeploymentGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCodeDeployDeploymentGroupResources retrieves all AWSCodeDeployDeploymentGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodeDeployDeploymentGroupResources() map[string]*AWSCodeDeployDeploymentGroup { - results := map[string]*AWSCodeDeployDeploymentGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCodeDeployDeploymentGroup: - results[name] = &resource - case *AWSCodeDeployDeploymentGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CodeDeploy::DeploymentGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCodeDeployDeploymentGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCodeDeployDeploymentGroupWithName retrieves all AWSCodeDeployDeploymentGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodeDeployDeploymentGroupWithName(name string) (*AWSCodeDeployDeploymentGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCodeDeployDeploymentGroup: - return &resource, nil - case *AWSCodeDeployDeploymentGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CodeDeploy::DeploymentGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCodeDeployDeploymentGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-codepipeline-customactiontype.go b/cloudformation/aws-codepipeline-customactiontype.go index b9b14c568c..60afdaf3ef 100644 --- a/cloudformation/aws-codepipeline-customactiontype.go +++ b/cloudformation/aws-codepipeline-customactiontype.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSCodePipelineCustomActionType) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCodePipelineCustomActionTypeResources retrieves all AWSCodePipelineCustomActionType items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodePipelineCustomActionTypeResources() map[string]*AWSCodePipelineCustomActionType { - results := map[string]*AWSCodePipelineCustomActionType{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCodePipelineCustomActionType: - results[name] = &resource - case *AWSCodePipelineCustomActionType: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CodePipeline::CustomActionType" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCodePipelineCustomActionType - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCodePipelineCustomActionTypeWithName retrieves all AWSCodePipelineCustomActionType items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodePipelineCustomActionTypeWithName(name string) (*AWSCodePipelineCustomActionType, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCodePipelineCustomActionType: - return &resource, nil - case *AWSCodePipelineCustomActionType: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CodePipeline::CustomActionType" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCodePipelineCustomActionType - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-codepipeline-pipeline.go b/cloudformation/aws-codepipeline-pipeline.go index 3ae4e4ad73..04d296a8f8 100644 --- a/cloudformation/aws-codepipeline-pipeline.go +++ b/cloudformation/aws-codepipeline-pipeline.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSCodePipelinePipeline) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCodePipelinePipelineResources retrieves all AWSCodePipelinePipeline items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodePipelinePipelineResources() map[string]*AWSCodePipelinePipeline { - results := map[string]*AWSCodePipelinePipeline{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCodePipelinePipeline: - results[name] = &resource - case *AWSCodePipelinePipeline: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CodePipeline::Pipeline" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCodePipelinePipeline - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCodePipelinePipelineWithName retrieves all AWSCodePipelinePipeline items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodePipelinePipelineWithName(name string) (*AWSCodePipelinePipeline, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCodePipelinePipeline: - return &resource, nil - case *AWSCodePipelinePipeline: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CodePipeline::Pipeline" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCodePipelinePipeline - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-codepipeline-webhook.go b/cloudformation/aws-codepipeline-webhook.go index 292b0287fa..e03a9d72c9 100644 --- a/cloudformation/aws-codepipeline-webhook.go +++ b/cloudformation/aws-codepipeline-webhook.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -147,63 +146,3 @@ func (r *AWSCodePipelineWebhook) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCodePipelineWebhookResources retrieves all AWSCodePipelineWebhook items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodePipelineWebhookResources() map[string]*AWSCodePipelineWebhook { - results := map[string]*AWSCodePipelineWebhook{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCodePipelineWebhook: - results[name] = &resource - case *AWSCodePipelineWebhook: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CodePipeline::Webhook" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCodePipelineWebhook - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCodePipelineWebhookWithName retrieves all AWSCodePipelineWebhook items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodePipelineWebhookWithName(name string) (*AWSCodePipelineWebhook, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCodePipelineWebhook: - return &resource, nil - case *AWSCodePipelineWebhook: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::CodePipeline::Webhook" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCodePipelineWebhook - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-cognito-identitypool.go b/cloudformation/aws-cognito-identitypool.go index eb0f8dc17a..cb83b4eee2 100644 --- a/cloudformation/aws-cognito-identitypool.go +++ b/cloudformation/aws-cognito-identitypool.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -157,63 +156,3 @@ func (r *AWSCognitoIdentityPool) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCognitoIdentityPoolResources retrieves all AWSCognitoIdentityPool items from an AWS CloudFormation template -func (t *Template) GetAllAWSCognitoIdentityPoolResources() map[string]*AWSCognitoIdentityPool { - results := map[string]*AWSCognitoIdentityPool{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCognitoIdentityPool: - results[name] = &resource - case *AWSCognitoIdentityPool: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Cognito::IdentityPool" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCognitoIdentityPool - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCognitoIdentityPoolWithName retrieves all AWSCognitoIdentityPool items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCognitoIdentityPoolWithName(name string) (*AWSCognitoIdentityPool, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCognitoIdentityPool: - return &resource, nil - case *AWSCognitoIdentityPool: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Cognito::IdentityPool" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCognitoIdentityPool - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-cognito-identitypoolroleattachment.go b/cloudformation/aws-cognito-identitypoolroleattachment.go index 3242ee9474..f6bc1f3559 100644 --- a/cloudformation/aws-cognito-identitypoolroleattachment.go +++ b/cloudformation/aws-cognito-identitypoolroleattachment.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSCognitoIdentityPoolRoleAttachment) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCognitoIdentityPoolRoleAttachmentResources retrieves all AWSCognitoIdentityPoolRoleAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSCognitoIdentityPoolRoleAttachmentResources() map[string]*AWSCognitoIdentityPoolRoleAttachment { - results := map[string]*AWSCognitoIdentityPoolRoleAttachment{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCognitoIdentityPoolRoleAttachment: - results[name] = &resource - case *AWSCognitoIdentityPoolRoleAttachment: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Cognito::IdentityPoolRoleAttachment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCognitoIdentityPoolRoleAttachment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCognitoIdentityPoolRoleAttachmentWithName retrieves all AWSCognitoIdentityPoolRoleAttachment items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCognitoIdentityPoolRoleAttachmentWithName(name string) (*AWSCognitoIdentityPoolRoleAttachment, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCognitoIdentityPoolRoleAttachment: - return &resource, nil - case *AWSCognitoIdentityPoolRoleAttachment: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Cognito::IdentityPoolRoleAttachment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCognitoIdentityPoolRoleAttachment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-cognito-userpool.go b/cloudformation/aws-cognito-userpool.go index fe6d2081c8..145ce4a45c 100644 --- a/cloudformation/aws-cognito-userpool.go +++ b/cloudformation/aws-cognito-userpool.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -192,63 +191,3 @@ func (r *AWSCognitoUserPool) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCognitoUserPoolResources retrieves all AWSCognitoUserPool items from an AWS CloudFormation template -func (t *Template) GetAllAWSCognitoUserPoolResources() map[string]*AWSCognitoUserPool { - results := map[string]*AWSCognitoUserPool{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCognitoUserPool: - results[name] = &resource - case *AWSCognitoUserPool: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Cognito::UserPool" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCognitoUserPool - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCognitoUserPoolWithName retrieves all AWSCognitoUserPool items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCognitoUserPoolWithName(name string) (*AWSCognitoUserPool, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCognitoUserPool: - return &resource, nil - case *AWSCognitoUserPool: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Cognito::UserPool" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCognitoUserPool - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-cognito-userpoolclient.go b/cloudformation/aws-cognito-userpoolclient.go index f728d48dc9..2d2870b536 100644 --- a/cloudformation/aws-cognito-userpoolclient.go +++ b/cloudformation/aws-cognito-userpoolclient.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSCognitoUserPoolClient) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCognitoUserPoolClientResources retrieves all AWSCognitoUserPoolClient items from an AWS CloudFormation template -func (t *Template) GetAllAWSCognitoUserPoolClientResources() map[string]*AWSCognitoUserPoolClient { - results := map[string]*AWSCognitoUserPoolClient{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCognitoUserPoolClient: - results[name] = &resource - case *AWSCognitoUserPoolClient: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Cognito::UserPoolClient" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCognitoUserPoolClient - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCognitoUserPoolClientWithName retrieves all AWSCognitoUserPoolClient items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCognitoUserPoolClientWithName(name string) (*AWSCognitoUserPoolClient, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCognitoUserPoolClient: - return &resource, nil - case *AWSCognitoUserPoolClient: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Cognito::UserPoolClient" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCognitoUserPoolClient - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-cognito-userpoolgroup.go b/cloudformation/aws-cognito-userpoolgroup.go index d29c350be8..9d4bf70637 100644 --- a/cloudformation/aws-cognito-userpoolgroup.go +++ b/cloudformation/aws-cognito-userpoolgroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSCognitoUserPoolGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCognitoUserPoolGroupResources retrieves all AWSCognitoUserPoolGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSCognitoUserPoolGroupResources() map[string]*AWSCognitoUserPoolGroup { - results := map[string]*AWSCognitoUserPoolGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCognitoUserPoolGroup: - results[name] = &resource - case *AWSCognitoUserPoolGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Cognito::UserPoolGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCognitoUserPoolGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCognitoUserPoolGroupWithName retrieves all AWSCognitoUserPoolGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCognitoUserPoolGroupWithName(name string) (*AWSCognitoUserPoolGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCognitoUserPoolGroup: - return &resource, nil - case *AWSCognitoUserPoolGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Cognito::UserPoolGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCognitoUserPoolGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-cognito-userpooluser.go b/cloudformation/aws-cognito-userpooluser.go index 8c2623be65..a30d34aa6e 100644 --- a/cloudformation/aws-cognito-userpooluser.go +++ b/cloudformation/aws-cognito-userpooluser.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSCognitoUserPoolUser) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSCognitoUserPoolUserResources retrieves all AWSCognitoUserPoolUser items from an AWS CloudFormation template -func (t *Template) GetAllAWSCognitoUserPoolUserResources() map[string]*AWSCognitoUserPoolUser { - results := map[string]*AWSCognitoUserPoolUser{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCognitoUserPoolUser: - results[name] = &resource - case *AWSCognitoUserPoolUser: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Cognito::UserPoolUser" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCognitoUserPoolUser - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCognitoUserPoolUserWithName retrieves all AWSCognitoUserPoolUser items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCognitoUserPoolUserWithName(name string) (*AWSCognitoUserPoolUser, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCognitoUserPoolUser: - return &resource, nil - case *AWSCognitoUserPoolUser: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Cognito::UserPoolUser" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCognitoUserPoolUser - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-cognito-userpoolusertogroupattachment.go b/cloudformation/aws-cognito-userpoolusertogroupattachment.go index d14c1d8a81..1735e69ace 100644 --- a/cloudformation/aws-cognito-userpoolusertogroupattachment.go +++ b/cloudformation/aws-cognito-userpoolusertogroupattachment.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSCognitoUserPoolUserToGroupAttachment) UnmarshalJSON(b []byte) error return nil } - -// GetAllAWSCognitoUserPoolUserToGroupAttachmentResources retrieves all AWSCognitoUserPoolUserToGroupAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSCognitoUserPoolUserToGroupAttachmentResources() map[string]*AWSCognitoUserPoolUserToGroupAttachment { - results := map[string]*AWSCognitoUserPoolUserToGroupAttachment{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSCognitoUserPoolUserToGroupAttachment: - results[name] = &resource - case *AWSCognitoUserPoolUserToGroupAttachment: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Cognito::UserPoolUserToGroupAttachment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCognitoUserPoolUserToGroupAttachment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSCognitoUserPoolUserToGroupAttachmentWithName retrieves all AWSCognitoUserPoolUserToGroupAttachment items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCognitoUserPoolUserToGroupAttachmentWithName(name string) (*AWSCognitoUserPoolUserToGroupAttachment, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSCognitoUserPoolUserToGroupAttachment: - return &resource, nil - case *AWSCognitoUserPoolUserToGroupAttachment: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Cognito::UserPoolUserToGroupAttachment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSCognitoUserPoolUserToGroupAttachment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-config-aggregationauthorization.go b/cloudformation/aws-config-aggregationauthorization.go index 4d416e221f..8e6b95bbf8 100644 --- a/cloudformation/aws-config-aggregationauthorization.go +++ b/cloudformation/aws-config-aggregationauthorization.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSConfigAggregationAuthorization) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSConfigAggregationAuthorizationResources retrieves all AWSConfigAggregationAuthorization items from an AWS CloudFormation template -func (t *Template) GetAllAWSConfigAggregationAuthorizationResources() map[string]*AWSConfigAggregationAuthorization { - results := map[string]*AWSConfigAggregationAuthorization{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSConfigAggregationAuthorization: - results[name] = &resource - case *AWSConfigAggregationAuthorization: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Config::AggregationAuthorization" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSConfigAggregationAuthorization - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSConfigAggregationAuthorizationWithName retrieves all AWSConfigAggregationAuthorization items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSConfigAggregationAuthorizationWithName(name string) (*AWSConfigAggregationAuthorization, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSConfigAggregationAuthorization: - return &resource, nil - case *AWSConfigAggregationAuthorization: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Config::AggregationAuthorization" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSConfigAggregationAuthorization - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-config-configrule.go b/cloudformation/aws-config-configrule.go index c646db7ac1..23859ce8f0 100644 --- a/cloudformation/aws-config-configrule.go +++ b/cloudformation/aws-config-configrule.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -137,63 +136,3 @@ func (r *AWSConfigConfigRule) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSConfigConfigRuleResources retrieves all AWSConfigConfigRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSConfigConfigRuleResources() map[string]*AWSConfigConfigRule { - results := map[string]*AWSConfigConfigRule{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSConfigConfigRule: - results[name] = &resource - case *AWSConfigConfigRule: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Config::ConfigRule" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSConfigConfigRule - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSConfigConfigRuleWithName retrieves all AWSConfigConfigRule items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSConfigConfigRuleWithName(name string) (*AWSConfigConfigRule, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSConfigConfigRule: - return &resource, nil - case *AWSConfigConfigRule: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Config::ConfigRule" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSConfigConfigRule - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-config-configurationaggregator.go b/cloudformation/aws-config-configurationaggregator.go index 656859126c..982b261f98 100644 --- a/cloudformation/aws-config-configurationaggregator.go +++ b/cloudformation/aws-config-configurationaggregator.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSConfigConfigurationAggregator) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSConfigConfigurationAggregatorResources retrieves all AWSConfigConfigurationAggregator items from an AWS CloudFormation template -func (t *Template) GetAllAWSConfigConfigurationAggregatorResources() map[string]*AWSConfigConfigurationAggregator { - results := map[string]*AWSConfigConfigurationAggregator{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSConfigConfigurationAggregator: - results[name] = &resource - case *AWSConfigConfigurationAggregator: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Config::ConfigurationAggregator" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSConfigConfigurationAggregator - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSConfigConfigurationAggregatorWithName retrieves all AWSConfigConfigurationAggregator items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSConfigConfigurationAggregatorWithName(name string) (*AWSConfigConfigurationAggregator, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSConfigConfigurationAggregator: - return &resource, nil - case *AWSConfigConfigurationAggregator: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Config::ConfigurationAggregator" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSConfigConfigurationAggregator - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-config-configurationrecorder.go b/cloudformation/aws-config-configurationrecorder.go index b327d999be..fb11f316ca 100644 --- a/cloudformation/aws-config-configurationrecorder.go +++ b/cloudformation/aws-config-configurationrecorder.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSConfigConfigurationRecorder) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSConfigConfigurationRecorderResources retrieves all AWSConfigConfigurationRecorder items from an AWS CloudFormation template -func (t *Template) GetAllAWSConfigConfigurationRecorderResources() map[string]*AWSConfigConfigurationRecorder { - results := map[string]*AWSConfigConfigurationRecorder{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSConfigConfigurationRecorder: - results[name] = &resource - case *AWSConfigConfigurationRecorder: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Config::ConfigurationRecorder" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSConfigConfigurationRecorder - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSConfigConfigurationRecorderWithName retrieves all AWSConfigConfigurationRecorder items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSConfigConfigurationRecorderWithName(name string) (*AWSConfigConfigurationRecorder, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSConfigConfigurationRecorder: - return &resource, nil - case *AWSConfigConfigurationRecorder: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Config::ConfigurationRecorder" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSConfigConfigurationRecorder - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-config-deliverychannel.go b/cloudformation/aws-config-deliverychannel.go index 8ea417d9b6..0e97f91e0d 100644 --- a/cloudformation/aws-config-deliverychannel.go +++ b/cloudformation/aws-config-deliverychannel.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSConfigDeliveryChannel) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSConfigDeliveryChannelResources retrieves all AWSConfigDeliveryChannel items from an AWS CloudFormation template -func (t *Template) GetAllAWSConfigDeliveryChannelResources() map[string]*AWSConfigDeliveryChannel { - results := map[string]*AWSConfigDeliveryChannel{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSConfigDeliveryChannel: - results[name] = &resource - case *AWSConfigDeliveryChannel: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Config::DeliveryChannel" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSConfigDeliveryChannel - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSConfigDeliveryChannelWithName retrieves all AWSConfigDeliveryChannel items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSConfigDeliveryChannelWithName(name string) (*AWSConfigDeliveryChannel, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSConfigDeliveryChannel: - return &resource, nil - case *AWSConfigDeliveryChannel: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Config::DeliveryChannel" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSConfigDeliveryChannel - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-datapipeline-pipeline.go b/cloudformation/aws-datapipeline-pipeline.go index de2eb8e5ca..77118c1931 100644 --- a/cloudformation/aws-datapipeline-pipeline.go +++ b/cloudformation/aws-datapipeline-pipeline.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSDataPipelinePipeline) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSDataPipelinePipelineResources retrieves all AWSDataPipelinePipeline items from an AWS CloudFormation template -func (t *Template) GetAllAWSDataPipelinePipelineResources() map[string]*AWSDataPipelinePipeline { - results := map[string]*AWSDataPipelinePipeline{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSDataPipelinePipeline: - results[name] = &resource - case *AWSDataPipelinePipeline: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DataPipeline::Pipeline" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDataPipelinePipeline - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSDataPipelinePipelineWithName retrieves all AWSDataPipelinePipeline items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDataPipelinePipelineWithName(name string) (*AWSDataPipelinePipeline, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSDataPipelinePipeline: - return &resource, nil - case *AWSDataPipelinePipeline: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DataPipeline::Pipeline" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDataPipelinePipeline - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-dax-cluster.go b/cloudformation/aws-dax-cluster.go index 1275eac20c..398b25dd0c 100644 --- a/cloudformation/aws-dax-cluster.go +++ b/cloudformation/aws-dax-cluster.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -172,63 +171,3 @@ func (r *AWSDAXCluster) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSDAXClusterResources retrieves all AWSDAXCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSDAXClusterResources() map[string]*AWSDAXCluster { - results := map[string]*AWSDAXCluster{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSDAXCluster: - results[name] = &resource - case *AWSDAXCluster: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DAX::Cluster" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDAXCluster - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSDAXClusterWithName retrieves all AWSDAXCluster items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDAXClusterWithName(name string) (*AWSDAXCluster, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSDAXCluster: - return &resource, nil - case *AWSDAXCluster: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DAX::Cluster" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDAXCluster - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-dax-parametergroup.go b/cloudformation/aws-dax-parametergroup.go index b8f5625d91..1caa9013c2 100644 --- a/cloudformation/aws-dax-parametergroup.go +++ b/cloudformation/aws-dax-parametergroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSDAXParameterGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSDAXParameterGroupResources retrieves all AWSDAXParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSDAXParameterGroupResources() map[string]*AWSDAXParameterGroup { - results := map[string]*AWSDAXParameterGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSDAXParameterGroup: - results[name] = &resource - case *AWSDAXParameterGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DAX::ParameterGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDAXParameterGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSDAXParameterGroupWithName retrieves all AWSDAXParameterGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDAXParameterGroupWithName(name string) (*AWSDAXParameterGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSDAXParameterGroup: - return &resource, nil - case *AWSDAXParameterGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DAX::ParameterGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDAXParameterGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-dax-subnetgroup.go b/cloudformation/aws-dax-subnetgroup.go index bad7c5bf3b..a97b43b879 100644 --- a/cloudformation/aws-dax-subnetgroup.go +++ b/cloudformation/aws-dax-subnetgroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSDAXSubnetGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSDAXSubnetGroupResources retrieves all AWSDAXSubnetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSDAXSubnetGroupResources() map[string]*AWSDAXSubnetGroup { - results := map[string]*AWSDAXSubnetGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSDAXSubnetGroup: - results[name] = &resource - case *AWSDAXSubnetGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DAX::SubnetGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDAXSubnetGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSDAXSubnetGroupWithName retrieves all AWSDAXSubnetGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDAXSubnetGroupWithName(name string) (*AWSDAXSubnetGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSDAXSubnetGroup: - return &resource, nil - case *AWSDAXSubnetGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DAX::SubnetGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDAXSubnetGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-directoryservice-microsoftad.go b/cloudformation/aws-directoryservice-microsoftad.go index 612c5c576e..7a2bba20dc 100644 --- a/cloudformation/aws-directoryservice-microsoftad.go +++ b/cloudformation/aws-directoryservice-microsoftad.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSDirectoryServiceMicrosoftAD) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSDirectoryServiceMicrosoftADResources retrieves all AWSDirectoryServiceMicrosoftAD items from an AWS CloudFormation template -func (t *Template) GetAllAWSDirectoryServiceMicrosoftADResources() map[string]*AWSDirectoryServiceMicrosoftAD { - results := map[string]*AWSDirectoryServiceMicrosoftAD{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSDirectoryServiceMicrosoftAD: - results[name] = &resource - case *AWSDirectoryServiceMicrosoftAD: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DirectoryService::MicrosoftAD" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDirectoryServiceMicrosoftAD - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSDirectoryServiceMicrosoftADWithName retrieves all AWSDirectoryServiceMicrosoftAD items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDirectoryServiceMicrosoftADWithName(name string) (*AWSDirectoryServiceMicrosoftAD, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSDirectoryServiceMicrosoftAD: - return &resource, nil - case *AWSDirectoryServiceMicrosoftAD: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DirectoryService::MicrosoftAD" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDirectoryServiceMicrosoftAD - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-directoryservice-simplead.go b/cloudformation/aws-directoryservice-simplead.go index cb70fe4ece..40775060af 100644 --- a/cloudformation/aws-directoryservice-simplead.go +++ b/cloudformation/aws-directoryservice-simplead.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -147,63 +146,3 @@ func (r *AWSDirectoryServiceSimpleAD) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSDirectoryServiceSimpleADResources retrieves all AWSDirectoryServiceSimpleAD items from an AWS CloudFormation template -func (t *Template) GetAllAWSDirectoryServiceSimpleADResources() map[string]*AWSDirectoryServiceSimpleAD { - results := map[string]*AWSDirectoryServiceSimpleAD{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSDirectoryServiceSimpleAD: - results[name] = &resource - case *AWSDirectoryServiceSimpleAD: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DirectoryService::SimpleAD" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDirectoryServiceSimpleAD - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSDirectoryServiceSimpleADWithName retrieves all AWSDirectoryServiceSimpleAD items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDirectoryServiceSimpleADWithName(name string) (*AWSDirectoryServiceSimpleAD, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSDirectoryServiceSimpleAD: - return &resource, nil - case *AWSDirectoryServiceSimpleAD: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DirectoryService::SimpleAD" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDirectoryServiceSimpleAD - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-dlm-lifecyclepolicy.go b/cloudformation/aws-dlm-lifecyclepolicy.go index 7e926b0abe..82e1b9f41f 100644 --- a/cloudformation/aws-dlm-lifecyclepolicy.go +++ b/cloudformation/aws-dlm-lifecyclepolicy.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSDLMLifecyclePolicy) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSDLMLifecyclePolicyResources retrieves all AWSDLMLifecyclePolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSDLMLifecyclePolicyResources() map[string]*AWSDLMLifecyclePolicy { - results := map[string]*AWSDLMLifecyclePolicy{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSDLMLifecyclePolicy: - results[name] = &resource - case *AWSDLMLifecyclePolicy: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DLM::LifecyclePolicy" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDLMLifecyclePolicy - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSDLMLifecyclePolicyWithName retrieves all AWSDLMLifecyclePolicy items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDLMLifecyclePolicyWithName(name string) (*AWSDLMLifecyclePolicy, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSDLMLifecyclePolicy: - return &resource, nil - case *AWSDLMLifecyclePolicy: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DLM::LifecyclePolicy" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDLMLifecyclePolicy - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-dms-certificate.go b/cloudformation/aws-dms-certificate.go index 71281de46f..f46e3edad0 100644 --- a/cloudformation/aws-dms-certificate.go +++ b/cloudformation/aws-dms-certificate.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSDMSCertificate) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSDMSCertificateResources retrieves all AWSDMSCertificate items from an AWS CloudFormation template -func (t *Template) GetAllAWSDMSCertificateResources() map[string]*AWSDMSCertificate { - results := map[string]*AWSDMSCertificate{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSDMSCertificate: - results[name] = &resource - case *AWSDMSCertificate: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DMS::Certificate" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDMSCertificate - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSDMSCertificateWithName retrieves all AWSDMSCertificate items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDMSCertificateWithName(name string) (*AWSDMSCertificate, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSDMSCertificate: - return &resource, nil - case *AWSDMSCertificate: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DMS::Certificate" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDMSCertificate - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-dms-endpoint.go b/cloudformation/aws-dms-endpoint.go index 30c44c7bda..fffb25fbf7 100644 --- a/cloudformation/aws-dms-endpoint.go +++ b/cloudformation/aws-dms-endpoint.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -197,63 +196,3 @@ func (r *AWSDMSEndpoint) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSDMSEndpointResources retrieves all AWSDMSEndpoint items from an AWS CloudFormation template -func (t *Template) GetAllAWSDMSEndpointResources() map[string]*AWSDMSEndpoint { - results := map[string]*AWSDMSEndpoint{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSDMSEndpoint: - results[name] = &resource - case *AWSDMSEndpoint: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DMS::Endpoint" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDMSEndpoint - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSDMSEndpointWithName retrieves all AWSDMSEndpoint items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDMSEndpointWithName(name string) (*AWSDMSEndpoint, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSDMSEndpoint: - return &resource, nil - case *AWSDMSEndpoint: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DMS::Endpoint" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDMSEndpoint - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-dms-eventsubscription.go b/cloudformation/aws-dms-eventsubscription.go index 7c8cda85b6..2118551b9e 100644 --- a/cloudformation/aws-dms-eventsubscription.go +++ b/cloudformation/aws-dms-eventsubscription.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSDMSEventSubscription) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSDMSEventSubscriptionResources retrieves all AWSDMSEventSubscription items from an AWS CloudFormation template -func (t *Template) GetAllAWSDMSEventSubscriptionResources() map[string]*AWSDMSEventSubscription { - results := map[string]*AWSDMSEventSubscription{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSDMSEventSubscription: - results[name] = &resource - case *AWSDMSEventSubscription: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DMS::EventSubscription" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDMSEventSubscription - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSDMSEventSubscriptionWithName retrieves all AWSDMSEventSubscription items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDMSEventSubscriptionWithName(name string) (*AWSDMSEventSubscription, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSDMSEventSubscription: - return &resource, nil - case *AWSDMSEventSubscription: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DMS::EventSubscription" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDMSEventSubscription - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-dms-replicationinstance.go b/cloudformation/aws-dms-replicationinstance.go index 3b70a013e4..0e2078088c 100644 --- a/cloudformation/aws-dms-replicationinstance.go +++ b/cloudformation/aws-dms-replicationinstance.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -177,63 +176,3 @@ func (r *AWSDMSReplicationInstance) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSDMSReplicationInstanceResources retrieves all AWSDMSReplicationInstance items from an AWS CloudFormation template -func (t *Template) GetAllAWSDMSReplicationInstanceResources() map[string]*AWSDMSReplicationInstance { - results := map[string]*AWSDMSReplicationInstance{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSDMSReplicationInstance: - results[name] = &resource - case *AWSDMSReplicationInstance: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DMS::ReplicationInstance" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDMSReplicationInstance - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSDMSReplicationInstanceWithName retrieves all AWSDMSReplicationInstance items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDMSReplicationInstanceWithName(name string) (*AWSDMSReplicationInstance, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSDMSReplicationInstance: - return &resource, nil - case *AWSDMSReplicationInstance: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DMS::ReplicationInstance" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDMSReplicationInstance - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-dms-replicationsubnetgroup.go b/cloudformation/aws-dms-replicationsubnetgroup.go index 78d0092633..8041561bd8 100644 --- a/cloudformation/aws-dms-replicationsubnetgroup.go +++ b/cloudformation/aws-dms-replicationsubnetgroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSDMSReplicationSubnetGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSDMSReplicationSubnetGroupResources retrieves all AWSDMSReplicationSubnetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSDMSReplicationSubnetGroupResources() map[string]*AWSDMSReplicationSubnetGroup { - results := map[string]*AWSDMSReplicationSubnetGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSDMSReplicationSubnetGroup: - results[name] = &resource - case *AWSDMSReplicationSubnetGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DMS::ReplicationSubnetGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDMSReplicationSubnetGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSDMSReplicationSubnetGroupWithName retrieves all AWSDMSReplicationSubnetGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDMSReplicationSubnetGroupWithName(name string) (*AWSDMSReplicationSubnetGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSDMSReplicationSubnetGroup: - return &resource, nil - case *AWSDMSReplicationSubnetGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DMS::ReplicationSubnetGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDMSReplicationSubnetGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-dms-replicationtask.go b/cloudformation/aws-dms-replicationtask.go index 200e3019ce..8651255260 100644 --- a/cloudformation/aws-dms-replicationtask.go +++ b/cloudformation/aws-dms-replicationtask.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -152,63 +151,3 @@ func (r *AWSDMSReplicationTask) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSDMSReplicationTaskResources retrieves all AWSDMSReplicationTask items from an AWS CloudFormation template -func (t *Template) GetAllAWSDMSReplicationTaskResources() map[string]*AWSDMSReplicationTask { - results := map[string]*AWSDMSReplicationTask{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSDMSReplicationTask: - results[name] = &resource - case *AWSDMSReplicationTask: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DMS::ReplicationTask" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDMSReplicationTask - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSDMSReplicationTaskWithName retrieves all AWSDMSReplicationTask items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDMSReplicationTaskWithName(name string) (*AWSDMSReplicationTask, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSDMSReplicationTask: - return &resource, nil - case *AWSDMSReplicationTask: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DMS::ReplicationTask" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDMSReplicationTask - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-docdb-dbcluster.go b/cloudformation/aws-docdb-dbcluster.go index e5fcb5eafc..d91712d8a6 100644 --- a/cloudformation/aws-docdb-dbcluster.go +++ b/cloudformation/aws-docdb-dbcluster.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -187,63 +186,3 @@ func (r *AWSDocDBDBCluster) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSDocDBDBClusterResources retrieves all AWSDocDBDBCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSDocDBDBClusterResources() map[string]*AWSDocDBDBCluster { - results := map[string]*AWSDocDBDBCluster{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSDocDBDBCluster: - results[name] = &resource - case *AWSDocDBDBCluster: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DocDB::DBCluster" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDocDBDBCluster - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSDocDBDBClusterWithName retrieves all AWSDocDBDBCluster items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDocDBDBClusterWithName(name string) (*AWSDocDBDBCluster, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSDocDBDBCluster: - return &resource, nil - case *AWSDocDBDBCluster: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DocDB::DBCluster" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDocDBDBCluster - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-docdb-dbclusterparametergroup.go b/cloudformation/aws-docdb-dbclusterparametergroup.go index 5744874672..cece8f1ff6 100644 --- a/cloudformation/aws-docdb-dbclusterparametergroup.go +++ b/cloudformation/aws-docdb-dbclusterparametergroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSDocDBDBClusterParameterGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSDocDBDBClusterParameterGroupResources retrieves all AWSDocDBDBClusterParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSDocDBDBClusterParameterGroupResources() map[string]*AWSDocDBDBClusterParameterGroup { - results := map[string]*AWSDocDBDBClusterParameterGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSDocDBDBClusterParameterGroup: - results[name] = &resource - case *AWSDocDBDBClusterParameterGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DocDB::DBClusterParameterGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDocDBDBClusterParameterGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSDocDBDBClusterParameterGroupWithName retrieves all AWSDocDBDBClusterParameterGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDocDBDBClusterParameterGroupWithName(name string) (*AWSDocDBDBClusterParameterGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSDocDBDBClusterParameterGroup: - return &resource, nil - case *AWSDocDBDBClusterParameterGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DocDB::DBClusterParameterGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDocDBDBClusterParameterGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-docdb-dbinstance.go b/cloudformation/aws-docdb-dbinstance.go index 0cb87de8ba..00d88b79fb 100644 --- a/cloudformation/aws-docdb-dbinstance.go +++ b/cloudformation/aws-docdb-dbinstance.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSDocDBDBInstance) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSDocDBDBInstanceResources retrieves all AWSDocDBDBInstance items from an AWS CloudFormation template -func (t *Template) GetAllAWSDocDBDBInstanceResources() map[string]*AWSDocDBDBInstance { - results := map[string]*AWSDocDBDBInstance{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSDocDBDBInstance: - results[name] = &resource - case *AWSDocDBDBInstance: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DocDB::DBInstance" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDocDBDBInstance - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSDocDBDBInstanceWithName retrieves all AWSDocDBDBInstance items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDocDBDBInstanceWithName(name string) (*AWSDocDBDBInstance, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSDocDBDBInstance: - return &resource, nil - case *AWSDocDBDBInstance: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DocDB::DBInstance" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDocDBDBInstance - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-docdb-dbsubnetgroup.go b/cloudformation/aws-docdb-dbsubnetgroup.go index dd089496f4..b15acb49ab 100644 --- a/cloudformation/aws-docdb-dbsubnetgroup.go +++ b/cloudformation/aws-docdb-dbsubnetgroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSDocDBDBSubnetGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSDocDBDBSubnetGroupResources retrieves all AWSDocDBDBSubnetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSDocDBDBSubnetGroupResources() map[string]*AWSDocDBDBSubnetGroup { - results := map[string]*AWSDocDBDBSubnetGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSDocDBDBSubnetGroup: - results[name] = &resource - case *AWSDocDBDBSubnetGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DocDB::DBSubnetGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDocDBDBSubnetGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSDocDBDBSubnetGroupWithName retrieves all AWSDocDBDBSubnetGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDocDBDBSubnetGroupWithName(name string) (*AWSDocDBDBSubnetGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSDocDBDBSubnetGroup: - return &resource, nil - case *AWSDocDBDBSubnetGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DocDB::DBSubnetGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDocDBDBSubnetGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-dynamodb-table.go b/cloudformation/aws-dynamodb-table.go index eacb1b6d8a..61d23ea3ed 100644 --- a/cloudformation/aws-dynamodb-table.go +++ b/cloudformation/aws-dynamodb-table.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -167,63 +166,3 @@ func (r *AWSDynamoDBTable) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSDynamoDBTableResources retrieves all AWSDynamoDBTable items from an AWS CloudFormation template -func (t *Template) GetAllAWSDynamoDBTableResources() map[string]*AWSDynamoDBTable { - results := map[string]*AWSDynamoDBTable{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSDynamoDBTable: - results[name] = &resource - case *AWSDynamoDBTable: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DynamoDB::Table" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDynamoDBTable - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSDynamoDBTableWithName retrieves all AWSDynamoDBTable items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDynamoDBTableWithName(name string) (*AWSDynamoDBTable, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSDynamoDBTable: - return &resource, nil - case *AWSDynamoDBTable: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::DynamoDB::Table" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSDynamoDBTable - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-customergateway.go b/cloudformation/aws-ec2-customergateway.go index 3eee1c13a8..38fdbc5cd3 100644 --- a/cloudformation/aws-ec2-customergateway.go +++ b/cloudformation/aws-ec2-customergateway.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSEC2CustomerGateway) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2CustomerGatewayResources retrieves all AWSEC2CustomerGateway items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2CustomerGatewayResources() map[string]*AWSEC2CustomerGateway { - results := map[string]*AWSEC2CustomerGateway{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2CustomerGateway: - results[name] = &resource - case *AWSEC2CustomerGateway: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::CustomerGateway" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2CustomerGateway - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2CustomerGatewayWithName retrieves all AWSEC2CustomerGateway items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2CustomerGatewayWithName(name string) (*AWSEC2CustomerGateway, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2CustomerGateway: - return &resource, nil - case *AWSEC2CustomerGateway: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::CustomerGateway" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2CustomerGateway - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-dhcpoptions.go b/cloudformation/aws-ec2-dhcpoptions.go index 0b5ae20b22..7f756844c8 100644 --- a/cloudformation/aws-ec2-dhcpoptions.go +++ b/cloudformation/aws-ec2-dhcpoptions.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -137,63 +136,3 @@ func (r *AWSEC2DHCPOptions) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2DHCPOptionsResources retrieves all AWSEC2DHCPOptions items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2DHCPOptionsResources() map[string]*AWSEC2DHCPOptions { - results := map[string]*AWSEC2DHCPOptions{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2DHCPOptions: - results[name] = &resource - case *AWSEC2DHCPOptions: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::DHCPOptions" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2DHCPOptions - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2DHCPOptionsWithName retrieves all AWSEC2DHCPOptions items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2DHCPOptionsWithName(name string) (*AWSEC2DHCPOptions, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2DHCPOptions: - return &resource, nil - case *AWSEC2DHCPOptions: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::DHCPOptions" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2DHCPOptions - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-ec2fleet.go b/cloudformation/aws-ec2-ec2fleet.go index 697234a196..a84813eb4f 100644 --- a/cloudformation/aws-ec2-ec2fleet.go +++ b/cloudformation/aws-ec2-ec2fleet.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -162,63 +161,3 @@ func (r *AWSEC2EC2Fleet) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2EC2FleetResources retrieves all AWSEC2EC2Fleet items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2EC2FleetResources() map[string]*AWSEC2EC2Fleet { - results := map[string]*AWSEC2EC2Fleet{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2EC2Fleet: - results[name] = &resource - case *AWSEC2EC2Fleet: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::EC2Fleet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2EC2Fleet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2EC2FleetWithName retrieves all AWSEC2EC2Fleet items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2EC2FleetWithName(name string) (*AWSEC2EC2Fleet, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2EC2Fleet: - return &resource, nil - case *AWSEC2EC2Fleet: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::EC2Fleet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2EC2Fleet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-egressonlyinternetgateway.go b/cloudformation/aws-ec2-egressonlyinternetgateway.go index c69266137f..eb251b73f1 100644 --- a/cloudformation/aws-ec2-egressonlyinternetgateway.go +++ b/cloudformation/aws-ec2-egressonlyinternetgateway.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -112,63 +111,3 @@ func (r *AWSEC2EgressOnlyInternetGateway) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2EgressOnlyInternetGatewayResources retrieves all AWSEC2EgressOnlyInternetGateway items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2EgressOnlyInternetGatewayResources() map[string]*AWSEC2EgressOnlyInternetGateway { - results := map[string]*AWSEC2EgressOnlyInternetGateway{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2EgressOnlyInternetGateway: - results[name] = &resource - case *AWSEC2EgressOnlyInternetGateway: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::EgressOnlyInternetGateway" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2EgressOnlyInternetGateway - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2EgressOnlyInternetGatewayWithName retrieves all AWSEC2EgressOnlyInternetGateway items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2EgressOnlyInternetGatewayWithName(name string) (*AWSEC2EgressOnlyInternetGateway, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2EgressOnlyInternetGateway: - return &resource, nil - case *AWSEC2EgressOnlyInternetGateway: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::EgressOnlyInternetGateway" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2EgressOnlyInternetGateway - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-eip.go b/cloudformation/aws-ec2-eip.go index 021d5fe229..2c06f94772 100644 --- a/cloudformation/aws-ec2-eip.go +++ b/cloudformation/aws-ec2-eip.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSEC2EIP) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2EIPResources retrieves all AWSEC2EIP items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2EIPResources() map[string]*AWSEC2EIP { - results := map[string]*AWSEC2EIP{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2EIP: - results[name] = &resource - case *AWSEC2EIP: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::EIP" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2EIP - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2EIPWithName retrieves all AWSEC2EIP items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2EIPWithName(name string) (*AWSEC2EIP, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2EIP: - return &resource, nil - case *AWSEC2EIP: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::EIP" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2EIP - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-eipassociation.go b/cloudformation/aws-ec2-eipassociation.go index 7c6a76a47f..225d2679a4 100644 --- a/cloudformation/aws-ec2-eipassociation.go +++ b/cloudformation/aws-ec2-eipassociation.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSEC2EIPAssociation) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2EIPAssociationResources retrieves all AWSEC2EIPAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2EIPAssociationResources() map[string]*AWSEC2EIPAssociation { - results := map[string]*AWSEC2EIPAssociation{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2EIPAssociation: - results[name] = &resource - case *AWSEC2EIPAssociation: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::EIPAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2EIPAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2EIPAssociationWithName retrieves all AWSEC2EIPAssociation items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2EIPAssociationWithName(name string) (*AWSEC2EIPAssociation, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2EIPAssociation: - return &resource, nil - case *AWSEC2EIPAssociation: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::EIPAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2EIPAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-flowlog.go b/cloudformation/aws-ec2-flowlog.go index 123fdb3edf..8514977e1d 100644 --- a/cloudformation/aws-ec2-flowlog.go +++ b/cloudformation/aws-ec2-flowlog.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSEC2FlowLog) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2FlowLogResources retrieves all AWSEC2FlowLog items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2FlowLogResources() map[string]*AWSEC2FlowLog { - results := map[string]*AWSEC2FlowLog{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2FlowLog: - results[name] = &resource - case *AWSEC2FlowLog: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::FlowLog" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2FlowLog - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2FlowLogWithName retrieves all AWSEC2FlowLog items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2FlowLogWithName(name string) (*AWSEC2FlowLog, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2FlowLog: - return &resource, nil - case *AWSEC2FlowLog: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::FlowLog" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2FlowLog - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-host.go b/cloudformation/aws-ec2-host.go index bda0183ab2..2b8c638c76 100644 --- a/cloudformation/aws-ec2-host.go +++ b/cloudformation/aws-ec2-host.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSEC2Host) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2HostResources retrieves all AWSEC2Host items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2HostResources() map[string]*AWSEC2Host { - results := map[string]*AWSEC2Host{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2Host: - results[name] = &resource - case *AWSEC2Host: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::Host" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2Host - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2HostWithName retrieves all AWSEC2Host items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2HostWithName(name string) (*AWSEC2Host, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2Host: - return &resource, nil - case *AWSEC2Host: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::Host" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2Host - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-instance.go b/cloudformation/aws-ec2-instance.go index 581c1126c6..e9c38b8447 100644 --- a/cloudformation/aws-ec2-instance.go +++ b/cloudformation/aws-ec2-instance.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -290,63 +289,3 @@ func (r *AWSEC2Instance) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2InstanceResources retrieves all AWSEC2Instance items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2InstanceResources() map[string]*AWSEC2Instance { - results := map[string]*AWSEC2Instance{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2Instance: - results[name] = &resource - case *AWSEC2Instance: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::Instance" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2Instance - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2InstanceWithName retrieves all AWSEC2Instance items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2InstanceWithName(name string) (*AWSEC2Instance, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2Instance: - return &resource, nil - case *AWSEC2Instance: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::Instance" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2Instance - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-internetgateway.go b/cloudformation/aws-ec2-internetgateway.go index 98f17b2738..483490f8f5 100644 --- a/cloudformation/aws-ec2-internetgateway.go +++ b/cloudformation/aws-ec2-internetgateway.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -112,63 +111,3 @@ func (r *AWSEC2InternetGateway) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2InternetGatewayResources retrieves all AWSEC2InternetGateway items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2InternetGatewayResources() map[string]*AWSEC2InternetGateway { - results := map[string]*AWSEC2InternetGateway{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2InternetGateway: - results[name] = &resource - case *AWSEC2InternetGateway: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::InternetGateway" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2InternetGateway - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2InternetGatewayWithName retrieves all AWSEC2InternetGateway items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2InternetGatewayWithName(name string) (*AWSEC2InternetGateway, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2InternetGateway: - return &resource, nil - case *AWSEC2InternetGateway: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::InternetGateway" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2InternetGateway - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-launchtemplate.go b/cloudformation/aws-ec2-launchtemplate.go index 223fd791d4..b38d4a1a48 100644 --- a/cloudformation/aws-ec2-launchtemplate.go +++ b/cloudformation/aws-ec2-launchtemplate.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSEC2LaunchTemplate) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2LaunchTemplateResources retrieves all AWSEC2LaunchTemplate items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2LaunchTemplateResources() map[string]*AWSEC2LaunchTemplate { - results := map[string]*AWSEC2LaunchTemplate{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2LaunchTemplate: - results[name] = &resource - case *AWSEC2LaunchTemplate: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::LaunchTemplate" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2LaunchTemplate - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2LaunchTemplateWithName retrieves all AWSEC2LaunchTemplate items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2LaunchTemplateWithName(name string) (*AWSEC2LaunchTemplate, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2LaunchTemplate: - return &resource, nil - case *AWSEC2LaunchTemplate: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::LaunchTemplate" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2LaunchTemplate - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-natgateway.go b/cloudformation/aws-ec2-natgateway.go index 1e5e38a9e2..03716beb9f 100644 --- a/cloudformation/aws-ec2-natgateway.go +++ b/cloudformation/aws-ec2-natgateway.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSEC2NatGateway) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2NatGatewayResources retrieves all AWSEC2NatGateway items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2NatGatewayResources() map[string]*AWSEC2NatGateway { - results := map[string]*AWSEC2NatGateway{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2NatGateway: - results[name] = &resource - case *AWSEC2NatGateway: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::NatGateway" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2NatGateway - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2NatGatewayWithName retrieves all AWSEC2NatGateway items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2NatGatewayWithName(name string) (*AWSEC2NatGateway, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2NatGateway: - return &resource, nil - case *AWSEC2NatGateway: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::NatGateway" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2NatGateway - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-networkacl.go b/cloudformation/aws-ec2-networkacl.go index 4058d21092..645394b02b 100644 --- a/cloudformation/aws-ec2-networkacl.go +++ b/cloudformation/aws-ec2-networkacl.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSEC2NetworkAcl) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2NetworkAclResources retrieves all AWSEC2NetworkAcl items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2NetworkAclResources() map[string]*AWSEC2NetworkAcl { - results := map[string]*AWSEC2NetworkAcl{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2NetworkAcl: - results[name] = &resource - case *AWSEC2NetworkAcl: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::NetworkAcl" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2NetworkAcl - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2NetworkAclWithName retrieves all AWSEC2NetworkAcl items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2NetworkAclWithName(name string) (*AWSEC2NetworkAcl, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2NetworkAcl: - return &resource, nil - case *AWSEC2NetworkAcl: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::NetworkAcl" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2NetworkAcl - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-networkaclentry.go b/cloudformation/aws-ec2-networkaclentry.go index 07a71e7444..10963e95f9 100644 --- a/cloudformation/aws-ec2-networkaclentry.go +++ b/cloudformation/aws-ec2-networkaclentry.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -152,63 +151,3 @@ func (r *AWSEC2NetworkAclEntry) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2NetworkAclEntryResources retrieves all AWSEC2NetworkAclEntry items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2NetworkAclEntryResources() map[string]*AWSEC2NetworkAclEntry { - results := map[string]*AWSEC2NetworkAclEntry{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2NetworkAclEntry: - results[name] = &resource - case *AWSEC2NetworkAclEntry: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::NetworkAclEntry" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2NetworkAclEntry - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2NetworkAclEntryWithName retrieves all AWSEC2NetworkAclEntry items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2NetworkAclEntryWithName(name string) (*AWSEC2NetworkAclEntry, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2NetworkAclEntry: - return &resource, nil - case *AWSEC2NetworkAclEntry: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::NetworkAclEntry" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2NetworkAclEntry - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-networkinterface.go b/cloudformation/aws-ec2-networkinterface.go index c58e3ec212..c34e6a874f 100644 --- a/cloudformation/aws-ec2-networkinterface.go +++ b/cloudformation/aws-ec2-networkinterface.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -162,63 +161,3 @@ func (r *AWSEC2NetworkInterface) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2NetworkInterfaceResources retrieves all AWSEC2NetworkInterface items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2NetworkInterfaceResources() map[string]*AWSEC2NetworkInterface { - results := map[string]*AWSEC2NetworkInterface{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2NetworkInterface: - results[name] = &resource - case *AWSEC2NetworkInterface: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::NetworkInterface" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2NetworkInterface - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2NetworkInterfaceWithName retrieves all AWSEC2NetworkInterface items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2NetworkInterfaceWithName(name string) (*AWSEC2NetworkInterface, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2NetworkInterface: - return &resource, nil - case *AWSEC2NetworkInterface: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::NetworkInterface" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2NetworkInterface - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-networkinterfaceattachment.go b/cloudformation/aws-ec2-networkinterfaceattachment.go index cadefee84e..987b7a6cce 100644 --- a/cloudformation/aws-ec2-networkinterfaceattachment.go +++ b/cloudformation/aws-ec2-networkinterfaceattachment.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSEC2NetworkInterfaceAttachment) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2NetworkInterfaceAttachmentResources retrieves all AWSEC2NetworkInterfaceAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2NetworkInterfaceAttachmentResources() map[string]*AWSEC2NetworkInterfaceAttachment { - results := map[string]*AWSEC2NetworkInterfaceAttachment{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2NetworkInterfaceAttachment: - results[name] = &resource - case *AWSEC2NetworkInterfaceAttachment: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::NetworkInterfaceAttachment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2NetworkInterfaceAttachment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2NetworkInterfaceAttachmentWithName retrieves all AWSEC2NetworkInterfaceAttachment items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2NetworkInterfaceAttachmentWithName(name string) (*AWSEC2NetworkInterfaceAttachment, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2NetworkInterfaceAttachment: - return &resource, nil - case *AWSEC2NetworkInterfaceAttachment: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::NetworkInterfaceAttachment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2NetworkInterfaceAttachment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-networkinterfacepermission.go b/cloudformation/aws-ec2-networkinterfacepermission.go index f03422b467..3ff5e38944 100644 --- a/cloudformation/aws-ec2-networkinterfacepermission.go +++ b/cloudformation/aws-ec2-networkinterfacepermission.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSEC2NetworkInterfacePermission) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2NetworkInterfacePermissionResources retrieves all AWSEC2NetworkInterfacePermission items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2NetworkInterfacePermissionResources() map[string]*AWSEC2NetworkInterfacePermission { - results := map[string]*AWSEC2NetworkInterfacePermission{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2NetworkInterfacePermission: - results[name] = &resource - case *AWSEC2NetworkInterfacePermission: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::NetworkInterfacePermission" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2NetworkInterfacePermission - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2NetworkInterfacePermissionWithName retrieves all AWSEC2NetworkInterfacePermission items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2NetworkInterfacePermissionWithName(name string) (*AWSEC2NetworkInterfacePermission, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2NetworkInterfacePermission: - return &resource, nil - case *AWSEC2NetworkInterfacePermission: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::NetworkInterfacePermission" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2NetworkInterfacePermission - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-placementgroup.go b/cloudformation/aws-ec2-placementgroup.go index 30b88b5e42..1ef20d4c9d 100644 --- a/cloudformation/aws-ec2-placementgroup.go +++ b/cloudformation/aws-ec2-placementgroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -112,63 +111,3 @@ func (r *AWSEC2PlacementGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2PlacementGroupResources retrieves all AWSEC2PlacementGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2PlacementGroupResources() map[string]*AWSEC2PlacementGroup { - results := map[string]*AWSEC2PlacementGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2PlacementGroup: - results[name] = &resource - case *AWSEC2PlacementGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::PlacementGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2PlacementGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2PlacementGroupWithName retrieves all AWSEC2PlacementGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2PlacementGroupWithName(name string) (*AWSEC2PlacementGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2PlacementGroup: - return &resource, nil - case *AWSEC2PlacementGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::PlacementGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2PlacementGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-route.go b/cloudformation/aws-ec2-route.go index d9f93ede94..e9752f0c03 100644 --- a/cloudformation/aws-ec2-route.go +++ b/cloudformation/aws-ec2-route.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -152,63 +151,3 @@ func (r *AWSEC2Route) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2RouteResources retrieves all AWSEC2Route items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2RouteResources() map[string]*AWSEC2Route { - results := map[string]*AWSEC2Route{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2Route: - results[name] = &resource - case *AWSEC2Route: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::Route" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2Route - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2RouteWithName retrieves all AWSEC2Route items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2RouteWithName(name string) (*AWSEC2Route, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2Route: - return &resource, nil - case *AWSEC2Route: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::Route" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2Route - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-routetable.go b/cloudformation/aws-ec2-routetable.go index 56efd1510d..6f7ae1a34e 100644 --- a/cloudformation/aws-ec2-routetable.go +++ b/cloudformation/aws-ec2-routetable.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSEC2RouteTable) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2RouteTableResources retrieves all AWSEC2RouteTable items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2RouteTableResources() map[string]*AWSEC2RouteTable { - results := map[string]*AWSEC2RouteTable{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2RouteTable: - results[name] = &resource - case *AWSEC2RouteTable: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::RouteTable" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2RouteTable - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2RouteTableWithName retrieves all AWSEC2RouteTable items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2RouteTableWithName(name string) (*AWSEC2RouteTable, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2RouteTable: - return &resource, nil - case *AWSEC2RouteTable: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::RouteTable" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2RouteTable - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-securitygroup.go b/cloudformation/aws-ec2-securitygroup.go index 3c33b7e8ae..62d5fd07df 100644 --- a/cloudformation/aws-ec2-securitygroup.go +++ b/cloudformation/aws-ec2-securitygroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -137,63 +136,3 @@ func (r *AWSEC2SecurityGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2SecurityGroupResources retrieves all AWSEC2SecurityGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SecurityGroupResources() map[string]*AWSEC2SecurityGroup { - results := map[string]*AWSEC2SecurityGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2SecurityGroup: - results[name] = &resource - case *AWSEC2SecurityGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::SecurityGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2SecurityGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2SecurityGroupWithName retrieves all AWSEC2SecurityGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SecurityGroupWithName(name string) (*AWSEC2SecurityGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2SecurityGroup: - return &resource, nil - case *AWSEC2SecurityGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::SecurityGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2SecurityGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-securitygroupegress.go b/cloudformation/aws-ec2-securitygroupegress.go index f90063e55f..7927d8291d 100644 --- a/cloudformation/aws-ec2-securitygroupegress.go +++ b/cloudformation/aws-ec2-securitygroupegress.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -152,63 +151,3 @@ func (r *AWSEC2SecurityGroupEgress) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2SecurityGroupEgressResources retrieves all AWSEC2SecurityGroupEgress items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SecurityGroupEgressResources() map[string]*AWSEC2SecurityGroupEgress { - results := map[string]*AWSEC2SecurityGroupEgress{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2SecurityGroupEgress: - results[name] = &resource - case *AWSEC2SecurityGroupEgress: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::SecurityGroupEgress" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2SecurityGroupEgress - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2SecurityGroupEgressWithName retrieves all AWSEC2SecurityGroupEgress items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SecurityGroupEgressWithName(name string) (*AWSEC2SecurityGroupEgress, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2SecurityGroupEgress: - return &resource, nil - case *AWSEC2SecurityGroupEgress: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::SecurityGroupEgress" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2SecurityGroupEgress - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-securitygroupingress.go b/cloudformation/aws-ec2-securitygroupingress.go index f0756e1d29..075f4a7a39 100644 --- a/cloudformation/aws-ec2-securitygroupingress.go +++ b/cloudformation/aws-ec2-securitygroupingress.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -167,63 +166,3 @@ func (r *AWSEC2SecurityGroupIngress) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2SecurityGroupIngressResources retrieves all AWSEC2SecurityGroupIngress items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SecurityGroupIngressResources() map[string]*AWSEC2SecurityGroupIngress { - results := map[string]*AWSEC2SecurityGroupIngress{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2SecurityGroupIngress: - results[name] = &resource - case *AWSEC2SecurityGroupIngress: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::SecurityGroupIngress" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2SecurityGroupIngress - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2SecurityGroupIngressWithName retrieves all AWSEC2SecurityGroupIngress items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SecurityGroupIngressWithName(name string) (*AWSEC2SecurityGroupIngress, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2SecurityGroupIngress: - return &resource, nil - case *AWSEC2SecurityGroupIngress: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::SecurityGroupIngress" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2SecurityGroupIngress - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-spotfleet.go b/cloudformation/aws-ec2-spotfleet.go index 57ca86d0ba..60133755df 100644 --- a/cloudformation/aws-ec2-spotfleet.go +++ b/cloudformation/aws-ec2-spotfleet.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -112,63 +111,3 @@ func (r *AWSEC2SpotFleet) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2SpotFleetResources retrieves all AWSEC2SpotFleet items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SpotFleetResources() map[string]*AWSEC2SpotFleet { - results := map[string]*AWSEC2SpotFleet{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2SpotFleet: - results[name] = &resource - case *AWSEC2SpotFleet: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::SpotFleet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2SpotFleet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2SpotFleetWithName retrieves all AWSEC2SpotFleet items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SpotFleetWithName(name string) (*AWSEC2SpotFleet, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2SpotFleet: - return &resource, nil - case *AWSEC2SpotFleet: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::SpotFleet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2SpotFleet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-subnet.go b/cloudformation/aws-ec2-subnet.go index 638b6fa986..8b0ebd788d 100644 --- a/cloudformation/aws-ec2-subnet.go +++ b/cloudformation/aws-ec2-subnet.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSEC2Subnet) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2SubnetResources retrieves all AWSEC2Subnet items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SubnetResources() map[string]*AWSEC2Subnet { - results := map[string]*AWSEC2Subnet{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2Subnet: - results[name] = &resource - case *AWSEC2Subnet: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::Subnet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2Subnet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2SubnetWithName retrieves all AWSEC2Subnet items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SubnetWithName(name string) (*AWSEC2Subnet, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2Subnet: - return &resource, nil - case *AWSEC2Subnet: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::Subnet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2Subnet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-subnetcidrblock.go b/cloudformation/aws-ec2-subnetcidrblock.go index 40da646dcb..ce050df904 100644 --- a/cloudformation/aws-ec2-subnetcidrblock.go +++ b/cloudformation/aws-ec2-subnetcidrblock.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSEC2SubnetCidrBlock) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2SubnetCidrBlockResources retrieves all AWSEC2SubnetCidrBlock items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SubnetCidrBlockResources() map[string]*AWSEC2SubnetCidrBlock { - results := map[string]*AWSEC2SubnetCidrBlock{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2SubnetCidrBlock: - results[name] = &resource - case *AWSEC2SubnetCidrBlock: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::SubnetCidrBlock" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2SubnetCidrBlock - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2SubnetCidrBlockWithName retrieves all AWSEC2SubnetCidrBlock items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SubnetCidrBlockWithName(name string) (*AWSEC2SubnetCidrBlock, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2SubnetCidrBlock: - return &resource, nil - case *AWSEC2SubnetCidrBlock: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::SubnetCidrBlock" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2SubnetCidrBlock - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-subnetnetworkaclassociation.go b/cloudformation/aws-ec2-subnetnetworkaclassociation.go index 9ba280b40f..290a8902b3 100644 --- a/cloudformation/aws-ec2-subnetnetworkaclassociation.go +++ b/cloudformation/aws-ec2-subnetnetworkaclassociation.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSEC2SubnetNetworkAclAssociation) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2SubnetNetworkAclAssociationResources retrieves all AWSEC2SubnetNetworkAclAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SubnetNetworkAclAssociationResources() map[string]*AWSEC2SubnetNetworkAclAssociation { - results := map[string]*AWSEC2SubnetNetworkAclAssociation{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2SubnetNetworkAclAssociation: - results[name] = &resource - case *AWSEC2SubnetNetworkAclAssociation: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::SubnetNetworkAclAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2SubnetNetworkAclAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2SubnetNetworkAclAssociationWithName retrieves all AWSEC2SubnetNetworkAclAssociation items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SubnetNetworkAclAssociationWithName(name string) (*AWSEC2SubnetNetworkAclAssociation, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2SubnetNetworkAclAssociation: - return &resource, nil - case *AWSEC2SubnetNetworkAclAssociation: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::SubnetNetworkAclAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2SubnetNetworkAclAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-subnetroutetableassociation.go b/cloudformation/aws-ec2-subnetroutetableassociation.go index 4c4b1c9ddc..c9418d4c11 100644 --- a/cloudformation/aws-ec2-subnetroutetableassociation.go +++ b/cloudformation/aws-ec2-subnetroutetableassociation.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSEC2SubnetRouteTableAssociation) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2SubnetRouteTableAssociationResources retrieves all AWSEC2SubnetRouteTableAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SubnetRouteTableAssociationResources() map[string]*AWSEC2SubnetRouteTableAssociation { - results := map[string]*AWSEC2SubnetRouteTableAssociation{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2SubnetRouteTableAssociation: - results[name] = &resource - case *AWSEC2SubnetRouteTableAssociation: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::SubnetRouteTableAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2SubnetRouteTableAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2SubnetRouteTableAssociationWithName retrieves all AWSEC2SubnetRouteTableAssociation items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SubnetRouteTableAssociationWithName(name string) (*AWSEC2SubnetRouteTableAssociation, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2SubnetRouteTableAssociation: - return &resource, nil - case *AWSEC2SubnetRouteTableAssociation: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::SubnetRouteTableAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2SubnetRouteTableAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-transitgateway.go b/cloudformation/aws-ec2-transitgateway.go index a95132d8da..64e61eaf65 100644 --- a/cloudformation/aws-ec2-transitgateway.go +++ b/cloudformation/aws-ec2-transitgateway.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -147,63 +146,3 @@ func (r *AWSEC2TransitGateway) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2TransitGatewayResources retrieves all AWSEC2TransitGateway items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2TransitGatewayResources() map[string]*AWSEC2TransitGateway { - results := map[string]*AWSEC2TransitGateway{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2TransitGateway: - results[name] = &resource - case *AWSEC2TransitGateway: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::TransitGateway" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2TransitGateway - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2TransitGatewayWithName retrieves all AWSEC2TransitGateway items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2TransitGatewayWithName(name string) (*AWSEC2TransitGateway, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2TransitGateway: - return &resource, nil - case *AWSEC2TransitGateway: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::TransitGateway" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2TransitGateway - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-transitgatewayattachment.go b/cloudformation/aws-ec2-transitgatewayattachment.go index ee413f88d7..419ea27327 100644 --- a/cloudformation/aws-ec2-transitgatewayattachment.go +++ b/cloudformation/aws-ec2-transitgatewayattachment.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSEC2TransitGatewayAttachment) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2TransitGatewayAttachmentResources retrieves all AWSEC2TransitGatewayAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2TransitGatewayAttachmentResources() map[string]*AWSEC2TransitGatewayAttachment { - results := map[string]*AWSEC2TransitGatewayAttachment{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2TransitGatewayAttachment: - results[name] = &resource - case *AWSEC2TransitGatewayAttachment: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::TransitGatewayAttachment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2TransitGatewayAttachment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2TransitGatewayAttachmentWithName retrieves all AWSEC2TransitGatewayAttachment items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2TransitGatewayAttachmentWithName(name string) (*AWSEC2TransitGatewayAttachment, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2TransitGatewayAttachment: - return &resource, nil - case *AWSEC2TransitGatewayAttachment: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::TransitGatewayAttachment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2TransitGatewayAttachment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-transitgatewayroute.go b/cloudformation/aws-ec2-transitgatewayroute.go index e341963a63..24e6abce3f 100644 --- a/cloudformation/aws-ec2-transitgatewayroute.go +++ b/cloudformation/aws-ec2-transitgatewayroute.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSEC2TransitGatewayRoute) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2TransitGatewayRouteResources retrieves all AWSEC2TransitGatewayRoute items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2TransitGatewayRouteResources() map[string]*AWSEC2TransitGatewayRoute { - results := map[string]*AWSEC2TransitGatewayRoute{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2TransitGatewayRoute: - results[name] = &resource - case *AWSEC2TransitGatewayRoute: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::TransitGatewayRoute" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2TransitGatewayRoute - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2TransitGatewayRouteWithName retrieves all AWSEC2TransitGatewayRoute items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2TransitGatewayRouteWithName(name string) (*AWSEC2TransitGatewayRoute, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2TransitGatewayRoute: - return &resource, nil - case *AWSEC2TransitGatewayRoute: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::TransitGatewayRoute" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2TransitGatewayRoute - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-transitgatewayroutetable.go b/cloudformation/aws-ec2-transitgatewayroutetable.go index aeab04ae24..d5180473fe 100644 --- a/cloudformation/aws-ec2-transitgatewayroutetable.go +++ b/cloudformation/aws-ec2-transitgatewayroutetable.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSEC2TransitGatewayRouteTable) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2TransitGatewayRouteTableResources retrieves all AWSEC2TransitGatewayRouteTable items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2TransitGatewayRouteTableResources() map[string]*AWSEC2TransitGatewayRouteTable { - results := map[string]*AWSEC2TransitGatewayRouteTable{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2TransitGatewayRouteTable: - results[name] = &resource - case *AWSEC2TransitGatewayRouteTable: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::TransitGatewayRouteTable" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2TransitGatewayRouteTable - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2TransitGatewayRouteTableWithName retrieves all AWSEC2TransitGatewayRouteTable items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2TransitGatewayRouteTableWithName(name string) (*AWSEC2TransitGatewayRouteTable, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2TransitGatewayRouteTable: - return &resource, nil - case *AWSEC2TransitGatewayRouteTable: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::TransitGatewayRouteTable" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2TransitGatewayRouteTable - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-transitgatewayroutetableassociation.go b/cloudformation/aws-ec2-transitgatewayroutetableassociation.go index 8f9e03ae5f..674e305e7b 100644 --- a/cloudformation/aws-ec2-transitgatewayroutetableassociation.go +++ b/cloudformation/aws-ec2-transitgatewayroutetableassociation.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSEC2TransitGatewayRouteTableAssociation) UnmarshalJSON(b []byte) erro return nil } - -// GetAllAWSEC2TransitGatewayRouteTableAssociationResources retrieves all AWSEC2TransitGatewayRouteTableAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2TransitGatewayRouteTableAssociationResources() map[string]*AWSEC2TransitGatewayRouteTableAssociation { - results := map[string]*AWSEC2TransitGatewayRouteTableAssociation{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2TransitGatewayRouteTableAssociation: - results[name] = &resource - case *AWSEC2TransitGatewayRouteTableAssociation: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::TransitGatewayRouteTableAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2TransitGatewayRouteTableAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2TransitGatewayRouteTableAssociationWithName retrieves all AWSEC2TransitGatewayRouteTableAssociation items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2TransitGatewayRouteTableAssociationWithName(name string) (*AWSEC2TransitGatewayRouteTableAssociation, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2TransitGatewayRouteTableAssociation: - return &resource, nil - case *AWSEC2TransitGatewayRouteTableAssociation: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::TransitGatewayRouteTableAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2TransitGatewayRouteTableAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-transitgatewayroutetablepropagation.go b/cloudformation/aws-ec2-transitgatewayroutetablepropagation.go index 05f43ccc04..dc3191bd83 100644 --- a/cloudformation/aws-ec2-transitgatewayroutetablepropagation.go +++ b/cloudformation/aws-ec2-transitgatewayroutetablepropagation.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSEC2TransitGatewayRouteTablePropagation) UnmarshalJSON(b []byte) erro return nil } - -// GetAllAWSEC2TransitGatewayRouteTablePropagationResources retrieves all AWSEC2TransitGatewayRouteTablePropagation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2TransitGatewayRouteTablePropagationResources() map[string]*AWSEC2TransitGatewayRouteTablePropagation { - results := map[string]*AWSEC2TransitGatewayRouteTablePropagation{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2TransitGatewayRouteTablePropagation: - results[name] = &resource - case *AWSEC2TransitGatewayRouteTablePropagation: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::TransitGatewayRouteTablePropagation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2TransitGatewayRouteTablePropagation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2TransitGatewayRouteTablePropagationWithName retrieves all AWSEC2TransitGatewayRouteTablePropagation items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2TransitGatewayRouteTablePropagationWithName(name string) (*AWSEC2TransitGatewayRouteTablePropagation, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2TransitGatewayRouteTablePropagation: - return &resource, nil - case *AWSEC2TransitGatewayRouteTablePropagation: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::TransitGatewayRouteTablePropagation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2TransitGatewayRouteTablePropagation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-trunkinterfaceassociation.go b/cloudformation/aws-ec2-trunkinterfaceassociation.go index dfc3a16820..94169f87f3 100644 --- a/cloudformation/aws-ec2-trunkinterfaceassociation.go +++ b/cloudformation/aws-ec2-trunkinterfaceassociation.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSEC2TrunkInterfaceAssociation) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2TrunkInterfaceAssociationResources retrieves all AWSEC2TrunkInterfaceAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2TrunkInterfaceAssociationResources() map[string]*AWSEC2TrunkInterfaceAssociation { - results := map[string]*AWSEC2TrunkInterfaceAssociation{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2TrunkInterfaceAssociation: - results[name] = &resource - case *AWSEC2TrunkInterfaceAssociation: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::TrunkInterfaceAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2TrunkInterfaceAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2TrunkInterfaceAssociationWithName retrieves all AWSEC2TrunkInterfaceAssociation items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2TrunkInterfaceAssociationWithName(name string) (*AWSEC2TrunkInterfaceAssociation, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2TrunkInterfaceAssociation: - return &resource, nil - case *AWSEC2TrunkInterfaceAssociation: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::TrunkInterfaceAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2TrunkInterfaceAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-volume.go b/cloudformation/aws-ec2-volume.go index cb64e3c53f..3233a0a4ef 100644 --- a/cloudformation/aws-ec2-volume.go +++ b/cloudformation/aws-ec2-volume.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -152,63 +151,3 @@ func (r *AWSEC2Volume) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2VolumeResources retrieves all AWSEC2Volume items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VolumeResources() map[string]*AWSEC2Volume { - results := map[string]*AWSEC2Volume{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2Volume: - results[name] = &resource - case *AWSEC2Volume: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::Volume" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2Volume - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2VolumeWithName retrieves all AWSEC2Volume items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VolumeWithName(name string) (*AWSEC2Volume, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2Volume: - return &resource, nil - case *AWSEC2Volume: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::Volume" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2Volume - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-volumeattachment.go b/cloudformation/aws-ec2-volumeattachment.go index ba126904e6..ca7fa7bea4 100644 --- a/cloudformation/aws-ec2-volumeattachment.go +++ b/cloudformation/aws-ec2-volumeattachment.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSEC2VolumeAttachment) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2VolumeAttachmentResources retrieves all AWSEC2VolumeAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VolumeAttachmentResources() map[string]*AWSEC2VolumeAttachment { - results := map[string]*AWSEC2VolumeAttachment{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2VolumeAttachment: - results[name] = &resource - case *AWSEC2VolumeAttachment: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VolumeAttachment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VolumeAttachment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2VolumeAttachmentWithName retrieves all AWSEC2VolumeAttachment items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VolumeAttachmentWithName(name string) (*AWSEC2VolumeAttachment, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2VolumeAttachment: - return &resource, nil - case *AWSEC2VolumeAttachment: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VolumeAttachment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VolumeAttachment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-vpc.go b/cloudformation/aws-ec2-vpc.go index 65c856b504..308bcc2fe3 100644 --- a/cloudformation/aws-ec2-vpc.go +++ b/cloudformation/aws-ec2-vpc.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSEC2VPC) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2VPCResources retrieves all AWSEC2VPC items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCResources() map[string]*AWSEC2VPC { - results := map[string]*AWSEC2VPC{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2VPC: - results[name] = &resource - case *AWSEC2VPC: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPC" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPC - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2VPCWithName retrieves all AWSEC2VPC items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCWithName(name string) (*AWSEC2VPC, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2VPC: - return &resource, nil - case *AWSEC2VPC: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPC" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPC - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-vpccidrblock.go b/cloudformation/aws-ec2-vpccidrblock.go index 19345df1fe..269dd070fb 100644 --- a/cloudformation/aws-ec2-vpccidrblock.go +++ b/cloudformation/aws-ec2-vpccidrblock.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSEC2VPCCidrBlock) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2VPCCidrBlockResources retrieves all AWSEC2VPCCidrBlock items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCCidrBlockResources() map[string]*AWSEC2VPCCidrBlock { - results := map[string]*AWSEC2VPCCidrBlock{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2VPCCidrBlock: - results[name] = &resource - case *AWSEC2VPCCidrBlock: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPCCidrBlock" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPCCidrBlock - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2VPCCidrBlockWithName retrieves all AWSEC2VPCCidrBlock items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCCidrBlockWithName(name string) (*AWSEC2VPCCidrBlock, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2VPCCidrBlock: - return &resource, nil - case *AWSEC2VPCCidrBlock: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPCCidrBlock" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPCCidrBlock - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-vpcdhcpoptionsassociation.go b/cloudformation/aws-ec2-vpcdhcpoptionsassociation.go index 8263ecbd68..8cc8ab81f7 100644 --- a/cloudformation/aws-ec2-vpcdhcpoptionsassociation.go +++ b/cloudformation/aws-ec2-vpcdhcpoptionsassociation.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSEC2VPCDHCPOptionsAssociation) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2VPCDHCPOptionsAssociationResources retrieves all AWSEC2VPCDHCPOptionsAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCDHCPOptionsAssociationResources() map[string]*AWSEC2VPCDHCPOptionsAssociation { - results := map[string]*AWSEC2VPCDHCPOptionsAssociation{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2VPCDHCPOptionsAssociation: - results[name] = &resource - case *AWSEC2VPCDHCPOptionsAssociation: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPCDHCPOptionsAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPCDHCPOptionsAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2VPCDHCPOptionsAssociationWithName retrieves all AWSEC2VPCDHCPOptionsAssociation items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCDHCPOptionsAssociationWithName(name string) (*AWSEC2VPCDHCPOptionsAssociation, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2VPCDHCPOptionsAssociation: - return &resource, nil - case *AWSEC2VPCDHCPOptionsAssociation: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPCDHCPOptionsAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPCDHCPOptionsAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-vpcendpoint.go b/cloudformation/aws-ec2-vpcendpoint.go index 3d3b6ba61d..6f2a62bc62 100644 --- a/cloudformation/aws-ec2-vpcendpoint.go +++ b/cloudformation/aws-ec2-vpcendpoint.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -147,63 +146,3 @@ func (r *AWSEC2VPCEndpoint) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2VPCEndpointResources retrieves all AWSEC2VPCEndpoint items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCEndpointResources() map[string]*AWSEC2VPCEndpoint { - results := map[string]*AWSEC2VPCEndpoint{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2VPCEndpoint: - results[name] = &resource - case *AWSEC2VPCEndpoint: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPCEndpoint" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPCEndpoint - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2VPCEndpointWithName retrieves all AWSEC2VPCEndpoint items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCEndpointWithName(name string) (*AWSEC2VPCEndpoint, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2VPCEndpoint: - return &resource, nil - case *AWSEC2VPCEndpoint: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPCEndpoint" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPCEndpoint - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-vpcendpointconnectionnotification.go b/cloudformation/aws-ec2-vpcendpointconnectionnotification.go index a9cc2a16ca..4ea557d973 100644 --- a/cloudformation/aws-ec2-vpcendpointconnectionnotification.go +++ b/cloudformation/aws-ec2-vpcendpointconnectionnotification.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSEC2VPCEndpointConnectionNotification) UnmarshalJSON(b []byte) error return nil } - -// GetAllAWSEC2VPCEndpointConnectionNotificationResources retrieves all AWSEC2VPCEndpointConnectionNotification items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCEndpointConnectionNotificationResources() map[string]*AWSEC2VPCEndpointConnectionNotification { - results := map[string]*AWSEC2VPCEndpointConnectionNotification{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2VPCEndpointConnectionNotification: - results[name] = &resource - case *AWSEC2VPCEndpointConnectionNotification: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPCEndpointConnectionNotification" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPCEndpointConnectionNotification - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2VPCEndpointConnectionNotificationWithName retrieves all AWSEC2VPCEndpointConnectionNotification items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCEndpointConnectionNotificationWithName(name string) (*AWSEC2VPCEndpointConnectionNotification, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2VPCEndpointConnectionNotification: - return &resource, nil - case *AWSEC2VPCEndpointConnectionNotification: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPCEndpointConnectionNotification" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPCEndpointConnectionNotification - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-vpcendpointservicepermissions.go b/cloudformation/aws-ec2-vpcendpointservicepermissions.go index 1d0d63d51c..8fb40b2222 100644 --- a/cloudformation/aws-ec2-vpcendpointservicepermissions.go +++ b/cloudformation/aws-ec2-vpcendpointservicepermissions.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSEC2VPCEndpointServicePermissions) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2VPCEndpointServicePermissionsResources retrieves all AWSEC2VPCEndpointServicePermissions items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCEndpointServicePermissionsResources() map[string]*AWSEC2VPCEndpointServicePermissions { - results := map[string]*AWSEC2VPCEndpointServicePermissions{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2VPCEndpointServicePermissions: - results[name] = &resource - case *AWSEC2VPCEndpointServicePermissions: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPCEndpointServicePermissions" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPCEndpointServicePermissions - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2VPCEndpointServicePermissionsWithName retrieves all AWSEC2VPCEndpointServicePermissions items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCEndpointServicePermissionsWithName(name string) (*AWSEC2VPCEndpointServicePermissions, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2VPCEndpointServicePermissions: - return &resource, nil - case *AWSEC2VPCEndpointServicePermissions: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPCEndpointServicePermissions" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPCEndpointServicePermissions - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-vpcgatewayattachment.go b/cloudformation/aws-ec2-vpcgatewayattachment.go index 9f240a50cb..b79594deda 100644 --- a/cloudformation/aws-ec2-vpcgatewayattachment.go +++ b/cloudformation/aws-ec2-vpcgatewayattachment.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSEC2VPCGatewayAttachment) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2VPCGatewayAttachmentResources retrieves all AWSEC2VPCGatewayAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCGatewayAttachmentResources() map[string]*AWSEC2VPCGatewayAttachment { - results := map[string]*AWSEC2VPCGatewayAttachment{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2VPCGatewayAttachment: - results[name] = &resource - case *AWSEC2VPCGatewayAttachment: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPCGatewayAttachment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPCGatewayAttachment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2VPCGatewayAttachmentWithName retrieves all AWSEC2VPCGatewayAttachment items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCGatewayAttachmentWithName(name string) (*AWSEC2VPCGatewayAttachment, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2VPCGatewayAttachment: - return &resource, nil - case *AWSEC2VPCGatewayAttachment: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPCGatewayAttachment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPCGatewayAttachment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-vpcpeeringconnection.go b/cloudformation/aws-ec2-vpcpeeringconnection.go index a26ebbc1d2..0b39d1ecc9 100644 --- a/cloudformation/aws-ec2-vpcpeeringconnection.go +++ b/cloudformation/aws-ec2-vpcpeeringconnection.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -137,63 +136,3 @@ func (r *AWSEC2VPCPeeringConnection) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2VPCPeeringConnectionResources retrieves all AWSEC2VPCPeeringConnection items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCPeeringConnectionResources() map[string]*AWSEC2VPCPeeringConnection { - results := map[string]*AWSEC2VPCPeeringConnection{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2VPCPeeringConnection: - results[name] = &resource - case *AWSEC2VPCPeeringConnection: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPCPeeringConnection" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPCPeeringConnection - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2VPCPeeringConnectionWithName retrieves all AWSEC2VPCPeeringConnection items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCPeeringConnectionWithName(name string) (*AWSEC2VPCPeeringConnection, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2VPCPeeringConnection: - return &resource, nil - case *AWSEC2VPCPeeringConnection: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPCPeeringConnection" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPCPeeringConnection - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-vpnconnection.go b/cloudformation/aws-ec2-vpnconnection.go index 8097dba11a..5d8f33700d 100644 --- a/cloudformation/aws-ec2-vpnconnection.go +++ b/cloudformation/aws-ec2-vpnconnection.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -137,63 +136,3 @@ func (r *AWSEC2VPNConnection) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2VPNConnectionResources retrieves all AWSEC2VPNConnection items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPNConnectionResources() map[string]*AWSEC2VPNConnection { - results := map[string]*AWSEC2VPNConnection{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2VPNConnection: - results[name] = &resource - case *AWSEC2VPNConnection: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPNConnection" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPNConnection - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2VPNConnectionWithName retrieves all AWSEC2VPNConnection items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPNConnectionWithName(name string) (*AWSEC2VPNConnection, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2VPNConnection: - return &resource, nil - case *AWSEC2VPNConnection: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPNConnection" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPNConnection - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-vpnconnectionroute.go b/cloudformation/aws-ec2-vpnconnectionroute.go index dce90b785a..7206e57b0a 100644 --- a/cloudformation/aws-ec2-vpnconnectionroute.go +++ b/cloudformation/aws-ec2-vpnconnectionroute.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSEC2VPNConnectionRoute) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2VPNConnectionRouteResources retrieves all AWSEC2VPNConnectionRoute items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPNConnectionRouteResources() map[string]*AWSEC2VPNConnectionRoute { - results := map[string]*AWSEC2VPNConnectionRoute{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2VPNConnectionRoute: - results[name] = &resource - case *AWSEC2VPNConnectionRoute: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPNConnectionRoute" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPNConnectionRoute - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2VPNConnectionRouteWithName retrieves all AWSEC2VPNConnectionRoute items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPNConnectionRouteWithName(name string) (*AWSEC2VPNConnectionRoute, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2VPNConnectionRoute: - return &resource, nil - case *AWSEC2VPNConnectionRoute: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPNConnectionRoute" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPNConnectionRoute - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-vpngateway.go b/cloudformation/aws-ec2-vpngateway.go index dc489b0355..1a3d4824ea 100644 --- a/cloudformation/aws-ec2-vpngateway.go +++ b/cloudformation/aws-ec2-vpngateway.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSEC2VPNGateway) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2VPNGatewayResources retrieves all AWSEC2VPNGateway items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPNGatewayResources() map[string]*AWSEC2VPNGateway { - results := map[string]*AWSEC2VPNGateway{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2VPNGateway: - results[name] = &resource - case *AWSEC2VPNGateway: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPNGateway" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPNGateway - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2VPNGatewayWithName retrieves all AWSEC2VPNGateway items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPNGatewayWithName(name string) (*AWSEC2VPNGateway, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2VPNGateway: - return &resource, nil - case *AWSEC2VPNGateway: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPNGateway" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPNGateway - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ec2-vpngatewayroutepropagation.go b/cloudformation/aws-ec2-vpngatewayroutepropagation.go index 61af4c57c5..b85127aba3 100644 --- a/cloudformation/aws-ec2-vpngatewayroutepropagation.go +++ b/cloudformation/aws-ec2-vpngatewayroutepropagation.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSEC2VPNGatewayRoutePropagation) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEC2VPNGatewayRoutePropagationResources retrieves all AWSEC2VPNGatewayRoutePropagation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPNGatewayRoutePropagationResources() map[string]*AWSEC2VPNGatewayRoutePropagation { - results := map[string]*AWSEC2VPNGatewayRoutePropagation{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEC2VPNGatewayRoutePropagation: - results[name] = &resource - case *AWSEC2VPNGatewayRoutePropagation: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPNGatewayRoutePropagation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPNGatewayRoutePropagation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEC2VPNGatewayRoutePropagationWithName retrieves all AWSEC2VPNGatewayRoutePropagation items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPNGatewayRoutePropagationWithName(name string) (*AWSEC2VPNGatewayRoutePropagation, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEC2VPNGatewayRoutePropagation: - return &resource, nil - case *AWSEC2VPNGatewayRoutePropagation: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EC2::VPNGatewayRoutePropagation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEC2VPNGatewayRoutePropagation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ecr-repository.go b/cloudformation/aws-ecr-repository.go index d5ab7f4e4d..da0471aff2 100644 --- a/cloudformation/aws-ecr-repository.go +++ b/cloudformation/aws-ecr-repository.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSECRRepository) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSECRRepositoryResources retrieves all AWSECRRepository items from an AWS CloudFormation template -func (t *Template) GetAllAWSECRRepositoryResources() map[string]*AWSECRRepository { - results := map[string]*AWSECRRepository{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSECRRepository: - results[name] = &resource - case *AWSECRRepository: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ECR::Repository" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSECRRepository - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSECRRepositoryWithName retrieves all AWSECRRepository items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSECRRepositoryWithName(name string) (*AWSECRRepository, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSECRRepository: - return &resource, nil - case *AWSECRRepository: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ECR::Repository" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSECRRepository - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ecs-cluster.go b/cloudformation/aws-ecs-cluster.go index 676422b633..cdca3142b7 100644 --- a/cloudformation/aws-ecs-cluster.go +++ b/cloudformation/aws-ecs-cluster.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -112,63 +111,3 @@ func (r *AWSECSCluster) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSECSClusterResources retrieves all AWSECSCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSECSClusterResources() map[string]*AWSECSCluster { - results := map[string]*AWSECSCluster{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSECSCluster: - results[name] = &resource - case *AWSECSCluster: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ECS::Cluster" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSECSCluster - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSECSClusterWithName retrieves all AWSECSCluster items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSECSClusterWithName(name string) (*AWSECSCluster, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSECSCluster: - return &resource, nil - case *AWSECSCluster: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ECS::Cluster" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSECSCluster - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ecs-service.go b/cloudformation/aws-ecs-service.go index 58f346dcbb..858eab1a49 100644 --- a/cloudformation/aws-ecs-service.go +++ b/cloudformation/aws-ecs-service.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -182,63 +181,3 @@ func (r *AWSECSService) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSECSServiceResources retrieves all AWSECSService items from an AWS CloudFormation template -func (t *Template) GetAllAWSECSServiceResources() map[string]*AWSECSService { - results := map[string]*AWSECSService{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSECSService: - results[name] = &resource - case *AWSECSService: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ECS::Service" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSECSService - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSECSServiceWithName retrieves all AWSECSService items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSECSServiceWithName(name string) (*AWSECSService, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSECSService: - return &resource, nil - case *AWSECSService: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ECS::Service" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSECSService - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ecs-taskdefinition.go b/cloudformation/aws-ecs-taskdefinition.go index 58e9bfc110..c3d103bb16 100644 --- a/cloudformation/aws-ecs-taskdefinition.go +++ b/cloudformation/aws-ecs-taskdefinition.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -157,63 +156,3 @@ func (r *AWSECSTaskDefinition) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSECSTaskDefinitionResources retrieves all AWSECSTaskDefinition items from an AWS CloudFormation template -func (t *Template) GetAllAWSECSTaskDefinitionResources() map[string]*AWSECSTaskDefinition { - results := map[string]*AWSECSTaskDefinition{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSECSTaskDefinition: - results[name] = &resource - case *AWSECSTaskDefinition: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ECS::TaskDefinition" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSECSTaskDefinition - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSECSTaskDefinitionWithName retrieves all AWSECSTaskDefinition items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSECSTaskDefinitionWithName(name string) (*AWSECSTaskDefinition, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSECSTaskDefinition: - return &resource, nil - case *AWSECSTaskDefinition: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ECS::TaskDefinition" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSECSTaskDefinition - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-efs-filesystem.go b/cloudformation/aws-efs-filesystem.go index 71bc03dcaf..4972a035f1 100644 --- a/cloudformation/aws-efs-filesystem.go +++ b/cloudformation/aws-efs-filesystem.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -137,63 +136,3 @@ func (r *AWSEFSFileSystem) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEFSFileSystemResources retrieves all AWSEFSFileSystem items from an AWS CloudFormation template -func (t *Template) GetAllAWSEFSFileSystemResources() map[string]*AWSEFSFileSystem { - results := map[string]*AWSEFSFileSystem{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEFSFileSystem: - results[name] = &resource - case *AWSEFSFileSystem: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EFS::FileSystem" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEFSFileSystem - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEFSFileSystemWithName retrieves all AWSEFSFileSystem items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEFSFileSystemWithName(name string) (*AWSEFSFileSystem, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEFSFileSystem: - return &resource, nil - case *AWSEFSFileSystem: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EFS::FileSystem" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEFSFileSystem - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-efs-mounttarget.go b/cloudformation/aws-efs-mounttarget.go index 84feb41915..c19577a105 100644 --- a/cloudformation/aws-efs-mounttarget.go +++ b/cloudformation/aws-efs-mounttarget.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSEFSMountTarget) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEFSMountTargetResources retrieves all AWSEFSMountTarget items from an AWS CloudFormation template -func (t *Template) GetAllAWSEFSMountTargetResources() map[string]*AWSEFSMountTarget { - results := map[string]*AWSEFSMountTarget{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEFSMountTarget: - results[name] = &resource - case *AWSEFSMountTarget: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EFS::MountTarget" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEFSMountTarget - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEFSMountTargetWithName retrieves all AWSEFSMountTarget items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEFSMountTargetWithName(name string) (*AWSEFSMountTarget, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEFSMountTarget: - return &resource, nil - case *AWSEFSMountTarget: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EFS::MountTarget" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEFSMountTarget - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-eks-cluster.go b/cloudformation/aws-eks-cluster.go index c69881894b..5e001d796e 100644 --- a/cloudformation/aws-eks-cluster.go +++ b/cloudformation/aws-eks-cluster.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSEKSCluster) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEKSClusterResources retrieves all AWSEKSCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSEKSClusterResources() map[string]*AWSEKSCluster { - results := map[string]*AWSEKSCluster{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEKSCluster: - results[name] = &resource - case *AWSEKSCluster: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EKS::Cluster" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEKSCluster - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEKSClusterWithName retrieves all AWSEKSCluster items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEKSClusterWithName(name string) (*AWSEKSCluster, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEKSCluster: - return &resource, nil - case *AWSEKSCluster: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EKS::Cluster" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEKSCluster - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-elasticache-cachecluster.go b/cloudformation/aws-elasticache-cachecluster.go index a436e574a6..cab438dcd7 100644 --- a/cloudformation/aws-elasticache-cachecluster.go +++ b/cloudformation/aws-elasticache-cachecluster.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -212,63 +211,3 @@ func (r *AWSElastiCacheCacheCluster) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSElastiCacheCacheClusterResources retrieves all AWSElastiCacheCacheCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSElastiCacheCacheClusterResources() map[string]*AWSElastiCacheCacheCluster { - results := map[string]*AWSElastiCacheCacheCluster{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSElastiCacheCacheCluster: - results[name] = &resource - case *AWSElastiCacheCacheCluster: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElastiCache::CacheCluster" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElastiCacheCacheCluster - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSElastiCacheCacheClusterWithName retrieves all AWSElastiCacheCacheCluster items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElastiCacheCacheClusterWithName(name string) (*AWSElastiCacheCacheCluster, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSElastiCacheCacheCluster: - return &resource, nil - case *AWSElastiCacheCacheCluster: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElastiCache::CacheCluster" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElastiCacheCacheCluster - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-elasticache-parametergroup.go b/cloudformation/aws-elasticache-parametergroup.go index d7af5aba5b..fe9055f4be 100644 --- a/cloudformation/aws-elasticache-parametergroup.go +++ b/cloudformation/aws-elasticache-parametergroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSElastiCacheParameterGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSElastiCacheParameterGroupResources retrieves all AWSElastiCacheParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSElastiCacheParameterGroupResources() map[string]*AWSElastiCacheParameterGroup { - results := map[string]*AWSElastiCacheParameterGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSElastiCacheParameterGroup: - results[name] = &resource - case *AWSElastiCacheParameterGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElastiCache::ParameterGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElastiCacheParameterGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSElastiCacheParameterGroupWithName retrieves all AWSElastiCacheParameterGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElastiCacheParameterGroupWithName(name string) (*AWSElastiCacheParameterGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSElastiCacheParameterGroup: - return &resource, nil - case *AWSElastiCacheParameterGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElastiCache::ParameterGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElastiCacheParameterGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-elasticache-replicationgroup.go b/cloudformation/aws-elasticache-replicationgroup.go index 84f63cd235..fe419e29cb 100644 --- a/cloudformation/aws-elasticache-replicationgroup.go +++ b/cloudformation/aws-elasticache-replicationgroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -252,63 +251,3 @@ func (r *AWSElastiCacheReplicationGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSElastiCacheReplicationGroupResources retrieves all AWSElastiCacheReplicationGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSElastiCacheReplicationGroupResources() map[string]*AWSElastiCacheReplicationGroup { - results := map[string]*AWSElastiCacheReplicationGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSElastiCacheReplicationGroup: - results[name] = &resource - case *AWSElastiCacheReplicationGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElastiCache::ReplicationGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElastiCacheReplicationGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSElastiCacheReplicationGroupWithName retrieves all AWSElastiCacheReplicationGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElastiCacheReplicationGroupWithName(name string) (*AWSElastiCacheReplicationGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSElastiCacheReplicationGroup: - return &resource, nil - case *AWSElastiCacheReplicationGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElastiCache::ReplicationGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElastiCacheReplicationGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-elasticache-securitygroup.go b/cloudformation/aws-elasticache-securitygroup.go index becf675b56..c82ec2de68 100644 --- a/cloudformation/aws-elasticache-securitygroup.go +++ b/cloudformation/aws-elasticache-securitygroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -112,63 +111,3 @@ func (r *AWSElastiCacheSecurityGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSElastiCacheSecurityGroupResources retrieves all AWSElastiCacheSecurityGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSElastiCacheSecurityGroupResources() map[string]*AWSElastiCacheSecurityGroup { - results := map[string]*AWSElastiCacheSecurityGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSElastiCacheSecurityGroup: - results[name] = &resource - case *AWSElastiCacheSecurityGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElastiCache::SecurityGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElastiCacheSecurityGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSElastiCacheSecurityGroupWithName retrieves all AWSElastiCacheSecurityGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElastiCacheSecurityGroupWithName(name string) (*AWSElastiCacheSecurityGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSElastiCacheSecurityGroup: - return &resource, nil - case *AWSElastiCacheSecurityGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElastiCache::SecurityGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElastiCacheSecurityGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-elasticache-securitygroupingress.go b/cloudformation/aws-elasticache-securitygroupingress.go index 32f03cdc1e..fed8920be2 100644 --- a/cloudformation/aws-elasticache-securitygroupingress.go +++ b/cloudformation/aws-elasticache-securitygroupingress.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSElastiCacheSecurityGroupIngress) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSElastiCacheSecurityGroupIngressResources retrieves all AWSElastiCacheSecurityGroupIngress items from an AWS CloudFormation template -func (t *Template) GetAllAWSElastiCacheSecurityGroupIngressResources() map[string]*AWSElastiCacheSecurityGroupIngress { - results := map[string]*AWSElastiCacheSecurityGroupIngress{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSElastiCacheSecurityGroupIngress: - results[name] = &resource - case *AWSElastiCacheSecurityGroupIngress: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElastiCache::SecurityGroupIngress" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElastiCacheSecurityGroupIngress - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSElastiCacheSecurityGroupIngressWithName retrieves all AWSElastiCacheSecurityGroupIngress items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElastiCacheSecurityGroupIngressWithName(name string) (*AWSElastiCacheSecurityGroupIngress, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSElastiCacheSecurityGroupIngress: - return &resource, nil - case *AWSElastiCacheSecurityGroupIngress: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElastiCache::SecurityGroupIngress" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElastiCacheSecurityGroupIngress - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-elasticache-subnetgroup.go b/cloudformation/aws-elasticache-subnetgroup.go index 070e418810..5d37489662 100644 --- a/cloudformation/aws-elasticache-subnetgroup.go +++ b/cloudformation/aws-elasticache-subnetgroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSElastiCacheSubnetGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSElastiCacheSubnetGroupResources retrieves all AWSElastiCacheSubnetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSElastiCacheSubnetGroupResources() map[string]*AWSElastiCacheSubnetGroup { - results := map[string]*AWSElastiCacheSubnetGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSElastiCacheSubnetGroup: - results[name] = &resource - case *AWSElastiCacheSubnetGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElastiCache::SubnetGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElastiCacheSubnetGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSElastiCacheSubnetGroupWithName retrieves all AWSElastiCacheSubnetGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElastiCacheSubnetGroupWithName(name string) (*AWSElastiCacheSubnetGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSElastiCacheSubnetGroup: - return &resource, nil - case *AWSElastiCacheSubnetGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElastiCache::SubnetGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElastiCacheSubnetGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-elasticbeanstalk-application.go b/cloudformation/aws-elasticbeanstalk-application.go index 2afd9467cf..744ec6646d 100644 --- a/cloudformation/aws-elasticbeanstalk-application.go +++ b/cloudformation/aws-elasticbeanstalk-application.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSElasticBeanstalkApplication) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSElasticBeanstalkApplicationResources retrieves all AWSElasticBeanstalkApplication items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticBeanstalkApplicationResources() map[string]*AWSElasticBeanstalkApplication { - results := map[string]*AWSElasticBeanstalkApplication{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSElasticBeanstalkApplication: - results[name] = &resource - case *AWSElasticBeanstalkApplication: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElasticBeanstalk::Application" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElasticBeanstalkApplication - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSElasticBeanstalkApplicationWithName retrieves all AWSElasticBeanstalkApplication items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticBeanstalkApplicationWithName(name string) (*AWSElasticBeanstalkApplication, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSElasticBeanstalkApplication: - return &resource, nil - case *AWSElasticBeanstalkApplication: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElasticBeanstalk::Application" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElasticBeanstalkApplication - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-elasticbeanstalk-applicationversion.go b/cloudformation/aws-elasticbeanstalk-applicationversion.go index 138fba7f44..7b42004ab3 100644 --- a/cloudformation/aws-elasticbeanstalk-applicationversion.go +++ b/cloudformation/aws-elasticbeanstalk-applicationversion.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSElasticBeanstalkApplicationVersion) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSElasticBeanstalkApplicationVersionResources retrieves all AWSElasticBeanstalkApplicationVersion items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticBeanstalkApplicationVersionResources() map[string]*AWSElasticBeanstalkApplicationVersion { - results := map[string]*AWSElasticBeanstalkApplicationVersion{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSElasticBeanstalkApplicationVersion: - results[name] = &resource - case *AWSElasticBeanstalkApplicationVersion: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElasticBeanstalk::ApplicationVersion" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElasticBeanstalkApplicationVersion - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSElasticBeanstalkApplicationVersionWithName retrieves all AWSElasticBeanstalkApplicationVersion items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticBeanstalkApplicationVersionWithName(name string) (*AWSElasticBeanstalkApplicationVersion, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSElasticBeanstalkApplicationVersion: - return &resource, nil - case *AWSElasticBeanstalkApplicationVersion: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElasticBeanstalk::ApplicationVersion" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElasticBeanstalkApplicationVersion - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-elasticbeanstalk-configurationtemplate.go b/cloudformation/aws-elasticbeanstalk-configurationtemplate.go index e1bda0bb5c..e492d5f6aa 100644 --- a/cloudformation/aws-elasticbeanstalk-configurationtemplate.go +++ b/cloudformation/aws-elasticbeanstalk-configurationtemplate.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSElasticBeanstalkConfigurationTemplate) UnmarshalJSON(b []byte) error return nil } - -// GetAllAWSElasticBeanstalkConfigurationTemplateResources retrieves all AWSElasticBeanstalkConfigurationTemplate items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticBeanstalkConfigurationTemplateResources() map[string]*AWSElasticBeanstalkConfigurationTemplate { - results := map[string]*AWSElasticBeanstalkConfigurationTemplate{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSElasticBeanstalkConfigurationTemplate: - results[name] = &resource - case *AWSElasticBeanstalkConfigurationTemplate: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElasticBeanstalk::ConfigurationTemplate" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElasticBeanstalkConfigurationTemplate - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSElasticBeanstalkConfigurationTemplateWithName retrieves all AWSElasticBeanstalkConfigurationTemplate items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticBeanstalkConfigurationTemplateWithName(name string) (*AWSElasticBeanstalkConfigurationTemplate, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSElasticBeanstalkConfigurationTemplate: - return &resource, nil - case *AWSElasticBeanstalkConfigurationTemplate: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElasticBeanstalk::ConfigurationTemplate" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElasticBeanstalkConfigurationTemplate - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-elasticbeanstalk-environment.go b/cloudformation/aws-elasticbeanstalk-environment.go index b91da5d511..140ec80f41 100644 --- a/cloudformation/aws-elasticbeanstalk-environment.go +++ b/cloudformation/aws-elasticbeanstalk-environment.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -162,63 +161,3 @@ func (r *AWSElasticBeanstalkEnvironment) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSElasticBeanstalkEnvironmentResources retrieves all AWSElasticBeanstalkEnvironment items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticBeanstalkEnvironmentResources() map[string]*AWSElasticBeanstalkEnvironment { - results := map[string]*AWSElasticBeanstalkEnvironment{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSElasticBeanstalkEnvironment: - results[name] = &resource - case *AWSElasticBeanstalkEnvironment: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElasticBeanstalk::Environment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElasticBeanstalkEnvironment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSElasticBeanstalkEnvironmentWithName retrieves all AWSElasticBeanstalkEnvironment items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticBeanstalkEnvironmentWithName(name string) (*AWSElasticBeanstalkEnvironment, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSElasticBeanstalkEnvironment: - return &resource, nil - case *AWSElasticBeanstalkEnvironment: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElasticBeanstalk::Environment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElasticBeanstalkEnvironment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-elasticloadbalancing-loadbalancer.go b/cloudformation/aws-elasticloadbalancing-loadbalancer.go index c4f1615f45..ccdc654cc7 100644 --- a/cloudformation/aws-elasticloadbalancing-loadbalancer.go +++ b/cloudformation/aws-elasticloadbalancing-loadbalancer.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -187,63 +186,3 @@ func (r *AWSElasticLoadBalancingLoadBalancer) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSElasticLoadBalancingLoadBalancerResources retrieves all AWSElasticLoadBalancingLoadBalancer items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticLoadBalancingLoadBalancerResources() map[string]*AWSElasticLoadBalancingLoadBalancer { - results := map[string]*AWSElasticLoadBalancingLoadBalancer{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSElasticLoadBalancingLoadBalancer: - results[name] = &resource - case *AWSElasticLoadBalancingLoadBalancer: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElasticLoadBalancing::LoadBalancer" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElasticLoadBalancingLoadBalancer - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSElasticLoadBalancingLoadBalancerWithName retrieves all AWSElasticLoadBalancingLoadBalancer items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticLoadBalancingLoadBalancerWithName(name string) (*AWSElasticLoadBalancingLoadBalancer, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSElasticLoadBalancingLoadBalancer: - return &resource, nil - case *AWSElasticLoadBalancingLoadBalancer: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElasticLoadBalancing::LoadBalancer" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElasticLoadBalancingLoadBalancer - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-elasticloadbalancingv2-listener.go b/cloudformation/aws-elasticloadbalancingv2-listener.go index 198d88ce36..e940026ca3 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listener.go +++ b/cloudformation/aws-elasticloadbalancingv2-listener.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -137,63 +136,3 @@ func (r *AWSElasticLoadBalancingV2Listener) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSElasticLoadBalancingV2ListenerResources retrieves all AWSElasticLoadBalancingV2Listener items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerResources() map[string]*AWSElasticLoadBalancingV2Listener { - results := map[string]*AWSElasticLoadBalancingV2Listener{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSElasticLoadBalancingV2Listener: - results[name] = &resource - case *AWSElasticLoadBalancingV2Listener: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElasticLoadBalancingV2::Listener" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElasticLoadBalancingV2Listener - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSElasticLoadBalancingV2ListenerWithName retrieves all AWSElasticLoadBalancingV2Listener items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticLoadBalancingV2ListenerWithName(name string) (*AWSElasticLoadBalancingV2Listener, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSElasticLoadBalancingV2Listener: - return &resource, nil - case *AWSElasticLoadBalancingV2Listener: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElasticLoadBalancingV2::Listener" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElasticLoadBalancingV2Listener - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-elasticloadbalancingv2-listenercertificate.go b/cloudformation/aws-elasticloadbalancingv2-listenercertificate.go index 6576f79c2c..a745ee6aa2 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listenercertificate.go +++ b/cloudformation/aws-elasticloadbalancingv2-listenercertificate.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSElasticLoadBalancingV2ListenerCertificate) UnmarshalJSON(b []byte) e return nil } - -// GetAllAWSElasticLoadBalancingV2ListenerCertificateResources retrieves all AWSElasticLoadBalancingV2ListenerCertificate items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerCertificateResources() map[string]*AWSElasticLoadBalancingV2ListenerCertificate { - results := map[string]*AWSElasticLoadBalancingV2ListenerCertificate{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSElasticLoadBalancingV2ListenerCertificate: - results[name] = &resource - case *AWSElasticLoadBalancingV2ListenerCertificate: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElasticLoadBalancingV2::ListenerCertificate" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElasticLoadBalancingV2ListenerCertificate - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSElasticLoadBalancingV2ListenerCertificateWithName retrieves all AWSElasticLoadBalancingV2ListenerCertificate items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticLoadBalancingV2ListenerCertificateWithName(name string) (*AWSElasticLoadBalancingV2ListenerCertificate, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSElasticLoadBalancingV2ListenerCertificate: - return &resource, nil - case *AWSElasticLoadBalancingV2ListenerCertificate: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElasticLoadBalancingV2::ListenerCertificate" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElasticLoadBalancingV2ListenerCertificate - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-elasticloadbalancingv2-listenerrule.go b/cloudformation/aws-elasticloadbalancingv2-listenerrule.go index a9d08ab36f..717978b0f6 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listenerrule.go +++ b/cloudformation/aws-elasticloadbalancingv2-listenerrule.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSElasticLoadBalancingV2ListenerRule) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSElasticLoadBalancingV2ListenerRuleResources retrieves all AWSElasticLoadBalancingV2ListenerRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerRuleResources() map[string]*AWSElasticLoadBalancingV2ListenerRule { - results := map[string]*AWSElasticLoadBalancingV2ListenerRule{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSElasticLoadBalancingV2ListenerRule: - results[name] = &resource - case *AWSElasticLoadBalancingV2ListenerRule: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElasticLoadBalancingV2::ListenerRule" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElasticLoadBalancingV2ListenerRule - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSElasticLoadBalancingV2ListenerRuleWithName retrieves all AWSElasticLoadBalancingV2ListenerRule items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticLoadBalancingV2ListenerRuleWithName(name string) (*AWSElasticLoadBalancingV2ListenerRule, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSElasticLoadBalancingV2ListenerRule: - return &resource, nil - case *AWSElasticLoadBalancingV2ListenerRule: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElasticLoadBalancingV2::ListenerRule" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElasticLoadBalancingV2ListenerRule - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-elasticloadbalancingv2-loadbalancer.go b/cloudformation/aws-elasticloadbalancingv2-loadbalancer.go index 0a07f10504..8ba3b335de 100644 --- a/cloudformation/aws-elasticloadbalancingv2-loadbalancer.go +++ b/cloudformation/aws-elasticloadbalancingv2-loadbalancer.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -152,63 +151,3 @@ func (r *AWSElasticLoadBalancingV2LoadBalancer) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSElasticLoadBalancingV2LoadBalancerResources retrieves all AWSElasticLoadBalancingV2LoadBalancer items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticLoadBalancingV2LoadBalancerResources() map[string]*AWSElasticLoadBalancingV2LoadBalancer { - results := map[string]*AWSElasticLoadBalancingV2LoadBalancer{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSElasticLoadBalancingV2LoadBalancer: - results[name] = &resource - case *AWSElasticLoadBalancingV2LoadBalancer: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElasticLoadBalancingV2::LoadBalancer" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElasticLoadBalancingV2LoadBalancer - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSElasticLoadBalancingV2LoadBalancerWithName retrieves all AWSElasticLoadBalancingV2LoadBalancer items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticLoadBalancingV2LoadBalancerWithName(name string) (*AWSElasticLoadBalancingV2LoadBalancer, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSElasticLoadBalancingV2LoadBalancer: - return &resource, nil - case *AWSElasticLoadBalancingV2LoadBalancer: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElasticLoadBalancingV2::LoadBalancer" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElasticLoadBalancingV2LoadBalancer - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-elasticloadbalancingv2-targetgroup.go b/cloudformation/aws-elasticloadbalancingv2-targetgroup.go index 78a98d45ad..d6dbe4b2a2 100644 --- a/cloudformation/aws-elasticloadbalancingv2-targetgroup.go +++ b/cloudformation/aws-elasticloadbalancingv2-targetgroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -192,63 +191,3 @@ func (r *AWSElasticLoadBalancingV2TargetGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSElasticLoadBalancingV2TargetGroupResources retrieves all AWSElasticLoadBalancingV2TargetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticLoadBalancingV2TargetGroupResources() map[string]*AWSElasticLoadBalancingV2TargetGroup { - results := map[string]*AWSElasticLoadBalancingV2TargetGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSElasticLoadBalancingV2TargetGroup: - results[name] = &resource - case *AWSElasticLoadBalancingV2TargetGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElasticLoadBalancingV2::TargetGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElasticLoadBalancingV2TargetGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSElasticLoadBalancingV2TargetGroupWithName retrieves all AWSElasticLoadBalancingV2TargetGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticLoadBalancingV2TargetGroupWithName(name string) (*AWSElasticLoadBalancingV2TargetGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSElasticLoadBalancingV2TargetGroup: - return &resource, nil - case *AWSElasticLoadBalancingV2TargetGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ElasticLoadBalancingV2::TargetGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElasticLoadBalancingV2TargetGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-elasticsearch-domain.go b/cloudformation/aws-elasticsearch-domain.go index d48069a0f8..a3cc9579a9 100644 --- a/cloudformation/aws-elasticsearch-domain.go +++ b/cloudformation/aws-elasticsearch-domain.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -162,63 +161,3 @@ func (r *AWSElasticsearchDomain) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSElasticsearchDomainResources retrieves all AWSElasticsearchDomain items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticsearchDomainResources() map[string]*AWSElasticsearchDomain { - results := map[string]*AWSElasticsearchDomain{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSElasticsearchDomain: - results[name] = &resource - case *AWSElasticsearchDomain: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Elasticsearch::Domain" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElasticsearchDomain - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSElasticsearchDomainWithName retrieves all AWSElasticsearchDomain items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticsearchDomainWithName(name string) (*AWSElasticsearchDomain, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSElasticsearchDomain: - return &resource, nil - case *AWSElasticsearchDomain: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Elasticsearch::Domain" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSElasticsearchDomain - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-emr-cluster.go b/cloudformation/aws-emr-cluster.go index 7358d55757..4a3bf34a1d 100644 --- a/cloudformation/aws-emr-cluster.go +++ b/cloudformation/aws-emr-cluster.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -202,63 +201,3 @@ func (r *AWSEMRCluster) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEMRClusterResources retrieves all AWSEMRCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSEMRClusterResources() map[string]*AWSEMRCluster { - results := map[string]*AWSEMRCluster{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEMRCluster: - results[name] = &resource - case *AWSEMRCluster: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EMR::Cluster" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEMRCluster - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEMRClusterWithName retrieves all AWSEMRCluster items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEMRClusterWithName(name string) (*AWSEMRCluster, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEMRCluster: - return &resource, nil - case *AWSEMRCluster: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EMR::Cluster" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEMRCluster - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-emr-instancefleetconfig.go b/cloudformation/aws-emr-instancefleetconfig.go index 0e58d372a4..b192ecb824 100644 --- a/cloudformation/aws-emr-instancefleetconfig.go +++ b/cloudformation/aws-emr-instancefleetconfig.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSEMRInstanceFleetConfig) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEMRInstanceFleetConfigResources retrieves all AWSEMRInstanceFleetConfig items from an AWS CloudFormation template -func (t *Template) GetAllAWSEMRInstanceFleetConfigResources() map[string]*AWSEMRInstanceFleetConfig { - results := map[string]*AWSEMRInstanceFleetConfig{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEMRInstanceFleetConfig: - results[name] = &resource - case *AWSEMRInstanceFleetConfig: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EMR::InstanceFleetConfig" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEMRInstanceFleetConfig - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEMRInstanceFleetConfigWithName retrieves all AWSEMRInstanceFleetConfig items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEMRInstanceFleetConfigWithName(name string) (*AWSEMRInstanceFleetConfig, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEMRInstanceFleetConfig: - return &resource, nil - case *AWSEMRInstanceFleetConfig: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EMR::InstanceFleetConfig" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEMRInstanceFleetConfig - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-emr-instancegroupconfig.go b/cloudformation/aws-emr-instancegroupconfig.go index c9bb010a57..1f60f628a2 100644 --- a/cloudformation/aws-emr-instancegroupconfig.go +++ b/cloudformation/aws-emr-instancegroupconfig.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -157,63 +156,3 @@ func (r *AWSEMRInstanceGroupConfig) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEMRInstanceGroupConfigResources retrieves all AWSEMRInstanceGroupConfig items from an AWS CloudFormation template -func (t *Template) GetAllAWSEMRInstanceGroupConfigResources() map[string]*AWSEMRInstanceGroupConfig { - results := map[string]*AWSEMRInstanceGroupConfig{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEMRInstanceGroupConfig: - results[name] = &resource - case *AWSEMRInstanceGroupConfig: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EMR::InstanceGroupConfig" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEMRInstanceGroupConfig - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEMRInstanceGroupConfigWithName retrieves all AWSEMRInstanceGroupConfig items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEMRInstanceGroupConfigWithName(name string) (*AWSEMRInstanceGroupConfig, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEMRInstanceGroupConfig: - return &resource, nil - case *AWSEMRInstanceGroupConfig: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EMR::InstanceGroupConfig" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEMRInstanceGroupConfig - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-emr-securityconfiguration.go b/cloudformation/aws-emr-securityconfiguration.go index 585f54f96c..1f601d6d4f 100644 --- a/cloudformation/aws-emr-securityconfiguration.go +++ b/cloudformation/aws-emr-securityconfiguration.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSEMRSecurityConfiguration) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEMRSecurityConfigurationResources retrieves all AWSEMRSecurityConfiguration items from an AWS CloudFormation template -func (t *Template) GetAllAWSEMRSecurityConfigurationResources() map[string]*AWSEMRSecurityConfiguration { - results := map[string]*AWSEMRSecurityConfiguration{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEMRSecurityConfiguration: - results[name] = &resource - case *AWSEMRSecurityConfiguration: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EMR::SecurityConfiguration" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEMRSecurityConfiguration - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEMRSecurityConfigurationWithName retrieves all AWSEMRSecurityConfiguration items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEMRSecurityConfigurationWithName(name string) (*AWSEMRSecurityConfiguration, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEMRSecurityConfiguration: - return &resource, nil - case *AWSEMRSecurityConfiguration: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EMR::SecurityConfiguration" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEMRSecurityConfiguration - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-emr-step.go b/cloudformation/aws-emr-step.go index 7bfd07a6bf..ed17284c41 100644 --- a/cloudformation/aws-emr-step.go +++ b/cloudformation/aws-emr-step.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSEMRStep) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEMRStepResources retrieves all AWSEMRStep items from an AWS CloudFormation template -func (t *Template) GetAllAWSEMRStepResources() map[string]*AWSEMRStep { - results := map[string]*AWSEMRStep{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEMRStep: - results[name] = &resource - case *AWSEMRStep: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EMR::Step" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEMRStep - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEMRStepWithName retrieves all AWSEMRStep items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEMRStepWithName(name string) (*AWSEMRStep, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEMRStep: - return &resource, nil - case *AWSEMRStep: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::EMR::Step" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEMRStep - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-events-eventbuspolicy.go b/cloudformation/aws-events-eventbuspolicy.go index 69dbb1df9b..cbeac45700 100644 --- a/cloudformation/aws-events-eventbuspolicy.go +++ b/cloudformation/aws-events-eventbuspolicy.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSEventsEventBusPolicy) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEventsEventBusPolicyResources retrieves all AWSEventsEventBusPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSEventsEventBusPolicyResources() map[string]*AWSEventsEventBusPolicy { - results := map[string]*AWSEventsEventBusPolicy{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEventsEventBusPolicy: - results[name] = &resource - case *AWSEventsEventBusPolicy: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Events::EventBusPolicy" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEventsEventBusPolicy - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEventsEventBusPolicyWithName retrieves all AWSEventsEventBusPolicy items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEventsEventBusPolicyWithName(name string) (*AWSEventsEventBusPolicy, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEventsEventBusPolicy: - return &resource, nil - case *AWSEventsEventBusPolicy: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Events::EventBusPolicy" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEventsEventBusPolicy - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-events-rule.go b/cloudformation/aws-events-rule.go index 4933e76d63..a2d1d50ef5 100644 --- a/cloudformation/aws-events-rule.go +++ b/cloudformation/aws-events-rule.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSEventsRule) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSEventsRuleResources retrieves all AWSEventsRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSEventsRuleResources() map[string]*AWSEventsRule { - results := map[string]*AWSEventsRule{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSEventsRule: - results[name] = &resource - case *AWSEventsRule: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Events::Rule" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEventsRule - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSEventsRuleWithName retrieves all AWSEventsRule items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEventsRuleWithName(name string) (*AWSEventsRule, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSEventsRule: - return &resource, nil - case *AWSEventsRule: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Events::Rule" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSEventsRule - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-fsx-filesystem.go b/cloudformation/aws-fsx-filesystem.go index e7acb7046d..8fdc2d2aeb 100644 --- a/cloudformation/aws-fsx-filesystem.go +++ b/cloudformation/aws-fsx-filesystem.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -152,63 +151,3 @@ func (r *AWSFSxFileSystem) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSFSxFileSystemResources retrieves all AWSFSxFileSystem items from an AWS CloudFormation template -func (t *Template) GetAllAWSFSxFileSystemResources() map[string]*AWSFSxFileSystem { - results := map[string]*AWSFSxFileSystem{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSFSxFileSystem: - results[name] = &resource - case *AWSFSxFileSystem: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::FSx::FileSystem" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSFSxFileSystem - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSFSxFileSystemWithName retrieves all AWSFSxFileSystem items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSFSxFileSystemWithName(name string) (*AWSFSxFileSystem, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSFSxFileSystem: - return &resource, nil - case *AWSFSxFileSystem: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::FSx::FileSystem" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSFSxFileSystem - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-gamelift-alias.go b/cloudformation/aws-gamelift-alias.go index 6edd3b8253..3dbbc54c6c 100644 --- a/cloudformation/aws-gamelift-alias.go +++ b/cloudformation/aws-gamelift-alias.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSGameLiftAlias) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSGameLiftAliasResources retrieves all AWSGameLiftAlias items from an AWS CloudFormation template -func (t *Template) GetAllAWSGameLiftAliasResources() map[string]*AWSGameLiftAlias { - results := map[string]*AWSGameLiftAlias{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSGameLiftAlias: - results[name] = &resource - case *AWSGameLiftAlias: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::GameLift::Alias" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGameLiftAlias - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSGameLiftAliasWithName retrieves all AWSGameLiftAlias items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGameLiftAliasWithName(name string) (*AWSGameLiftAlias, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSGameLiftAlias: - return &resource, nil - case *AWSGameLiftAlias: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::GameLift::Alias" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGameLiftAlias - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-gamelift-build.go b/cloudformation/aws-gamelift-build.go index ae85798cfd..f602ebddc9 100644 --- a/cloudformation/aws-gamelift-build.go +++ b/cloudformation/aws-gamelift-build.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSGameLiftBuild) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSGameLiftBuildResources retrieves all AWSGameLiftBuild items from an AWS CloudFormation template -func (t *Template) GetAllAWSGameLiftBuildResources() map[string]*AWSGameLiftBuild { - results := map[string]*AWSGameLiftBuild{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSGameLiftBuild: - results[name] = &resource - case *AWSGameLiftBuild: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::GameLift::Build" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGameLiftBuild - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSGameLiftBuildWithName retrieves all AWSGameLiftBuild items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGameLiftBuildWithName(name string) (*AWSGameLiftBuild, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSGameLiftBuild: - return &resource, nil - case *AWSGameLiftBuild: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::GameLift::Build" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGameLiftBuild - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-gamelift-fleet.go b/cloudformation/aws-gamelift-fleet.go index 8ddd6c2003..4f6f22e3a8 100644 --- a/cloudformation/aws-gamelift-fleet.go +++ b/cloudformation/aws-gamelift-fleet.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -162,63 +161,3 @@ func (r *AWSGameLiftFleet) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSGameLiftFleetResources retrieves all AWSGameLiftFleet items from an AWS CloudFormation template -func (t *Template) GetAllAWSGameLiftFleetResources() map[string]*AWSGameLiftFleet { - results := map[string]*AWSGameLiftFleet{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSGameLiftFleet: - results[name] = &resource - case *AWSGameLiftFleet: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::GameLift::Fleet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGameLiftFleet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSGameLiftFleetWithName retrieves all AWSGameLiftFleet items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGameLiftFleetWithName(name string) (*AWSGameLiftFleet, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSGameLiftFleet: - return &resource, nil - case *AWSGameLiftFleet: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::GameLift::Fleet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGameLiftFleet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-glue-classifier.go b/cloudformation/aws-glue-classifier.go index d75db37745..35641955c0 100644 --- a/cloudformation/aws-glue-classifier.go +++ b/cloudformation/aws-glue-classifier.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSGlueClassifier) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSGlueClassifierResources retrieves all AWSGlueClassifier items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueClassifierResources() map[string]*AWSGlueClassifier { - results := map[string]*AWSGlueClassifier{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSGlueClassifier: - results[name] = &resource - case *AWSGlueClassifier: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Glue::Classifier" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGlueClassifier - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSGlueClassifierWithName retrieves all AWSGlueClassifier items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueClassifierWithName(name string) (*AWSGlueClassifier, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSGlueClassifier: - return &resource, nil - case *AWSGlueClassifier: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Glue::Classifier" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGlueClassifier - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-glue-connection.go b/cloudformation/aws-glue-connection.go index 1b9f2e2ffa..b3dea513c3 100644 --- a/cloudformation/aws-glue-connection.go +++ b/cloudformation/aws-glue-connection.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSGlueConnection) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSGlueConnectionResources retrieves all AWSGlueConnection items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueConnectionResources() map[string]*AWSGlueConnection { - results := map[string]*AWSGlueConnection{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSGlueConnection: - results[name] = &resource - case *AWSGlueConnection: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Glue::Connection" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGlueConnection - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSGlueConnectionWithName retrieves all AWSGlueConnection items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueConnectionWithName(name string) (*AWSGlueConnection, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSGlueConnection: - return &resource, nil - case *AWSGlueConnection: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Glue::Connection" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGlueConnection - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-glue-crawler.go b/cloudformation/aws-glue-crawler.go index 9d85e5488a..87ea664695 100644 --- a/cloudformation/aws-glue-crawler.go +++ b/cloudformation/aws-glue-crawler.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -157,63 +156,3 @@ func (r *AWSGlueCrawler) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSGlueCrawlerResources retrieves all AWSGlueCrawler items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueCrawlerResources() map[string]*AWSGlueCrawler { - results := map[string]*AWSGlueCrawler{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSGlueCrawler: - results[name] = &resource - case *AWSGlueCrawler: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Glue::Crawler" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGlueCrawler - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSGlueCrawlerWithName retrieves all AWSGlueCrawler items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueCrawlerWithName(name string) (*AWSGlueCrawler, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSGlueCrawler: - return &resource, nil - case *AWSGlueCrawler: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Glue::Crawler" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGlueCrawler - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-glue-database.go b/cloudformation/aws-glue-database.go index 7472678b95..b8ce722c28 100644 --- a/cloudformation/aws-glue-database.go +++ b/cloudformation/aws-glue-database.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSGlueDatabase) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSGlueDatabaseResources retrieves all AWSGlueDatabase items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueDatabaseResources() map[string]*AWSGlueDatabase { - results := map[string]*AWSGlueDatabase{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSGlueDatabase: - results[name] = &resource - case *AWSGlueDatabase: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Glue::Database" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGlueDatabase - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSGlueDatabaseWithName retrieves all AWSGlueDatabase items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueDatabaseWithName(name string) (*AWSGlueDatabase, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSGlueDatabase: - return &resource, nil - case *AWSGlueDatabase: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Glue::Database" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGlueDatabase - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-glue-devendpoint.go b/cloudformation/aws-glue-devendpoint.go index aa450068e2..a0b69a0439 100644 --- a/cloudformation/aws-glue-devendpoint.go +++ b/cloudformation/aws-glue-devendpoint.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -147,63 +146,3 @@ func (r *AWSGlueDevEndpoint) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSGlueDevEndpointResources retrieves all AWSGlueDevEndpoint items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueDevEndpointResources() map[string]*AWSGlueDevEndpoint { - results := map[string]*AWSGlueDevEndpoint{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSGlueDevEndpoint: - results[name] = &resource - case *AWSGlueDevEndpoint: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Glue::DevEndpoint" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGlueDevEndpoint - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSGlueDevEndpointWithName retrieves all AWSGlueDevEndpoint items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueDevEndpointWithName(name string) (*AWSGlueDevEndpoint, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSGlueDevEndpoint: - return &resource, nil - case *AWSGlueDevEndpoint: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Glue::DevEndpoint" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGlueDevEndpoint - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-glue-job.go b/cloudformation/aws-glue-job.go index 9806196467..a71dfa8a96 100644 --- a/cloudformation/aws-glue-job.go +++ b/cloudformation/aws-glue-job.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -157,63 +156,3 @@ func (r *AWSGlueJob) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSGlueJobResources retrieves all AWSGlueJob items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueJobResources() map[string]*AWSGlueJob { - results := map[string]*AWSGlueJob{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSGlueJob: - results[name] = &resource - case *AWSGlueJob: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Glue::Job" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGlueJob - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSGlueJobWithName retrieves all AWSGlueJob items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueJobWithName(name string) (*AWSGlueJob, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSGlueJob: - return &resource, nil - case *AWSGlueJob: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Glue::Job" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGlueJob - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-glue-partition.go b/cloudformation/aws-glue-partition.go index bebc4c4c92..f3b829430e 100644 --- a/cloudformation/aws-glue-partition.go +++ b/cloudformation/aws-glue-partition.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSGluePartition) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSGluePartitionResources retrieves all AWSGluePartition items from an AWS CloudFormation template -func (t *Template) GetAllAWSGluePartitionResources() map[string]*AWSGluePartition { - results := map[string]*AWSGluePartition{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSGluePartition: - results[name] = &resource - case *AWSGluePartition: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Glue::Partition" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGluePartition - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSGluePartitionWithName retrieves all AWSGluePartition items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGluePartitionWithName(name string) (*AWSGluePartition, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSGluePartition: - return &resource, nil - case *AWSGluePartition: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Glue::Partition" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGluePartition - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-glue-table.go b/cloudformation/aws-glue-table.go index 5dab8e8250..2cbd626a7a 100644 --- a/cloudformation/aws-glue-table.go +++ b/cloudformation/aws-glue-table.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSGlueTable) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSGlueTableResources retrieves all AWSGlueTable items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueTableResources() map[string]*AWSGlueTable { - results := map[string]*AWSGlueTable{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSGlueTable: - results[name] = &resource - case *AWSGlueTable: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Glue::Table" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGlueTable - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSGlueTableWithName retrieves all AWSGlueTable items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueTableWithName(name string) (*AWSGlueTable, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSGlueTable: - return &resource, nil - case *AWSGlueTable: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Glue::Table" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGlueTable - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-glue-trigger.go b/cloudformation/aws-glue-trigger.go index 6943b7b70a..522b4ae040 100644 --- a/cloudformation/aws-glue-trigger.go +++ b/cloudformation/aws-glue-trigger.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -137,63 +136,3 @@ func (r *AWSGlueTrigger) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSGlueTriggerResources retrieves all AWSGlueTrigger items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueTriggerResources() map[string]*AWSGlueTrigger { - results := map[string]*AWSGlueTrigger{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSGlueTrigger: - results[name] = &resource - case *AWSGlueTrigger: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Glue::Trigger" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGlueTrigger - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSGlueTriggerWithName retrieves all AWSGlueTrigger items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueTriggerWithName(name string) (*AWSGlueTrigger, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSGlueTrigger: - return &resource, nil - case *AWSGlueTrigger: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Glue::Trigger" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGlueTrigger - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-guardduty-detector.go b/cloudformation/aws-guardduty-detector.go index f94119a677..dac04ba0cc 100644 --- a/cloudformation/aws-guardduty-detector.go +++ b/cloudformation/aws-guardduty-detector.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSGuardDutyDetector) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSGuardDutyDetectorResources retrieves all AWSGuardDutyDetector items from an AWS CloudFormation template -func (t *Template) GetAllAWSGuardDutyDetectorResources() map[string]*AWSGuardDutyDetector { - results := map[string]*AWSGuardDutyDetector{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSGuardDutyDetector: - results[name] = &resource - case *AWSGuardDutyDetector: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::GuardDuty::Detector" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGuardDutyDetector - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSGuardDutyDetectorWithName retrieves all AWSGuardDutyDetector items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGuardDutyDetectorWithName(name string) (*AWSGuardDutyDetector, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSGuardDutyDetector: - return &resource, nil - case *AWSGuardDutyDetector: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::GuardDuty::Detector" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGuardDutyDetector - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-guardduty-filter.go b/cloudformation/aws-guardduty-filter.go index 00daf8e0ad..4905642e13 100644 --- a/cloudformation/aws-guardduty-filter.go +++ b/cloudformation/aws-guardduty-filter.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -137,63 +136,3 @@ func (r *AWSGuardDutyFilter) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSGuardDutyFilterResources retrieves all AWSGuardDutyFilter items from an AWS CloudFormation template -func (t *Template) GetAllAWSGuardDutyFilterResources() map[string]*AWSGuardDutyFilter { - results := map[string]*AWSGuardDutyFilter{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSGuardDutyFilter: - results[name] = &resource - case *AWSGuardDutyFilter: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::GuardDuty::Filter" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGuardDutyFilter - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSGuardDutyFilterWithName retrieves all AWSGuardDutyFilter items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGuardDutyFilterWithName(name string) (*AWSGuardDutyFilter, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSGuardDutyFilter: - return &resource, nil - case *AWSGuardDutyFilter: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::GuardDuty::Filter" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGuardDutyFilter - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-guardduty-ipset.go b/cloudformation/aws-guardduty-ipset.go index feb3645187..6c7fead858 100644 --- a/cloudformation/aws-guardduty-ipset.go +++ b/cloudformation/aws-guardduty-ipset.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSGuardDutyIPSet) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSGuardDutyIPSetResources retrieves all AWSGuardDutyIPSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSGuardDutyIPSetResources() map[string]*AWSGuardDutyIPSet { - results := map[string]*AWSGuardDutyIPSet{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSGuardDutyIPSet: - results[name] = &resource - case *AWSGuardDutyIPSet: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::GuardDuty::IPSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGuardDutyIPSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSGuardDutyIPSetWithName retrieves all AWSGuardDutyIPSet items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGuardDutyIPSetWithName(name string) (*AWSGuardDutyIPSet, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSGuardDutyIPSet: - return &resource, nil - case *AWSGuardDutyIPSet: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::GuardDuty::IPSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGuardDutyIPSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-guardduty-master.go b/cloudformation/aws-guardduty-master.go index d80434514f..608afb6195 100644 --- a/cloudformation/aws-guardduty-master.go +++ b/cloudformation/aws-guardduty-master.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSGuardDutyMaster) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSGuardDutyMasterResources retrieves all AWSGuardDutyMaster items from an AWS CloudFormation template -func (t *Template) GetAllAWSGuardDutyMasterResources() map[string]*AWSGuardDutyMaster { - results := map[string]*AWSGuardDutyMaster{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSGuardDutyMaster: - results[name] = &resource - case *AWSGuardDutyMaster: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::GuardDuty::Master" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGuardDutyMaster - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSGuardDutyMasterWithName retrieves all AWSGuardDutyMaster items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGuardDutyMasterWithName(name string) (*AWSGuardDutyMaster, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSGuardDutyMaster: - return &resource, nil - case *AWSGuardDutyMaster: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::GuardDuty::Master" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGuardDutyMaster - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-guardduty-member.go b/cloudformation/aws-guardduty-member.go index 969edefc48..9a3b1f6fa3 100644 --- a/cloudformation/aws-guardduty-member.go +++ b/cloudformation/aws-guardduty-member.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -137,63 +136,3 @@ func (r *AWSGuardDutyMember) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSGuardDutyMemberResources retrieves all AWSGuardDutyMember items from an AWS CloudFormation template -func (t *Template) GetAllAWSGuardDutyMemberResources() map[string]*AWSGuardDutyMember { - results := map[string]*AWSGuardDutyMember{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSGuardDutyMember: - results[name] = &resource - case *AWSGuardDutyMember: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::GuardDuty::Member" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGuardDutyMember - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSGuardDutyMemberWithName retrieves all AWSGuardDutyMember items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGuardDutyMemberWithName(name string) (*AWSGuardDutyMember, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSGuardDutyMember: - return &resource, nil - case *AWSGuardDutyMember: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::GuardDuty::Member" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGuardDutyMember - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-guardduty-threatintelset.go b/cloudformation/aws-guardduty-threatintelset.go index ed296d4b8e..79645521d2 100644 --- a/cloudformation/aws-guardduty-threatintelset.go +++ b/cloudformation/aws-guardduty-threatintelset.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSGuardDutyThreatIntelSet) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSGuardDutyThreatIntelSetResources retrieves all AWSGuardDutyThreatIntelSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSGuardDutyThreatIntelSetResources() map[string]*AWSGuardDutyThreatIntelSet { - results := map[string]*AWSGuardDutyThreatIntelSet{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSGuardDutyThreatIntelSet: - results[name] = &resource - case *AWSGuardDutyThreatIntelSet: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::GuardDuty::ThreatIntelSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGuardDutyThreatIntelSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSGuardDutyThreatIntelSetWithName retrieves all AWSGuardDutyThreatIntelSet items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGuardDutyThreatIntelSetWithName(name string) (*AWSGuardDutyThreatIntelSet, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSGuardDutyThreatIntelSet: - return &resource, nil - case *AWSGuardDutyThreatIntelSet: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::GuardDuty::ThreatIntelSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSGuardDutyThreatIntelSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-iam-accesskey.go b/cloudformation/aws-iam-accesskey.go index 1827aa0bff..f1ce69838a 100644 --- a/cloudformation/aws-iam-accesskey.go +++ b/cloudformation/aws-iam-accesskey.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSIAMAccessKey) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSIAMAccessKeyResources retrieves all AWSIAMAccessKey items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMAccessKeyResources() map[string]*AWSIAMAccessKey { - results := map[string]*AWSIAMAccessKey{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSIAMAccessKey: - results[name] = &resource - case *AWSIAMAccessKey: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IAM::AccessKey" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIAMAccessKey - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSIAMAccessKeyWithName retrieves all AWSIAMAccessKey items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMAccessKeyWithName(name string) (*AWSIAMAccessKey, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSIAMAccessKey: - return &resource, nil - case *AWSIAMAccessKey: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IAM::AccessKey" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIAMAccessKey - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-iam-group.go b/cloudformation/aws-iam-group.go index 39ca4bfcbc..8fe390cd3b 100644 --- a/cloudformation/aws-iam-group.go +++ b/cloudformation/aws-iam-group.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSIAMGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSIAMGroupResources retrieves all AWSIAMGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMGroupResources() map[string]*AWSIAMGroup { - results := map[string]*AWSIAMGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSIAMGroup: - results[name] = &resource - case *AWSIAMGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IAM::Group" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIAMGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSIAMGroupWithName retrieves all AWSIAMGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMGroupWithName(name string) (*AWSIAMGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSIAMGroup: - return &resource, nil - case *AWSIAMGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IAM::Group" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIAMGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-iam-instanceprofile.go b/cloudformation/aws-iam-instanceprofile.go index c0d63ebb54..82f67eb5d9 100644 --- a/cloudformation/aws-iam-instanceprofile.go +++ b/cloudformation/aws-iam-instanceprofile.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSIAMInstanceProfile) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSIAMInstanceProfileResources retrieves all AWSIAMInstanceProfile items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMInstanceProfileResources() map[string]*AWSIAMInstanceProfile { - results := map[string]*AWSIAMInstanceProfile{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSIAMInstanceProfile: - results[name] = &resource - case *AWSIAMInstanceProfile: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IAM::InstanceProfile" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIAMInstanceProfile - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSIAMInstanceProfileWithName retrieves all AWSIAMInstanceProfile items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMInstanceProfileWithName(name string) (*AWSIAMInstanceProfile, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSIAMInstanceProfile: - return &resource, nil - case *AWSIAMInstanceProfile: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IAM::InstanceProfile" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIAMInstanceProfile - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-iam-managedpolicy.go b/cloudformation/aws-iam-managedpolicy.go index d091068988..5467f38fc4 100644 --- a/cloudformation/aws-iam-managedpolicy.go +++ b/cloudformation/aws-iam-managedpolicy.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSIAMManagedPolicy) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSIAMManagedPolicyResources retrieves all AWSIAMManagedPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMManagedPolicyResources() map[string]*AWSIAMManagedPolicy { - results := map[string]*AWSIAMManagedPolicy{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSIAMManagedPolicy: - results[name] = &resource - case *AWSIAMManagedPolicy: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IAM::ManagedPolicy" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIAMManagedPolicy - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSIAMManagedPolicyWithName retrieves all AWSIAMManagedPolicy items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMManagedPolicyWithName(name string) (*AWSIAMManagedPolicy, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSIAMManagedPolicy: - return &resource, nil - case *AWSIAMManagedPolicy: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IAM::ManagedPolicy" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIAMManagedPolicy - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-iam-policy.go b/cloudformation/aws-iam-policy.go index dc8fd318b6..1edf73dfad 100644 --- a/cloudformation/aws-iam-policy.go +++ b/cloudformation/aws-iam-policy.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSIAMPolicy) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSIAMPolicyResources retrieves all AWSIAMPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMPolicyResources() map[string]*AWSIAMPolicy { - results := map[string]*AWSIAMPolicy{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSIAMPolicy: - results[name] = &resource - case *AWSIAMPolicy: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IAM::Policy" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIAMPolicy - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSIAMPolicyWithName retrieves all AWSIAMPolicy items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMPolicyWithName(name string) (*AWSIAMPolicy, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSIAMPolicy: - return &resource, nil - case *AWSIAMPolicy: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IAM::Policy" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIAMPolicy - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-iam-role.go b/cloudformation/aws-iam-role.go index abe9ced655..3363bd64a9 100644 --- a/cloudformation/aws-iam-role.go +++ b/cloudformation/aws-iam-role.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSIAMRole) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSIAMRoleResources retrieves all AWSIAMRole items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMRoleResources() map[string]*AWSIAMRole { - results := map[string]*AWSIAMRole{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSIAMRole: - results[name] = &resource - case *AWSIAMRole: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IAM::Role" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIAMRole - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSIAMRoleWithName retrieves all AWSIAMRole items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMRoleWithName(name string) (*AWSIAMRole, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSIAMRole: - return &resource, nil - case *AWSIAMRole: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IAM::Role" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIAMRole - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-iam-servicelinkedrole.go b/cloudformation/aws-iam-servicelinkedrole.go index 5c3623601e..1c32062557 100644 --- a/cloudformation/aws-iam-servicelinkedrole.go +++ b/cloudformation/aws-iam-servicelinkedrole.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSIAMServiceLinkedRole) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSIAMServiceLinkedRoleResources retrieves all AWSIAMServiceLinkedRole items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMServiceLinkedRoleResources() map[string]*AWSIAMServiceLinkedRole { - results := map[string]*AWSIAMServiceLinkedRole{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSIAMServiceLinkedRole: - results[name] = &resource - case *AWSIAMServiceLinkedRole: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IAM::ServiceLinkedRole" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIAMServiceLinkedRole - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSIAMServiceLinkedRoleWithName retrieves all AWSIAMServiceLinkedRole items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMServiceLinkedRoleWithName(name string) (*AWSIAMServiceLinkedRole, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSIAMServiceLinkedRole: - return &resource, nil - case *AWSIAMServiceLinkedRole: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IAM::ServiceLinkedRole" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIAMServiceLinkedRole - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-iam-user.go b/cloudformation/aws-iam-user.go index 9e5423e75d..ebd5971e04 100644 --- a/cloudformation/aws-iam-user.go +++ b/cloudformation/aws-iam-user.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSIAMUser) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSIAMUserResources retrieves all AWSIAMUser items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMUserResources() map[string]*AWSIAMUser { - results := map[string]*AWSIAMUser{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSIAMUser: - results[name] = &resource - case *AWSIAMUser: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IAM::User" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIAMUser - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSIAMUserWithName retrieves all AWSIAMUser items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMUserWithName(name string) (*AWSIAMUser, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSIAMUser: - return &resource, nil - case *AWSIAMUser: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IAM::User" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIAMUser - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-iam-usertogroupaddition.go b/cloudformation/aws-iam-usertogroupaddition.go index 22600827c7..b828ae08f2 100644 --- a/cloudformation/aws-iam-usertogroupaddition.go +++ b/cloudformation/aws-iam-usertogroupaddition.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSIAMUserToGroupAddition) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSIAMUserToGroupAdditionResources retrieves all AWSIAMUserToGroupAddition items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMUserToGroupAdditionResources() map[string]*AWSIAMUserToGroupAddition { - results := map[string]*AWSIAMUserToGroupAddition{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSIAMUserToGroupAddition: - results[name] = &resource - case *AWSIAMUserToGroupAddition: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IAM::UserToGroupAddition" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIAMUserToGroupAddition - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSIAMUserToGroupAdditionWithName retrieves all AWSIAMUserToGroupAddition items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMUserToGroupAdditionWithName(name string) (*AWSIAMUserToGroupAddition, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSIAMUserToGroupAddition: - return &resource, nil - case *AWSIAMUserToGroupAddition: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IAM::UserToGroupAddition" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIAMUserToGroupAddition - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-inspector-assessmenttarget.go b/cloudformation/aws-inspector-assessmenttarget.go index 3b3ef088fe..af712d72ca 100644 --- a/cloudformation/aws-inspector-assessmenttarget.go +++ b/cloudformation/aws-inspector-assessmenttarget.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSInspectorAssessmentTarget) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSInspectorAssessmentTargetResources retrieves all AWSInspectorAssessmentTarget items from an AWS CloudFormation template -func (t *Template) GetAllAWSInspectorAssessmentTargetResources() map[string]*AWSInspectorAssessmentTarget { - results := map[string]*AWSInspectorAssessmentTarget{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSInspectorAssessmentTarget: - results[name] = &resource - case *AWSInspectorAssessmentTarget: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Inspector::AssessmentTarget" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSInspectorAssessmentTarget - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSInspectorAssessmentTargetWithName retrieves all AWSInspectorAssessmentTarget items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSInspectorAssessmentTargetWithName(name string) (*AWSInspectorAssessmentTarget, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSInspectorAssessmentTarget: - return &resource, nil - case *AWSInspectorAssessmentTarget: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Inspector::AssessmentTarget" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSInspectorAssessmentTarget - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-inspector-assessmenttemplate.go b/cloudformation/aws-inspector-assessmenttemplate.go index 9b99cc0168..81c556914b 100644 --- a/cloudformation/aws-inspector-assessmenttemplate.go +++ b/cloudformation/aws-inspector-assessmenttemplate.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSInspectorAssessmentTemplate) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSInspectorAssessmentTemplateResources retrieves all AWSInspectorAssessmentTemplate items from an AWS CloudFormation template -func (t *Template) GetAllAWSInspectorAssessmentTemplateResources() map[string]*AWSInspectorAssessmentTemplate { - results := map[string]*AWSInspectorAssessmentTemplate{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSInspectorAssessmentTemplate: - results[name] = &resource - case *AWSInspectorAssessmentTemplate: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Inspector::AssessmentTemplate" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSInspectorAssessmentTemplate - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSInspectorAssessmentTemplateWithName retrieves all AWSInspectorAssessmentTemplate items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSInspectorAssessmentTemplateWithName(name string) (*AWSInspectorAssessmentTemplate, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSInspectorAssessmentTemplate: - return &resource, nil - case *AWSInspectorAssessmentTemplate: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Inspector::AssessmentTemplate" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSInspectorAssessmentTemplate - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-inspector-resourcegroup.go b/cloudformation/aws-inspector-resourcegroup.go index 33548c4405..ce2d57b3ee 100644 --- a/cloudformation/aws-inspector-resourcegroup.go +++ b/cloudformation/aws-inspector-resourcegroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -112,63 +111,3 @@ func (r *AWSInspectorResourceGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSInspectorResourceGroupResources retrieves all AWSInspectorResourceGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSInspectorResourceGroupResources() map[string]*AWSInspectorResourceGroup { - results := map[string]*AWSInspectorResourceGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSInspectorResourceGroup: - results[name] = &resource - case *AWSInspectorResourceGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Inspector::ResourceGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSInspectorResourceGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSInspectorResourceGroupWithName retrieves all AWSInspectorResourceGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSInspectorResourceGroupWithName(name string) (*AWSInspectorResourceGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSInspectorResourceGroup: - return &resource, nil - case *AWSInspectorResourceGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Inspector::ResourceGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSInspectorResourceGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-iot-certificate.go b/cloudformation/aws-iot-certificate.go index 58dd7769ca..a48fba8124 100644 --- a/cloudformation/aws-iot-certificate.go +++ b/cloudformation/aws-iot-certificate.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSIoTCertificate) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSIoTCertificateResources retrieves all AWSIoTCertificate items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTCertificateResources() map[string]*AWSIoTCertificate { - results := map[string]*AWSIoTCertificate{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSIoTCertificate: - results[name] = &resource - case *AWSIoTCertificate: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoT::Certificate" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoTCertificate - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSIoTCertificateWithName retrieves all AWSIoTCertificate items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTCertificateWithName(name string) (*AWSIoTCertificate, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSIoTCertificate: - return &resource, nil - case *AWSIoTCertificate: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoT::Certificate" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoTCertificate - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-iot-policy.go b/cloudformation/aws-iot-policy.go index a0645d869e..90eb1b332e 100644 --- a/cloudformation/aws-iot-policy.go +++ b/cloudformation/aws-iot-policy.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSIoTPolicy) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSIoTPolicyResources retrieves all AWSIoTPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTPolicyResources() map[string]*AWSIoTPolicy { - results := map[string]*AWSIoTPolicy{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSIoTPolicy: - results[name] = &resource - case *AWSIoTPolicy: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoT::Policy" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoTPolicy - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSIoTPolicyWithName retrieves all AWSIoTPolicy items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTPolicyWithName(name string) (*AWSIoTPolicy, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSIoTPolicy: - return &resource, nil - case *AWSIoTPolicy: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoT::Policy" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoTPolicy - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-iot-policyprincipalattachment.go b/cloudformation/aws-iot-policyprincipalattachment.go index 230be36f24..39b22a4d8b 100644 --- a/cloudformation/aws-iot-policyprincipalattachment.go +++ b/cloudformation/aws-iot-policyprincipalattachment.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSIoTPolicyPrincipalAttachment) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSIoTPolicyPrincipalAttachmentResources retrieves all AWSIoTPolicyPrincipalAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTPolicyPrincipalAttachmentResources() map[string]*AWSIoTPolicyPrincipalAttachment { - results := map[string]*AWSIoTPolicyPrincipalAttachment{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSIoTPolicyPrincipalAttachment: - results[name] = &resource - case *AWSIoTPolicyPrincipalAttachment: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoT::PolicyPrincipalAttachment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoTPolicyPrincipalAttachment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSIoTPolicyPrincipalAttachmentWithName retrieves all AWSIoTPolicyPrincipalAttachment items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTPolicyPrincipalAttachmentWithName(name string) (*AWSIoTPolicyPrincipalAttachment, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSIoTPolicyPrincipalAttachment: - return &resource, nil - case *AWSIoTPolicyPrincipalAttachment: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoT::PolicyPrincipalAttachment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoTPolicyPrincipalAttachment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-iot-thing.go b/cloudformation/aws-iot-thing.go index a06cda7b57..26242570e0 100644 --- a/cloudformation/aws-iot-thing.go +++ b/cloudformation/aws-iot-thing.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSIoTThing) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSIoTThingResources retrieves all AWSIoTThing items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTThingResources() map[string]*AWSIoTThing { - results := map[string]*AWSIoTThing{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSIoTThing: - results[name] = &resource - case *AWSIoTThing: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoT::Thing" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoTThing - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSIoTThingWithName retrieves all AWSIoTThing items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTThingWithName(name string) (*AWSIoTThing, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSIoTThing: - return &resource, nil - case *AWSIoTThing: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoT::Thing" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoTThing - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-iot-thingprincipalattachment.go b/cloudformation/aws-iot-thingprincipalattachment.go index df49e28af5..5ce60df325 100644 --- a/cloudformation/aws-iot-thingprincipalattachment.go +++ b/cloudformation/aws-iot-thingprincipalattachment.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSIoTThingPrincipalAttachment) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSIoTThingPrincipalAttachmentResources retrieves all AWSIoTThingPrincipalAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTThingPrincipalAttachmentResources() map[string]*AWSIoTThingPrincipalAttachment { - results := map[string]*AWSIoTThingPrincipalAttachment{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSIoTThingPrincipalAttachment: - results[name] = &resource - case *AWSIoTThingPrincipalAttachment: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoT::ThingPrincipalAttachment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoTThingPrincipalAttachment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSIoTThingPrincipalAttachmentWithName retrieves all AWSIoTThingPrincipalAttachment items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTThingPrincipalAttachmentWithName(name string) (*AWSIoTThingPrincipalAttachment, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSIoTThingPrincipalAttachment: - return &resource, nil - case *AWSIoTThingPrincipalAttachment: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoT::ThingPrincipalAttachment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoTThingPrincipalAttachment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-iot-topicrule.go b/cloudformation/aws-iot-topicrule.go index 518d162713..94570e13e8 100644 --- a/cloudformation/aws-iot-topicrule.go +++ b/cloudformation/aws-iot-topicrule.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSIoTTopicRule) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSIoTTopicRuleResources retrieves all AWSIoTTopicRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTTopicRuleResources() map[string]*AWSIoTTopicRule { - results := map[string]*AWSIoTTopicRule{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSIoTTopicRule: - results[name] = &resource - case *AWSIoTTopicRule: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoT::TopicRule" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoTTopicRule - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSIoTTopicRuleWithName retrieves all AWSIoTTopicRule items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTTopicRuleWithName(name string) (*AWSIoTTopicRule, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSIoTTopicRule: - return &resource, nil - case *AWSIoTTopicRule: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoT::TopicRule" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoTTopicRule - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-iot1click-device.go b/cloudformation/aws-iot1click-device.go index df9f5c11f0..b900f766ff 100644 --- a/cloudformation/aws-iot1click-device.go +++ b/cloudformation/aws-iot1click-device.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSIoT1ClickDevice) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSIoT1ClickDeviceResources retrieves all AWSIoT1ClickDevice items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoT1ClickDeviceResources() map[string]*AWSIoT1ClickDevice { - results := map[string]*AWSIoT1ClickDevice{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSIoT1ClickDevice: - results[name] = &resource - case *AWSIoT1ClickDevice: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoT1Click::Device" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoT1ClickDevice - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSIoT1ClickDeviceWithName retrieves all AWSIoT1ClickDevice items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoT1ClickDeviceWithName(name string) (*AWSIoT1ClickDevice, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSIoT1ClickDevice: - return &resource, nil - case *AWSIoT1ClickDevice: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoT1Click::Device" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoT1ClickDevice - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-iot1click-placement.go b/cloudformation/aws-iot1click-placement.go index 4dd92239af..b646c04ea0 100644 --- a/cloudformation/aws-iot1click-placement.go +++ b/cloudformation/aws-iot1click-placement.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSIoT1ClickPlacement) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSIoT1ClickPlacementResources retrieves all AWSIoT1ClickPlacement items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoT1ClickPlacementResources() map[string]*AWSIoT1ClickPlacement { - results := map[string]*AWSIoT1ClickPlacement{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSIoT1ClickPlacement: - results[name] = &resource - case *AWSIoT1ClickPlacement: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoT1Click::Placement" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoT1ClickPlacement - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSIoT1ClickPlacementWithName retrieves all AWSIoT1ClickPlacement items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoT1ClickPlacementWithName(name string) (*AWSIoT1ClickPlacement, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSIoT1ClickPlacement: - return &resource, nil - case *AWSIoT1ClickPlacement: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoT1Click::Placement" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoT1ClickPlacement - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-iot1click-project.go b/cloudformation/aws-iot1click-project.go index 3b2a98a269..0d606abe67 100644 --- a/cloudformation/aws-iot1click-project.go +++ b/cloudformation/aws-iot1click-project.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSIoT1ClickProject) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSIoT1ClickProjectResources retrieves all AWSIoT1ClickProject items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoT1ClickProjectResources() map[string]*AWSIoT1ClickProject { - results := map[string]*AWSIoT1ClickProject{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSIoT1ClickProject: - results[name] = &resource - case *AWSIoT1ClickProject: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoT1Click::Project" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoT1ClickProject - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSIoT1ClickProjectWithName retrieves all AWSIoT1ClickProject items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoT1ClickProjectWithName(name string) (*AWSIoT1ClickProject, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSIoT1ClickProject: - return &resource, nil - case *AWSIoT1ClickProject: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoT1Click::Project" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoT1ClickProject - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-iotanalytics-channel.go b/cloudformation/aws-iotanalytics-channel.go index 852172a190..ea3590923c 100644 --- a/cloudformation/aws-iotanalytics-channel.go +++ b/cloudformation/aws-iotanalytics-channel.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSIoTAnalyticsChannel) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSIoTAnalyticsChannelResources retrieves all AWSIoTAnalyticsChannel items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTAnalyticsChannelResources() map[string]*AWSIoTAnalyticsChannel { - results := map[string]*AWSIoTAnalyticsChannel{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSIoTAnalyticsChannel: - results[name] = &resource - case *AWSIoTAnalyticsChannel: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoTAnalytics::Channel" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoTAnalyticsChannel - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSIoTAnalyticsChannelWithName retrieves all AWSIoTAnalyticsChannel items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTAnalyticsChannelWithName(name string) (*AWSIoTAnalyticsChannel, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSIoTAnalyticsChannel: - return &resource, nil - case *AWSIoTAnalyticsChannel: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoTAnalytics::Channel" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoTAnalyticsChannel - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-iotanalytics-dataset.go b/cloudformation/aws-iotanalytics-dataset.go index ee19fba5f3..00a85879f3 100644 --- a/cloudformation/aws-iotanalytics-dataset.go +++ b/cloudformation/aws-iotanalytics-dataset.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSIoTAnalyticsDataset) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSIoTAnalyticsDatasetResources retrieves all AWSIoTAnalyticsDataset items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTAnalyticsDatasetResources() map[string]*AWSIoTAnalyticsDataset { - results := map[string]*AWSIoTAnalyticsDataset{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSIoTAnalyticsDataset: - results[name] = &resource - case *AWSIoTAnalyticsDataset: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoTAnalytics::Dataset" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoTAnalyticsDataset - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSIoTAnalyticsDatasetWithName retrieves all AWSIoTAnalyticsDataset items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTAnalyticsDatasetWithName(name string) (*AWSIoTAnalyticsDataset, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSIoTAnalyticsDataset: - return &resource, nil - case *AWSIoTAnalyticsDataset: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoTAnalytics::Dataset" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoTAnalyticsDataset - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-iotanalytics-datastore.go b/cloudformation/aws-iotanalytics-datastore.go index d3f29aa12a..2895be8571 100644 --- a/cloudformation/aws-iotanalytics-datastore.go +++ b/cloudformation/aws-iotanalytics-datastore.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSIoTAnalyticsDatastore) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSIoTAnalyticsDatastoreResources retrieves all AWSIoTAnalyticsDatastore items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTAnalyticsDatastoreResources() map[string]*AWSIoTAnalyticsDatastore { - results := map[string]*AWSIoTAnalyticsDatastore{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSIoTAnalyticsDatastore: - results[name] = &resource - case *AWSIoTAnalyticsDatastore: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoTAnalytics::Datastore" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoTAnalyticsDatastore - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSIoTAnalyticsDatastoreWithName retrieves all AWSIoTAnalyticsDatastore items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTAnalyticsDatastoreWithName(name string) (*AWSIoTAnalyticsDatastore, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSIoTAnalyticsDatastore: - return &resource, nil - case *AWSIoTAnalyticsDatastore: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoTAnalytics::Datastore" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoTAnalyticsDatastore - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-iotanalytics-pipeline.go b/cloudformation/aws-iotanalytics-pipeline.go index b5e587a39f..bc10bf23ab 100644 --- a/cloudformation/aws-iotanalytics-pipeline.go +++ b/cloudformation/aws-iotanalytics-pipeline.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSIoTAnalyticsPipeline) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSIoTAnalyticsPipelineResources retrieves all AWSIoTAnalyticsPipeline items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTAnalyticsPipelineResources() map[string]*AWSIoTAnalyticsPipeline { - results := map[string]*AWSIoTAnalyticsPipeline{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSIoTAnalyticsPipeline: - results[name] = &resource - case *AWSIoTAnalyticsPipeline: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoTAnalytics::Pipeline" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoTAnalyticsPipeline - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSIoTAnalyticsPipelineWithName retrieves all AWSIoTAnalyticsPipeline items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTAnalyticsPipelineWithName(name string) (*AWSIoTAnalyticsPipeline, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSIoTAnalyticsPipeline: - return &resource, nil - case *AWSIoTAnalyticsPipeline: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::IoTAnalytics::Pipeline" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSIoTAnalyticsPipeline - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-kinesis-stream.go b/cloudformation/aws-kinesis-stream.go index 7b4d473045..49a81cd8dd 100644 --- a/cloudformation/aws-kinesis-stream.go +++ b/cloudformation/aws-kinesis-stream.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSKinesisStream) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSKinesisStreamResources retrieves all AWSKinesisStream items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisStreamResources() map[string]*AWSKinesisStream { - results := map[string]*AWSKinesisStream{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSKinesisStream: - results[name] = &resource - case *AWSKinesisStream: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Kinesis::Stream" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKinesisStream - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSKinesisStreamWithName retrieves all AWSKinesisStream items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisStreamWithName(name string) (*AWSKinesisStream, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSKinesisStream: - return &resource, nil - case *AWSKinesisStream: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Kinesis::Stream" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKinesisStream - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-kinesis-streamconsumer.go b/cloudformation/aws-kinesis-streamconsumer.go index 0e5126e514..6b0592d14b 100644 --- a/cloudformation/aws-kinesis-streamconsumer.go +++ b/cloudformation/aws-kinesis-streamconsumer.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSKinesisStreamConsumer) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSKinesisStreamConsumerResources retrieves all AWSKinesisStreamConsumer items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisStreamConsumerResources() map[string]*AWSKinesisStreamConsumer { - results := map[string]*AWSKinesisStreamConsumer{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSKinesisStreamConsumer: - results[name] = &resource - case *AWSKinesisStreamConsumer: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Kinesis::StreamConsumer" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKinesisStreamConsumer - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSKinesisStreamConsumerWithName retrieves all AWSKinesisStreamConsumer items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisStreamConsumerWithName(name string) (*AWSKinesisStreamConsumer, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSKinesisStreamConsumer: - return &resource, nil - case *AWSKinesisStreamConsumer: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Kinesis::StreamConsumer" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKinesisStreamConsumer - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-kinesisanalytics-application.go b/cloudformation/aws-kinesisanalytics-application.go index 5958738622..6643b6430b 100644 --- a/cloudformation/aws-kinesisanalytics-application.go +++ b/cloudformation/aws-kinesisanalytics-application.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSKinesisAnalyticsApplication) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSKinesisAnalyticsApplicationResources retrieves all AWSKinesisAnalyticsApplication items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisAnalyticsApplicationResources() map[string]*AWSKinesisAnalyticsApplication { - results := map[string]*AWSKinesisAnalyticsApplication{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSKinesisAnalyticsApplication: - results[name] = &resource - case *AWSKinesisAnalyticsApplication: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::KinesisAnalytics::Application" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKinesisAnalyticsApplication - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSKinesisAnalyticsApplicationWithName retrieves all AWSKinesisAnalyticsApplication items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisAnalyticsApplicationWithName(name string) (*AWSKinesisAnalyticsApplication, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSKinesisAnalyticsApplication: - return &resource, nil - case *AWSKinesisAnalyticsApplication: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::KinesisAnalytics::Application" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKinesisAnalyticsApplication - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-kinesisanalytics-applicationoutput.go b/cloudformation/aws-kinesisanalytics-applicationoutput.go index d9eea17b44..233a93ba79 100644 --- a/cloudformation/aws-kinesisanalytics-applicationoutput.go +++ b/cloudformation/aws-kinesisanalytics-applicationoutput.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSKinesisAnalyticsApplicationOutput) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSKinesisAnalyticsApplicationOutputResources retrieves all AWSKinesisAnalyticsApplicationOutput items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisAnalyticsApplicationOutputResources() map[string]*AWSKinesisAnalyticsApplicationOutput { - results := map[string]*AWSKinesisAnalyticsApplicationOutput{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSKinesisAnalyticsApplicationOutput: - results[name] = &resource - case *AWSKinesisAnalyticsApplicationOutput: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::KinesisAnalytics::ApplicationOutput" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKinesisAnalyticsApplicationOutput - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSKinesisAnalyticsApplicationOutputWithName retrieves all AWSKinesisAnalyticsApplicationOutput items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisAnalyticsApplicationOutputWithName(name string) (*AWSKinesisAnalyticsApplicationOutput, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSKinesisAnalyticsApplicationOutput: - return &resource, nil - case *AWSKinesisAnalyticsApplicationOutput: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::KinesisAnalytics::ApplicationOutput" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKinesisAnalyticsApplicationOutput - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource.go b/cloudformation/aws-kinesisanalytics-applicationreferencedatasource.go index c99bdc0ff6..9b96e3dfb2 100644 --- a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource.go +++ b/cloudformation/aws-kinesisanalytics-applicationreferencedatasource.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSKinesisAnalyticsApplicationReferenceDataSource) UnmarshalJSON(b []by return nil } - -// GetAllAWSKinesisAnalyticsApplicationReferenceDataSourceResources retrieves all AWSKinesisAnalyticsApplicationReferenceDataSource items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisAnalyticsApplicationReferenceDataSourceResources() map[string]*AWSKinesisAnalyticsApplicationReferenceDataSource { - results := map[string]*AWSKinesisAnalyticsApplicationReferenceDataSource{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSKinesisAnalyticsApplicationReferenceDataSource: - results[name] = &resource - case *AWSKinesisAnalyticsApplicationReferenceDataSource: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::KinesisAnalytics::ApplicationReferenceDataSource" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKinesisAnalyticsApplicationReferenceDataSource - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSKinesisAnalyticsApplicationReferenceDataSourceWithName retrieves all AWSKinesisAnalyticsApplicationReferenceDataSource items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisAnalyticsApplicationReferenceDataSourceWithName(name string) (*AWSKinesisAnalyticsApplicationReferenceDataSource, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSKinesisAnalyticsApplicationReferenceDataSource: - return &resource, nil - case *AWSKinesisAnalyticsApplicationReferenceDataSource: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::KinesisAnalytics::ApplicationReferenceDataSource" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKinesisAnalyticsApplicationReferenceDataSource - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-kinesisanalyticsv2-application.go b/cloudformation/aws-kinesisanalyticsv2-application.go index 7d5641422a..b28d3f0554 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application.go +++ b/cloudformation/aws-kinesisanalyticsv2-application.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSKinesisAnalyticsV2Application) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSKinesisAnalyticsV2ApplicationResources retrieves all AWSKinesisAnalyticsV2Application items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationResources() map[string]*AWSKinesisAnalyticsV2Application { - results := map[string]*AWSKinesisAnalyticsV2Application{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSKinesisAnalyticsV2Application: - results[name] = &resource - case *AWSKinesisAnalyticsV2Application: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::KinesisAnalyticsV2::Application" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKinesisAnalyticsV2Application - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSKinesisAnalyticsV2ApplicationWithName retrieves all AWSKinesisAnalyticsV2Application items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisAnalyticsV2ApplicationWithName(name string) (*AWSKinesisAnalyticsV2Application, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSKinesisAnalyticsV2Application: - return &resource, nil - case *AWSKinesisAnalyticsV2Application: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::KinesisAnalyticsV2::Application" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKinesisAnalyticsV2Application - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.go b/cloudformation/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.go index 2a7c5db957..d17350cc14 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.go +++ b/cloudformation/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption) UnmarshalJSON( return nil } - -// GetAllAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionResources retrieves all AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionResources() map[string]*AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption { - results := map[string]*AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption: - results[name] = &resource - case *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionWithName retrieves all AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionWithName(name string) (*AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption: - return &resource, nil - case *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationoutput.go b/cloudformation/aws-kinesisanalyticsv2-applicationoutput.go index 423e099a67..5ab14f41c8 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationoutput.go +++ b/cloudformation/aws-kinesisanalyticsv2-applicationoutput.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSKinesisAnalyticsV2ApplicationOutput) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSKinesisAnalyticsV2ApplicationOutputResources retrieves all AWSKinesisAnalyticsV2ApplicationOutput items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationOutputResources() map[string]*AWSKinesisAnalyticsV2ApplicationOutput { - results := map[string]*AWSKinesisAnalyticsV2ApplicationOutput{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSKinesisAnalyticsV2ApplicationOutput: - results[name] = &resource - case *AWSKinesisAnalyticsV2ApplicationOutput: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::KinesisAnalyticsV2::ApplicationOutput" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKinesisAnalyticsV2ApplicationOutput - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSKinesisAnalyticsV2ApplicationOutputWithName retrieves all AWSKinesisAnalyticsV2ApplicationOutput items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisAnalyticsV2ApplicationOutputWithName(name string) (*AWSKinesisAnalyticsV2ApplicationOutput, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSKinesisAnalyticsV2ApplicationOutput: - return &resource, nil - case *AWSKinesisAnalyticsV2ApplicationOutput: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::KinesisAnalyticsV2::ApplicationOutput" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKinesisAnalyticsV2ApplicationOutput - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource.go b/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource.go index 3ab91d2394..8aae00ccc8 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource.go +++ b/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource) UnmarshalJSON(b [] return nil } - -// GetAllAWSKinesisAnalyticsV2ApplicationReferenceDataSourceResources retrieves all AWSKinesisAnalyticsV2ApplicationReferenceDataSource items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationReferenceDataSourceResources() map[string]*AWSKinesisAnalyticsV2ApplicationReferenceDataSource { - results := map[string]*AWSKinesisAnalyticsV2ApplicationReferenceDataSource{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSKinesisAnalyticsV2ApplicationReferenceDataSource: - results[name] = &resource - case *AWSKinesisAnalyticsV2ApplicationReferenceDataSource: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKinesisAnalyticsV2ApplicationReferenceDataSource - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSKinesisAnalyticsV2ApplicationReferenceDataSourceWithName retrieves all AWSKinesisAnalyticsV2ApplicationReferenceDataSource items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisAnalyticsV2ApplicationReferenceDataSourceWithName(name string) (*AWSKinesisAnalyticsV2ApplicationReferenceDataSource, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSKinesisAnalyticsV2ApplicationReferenceDataSource: - return &resource, nil - case *AWSKinesisAnalyticsV2ApplicationReferenceDataSource: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKinesisAnalyticsV2ApplicationReferenceDataSource - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-kinesisfirehose-deliverystream.go b/cloudformation/aws-kinesisfirehose-deliverystream.go index 3c33ba3157..b097356839 100644 --- a/cloudformation/aws-kinesisfirehose-deliverystream.go +++ b/cloudformation/aws-kinesisfirehose-deliverystream.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -147,63 +146,3 @@ func (r *AWSKinesisFirehoseDeliveryStream) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSKinesisFirehoseDeliveryStreamResources retrieves all AWSKinesisFirehoseDeliveryStream items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisFirehoseDeliveryStreamResources() map[string]*AWSKinesisFirehoseDeliveryStream { - results := map[string]*AWSKinesisFirehoseDeliveryStream{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSKinesisFirehoseDeliveryStream: - results[name] = &resource - case *AWSKinesisFirehoseDeliveryStream: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::KinesisFirehose::DeliveryStream" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKinesisFirehoseDeliveryStream - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSKinesisFirehoseDeliveryStreamWithName retrieves all AWSKinesisFirehoseDeliveryStream items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisFirehoseDeliveryStreamWithName(name string) (*AWSKinesisFirehoseDeliveryStream, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSKinesisFirehoseDeliveryStream: - return &resource, nil - case *AWSKinesisFirehoseDeliveryStream: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::KinesisFirehose::DeliveryStream" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKinesisFirehoseDeliveryStream - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-kms-alias.go b/cloudformation/aws-kms-alias.go index f0220436f4..b10ffa7021 100644 --- a/cloudformation/aws-kms-alias.go +++ b/cloudformation/aws-kms-alias.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSKMSAlias) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSKMSAliasResources retrieves all AWSKMSAlias items from an AWS CloudFormation template -func (t *Template) GetAllAWSKMSAliasResources() map[string]*AWSKMSAlias { - results := map[string]*AWSKMSAlias{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSKMSAlias: - results[name] = &resource - case *AWSKMSAlias: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::KMS::Alias" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKMSAlias - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSKMSAliasWithName retrieves all AWSKMSAlias items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKMSAliasWithName(name string) (*AWSKMSAlias, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSKMSAlias: - return &resource, nil - case *AWSKMSAlias: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::KMS::Alias" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKMSAlias - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-kms-key.go b/cloudformation/aws-kms-key.go index 0968a6dfd2..a07eb8c540 100644 --- a/cloudformation/aws-kms-key.go +++ b/cloudformation/aws-kms-key.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSKMSKey) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSKMSKeyResources retrieves all AWSKMSKey items from an AWS CloudFormation template -func (t *Template) GetAllAWSKMSKeyResources() map[string]*AWSKMSKey { - results := map[string]*AWSKMSKey{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSKMSKey: - results[name] = &resource - case *AWSKMSKey: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::KMS::Key" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKMSKey - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSKMSKeyWithName retrieves all AWSKMSKey items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKMSKeyWithName(name string) (*AWSKMSKey, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSKMSKey: - return &resource, nil - case *AWSKMSKey: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::KMS::Key" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSKMSKey - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-lambda-alias.go b/cloudformation/aws-lambda-alias.go index 1c731fce74..f9aa9cc455 100644 --- a/cloudformation/aws-lambda-alias.go +++ b/cloudformation/aws-lambda-alias.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -143,63 +142,3 @@ func (r *AWSLambdaAlias) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSLambdaAliasResources retrieves all AWSLambdaAlias items from an AWS CloudFormation template -func (t *Template) GetAllAWSLambdaAliasResources() map[string]*AWSLambdaAlias { - results := map[string]*AWSLambdaAlias{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSLambdaAlias: - results[name] = &resource - case *AWSLambdaAlias: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Lambda::Alias" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLambdaAlias - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSLambdaAliasWithName retrieves all AWSLambdaAlias items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLambdaAliasWithName(name string) (*AWSLambdaAlias, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSLambdaAlias: - return &resource, nil - case *AWSLambdaAlias: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Lambda::Alias" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLambdaAlias - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-lambda-eventsourcemapping.go b/cloudformation/aws-lambda-eventsourcemapping.go index 58d49cb700..fa073225e8 100644 --- a/cloudformation/aws-lambda-eventsourcemapping.go +++ b/cloudformation/aws-lambda-eventsourcemapping.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSLambdaEventSourceMapping) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSLambdaEventSourceMappingResources retrieves all AWSLambdaEventSourceMapping items from an AWS CloudFormation template -func (t *Template) GetAllAWSLambdaEventSourceMappingResources() map[string]*AWSLambdaEventSourceMapping { - results := map[string]*AWSLambdaEventSourceMapping{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSLambdaEventSourceMapping: - results[name] = &resource - case *AWSLambdaEventSourceMapping: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Lambda::EventSourceMapping" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLambdaEventSourceMapping - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSLambdaEventSourceMappingWithName retrieves all AWSLambdaEventSourceMapping items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLambdaEventSourceMappingWithName(name string) (*AWSLambdaEventSourceMapping, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSLambdaEventSourceMapping: - return &resource, nil - case *AWSLambdaEventSourceMapping: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Lambda::EventSourceMapping" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLambdaEventSourceMapping - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-lambda-function.go b/cloudformation/aws-lambda-function.go index 1e09200f20..a74294c7db 100644 --- a/cloudformation/aws-lambda-function.go +++ b/cloudformation/aws-lambda-function.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -187,63 +186,3 @@ func (r *AWSLambdaFunction) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSLambdaFunctionResources retrieves all AWSLambdaFunction items from an AWS CloudFormation template -func (t *Template) GetAllAWSLambdaFunctionResources() map[string]*AWSLambdaFunction { - results := map[string]*AWSLambdaFunction{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSLambdaFunction: - results[name] = &resource - case *AWSLambdaFunction: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Lambda::Function" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLambdaFunction - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSLambdaFunctionWithName retrieves all AWSLambdaFunction items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLambdaFunctionWithName(name string) (*AWSLambdaFunction, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSLambdaFunction: - return &resource, nil - case *AWSLambdaFunction: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Lambda::Function" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLambdaFunction - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-lambda-layerversion.go b/cloudformation/aws-lambda-layerversion.go index cfa60a81d0..fec7eca581 100644 --- a/cloudformation/aws-lambda-layerversion.go +++ b/cloudformation/aws-lambda-layerversion.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSLambdaLayerVersion) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSLambdaLayerVersionResources retrieves all AWSLambdaLayerVersion items from an AWS CloudFormation template -func (t *Template) GetAllAWSLambdaLayerVersionResources() map[string]*AWSLambdaLayerVersion { - results := map[string]*AWSLambdaLayerVersion{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSLambdaLayerVersion: - results[name] = &resource - case *AWSLambdaLayerVersion: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Lambda::LayerVersion" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLambdaLayerVersion - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSLambdaLayerVersionWithName retrieves all AWSLambdaLayerVersion items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLambdaLayerVersionWithName(name string) (*AWSLambdaLayerVersion, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSLambdaLayerVersion: - return &resource, nil - case *AWSLambdaLayerVersion: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Lambda::LayerVersion" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLambdaLayerVersion - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-lambda-layerversionpermission.go b/cloudformation/aws-lambda-layerversionpermission.go index 469ebefa9e..12d871304d 100644 --- a/cloudformation/aws-lambda-layerversionpermission.go +++ b/cloudformation/aws-lambda-layerversionpermission.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSLambdaLayerVersionPermission) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSLambdaLayerVersionPermissionResources retrieves all AWSLambdaLayerVersionPermission items from an AWS CloudFormation template -func (t *Template) GetAllAWSLambdaLayerVersionPermissionResources() map[string]*AWSLambdaLayerVersionPermission { - results := map[string]*AWSLambdaLayerVersionPermission{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSLambdaLayerVersionPermission: - results[name] = &resource - case *AWSLambdaLayerVersionPermission: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Lambda::LayerVersionPermission" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLambdaLayerVersionPermission - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSLambdaLayerVersionPermissionWithName retrieves all AWSLambdaLayerVersionPermission items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLambdaLayerVersionPermissionWithName(name string) (*AWSLambdaLayerVersionPermission, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSLambdaLayerVersionPermission: - return &resource, nil - case *AWSLambdaLayerVersionPermission: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Lambda::LayerVersionPermission" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLambdaLayerVersionPermission - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-lambda-permission.go b/cloudformation/aws-lambda-permission.go index 0e3d4d7267..4b47cfd9e9 100644 --- a/cloudformation/aws-lambda-permission.go +++ b/cloudformation/aws-lambda-permission.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -137,63 +136,3 @@ func (r *AWSLambdaPermission) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSLambdaPermissionResources retrieves all AWSLambdaPermission items from an AWS CloudFormation template -func (t *Template) GetAllAWSLambdaPermissionResources() map[string]*AWSLambdaPermission { - results := map[string]*AWSLambdaPermission{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSLambdaPermission: - results[name] = &resource - case *AWSLambdaPermission: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Lambda::Permission" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLambdaPermission - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSLambdaPermissionWithName retrieves all AWSLambdaPermission items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLambdaPermissionWithName(name string) (*AWSLambdaPermission, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSLambdaPermission: - return &resource, nil - case *AWSLambdaPermission: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Lambda::Permission" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLambdaPermission - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-lambda-version.go b/cloudformation/aws-lambda-version.go index ad00d045e9..c08fa10a06 100644 --- a/cloudformation/aws-lambda-version.go +++ b/cloudformation/aws-lambda-version.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSLambdaVersion) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSLambdaVersionResources retrieves all AWSLambdaVersion items from an AWS CloudFormation template -func (t *Template) GetAllAWSLambdaVersionResources() map[string]*AWSLambdaVersion { - results := map[string]*AWSLambdaVersion{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSLambdaVersion: - results[name] = &resource - case *AWSLambdaVersion: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Lambda::Version" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLambdaVersion - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSLambdaVersionWithName retrieves all AWSLambdaVersion items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLambdaVersionWithName(name string) (*AWSLambdaVersion, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSLambdaVersion: - return &resource, nil - case *AWSLambdaVersion: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Lambda::Version" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLambdaVersion - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-logs-destination.go b/cloudformation/aws-logs-destination.go index 84f8dd1393..0adc3d99f1 100644 --- a/cloudformation/aws-logs-destination.go +++ b/cloudformation/aws-logs-destination.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSLogsDestination) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSLogsDestinationResources retrieves all AWSLogsDestination items from an AWS CloudFormation template -func (t *Template) GetAllAWSLogsDestinationResources() map[string]*AWSLogsDestination { - results := map[string]*AWSLogsDestination{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSLogsDestination: - results[name] = &resource - case *AWSLogsDestination: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Logs::Destination" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLogsDestination - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSLogsDestinationWithName retrieves all AWSLogsDestination items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLogsDestinationWithName(name string) (*AWSLogsDestination, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSLogsDestination: - return &resource, nil - case *AWSLogsDestination: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Logs::Destination" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLogsDestination - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-logs-loggroup.go b/cloudformation/aws-logs-loggroup.go index 4574d13f94..79a67b7dad 100644 --- a/cloudformation/aws-logs-loggroup.go +++ b/cloudformation/aws-logs-loggroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSLogsLogGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSLogsLogGroupResources retrieves all AWSLogsLogGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSLogsLogGroupResources() map[string]*AWSLogsLogGroup { - results := map[string]*AWSLogsLogGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSLogsLogGroup: - results[name] = &resource - case *AWSLogsLogGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Logs::LogGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLogsLogGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSLogsLogGroupWithName retrieves all AWSLogsLogGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLogsLogGroupWithName(name string) (*AWSLogsLogGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSLogsLogGroup: - return &resource, nil - case *AWSLogsLogGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Logs::LogGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLogsLogGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-logs-logstream.go b/cloudformation/aws-logs-logstream.go index d8703c91aa..95a5b59bf1 100644 --- a/cloudformation/aws-logs-logstream.go +++ b/cloudformation/aws-logs-logstream.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSLogsLogStream) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSLogsLogStreamResources retrieves all AWSLogsLogStream items from an AWS CloudFormation template -func (t *Template) GetAllAWSLogsLogStreamResources() map[string]*AWSLogsLogStream { - results := map[string]*AWSLogsLogStream{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSLogsLogStream: - results[name] = &resource - case *AWSLogsLogStream: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Logs::LogStream" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLogsLogStream - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSLogsLogStreamWithName retrieves all AWSLogsLogStream items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLogsLogStreamWithName(name string) (*AWSLogsLogStream, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSLogsLogStream: - return &resource, nil - case *AWSLogsLogStream: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Logs::LogStream" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLogsLogStream - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-logs-metricfilter.go b/cloudformation/aws-logs-metricfilter.go index f02e8b1765..27c97db21b 100644 --- a/cloudformation/aws-logs-metricfilter.go +++ b/cloudformation/aws-logs-metricfilter.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSLogsMetricFilter) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSLogsMetricFilterResources retrieves all AWSLogsMetricFilter items from an AWS CloudFormation template -func (t *Template) GetAllAWSLogsMetricFilterResources() map[string]*AWSLogsMetricFilter { - results := map[string]*AWSLogsMetricFilter{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSLogsMetricFilter: - results[name] = &resource - case *AWSLogsMetricFilter: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Logs::MetricFilter" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLogsMetricFilter - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSLogsMetricFilterWithName retrieves all AWSLogsMetricFilter items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLogsMetricFilterWithName(name string) (*AWSLogsMetricFilter, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSLogsMetricFilter: - return &resource, nil - case *AWSLogsMetricFilter: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Logs::MetricFilter" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLogsMetricFilter - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-logs-subscriptionfilter.go b/cloudformation/aws-logs-subscriptionfilter.go index 12f71712a1..14b891132b 100644 --- a/cloudformation/aws-logs-subscriptionfilter.go +++ b/cloudformation/aws-logs-subscriptionfilter.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSLogsSubscriptionFilter) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSLogsSubscriptionFilterResources retrieves all AWSLogsSubscriptionFilter items from an AWS CloudFormation template -func (t *Template) GetAllAWSLogsSubscriptionFilterResources() map[string]*AWSLogsSubscriptionFilter { - results := map[string]*AWSLogsSubscriptionFilter{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSLogsSubscriptionFilter: - results[name] = &resource - case *AWSLogsSubscriptionFilter: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Logs::SubscriptionFilter" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLogsSubscriptionFilter - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSLogsSubscriptionFilterWithName retrieves all AWSLogsSubscriptionFilter items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLogsSubscriptionFilterWithName(name string) (*AWSLogsSubscriptionFilter, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSLogsSubscriptionFilter: - return &resource, nil - case *AWSLogsSubscriptionFilter: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Logs::SubscriptionFilter" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSLogsSubscriptionFilter - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-neptune-dbcluster.go b/cloudformation/aws-neptune-dbcluster.go index a8d65f65b9..743931ab2e 100644 --- a/cloudformation/aws-neptune-dbcluster.go +++ b/cloudformation/aws-neptune-dbcluster.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -177,63 +176,3 @@ func (r *AWSNeptuneDBCluster) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSNeptuneDBClusterResources retrieves all AWSNeptuneDBCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSNeptuneDBClusterResources() map[string]*AWSNeptuneDBCluster { - results := map[string]*AWSNeptuneDBCluster{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSNeptuneDBCluster: - results[name] = &resource - case *AWSNeptuneDBCluster: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Neptune::DBCluster" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSNeptuneDBCluster - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSNeptuneDBClusterWithName retrieves all AWSNeptuneDBCluster items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSNeptuneDBClusterWithName(name string) (*AWSNeptuneDBCluster, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSNeptuneDBCluster: - return &resource, nil - case *AWSNeptuneDBCluster: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Neptune::DBCluster" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSNeptuneDBCluster - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-neptune-dbclusterparametergroup.go b/cloudformation/aws-neptune-dbclusterparametergroup.go index ad79a3f507..b534a1dd93 100644 --- a/cloudformation/aws-neptune-dbclusterparametergroup.go +++ b/cloudformation/aws-neptune-dbclusterparametergroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSNeptuneDBClusterParameterGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSNeptuneDBClusterParameterGroupResources retrieves all AWSNeptuneDBClusterParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSNeptuneDBClusterParameterGroupResources() map[string]*AWSNeptuneDBClusterParameterGroup { - results := map[string]*AWSNeptuneDBClusterParameterGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSNeptuneDBClusterParameterGroup: - results[name] = &resource - case *AWSNeptuneDBClusterParameterGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Neptune::DBClusterParameterGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSNeptuneDBClusterParameterGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSNeptuneDBClusterParameterGroupWithName retrieves all AWSNeptuneDBClusterParameterGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSNeptuneDBClusterParameterGroupWithName(name string) (*AWSNeptuneDBClusterParameterGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSNeptuneDBClusterParameterGroup: - return &resource, nil - case *AWSNeptuneDBClusterParameterGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Neptune::DBClusterParameterGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSNeptuneDBClusterParameterGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-neptune-dbinstance.go b/cloudformation/aws-neptune-dbinstance.go index 7620c8f035..b73ff14e09 100644 --- a/cloudformation/aws-neptune-dbinstance.go +++ b/cloudformation/aws-neptune-dbinstance.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -162,63 +161,3 @@ func (r *AWSNeptuneDBInstance) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSNeptuneDBInstanceResources retrieves all AWSNeptuneDBInstance items from an AWS CloudFormation template -func (t *Template) GetAllAWSNeptuneDBInstanceResources() map[string]*AWSNeptuneDBInstance { - results := map[string]*AWSNeptuneDBInstance{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSNeptuneDBInstance: - results[name] = &resource - case *AWSNeptuneDBInstance: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Neptune::DBInstance" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSNeptuneDBInstance - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSNeptuneDBInstanceWithName retrieves all AWSNeptuneDBInstance items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSNeptuneDBInstanceWithName(name string) (*AWSNeptuneDBInstance, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSNeptuneDBInstance: - return &resource, nil - case *AWSNeptuneDBInstance: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Neptune::DBInstance" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSNeptuneDBInstance - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-neptune-dbparametergroup.go b/cloudformation/aws-neptune-dbparametergroup.go index 9cc89c179a..8996b71208 100644 --- a/cloudformation/aws-neptune-dbparametergroup.go +++ b/cloudformation/aws-neptune-dbparametergroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSNeptuneDBParameterGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSNeptuneDBParameterGroupResources retrieves all AWSNeptuneDBParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSNeptuneDBParameterGroupResources() map[string]*AWSNeptuneDBParameterGroup { - results := map[string]*AWSNeptuneDBParameterGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSNeptuneDBParameterGroup: - results[name] = &resource - case *AWSNeptuneDBParameterGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Neptune::DBParameterGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSNeptuneDBParameterGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSNeptuneDBParameterGroupWithName retrieves all AWSNeptuneDBParameterGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSNeptuneDBParameterGroupWithName(name string) (*AWSNeptuneDBParameterGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSNeptuneDBParameterGroup: - return &resource, nil - case *AWSNeptuneDBParameterGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Neptune::DBParameterGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSNeptuneDBParameterGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-neptune-dbsubnetgroup.go b/cloudformation/aws-neptune-dbsubnetgroup.go index 4d191453b6..579c6f484b 100644 --- a/cloudformation/aws-neptune-dbsubnetgroup.go +++ b/cloudformation/aws-neptune-dbsubnetgroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSNeptuneDBSubnetGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSNeptuneDBSubnetGroupResources retrieves all AWSNeptuneDBSubnetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSNeptuneDBSubnetGroupResources() map[string]*AWSNeptuneDBSubnetGroup { - results := map[string]*AWSNeptuneDBSubnetGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSNeptuneDBSubnetGroup: - results[name] = &resource - case *AWSNeptuneDBSubnetGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Neptune::DBSubnetGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSNeptuneDBSubnetGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSNeptuneDBSubnetGroupWithName retrieves all AWSNeptuneDBSubnetGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSNeptuneDBSubnetGroupWithName(name string) (*AWSNeptuneDBSubnetGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSNeptuneDBSubnetGroup: - return &resource, nil - case *AWSNeptuneDBSubnetGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Neptune::DBSubnetGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSNeptuneDBSubnetGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-opsworks-app.go b/cloudformation/aws-opsworks-app.go index c74dee41a8..48e775ea2d 100644 --- a/cloudformation/aws-opsworks-app.go +++ b/cloudformation/aws-opsworks-app.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -167,63 +166,3 @@ func (r *AWSOpsWorksApp) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSOpsWorksAppResources retrieves all AWSOpsWorksApp items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksAppResources() map[string]*AWSOpsWorksApp { - results := map[string]*AWSOpsWorksApp{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSOpsWorksApp: - results[name] = &resource - case *AWSOpsWorksApp: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::OpsWorks::App" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSOpsWorksApp - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSOpsWorksAppWithName retrieves all AWSOpsWorksApp items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksAppWithName(name string) (*AWSOpsWorksApp, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSOpsWorksApp: - return &resource, nil - case *AWSOpsWorksApp: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::OpsWorks::App" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSOpsWorksApp - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-opsworks-elasticloadbalancerattachment.go b/cloudformation/aws-opsworks-elasticloadbalancerattachment.go index 3304d2821a..08c607417a 100644 --- a/cloudformation/aws-opsworks-elasticloadbalancerattachment.go +++ b/cloudformation/aws-opsworks-elasticloadbalancerattachment.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSOpsWorksElasticLoadBalancerAttachment) UnmarshalJSON(b []byte) error return nil } - -// GetAllAWSOpsWorksElasticLoadBalancerAttachmentResources retrieves all AWSOpsWorksElasticLoadBalancerAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksElasticLoadBalancerAttachmentResources() map[string]*AWSOpsWorksElasticLoadBalancerAttachment { - results := map[string]*AWSOpsWorksElasticLoadBalancerAttachment{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSOpsWorksElasticLoadBalancerAttachment: - results[name] = &resource - case *AWSOpsWorksElasticLoadBalancerAttachment: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::OpsWorks::ElasticLoadBalancerAttachment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSOpsWorksElasticLoadBalancerAttachment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSOpsWorksElasticLoadBalancerAttachmentWithName retrieves all AWSOpsWorksElasticLoadBalancerAttachment items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksElasticLoadBalancerAttachmentWithName(name string) (*AWSOpsWorksElasticLoadBalancerAttachment, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSOpsWorksElasticLoadBalancerAttachment: - return &resource, nil - case *AWSOpsWorksElasticLoadBalancerAttachment: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::OpsWorks::ElasticLoadBalancerAttachment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSOpsWorksElasticLoadBalancerAttachment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-opsworks-instance.go b/cloudformation/aws-opsworks-instance.go index 2fb68f9e78..055fcf023f 100644 --- a/cloudformation/aws-opsworks-instance.go +++ b/cloudformation/aws-opsworks-instance.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -212,63 +211,3 @@ func (r *AWSOpsWorksInstance) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSOpsWorksInstanceResources retrieves all AWSOpsWorksInstance items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksInstanceResources() map[string]*AWSOpsWorksInstance { - results := map[string]*AWSOpsWorksInstance{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSOpsWorksInstance: - results[name] = &resource - case *AWSOpsWorksInstance: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::OpsWorks::Instance" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSOpsWorksInstance - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSOpsWorksInstanceWithName retrieves all AWSOpsWorksInstance items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksInstanceWithName(name string) (*AWSOpsWorksInstance, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSOpsWorksInstance: - return &resource, nil - case *AWSOpsWorksInstance: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::OpsWorks::Instance" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSOpsWorksInstance - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-opsworks-layer.go b/cloudformation/aws-opsworks-layer.go index 502709bbd7..1e4de40063 100644 --- a/cloudformation/aws-opsworks-layer.go +++ b/cloudformation/aws-opsworks-layer.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -202,63 +201,3 @@ func (r *AWSOpsWorksLayer) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSOpsWorksLayerResources retrieves all AWSOpsWorksLayer items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksLayerResources() map[string]*AWSOpsWorksLayer { - results := map[string]*AWSOpsWorksLayer{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSOpsWorksLayer: - results[name] = &resource - case *AWSOpsWorksLayer: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::OpsWorks::Layer" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSOpsWorksLayer - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSOpsWorksLayerWithName retrieves all AWSOpsWorksLayer items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksLayerWithName(name string) (*AWSOpsWorksLayer, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSOpsWorksLayer: - return &resource, nil - case *AWSOpsWorksLayer: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::OpsWorks::Layer" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSOpsWorksLayer - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-opsworks-stack.go b/cloudformation/aws-opsworks-stack.go index 06a462e901..d01dca6598 100644 --- a/cloudformation/aws-opsworks-stack.go +++ b/cloudformation/aws-opsworks-stack.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -232,63 +231,3 @@ func (r *AWSOpsWorksStack) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSOpsWorksStackResources retrieves all AWSOpsWorksStack items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksStackResources() map[string]*AWSOpsWorksStack { - results := map[string]*AWSOpsWorksStack{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSOpsWorksStack: - results[name] = &resource - case *AWSOpsWorksStack: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::OpsWorks::Stack" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSOpsWorksStack - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSOpsWorksStackWithName retrieves all AWSOpsWorksStack items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksStackWithName(name string) (*AWSOpsWorksStack, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSOpsWorksStack: - return &resource, nil - case *AWSOpsWorksStack: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::OpsWorks::Stack" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSOpsWorksStack - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-opsworks-userprofile.go b/cloudformation/aws-opsworks-userprofile.go index aefeadbcce..23b074a185 100644 --- a/cloudformation/aws-opsworks-userprofile.go +++ b/cloudformation/aws-opsworks-userprofile.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSOpsWorksUserProfile) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSOpsWorksUserProfileResources retrieves all AWSOpsWorksUserProfile items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksUserProfileResources() map[string]*AWSOpsWorksUserProfile { - results := map[string]*AWSOpsWorksUserProfile{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSOpsWorksUserProfile: - results[name] = &resource - case *AWSOpsWorksUserProfile: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::OpsWorks::UserProfile" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSOpsWorksUserProfile - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSOpsWorksUserProfileWithName retrieves all AWSOpsWorksUserProfile items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksUserProfileWithName(name string) (*AWSOpsWorksUserProfile, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSOpsWorksUserProfile: - return &resource, nil - case *AWSOpsWorksUserProfile: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::OpsWorks::UserProfile" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSOpsWorksUserProfile - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-opsworks-volume.go b/cloudformation/aws-opsworks-volume.go index 101c159886..39a5385692 100644 --- a/cloudformation/aws-opsworks-volume.go +++ b/cloudformation/aws-opsworks-volume.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSOpsWorksVolume) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSOpsWorksVolumeResources retrieves all AWSOpsWorksVolume items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksVolumeResources() map[string]*AWSOpsWorksVolume { - results := map[string]*AWSOpsWorksVolume{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSOpsWorksVolume: - results[name] = &resource - case *AWSOpsWorksVolume: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::OpsWorks::Volume" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSOpsWorksVolume - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSOpsWorksVolumeWithName retrieves all AWSOpsWorksVolume items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksVolumeWithName(name string) (*AWSOpsWorksVolume, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSOpsWorksVolume: - return &resource, nil - case *AWSOpsWorksVolume: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::OpsWorks::Volume" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSOpsWorksVolume - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-opsworkscm-server.go b/cloudformation/aws-opsworkscm-server.go index f0c1946211..bcdc7415d4 100644 --- a/cloudformation/aws-opsworkscm-server.go +++ b/cloudformation/aws-opsworkscm-server.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -192,63 +191,3 @@ func (r *AWSOpsWorksCMServer) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSOpsWorksCMServerResources retrieves all AWSOpsWorksCMServer items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksCMServerResources() map[string]*AWSOpsWorksCMServer { - results := map[string]*AWSOpsWorksCMServer{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSOpsWorksCMServer: - results[name] = &resource - case *AWSOpsWorksCMServer: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::OpsWorksCM::Server" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSOpsWorksCMServer - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSOpsWorksCMServerWithName retrieves all AWSOpsWorksCMServer items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksCMServerWithName(name string) (*AWSOpsWorksCMServer, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSOpsWorksCMServer: - return &resource, nil - case *AWSOpsWorksCMServer: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::OpsWorksCM::Server" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSOpsWorksCMServer - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ram-resourceshare.go b/cloudformation/aws-ram-resourceshare.go index c459404d8d..39c3a70ab2 100644 --- a/cloudformation/aws-ram-resourceshare.go +++ b/cloudformation/aws-ram-resourceshare.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSRAMResourceShare) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRAMResourceShareResources retrieves all AWSRAMResourceShare items from an AWS CloudFormation template -func (t *Template) GetAllAWSRAMResourceShareResources() map[string]*AWSRAMResourceShare { - results := map[string]*AWSRAMResourceShare{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRAMResourceShare: - results[name] = &resource - case *AWSRAMResourceShare: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RAM::ResourceShare" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRAMResourceShare - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRAMResourceShareWithName retrieves all AWSRAMResourceShare items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRAMResourceShareWithName(name string) (*AWSRAMResourceShare, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRAMResourceShare: - return &resource, nil - case *AWSRAMResourceShare: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RAM::ResourceShare" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRAMResourceShare - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-rds-dbcluster.go b/cloudformation/aws-rds-dbcluster.go index 0c09f29e14..35cd942eb0 100644 --- a/cloudformation/aws-rds-dbcluster.go +++ b/cloudformation/aws-rds-dbcluster.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -237,63 +236,3 @@ func (r *AWSRDSDBCluster) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRDSDBClusterResources retrieves all AWSRDSDBCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSDBClusterResources() map[string]*AWSRDSDBCluster { - results := map[string]*AWSRDSDBCluster{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRDSDBCluster: - results[name] = &resource - case *AWSRDSDBCluster: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RDS::DBCluster" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRDSDBCluster - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRDSDBClusterWithName retrieves all AWSRDSDBCluster items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSDBClusterWithName(name string) (*AWSRDSDBCluster, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRDSDBCluster: - return &resource, nil - case *AWSRDSDBCluster: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RDS::DBCluster" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRDSDBCluster - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-rds-dbclusterparametergroup.go b/cloudformation/aws-rds-dbclusterparametergroup.go index 63957e2652..1304e9ec65 100644 --- a/cloudformation/aws-rds-dbclusterparametergroup.go +++ b/cloudformation/aws-rds-dbclusterparametergroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSRDSDBClusterParameterGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRDSDBClusterParameterGroupResources retrieves all AWSRDSDBClusterParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSDBClusterParameterGroupResources() map[string]*AWSRDSDBClusterParameterGroup { - results := map[string]*AWSRDSDBClusterParameterGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRDSDBClusterParameterGroup: - results[name] = &resource - case *AWSRDSDBClusterParameterGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RDS::DBClusterParameterGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRDSDBClusterParameterGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRDSDBClusterParameterGroupWithName retrieves all AWSRDSDBClusterParameterGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSDBClusterParameterGroupWithName(name string) (*AWSRDSDBClusterParameterGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRDSDBClusterParameterGroup: - return &resource, nil - case *AWSRDSDBClusterParameterGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RDS::DBClusterParameterGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRDSDBClusterParameterGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-rds-dbinstance.go b/cloudformation/aws-rds-dbinstance.go index 60ce4414fd..fbc3df03fd 100644 --- a/cloudformation/aws-rds-dbinstance.go +++ b/cloudformation/aws-rds-dbinstance.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -352,63 +351,3 @@ func (r *AWSRDSDBInstance) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRDSDBInstanceResources retrieves all AWSRDSDBInstance items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSDBInstanceResources() map[string]*AWSRDSDBInstance { - results := map[string]*AWSRDSDBInstance{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRDSDBInstance: - results[name] = &resource - case *AWSRDSDBInstance: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RDS::DBInstance" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRDSDBInstance - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRDSDBInstanceWithName retrieves all AWSRDSDBInstance items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSDBInstanceWithName(name string) (*AWSRDSDBInstance, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRDSDBInstance: - return &resource, nil - case *AWSRDSDBInstance: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RDS::DBInstance" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRDSDBInstance - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-rds-dbparametergroup.go b/cloudformation/aws-rds-dbparametergroup.go index b696a38f76..79ea0228e0 100644 --- a/cloudformation/aws-rds-dbparametergroup.go +++ b/cloudformation/aws-rds-dbparametergroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSRDSDBParameterGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRDSDBParameterGroupResources retrieves all AWSRDSDBParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSDBParameterGroupResources() map[string]*AWSRDSDBParameterGroup { - results := map[string]*AWSRDSDBParameterGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRDSDBParameterGroup: - results[name] = &resource - case *AWSRDSDBParameterGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RDS::DBParameterGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRDSDBParameterGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRDSDBParameterGroupWithName retrieves all AWSRDSDBParameterGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSDBParameterGroupWithName(name string) (*AWSRDSDBParameterGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRDSDBParameterGroup: - return &resource, nil - case *AWSRDSDBParameterGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RDS::DBParameterGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRDSDBParameterGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-rds-dbsecuritygroup.go b/cloudformation/aws-rds-dbsecuritygroup.go index 7da6d85bd4..1f2d0ead4f 100644 --- a/cloudformation/aws-rds-dbsecuritygroup.go +++ b/cloudformation/aws-rds-dbsecuritygroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSRDSDBSecurityGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRDSDBSecurityGroupResources retrieves all AWSRDSDBSecurityGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSDBSecurityGroupResources() map[string]*AWSRDSDBSecurityGroup { - results := map[string]*AWSRDSDBSecurityGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRDSDBSecurityGroup: - results[name] = &resource - case *AWSRDSDBSecurityGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RDS::DBSecurityGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRDSDBSecurityGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRDSDBSecurityGroupWithName retrieves all AWSRDSDBSecurityGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSDBSecurityGroupWithName(name string) (*AWSRDSDBSecurityGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRDSDBSecurityGroup: - return &resource, nil - case *AWSRDSDBSecurityGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RDS::DBSecurityGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRDSDBSecurityGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-rds-dbsecuritygroupingress.go b/cloudformation/aws-rds-dbsecuritygroupingress.go index 4672a653c4..c0ab9d45c2 100644 --- a/cloudformation/aws-rds-dbsecuritygroupingress.go +++ b/cloudformation/aws-rds-dbsecuritygroupingress.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSRDSDBSecurityGroupIngress) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRDSDBSecurityGroupIngressResources retrieves all AWSRDSDBSecurityGroupIngress items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSDBSecurityGroupIngressResources() map[string]*AWSRDSDBSecurityGroupIngress { - results := map[string]*AWSRDSDBSecurityGroupIngress{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRDSDBSecurityGroupIngress: - results[name] = &resource - case *AWSRDSDBSecurityGroupIngress: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RDS::DBSecurityGroupIngress" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRDSDBSecurityGroupIngress - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRDSDBSecurityGroupIngressWithName retrieves all AWSRDSDBSecurityGroupIngress items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSDBSecurityGroupIngressWithName(name string) (*AWSRDSDBSecurityGroupIngress, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRDSDBSecurityGroupIngress: - return &resource, nil - case *AWSRDSDBSecurityGroupIngress: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RDS::DBSecurityGroupIngress" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRDSDBSecurityGroupIngress - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-rds-dbsubnetgroup.go b/cloudformation/aws-rds-dbsubnetgroup.go index 892a5a658a..277a96ce43 100644 --- a/cloudformation/aws-rds-dbsubnetgroup.go +++ b/cloudformation/aws-rds-dbsubnetgroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSRDSDBSubnetGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRDSDBSubnetGroupResources retrieves all AWSRDSDBSubnetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSDBSubnetGroupResources() map[string]*AWSRDSDBSubnetGroup { - results := map[string]*AWSRDSDBSubnetGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRDSDBSubnetGroup: - results[name] = &resource - case *AWSRDSDBSubnetGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RDS::DBSubnetGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRDSDBSubnetGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRDSDBSubnetGroupWithName retrieves all AWSRDSDBSubnetGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSDBSubnetGroupWithName(name string) (*AWSRDSDBSubnetGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRDSDBSubnetGroup: - return &resource, nil - case *AWSRDSDBSubnetGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RDS::DBSubnetGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRDSDBSubnetGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-rds-eventsubscription.go b/cloudformation/aws-rds-eventsubscription.go index 6ffc05a120..92cdd49c5e 100644 --- a/cloudformation/aws-rds-eventsubscription.go +++ b/cloudformation/aws-rds-eventsubscription.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSRDSEventSubscription) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRDSEventSubscriptionResources retrieves all AWSRDSEventSubscription items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSEventSubscriptionResources() map[string]*AWSRDSEventSubscription { - results := map[string]*AWSRDSEventSubscription{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRDSEventSubscription: - results[name] = &resource - case *AWSRDSEventSubscription: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RDS::EventSubscription" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRDSEventSubscription - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRDSEventSubscriptionWithName retrieves all AWSRDSEventSubscription items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSEventSubscriptionWithName(name string) (*AWSRDSEventSubscription, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRDSEventSubscription: - return &resource, nil - case *AWSRDSEventSubscription: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RDS::EventSubscription" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRDSEventSubscription - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-rds-optiongroup.go b/cloudformation/aws-rds-optiongroup.go index 71584e9c56..094d56aa49 100644 --- a/cloudformation/aws-rds-optiongroup.go +++ b/cloudformation/aws-rds-optiongroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSRDSOptionGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRDSOptionGroupResources retrieves all AWSRDSOptionGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSOptionGroupResources() map[string]*AWSRDSOptionGroup { - results := map[string]*AWSRDSOptionGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRDSOptionGroup: - results[name] = &resource - case *AWSRDSOptionGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RDS::OptionGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRDSOptionGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRDSOptionGroupWithName retrieves all AWSRDSOptionGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSOptionGroupWithName(name string) (*AWSRDSOptionGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRDSOptionGroup: - return &resource, nil - case *AWSRDSOptionGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RDS::OptionGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRDSOptionGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-redshift-cluster.go b/cloudformation/aws-redshift-cluster.go index 436cc44f46..253fa5816e 100644 --- a/cloudformation/aws-redshift-cluster.go +++ b/cloudformation/aws-redshift-cluster.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -252,63 +251,3 @@ func (r *AWSRedshiftCluster) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRedshiftClusterResources retrieves all AWSRedshiftCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSRedshiftClusterResources() map[string]*AWSRedshiftCluster { - results := map[string]*AWSRedshiftCluster{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRedshiftCluster: - results[name] = &resource - case *AWSRedshiftCluster: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Redshift::Cluster" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRedshiftCluster - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRedshiftClusterWithName retrieves all AWSRedshiftCluster items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRedshiftClusterWithName(name string) (*AWSRedshiftCluster, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRedshiftCluster: - return &resource, nil - case *AWSRedshiftCluster: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Redshift::Cluster" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRedshiftCluster - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-redshift-clusterparametergroup.go b/cloudformation/aws-redshift-clusterparametergroup.go index fecc332ae1..ec9d7fcce9 100644 --- a/cloudformation/aws-redshift-clusterparametergroup.go +++ b/cloudformation/aws-redshift-clusterparametergroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSRedshiftClusterParameterGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRedshiftClusterParameterGroupResources retrieves all AWSRedshiftClusterParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRedshiftClusterParameterGroupResources() map[string]*AWSRedshiftClusterParameterGroup { - results := map[string]*AWSRedshiftClusterParameterGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRedshiftClusterParameterGroup: - results[name] = &resource - case *AWSRedshiftClusterParameterGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Redshift::ClusterParameterGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRedshiftClusterParameterGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRedshiftClusterParameterGroupWithName retrieves all AWSRedshiftClusterParameterGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRedshiftClusterParameterGroupWithName(name string) (*AWSRedshiftClusterParameterGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRedshiftClusterParameterGroup: - return &resource, nil - case *AWSRedshiftClusterParameterGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Redshift::ClusterParameterGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRedshiftClusterParameterGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-redshift-clustersecuritygroup.go b/cloudformation/aws-redshift-clustersecuritygroup.go index 715bf159bb..f8cfe2391c 100644 --- a/cloudformation/aws-redshift-clustersecuritygroup.go +++ b/cloudformation/aws-redshift-clustersecuritygroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSRedshiftClusterSecurityGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRedshiftClusterSecurityGroupResources retrieves all AWSRedshiftClusterSecurityGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRedshiftClusterSecurityGroupResources() map[string]*AWSRedshiftClusterSecurityGroup { - results := map[string]*AWSRedshiftClusterSecurityGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRedshiftClusterSecurityGroup: - results[name] = &resource - case *AWSRedshiftClusterSecurityGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Redshift::ClusterSecurityGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRedshiftClusterSecurityGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRedshiftClusterSecurityGroupWithName retrieves all AWSRedshiftClusterSecurityGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRedshiftClusterSecurityGroupWithName(name string) (*AWSRedshiftClusterSecurityGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRedshiftClusterSecurityGroup: - return &resource, nil - case *AWSRedshiftClusterSecurityGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Redshift::ClusterSecurityGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRedshiftClusterSecurityGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-redshift-clustersecuritygroupingress.go b/cloudformation/aws-redshift-clustersecuritygroupingress.go index f5674d6719..e91d198d42 100644 --- a/cloudformation/aws-redshift-clustersecuritygroupingress.go +++ b/cloudformation/aws-redshift-clustersecuritygroupingress.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSRedshiftClusterSecurityGroupIngress) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRedshiftClusterSecurityGroupIngressResources retrieves all AWSRedshiftClusterSecurityGroupIngress items from an AWS CloudFormation template -func (t *Template) GetAllAWSRedshiftClusterSecurityGroupIngressResources() map[string]*AWSRedshiftClusterSecurityGroupIngress { - results := map[string]*AWSRedshiftClusterSecurityGroupIngress{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRedshiftClusterSecurityGroupIngress: - results[name] = &resource - case *AWSRedshiftClusterSecurityGroupIngress: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Redshift::ClusterSecurityGroupIngress" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRedshiftClusterSecurityGroupIngress - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRedshiftClusterSecurityGroupIngressWithName retrieves all AWSRedshiftClusterSecurityGroupIngress items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRedshiftClusterSecurityGroupIngressWithName(name string) (*AWSRedshiftClusterSecurityGroupIngress, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRedshiftClusterSecurityGroupIngress: - return &resource, nil - case *AWSRedshiftClusterSecurityGroupIngress: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Redshift::ClusterSecurityGroupIngress" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRedshiftClusterSecurityGroupIngress - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-redshift-clustersubnetgroup.go b/cloudformation/aws-redshift-clustersubnetgroup.go index 2325ff1d5e..7b52afea84 100644 --- a/cloudformation/aws-redshift-clustersubnetgroup.go +++ b/cloudformation/aws-redshift-clustersubnetgroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSRedshiftClusterSubnetGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRedshiftClusterSubnetGroupResources retrieves all AWSRedshiftClusterSubnetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRedshiftClusterSubnetGroupResources() map[string]*AWSRedshiftClusterSubnetGroup { - results := map[string]*AWSRedshiftClusterSubnetGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRedshiftClusterSubnetGroup: - results[name] = &resource - case *AWSRedshiftClusterSubnetGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Redshift::ClusterSubnetGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRedshiftClusterSubnetGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRedshiftClusterSubnetGroupWithName retrieves all AWSRedshiftClusterSubnetGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRedshiftClusterSubnetGroupWithName(name string) (*AWSRedshiftClusterSubnetGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRedshiftClusterSubnetGroup: - return &resource, nil - case *AWSRedshiftClusterSubnetGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Redshift::ClusterSubnetGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRedshiftClusterSubnetGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-robomaker-fleet.go b/cloudformation/aws-robomaker-fleet.go index ec49ef31fd..af60d368b5 100644 --- a/cloudformation/aws-robomaker-fleet.go +++ b/cloudformation/aws-robomaker-fleet.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSRoboMakerFleet) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRoboMakerFleetResources retrieves all AWSRoboMakerFleet items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoboMakerFleetResources() map[string]*AWSRoboMakerFleet { - results := map[string]*AWSRoboMakerFleet{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRoboMakerFleet: - results[name] = &resource - case *AWSRoboMakerFleet: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RoboMaker::Fleet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoboMakerFleet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRoboMakerFleetWithName retrieves all AWSRoboMakerFleet items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoboMakerFleetWithName(name string) (*AWSRoboMakerFleet, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRoboMakerFleet: - return &resource, nil - case *AWSRoboMakerFleet: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RoboMaker::Fleet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoboMakerFleet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-robomaker-robot.go b/cloudformation/aws-robomaker-robot.go index 1c14fca0d4..c8affc5492 100644 --- a/cloudformation/aws-robomaker-robot.go +++ b/cloudformation/aws-robomaker-robot.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSRoboMakerRobot) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRoboMakerRobotResources retrieves all AWSRoboMakerRobot items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoboMakerRobotResources() map[string]*AWSRoboMakerRobot { - results := map[string]*AWSRoboMakerRobot{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRoboMakerRobot: - results[name] = &resource - case *AWSRoboMakerRobot: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RoboMaker::Robot" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoboMakerRobot - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRoboMakerRobotWithName retrieves all AWSRoboMakerRobot items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoboMakerRobotWithName(name string) (*AWSRoboMakerRobot, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRoboMakerRobot: - return &resource, nil - case *AWSRoboMakerRobot: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RoboMaker::Robot" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoboMakerRobot - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-robomaker-robotapplication.go b/cloudformation/aws-robomaker-robotapplication.go index 0e732560f9..1ba9565146 100644 --- a/cloudformation/aws-robomaker-robotapplication.go +++ b/cloudformation/aws-robomaker-robotapplication.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSRoboMakerRobotApplication) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRoboMakerRobotApplicationResources retrieves all AWSRoboMakerRobotApplication items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoboMakerRobotApplicationResources() map[string]*AWSRoboMakerRobotApplication { - results := map[string]*AWSRoboMakerRobotApplication{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRoboMakerRobotApplication: - results[name] = &resource - case *AWSRoboMakerRobotApplication: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RoboMaker::RobotApplication" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoboMakerRobotApplication - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRoboMakerRobotApplicationWithName retrieves all AWSRoboMakerRobotApplication items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoboMakerRobotApplicationWithName(name string) (*AWSRoboMakerRobotApplication, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRoboMakerRobotApplication: - return &resource, nil - case *AWSRoboMakerRobotApplication: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RoboMaker::RobotApplication" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoboMakerRobotApplication - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-robomaker-robotapplicationversion.go b/cloudformation/aws-robomaker-robotapplicationversion.go index 078b97fe99..b5ecfecf2e 100644 --- a/cloudformation/aws-robomaker-robotapplicationversion.go +++ b/cloudformation/aws-robomaker-robotapplicationversion.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSRoboMakerRobotApplicationVersion) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRoboMakerRobotApplicationVersionResources retrieves all AWSRoboMakerRobotApplicationVersion items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoboMakerRobotApplicationVersionResources() map[string]*AWSRoboMakerRobotApplicationVersion { - results := map[string]*AWSRoboMakerRobotApplicationVersion{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRoboMakerRobotApplicationVersion: - results[name] = &resource - case *AWSRoboMakerRobotApplicationVersion: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RoboMaker::RobotApplicationVersion" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoboMakerRobotApplicationVersion - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRoboMakerRobotApplicationVersionWithName retrieves all AWSRoboMakerRobotApplicationVersion items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoboMakerRobotApplicationVersionWithName(name string) (*AWSRoboMakerRobotApplicationVersion, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRoboMakerRobotApplicationVersion: - return &resource, nil - case *AWSRoboMakerRobotApplicationVersion: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RoboMaker::RobotApplicationVersion" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoboMakerRobotApplicationVersion - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-robomaker-simulationapplication.go b/cloudformation/aws-robomaker-simulationapplication.go index 6356e92c07..f44936e6ac 100644 --- a/cloudformation/aws-robomaker-simulationapplication.go +++ b/cloudformation/aws-robomaker-simulationapplication.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSRoboMakerSimulationApplication) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRoboMakerSimulationApplicationResources retrieves all AWSRoboMakerSimulationApplication items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoboMakerSimulationApplicationResources() map[string]*AWSRoboMakerSimulationApplication { - results := map[string]*AWSRoboMakerSimulationApplication{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRoboMakerSimulationApplication: - results[name] = &resource - case *AWSRoboMakerSimulationApplication: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RoboMaker::SimulationApplication" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoboMakerSimulationApplication - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRoboMakerSimulationApplicationWithName retrieves all AWSRoboMakerSimulationApplication items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoboMakerSimulationApplicationWithName(name string) (*AWSRoboMakerSimulationApplication, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRoboMakerSimulationApplication: - return &resource, nil - case *AWSRoboMakerSimulationApplication: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RoboMaker::SimulationApplication" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoboMakerSimulationApplication - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-robomaker-simulationapplicationversion.go b/cloudformation/aws-robomaker-simulationapplicationversion.go index 750709ec44..c433182ee9 100644 --- a/cloudformation/aws-robomaker-simulationapplicationversion.go +++ b/cloudformation/aws-robomaker-simulationapplicationversion.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSRoboMakerSimulationApplicationVersion) UnmarshalJSON(b []byte) error return nil } - -// GetAllAWSRoboMakerSimulationApplicationVersionResources retrieves all AWSRoboMakerSimulationApplicationVersion items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoboMakerSimulationApplicationVersionResources() map[string]*AWSRoboMakerSimulationApplicationVersion { - results := map[string]*AWSRoboMakerSimulationApplicationVersion{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRoboMakerSimulationApplicationVersion: - results[name] = &resource - case *AWSRoboMakerSimulationApplicationVersion: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RoboMaker::SimulationApplicationVersion" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoboMakerSimulationApplicationVersion - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRoboMakerSimulationApplicationVersionWithName retrieves all AWSRoboMakerSimulationApplicationVersion items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoboMakerSimulationApplicationVersionWithName(name string) (*AWSRoboMakerSimulationApplicationVersion, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRoboMakerSimulationApplicationVersion: - return &resource, nil - case *AWSRoboMakerSimulationApplicationVersion: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::RoboMaker::SimulationApplicationVersion" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoboMakerSimulationApplicationVersion - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-route53-healthcheck.go b/cloudformation/aws-route53-healthcheck.go index e393ed5a32..fb7c520c76 100644 --- a/cloudformation/aws-route53-healthcheck.go +++ b/cloudformation/aws-route53-healthcheck.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSRoute53HealthCheck) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRoute53HealthCheckResources retrieves all AWSRoute53HealthCheck items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoute53HealthCheckResources() map[string]*AWSRoute53HealthCheck { - results := map[string]*AWSRoute53HealthCheck{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRoute53HealthCheck: - results[name] = &resource - case *AWSRoute53HealthCheck: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Route53::HealthCheck" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoute53HealthCheck - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRoute53HealthCheckWithName retrieves all AWSRoute53HealthCheck items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoute53HealthCheckWithName(name string) (*AWSRoute53HealthCheck, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRoute53HealthCheck: - return &resource, nil - case *AWSRoute53HealthCheck: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Route53::HealthCheck" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoute53HealthCheck - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-route53-hostedzone.go b/cloudformation/aws-route53-hostedzone.go index cbd34516c9..7312abf381 100644 --- a/cloudformation/aws-route53-hostedzone.go +++ b/cloudformation/aws-route53-hostedzone.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSRoute53HostedZone) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRoute53HostedZoneResources retrieves all AWSRoute53HostedZone items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoute53HostedZoneResources() map[string]*AWSRoute53HostedZone { - results := map[string]*AWSRoute53HostedZone{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRoute53HostedZone: - results[name] = &resource - case *AWSRoute53HostedZone: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Route53::HostedZone" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoute53HostedZone - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRoute53HostedZoneWithName retrieves all AWSRoute53HostedZone items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoute53HostedZoneWithName(name string) (*AWSRoute53HostedZone, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRoute53HostedZone: - return &resource, nil - case *AWSRoute53HostedZone: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Route53::HostedZone" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoute53HostedZone - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-route53-recordset.go b/cloudformation/aws-route53-recordset.go index eb293530a7..4d84880c6f 100644 --- a/cloudformation/aws-route53-recordset.go +++ b/cloudformation/aws-route53-recordset.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -182,63 +181,3 @@ func (r *AWSRoute53RecordSet) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRoute53RecordSetResources retrieves all AWSRoute53RecordSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoute53RecordSetResources() map[string]*AWSRoute53RecordSet { - results := map[string]*AWSRoute53RecordSet{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRoute53RecordSet: - results[name] = &resource - case *AWSRoute53RecordSet: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Route53::RecordSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoute53RecordSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRoute53RecordSetWithName retrieves all AWSRoute53RecordSet items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoute53RecordSetWithName(name string) (*AWSRoute53RecordSet, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRoute53RecordSet: - return &resource, nil - case *AWSRoute53RecordSet: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Route53::RecordSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoute53RecordSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-route53-recordsetgroup.go b/cloudformation/aws-route53-recordsetgroup.go index 668d84112b..4bdee1f816 100644 --- a/cloudformation/aws-route53-recordsetgroup.go +++ b/cloudformation/aws-route53-recordsetgroup.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSRoute53RecordSetGroup) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRoute53RecordSetGroupResources retrieves all AWSRoute53RecordSetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoute53RecordSetGroupResources() map[string]*AWSRoute53RecordSetGroup { - results := map[string]*AWSRoute53RecordSetGroup{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRoute53RecordSetGroup: - results[name] = &resource - case *AWSRoute53RecordSetGroup: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Route53::RecordSetGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoute53RecordSetGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRoute53RecordSetGroupWithName retrieves all AWSRoute53RecordSetGroup items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoute53RecordSetGroupWithName(name string) (*AWSRoute53RecordSetGroup, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRoute53RecordSetGroup: - return &resource, nil - case *AWSRoute53RecordSetGroup: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Route53::RecordSetGroup" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoute53RecordSetGroup - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-route53resolver-resolverendpoint.go b/cloudformation/aws-route53resolver-resolverendpoint.go index 2e076c6b07..2021b488f0 100644 --- a/cloudformation/aws-route53resolver-resolverendpoint.go +++ b/cloudformation/aws-route53resolver-resolverendpoint.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSRoute53ResolverResolverEndpoint) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRoute53ResolverResolverEndpointResources retrieves all AWSRoute53ResolverResolverEndpoint items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoute53ResolverResolverEndpointResources() map[string]*AWSRoute53ResolverResolverEndpoint { - results := map[string]*AWSRoute53ResolverResolverEndpoint{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRoute53ResolverResolverEndpoint: - results[name] = &resource - case *AWSRoute53ResolverResolverEndpoint: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Route53Resolver::ResolverEndpoint" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoute53ResolverResolverEndpoint - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRoute53ResolverResolverEndpointWithName retrieves all AWSRoute53ResolverResolverEndpoint items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoute53ResolverResolverEndpointWithName(name string) (*AWSRoute53ResolverResolverEndpoint, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRoute53ResolverResolverEndpoint: - return &resource, nil - case *AWSRoute53ResolverResolverEndpoint: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Route53Resolver::ResolverEndpoint" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoute53ResolverResolverEndpoint - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-route53resolver-resolverrule.go b/cloudformation/aws-route53resolver-resolverrule.go index ccf6ea8cfd..d16ee98472 100644 --- a/cloudformation/aws-route53resolver-resolverrule.go +++ b/cloudformation/aws-route53resolver-resolverrule.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -137,63 +136,3 @@ func (r *AWSRoute53ResolverResolverRule) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSRoute53ResolverResolverRuleResources retrieves all AWSRoute53ResolverResolverRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoute53ResolverResolverRuleResources() map[string]*AWSRoute53ResolverResolverRule { - results := map[string]*AWSRoute53ResolverResolverRule{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRoute53ResolverResolverRule: - results[name] = &resource - case *AWSRoute53ResolverResolverRule: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Route53Resolver::ResolverRule" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoute53ResolverResolverRule - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRoute53ResolverResolverRuleWithName retrieves all AWSRoute53ResolverResolverRule items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoute53ResolverResolverRuleWithName(name string) (*AWSRoute53ResolverResolverRule, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRoute53ResolverResolverRule: - return &resource, nil - case *AWSRoute53ResolverResolverRule: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Route53Resolver::ResolverRule" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoute53ResolverResolverRule - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-route53resolver-resolverruleassociation.go b/cloudformation/aws-route53resolver-resolverruleassociation.go index 2dbd9a6b89..42d8b5b4f3 100644 --- a/cloudformation/aws-route53resolver-resolverruleassociation.go +++ b/cloudformation/aws-route53resolver-resolverruleassociation.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSRoute53ResolverResolverRuleAssociation) UnmarshalJSON(b []byte) erro return nil } - -// GetAllAWSRoute53ResolverResolverRuleAssociationResources retrieves all AWSRoute53ResolverResolverRuleAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoute53ResolverResolverRuleAssociationResources() map[string]*AWSRoute53ResolverResolverRuleAssociation { - results := map[string]*AWSRoute53ResolverResolverRuleAssociation{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSRoute53ResolverResolverRuleAssociation: - results[name] = &resource - case *AWSRoute53ResolverResolverRuleAssociation: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Route53Resolver::ResolverRuleAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoute53ResolverResolverRuleAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSRoute53ResolverResolverRuleAssociationWithName retrieves all AWSRoute53ResolverResolverRuleAssociation items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoute53ResolverResolverRuleAssociationWithName(name string) (*AWSRoute53ResolverResolverRuleAssociation, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSRoute53ResolverResolverRuleAssociation: - return &resource, nil - case *AWSRoute53ResolverResolverRuleAssociation: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Route53Resolver::ResolverRuleAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSRoute53ResolverResolverRuleAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-s3-bucket.go b/cloudformation/aws-s3-bucket.go index 5edc8e5786..aea0e9cc01 100644 --- a/cloudformation/aws-s3-bucket.go +++ b/cloudformation/aws-s3-bucket.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -187,63 +186,3 @@ func (r *AWSS3Bucket) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSS3BucketResources retrieves all AWSS3Bucket items from an AWS CloudFormation template -func (t *Template) GetAllAWSS3BucketResources() map[string]*AWSS3Bucket { - results := map[string]*AWSS3Bucket{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSS3Bucket: - results[name] = &resource - case *AWSS3Bucket: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::S3::Bucket" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSS3Bucket - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSS3BucketWithName retrieves all AWSS3Bucket items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSS3BucketWithName(name string) (*AWSS3Bucket, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSS3Bucket: - return &resource, nil - case *AWSS3Bucket: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::S3::Bucket" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSS3Bucket - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-s3-bucketpolicy.go b/cloudformation/aws-s3-bucketpolicy.go index 660a2bd319..cb04f4b972 100644 --- a/cloudformation/aws-s3-bucketpolicy.go +++ b/cloudformation/aws-s3-bucketpolicy.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSS3BucketPolicy) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSS3BucketPolicyResources retrieves all AWSS3BucketPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSS3BucketPolicyResources() map[string]*AWSS3BucketPolicy { - results := map[string]*AWSS3BucketPolicy{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSS3BucketPolicy: - results[name] = &resource - case *AWSS3BucketPolicy: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::S3::BucketPolicy" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSS3BucketPolicy - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSS3BucketPolicyWithName retrieves all AWSS3BucketPolicy items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSS3BucketPolicyWithName(name string) (*AWSS3BucketPolicy, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSS3BucketPolicy: - return &resource, nil - case *AWSS3BucketPolicy: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::S3::BucketPolicy" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSS3BucketPolicy - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-sagemaker-endpoint.go b/cloudformation/aws-sagemaker-endpoint.go index 484939f0df..d1b1e0e31d 100644 --- a/cloudformation/aws-sagemaker-endpoint.go +++ b/cloudformation/aws-sagemaker-endpoint.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSSageMakerEndpoint) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSageMakerEndpointResources retrieves all AWSSageMakerEndpoint items from an AWS CloudFormation template -func (t *Template) GetAllAWSSageMakerEndpointResources() map[string]*AWSSageMakerEndpoint { - results := map[string]*AWSSageMakerEndpoint{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSageMakerEndpoint: - results[name] = &resource - case *AWSSageMakerEndpoint: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SageMaker::Endpoint" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSageMakerEndpoint - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSageMakerEndpointWithName retrieves all AWSSageMakerEndpoint items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSageMakerEndpointWithName(name string) (*AWSSageMakerEndpoint, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSageMakerEndpoint: - return &resource, nil - case *AWSSageMakerEndpoint: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SageMaker::Endpoint" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSageMakerEndpoint - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-sagemaker-endpointconfig.go b/cloudformation/aws-sagemaker-endpointconfig.go index 83a4dfb0f1..d8269fab9d 100644 --- a/cloudformation/aws-sagemaker-endpointconfig.go +++ b/cloudformation/aws-sagemaker-endpointconfig.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSSageMakerEndpointConfig) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSageMakerEndpointConfigResources retrieves all AWSSageMakerEndpointConfig items from an AWS CloudFormation template -func (t *Template) GetAllAWSSageMakerEndpointConfigResources() map[string]*AWSSageMakerEndpointConfig { - results := map[string]*AWSSageMakerEndpointConfig{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSageMakerEndpointConfig: - results[name] = &resource - case *AWSSageMakerEndpointConfig: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SageMaker::EndpointConfig" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSageMakerEndpointConfig - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSageMakerEndpointConfigWithName retrieves all AWSSageMakerEndpointConfig items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSageMakerEndpointConfigWithName(name string) (*AWSSageMakerEndpointConfig, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSageMakerEndpointConfig: - return &resource, nil - case *AWSSageMakerEndpointConfig: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SageMaker::EndpointConfig" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSageMakerEndpointConfig - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-sagemaker-model.go b/cloudformation/aws-sagemaker-model.go index 38bfe458a9..51a9905537 100644 --- a/cloudformation/aws-sagemaker-model.go +++ b/cloudformation/aws-sagemaker-model.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -137,63 +136,3 @@ func (r *AWSSageMakerModel) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSageMakerModelResources retrieves all AWSSageMakerModel items from an AWS CloudFormation template -func (t *Template) GetAllAWSSageMakerModelResources() map[string]*AWSSageMakerModel { - results := map[string]*AWSSageMakerModel{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSageMakerModel: - results[name] = &resource - case *AWSSageMakerModel: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SageMaker::Model" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSageMakerModel - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSageMakerModelWithName retrieves all AWSSageMakerModel items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSageMakerModelWithName(name string) (*AWSSageMakerModel, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSageMakerModel: - return &resource, nil - case *AWSSageMakerModel: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SageMaker::Model" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSageMakerModel - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-sagemaker-notebookinstance.go b/cloudformation/aws-sagemaker-notebookinstance.go index 005ee9dd5a..91f0cd26cc 100644 --- a/cloudformation/aws-sagemaker-notebookinstance.go +++ b/cloudformation/aws-sagemaker-notebookinstance.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -157,63 +156,3 @@ func (r *AWSSageMakerNotebookInstance) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSageMakerNotebookInstanceResources retrieves all AWSSageMakerNotebookInstance items from an AWS CloudFormation template -func (t *Template) GetAllAWSSageMakerNotebookInstanceResources() map[string]*AWSSageMakerNotebookInstance { - results := map[string]*AWSSageMakerNotebookInstance{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSageMakerNotebookInstance: - results[name] = &resource - case *AWSSageMakerNotebookInstance: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SageMaker::NotebookInstance" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSageMakerNotebookInstance - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSageMakerNotebookInstanceWithName retrieves all AWSSageMakerNotebookInstance items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSageMakerNotebookInstanceWithName(name string) (*AWSSageMakerNotebookInstance, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSageMakerNotebookInstance: - return &resource, nil - case *AWSSageMakerNotebookInstance: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SageMaker::NotebookInstance" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSageMakerNotebookInstance - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-sagemaker-notebookinstancelifecycleconfig.go b/cloudformation/aws-sagemaker-notebookinstancelifecycleconfig.go index 6615714c2e..b1b6ee58ba 100644 --- a/cloudformation/aws-sagemaker-notebookinstancelifecycleconfig.go +++ b/cloudformation/aws-sagemaker-notebookinstancelifecycleconfig.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSSageMakerNotebookInstanceLifecycleConfig) UnmarshalJSON(b []byte) er return nil } - -// GetAllAWSSageMakerNotebookInstanceLifecycleConfigResources retrieves all AWSSageMakerNotebookInstanceLifecycleConfig items from an AWS CloudFormation template -func (t *Template) GetAllAWSSageMakerNotebookInstanceLifecycleConfigResources() map[string]*AWSSageMakerNotebookInstanceLifecycleConfig { - results := map[string]*AWSSageMakerNotebookInstanceLifecycleConfig{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSageMakerNotebookInstanceLifecycleConfig: - results[name] = &resource - case *AWSSageMakerNotebookInstanceLifecycleConfig: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SageMaker::NotebookInstanceLifecycleConfig" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSageMakerNotebookInstanceLifecycleConfig - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSageMakerNotebookInstanceLifecycleConfigWithName retrieves all AWSSageMakerNotebookInstanceLifecycleConfig items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSageMakerNotebookInstanceLifecycleConfigWithName(name string) (*AWSSageMakerNotebookInstanceLifecycleConfig, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSageMakerNotebookInstanceLifecycleConfig: - return &resource, nil - case *AWSSageMakerNotebookInstanceLifecycleConfig: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SageMaker::NotebookInstanceLifecycleConfig" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSageMakerNotebookInstanceLifecycleConfig - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-sdb-domain.go b/cloudformation/aws-sdb-domain.go index d27244e84f..e9c45f103e 100644 --- a/cloudformation/aws-sdb-domain.go +++ b/cloudformation/aws-sdb-domain.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -112,63 +111,3 @@ func (r *AWSSDBDomain) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSDBDomainResources retrieves all AWSSDBDomain items from an AWS CloudFormation template -func (t *Template) GetAllAWSSDBDomainResources() map[string]*AWSSDBDomain { - results := map[string]*AWSSDBDomain{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSDBDomain: - results[name] = &resource - case *AWSSDBDomain: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SDB::Domain" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSDBDomain - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSDBDomainWithName retrieves all AWSSDBDomain items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSDBDomainWithName(name string) (*AWSSDBDomain, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSDBDomain: - return &resource, nil - case *AWSSDBDomain: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SDB::Domain" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSDBDomain - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-secretsmanager-resourcepolicy.go b/cloudformation/aws-secretsmanager-resourcepolicy.go index d963ac4808..08c58f47fe 100644 --- a/cloudformation/aws-secretsmanager-resourcepolicy.go +++ b/cloudformation/aws-secretsmanager-resourcepolicy.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSSecretsManagerResourcePolicy) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSecretsManagerResourcePolicyResources retrieves all AWSSecretsManagerResourcePolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSSecretsManagerResourcePolicyResources() map[string]*AWSSecretsManagerResourcePolicy { - results := map[string]*AWSSecretsManagerResourcePolicy{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSecretsManagerResourcePolicy: - results[name] = &resource - case *AWSSecretsManagerResourcePolicy: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SecretsManager::ResourcePolicy" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSecretsManagerResourcePolicy - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSecretsManagerResourcePolicyWithName retrieves all AWSSecretsManagerResourcePolicy items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSecretsManagerResourcePolicyWithName(name string) (*AWSSecretsManagerResourcePolicy, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSecretsManagerResourcePolicy: - return &resource, nil - case *AWSSecretsManagerResourcePolicy: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SecretsManager::ResourcePolicy" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSecretsManagerResourcePolicy - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-secretsmanager-rotationschedule.go b/cloudformation/aws-secretsmanager-rotationschedule.go index e119b3d7c8..6c740db923 100644 --- a/cloudformation/aws-secretsmanager-rotationschedule.go +++ b/cloudformation/aws-secretsmanager-rotationschedule.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSSecretsManagerRotationSchedule) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSecretsManagerRotationScheduleResources retrieves all AWSSecretsManagerRotationSchedule items from an AWS CloudFormation template -func (t *Template) GetAllAWSSecretsManagerRotationScheduleResources() map[string]*AWSSecretsManagerRotationSchedule { - results := map[string]*AWSSecretsManagerRotationSchedule{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSecretsManagerRotationSchedule: - results[name] = &resource - case *AWSSecretsManagerRotationSchedule: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SecretsManager::RotationSchedule" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSecretsManagerRotationSchedule - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSecretsManagerRotationScheduleWithName retrieves all AWSSecretsManagerRotationSchedule items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSecretsManagerRotationScheduleWithName(name string) (*AWSSecretsManagerRotationSchedule, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSecretsManagerRotationSchedule: - return &resource, nil - case *AWSSecretsManagerRotationSchedule: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SecretsManager::RotationSchedule" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSecretsManagerRotationSchedule - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-secretsmanager-secret.go b/cloudformation/aws-secretsmanager-secret.go index bbb09a49e6..4597d6c202 100644 --- a/cloudformation/aws-secretsmanager-secret.go +++ b/cloudformation/aws-secretsmanager-secret.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -137,63 +136,3 @@ func (r *AWSSecretsManagerSecret) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSecretsManagerSecretResources retrieves all AWSSecretsManagerSecret items from an AWS CloudFormation template -func (t *Template) GetAllAWSSecretsManagerSecretResources() map[string]*AWSSecretsManagerSecret { - results := map[string]*AWSSecretsManagerSecret{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSecretsManagerSecret: - results[name] = &resource - case *AWSSecretsManagerSecret: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SecretsManager::Secret" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSecretsManagerSecret - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSecretsManagerSecretWithName retrieves all AWSSecretsManagerSecret items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSecretsManagerSecretWithName(name string) (*AWSSecretsManagerSecret, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSecretsManagerSecret: - return &resource, nil - case *AWSSecretsManagerSecret: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SecretsManager::Secret" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSecretsManagerSecret - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-secretsmanager-secrettargetattachment.go b/cloudformation/aws-secretsmanager-secrettargetattachment.go index f69373b448..258bbb1e5b 100644 --- a/cloudformation/aws-secretsmanager-secrettargetattachment.go +++ b/cloudformation/aws-secretsmanager-secrettargetattachment.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSSecretsManagerSecretTargetAttachment) UnmarshalJSON(b []byte) error return nil } - -// GetAllAWSSecretsManagerSecretTargetAttachmentResources retrieves all AWSSecretsManagerSecretTargetAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSSecretsManagerSecretTargetAttachmentResources() map[string]*AWSSecretsManagerSecretTargetAttachment { - results := map[string]*AWSSecretsManagerSecretTargetAttachment{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSecretsManagerSecretTargetAttachment: - results[name] = &resource - case *AWSSecretsManagerSecretTargetAttachment: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SecretsManager::SecretTargetAttachment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSecretsManagerSecretTargetAttachment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSecretsManagerSecretTargetAttachmentWithName retrieves all AWSSecretsManagerSecretTargetAttachment items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSecretsManagerSecretTargetAttachmentWithName(name string) (*AWSSecretsManagerSecretTargetAttachment, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSecretsManagerSecretTargetAttachment: - return &resource, nil - case *AWSSecretsManagerSecretTargetAttachment: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SecretsManager::SecretTargetAttachment" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSecretsManagerSecretTargetAttachment - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-serverless-api.go b/cloudformation/aws-serverless-api.go index 86d8009585..d872f4c3e9 100644 --- a/cloudformation/aws-serverless-api.go +++ b/cloudformation/aws-serverless-api.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -167,63 +166,3 @@ func (r *AWSServerlessApi) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSServerlessApiResources retrieves all AWSServerlessApi items from an AWS CloudFormation template -func (t *Template) GetAllAWSServerlessApiResources() map[string]*AWSServerlessApi { - results := map[string]*AWSServerlessApi{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSServerlessApi: - results[name] = &resource - case *AWSServerlessApi: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Serverless::Api" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServerlessApi - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSServerlessApiWithName retrieves all AWSServerlessApi items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServerlessApiWithName(name string) (*AWSServerlessApi, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSServerlessApi: - return &resource, nil - case *AWSServerlessApi: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Serverless::Api" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServerlessApi - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-serverless-application.go b/cloudformation/aws-serverless-application.go index db03e0ad45..d211ea935b 100644 --- a/cloudformation/aws-serverless-application.go +++ b/cloudformation/aws-serverless-application.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSServerlessApplication) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSServerlessApplicationResources retrieves all AWSServerlessApplication items from an AWS CloudFormation template -func (t *Template) GetAllAWSServerlessApplicationResources() map[string]*AWSServerlessApplication { - results := map[string]*AWSServerlessApplication{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSServerlessApplication: - results[name] = &resource - case *AWSServerlessApplication: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Serverless::Application" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServerlessApplication - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSServerlessApplicationWithName retrieves all AWSServerlessApplication items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServerlessApplicationWithName(name string) (*AWSServerlessApplication, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSServerlessApplication: - return &resource, nil - case *AWSServerlessApplication: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Serverless::Application" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServerlessApplication - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-serverless-function.go b/cloudformation/aws-serverless-function.go index c287156e7a..a2eacadb34 100644 --- a/cloudformation/aws-serverless-function.go +++ b/cloudformation/aws-serverless-function.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -207,63 +206,3 @@ func (r *AWSServerlessFunction) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSServerlessFunctionResources retrieves all AWSServerlessFunction items from an AWS CloudFormation template -func (t *Template) GetAllAWSServerlessFunctionResources() map[string]*AWSServerlessFunction { - results := map[string]*AWSServerlessFunction{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSServerlessFunction: - results[name] = &resource - case *AWSServerlessFunction: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Serverless::Function" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServerlessFunction - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSServerlessFunctionWithName retrieves all AWSServerlessFunction items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServerlessFunctionWithName(name string) (*AWSServerlessFunction, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSServerlessFunction: - return &resource, nil - case *AWSServerlessFunction: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Serverless::Function" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServerlessFunction - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-serverless-layerversion.go b/cloudformation/aws-serverless-layerversion.go index cf3a7dc3ae..043542592a 100644 --- a/cloudformation/aws-serverless-layerversion.go +++ b/cloudformation/aws-serverless-layerversion.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -137,63 +136,3 @@ func (r *AWSServerlessLayerVersion) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSServerlessLayerVersionResources retrieves all AWSServerlessLayerVersion items from an AWS CloudFormation template -func (t *Template) GetAllAWSServerlessLayerVersionResources() map[string]*AWSServerlessLayerVersion { - results := map[string]*AWSServerlessLayerVersion{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSServerlessLayerVersion: - results[name] = &resource - case *AWSServerlessLayerVersion: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Serverless::LayerVersion" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServerlessLayerVersion - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSServerlessLayerVersionWithName retrieves all AWSServerlessLayerVersion items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServerlessLayerVersionWithName(name string) (*AWSServerlessLayerVersion, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSServerlessLayerVersion: - return &resource, nil - case *AWSServerlessLayerVersion: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Serverless::LayerVersion" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServerlessLayerVersion - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-serverless-simpletable.go b/cloudformation/aws-serverless-simpletable.go index 21b2282cae..2916d0b487 100644 --- a/cloudformation/aws-serverless-simpletable.go +++ b/cloudformation/aws-serverless-simpletable.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSServerlessSimpleTable) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSServerlessSimpleTableResources retrieves all AWSServerlessSimpleTable items from an AWS CloudFormation template -func (t *Template) GetAllAWSServerlessSimpleTableResources() map[string]*AWSServerlessSimpleTable { - results := map[string]*AWSServerlessSimpleTable{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSServerlessSimpleTable: - results[name] = &resource - case *AWSServerlessSimpleTable: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Serverless::SimpleTable" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServerlessSimpleTable - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSServerlessSimpleTableWithName retrieves all AWSServerlessSimpleTable items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServerlessSimpleTableWithName(name string) (*AWSServerlessSimpleTable, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSServerlessSimpleTable: - return &resource, nil - case *AWSServerlessSimpleTable: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::Serverless::SimpleTable" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServerlessSimpleTable - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-servicecatalog-acceptedportfolioshare.go b/cloudformation/aws-servicecatalog-acceptedportfolioshare.go index 5c8bac960f..aae4f8663a 100644 --- a/cloudformation/aws-servicecatalog-acceptedportfolioshare.go +++ b/cloudformation/aws-servicecatalog-acceptedportfolioshare.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSServiceCatalogAcceptedPortfolioShare) UnmarshalJSON(b []byte) error return nil } - -// GetAllAWSServiceCatalogAcceptedPortfolioShareResources retrieves all AWSServiceCatalogAcceptedPortfolioShare items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogAcceptedPortfolioShareResources() map[string]*AWSServiceCatalogAcceptedPortfolioShare { - results := map[string]*AWSServiceCatalogAcceptedPortfolioShare{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSServiceCatalogAcceptedPortfolioShare: - results[name] = &resource - case *AWSServiceCatalogAcceptedPortfolioShare: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::AcceptedPortfolioShare" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogAcceptedPortfolioShare - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSServiceCatalogAcceptedPortfolioShareWithName retrieves all AWSServiceCatalogAcceptedPortfolioShare items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogAcceptedPortfolioShareWithName(name string) (*AWSServiceCatalogAcceptedPortfolioShare, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSServiceCatalogAcceptedPortfolioShare: - return &resource, nil - case *AWSServiceCatalogAcceptedPortfolioShare: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::AcceptedPortfolioShare" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogAcceptedPortfolioShare - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-servicecatalog-cloudformationproduct.go b/cloudformation/aws-servicecatalog-cloudformationproduct.go index 905aa9dbbd..62fd6447cb 100644 --- a/cloudformation/aws-servicecatalog-cloudformationproduct.go +++ b/cloudformation/aws-servicecatalog-cloudformationproduct.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -157,63 +156,3 @@ func (r *AWSServiceCatalogCloudFormationProduct) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSServiceCatalogCloudFormationProductResources retrieves all AWSServiceCatalogCloudFormationProduct items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogCloudFormationProductResources() map[string]*AWSServiceCatalogCloudFormationProduct { - results := map[string]*AWSServiceCatalogCloudFormationProduct{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSServiceCatalogCloudFormationProduct: - results[name] = &resource - case *AWSServiceCatalogCloudFormationProduct: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::CloudFormationProduct" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogCloudFormationProduct - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSServiceCatalogCloudFormationProductWithName retrieves all AWSServiceCatalogCloudFormationProduct items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogCloudFormationProductWithName(name string) (*AWSServiceCatalogCloudFormationProduct, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSServiceCatalogCloudFormationProduct: - return &resource, nil - case *AWSServiceCatalogCloudFormationProduct: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::CloudFormationProduct" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogCloudFormationProduct - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-servicecatalog-cloudformationprovisionedproduct.go b/cloudformation/aws-servicecatalog-cloudformationprovisionedproduct.go index 15004dfc65..367cbea4ab 100644 --- a/cloudformation/aws-servicecatalog-cloudformationprovisionedproduct.go +++ b/cloudformation/aws-servicecatalog-cloudformationprovisionedproduct.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -157,63 +156,3 @@ func (r *AWSServiceCatalogCloudFormationProvisionedProduct) UnmarshalJSON(b []by return nil } - -// GetAllAWSServiceCatalogCloudFormationProvisionedProductResources retrieves all AWSServiceCatalogCloudFormationProvisionedProduct items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogCloudFormationProvisionedProductResources() map[string]*AWSServiceCatalogCloudFormationProvisionedProduct { - results := map[string]*AWSServiceCatalogCloudFormationProvisionedProduct{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSServiceCatalogCloudFormationProvisionedProduct: - results[name] = &resource - case *AWSServiceCatalogCloudFormationProvisionedProduct: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::CloudFormationProvisionedProduct" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogCloudFormationProvisionedProduct - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSServiceCatalogCloudFormationProvisionedProductWithName retrieves all AWSServiceCatalogCloudFormationProvisionedProduct items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogCloudFormationProvisionedProductWithName(name string) (*AWSServiceCatalogCloudFormationProvisionedProduct, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSServiceCatalogCloudFormationProvisionedProduct: - return &resource, nil - case *AWSServiceCatalogCloudFormationProvisionedProduct: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::CloudFormationProvisionedProduct" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogCloudFormationProvisionedProduct - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-servicecatalog-launchnotificationconstraint.go b/cloudformation/aws-servicecatalog-launchnotificationconstraint.go index 17a0b03651..76e320707d 100644 --- a/cloudformation/aws-servicecatalog-launchnotificationconstraint.go +++ b/cloudformation/aws-servicecatalog-launchnotificationconstraint.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSServiceCatalogLaunchNotificationConstraint) UnmarshalJSON(b []byte) return nil } - -// GetAllAWSServiceCatalogLaunchNotificationConstraintResources retrieves all AWSServiceCatalogLaunchNotificationConstraint items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogLaunchNotificationConstraintResources() map[string]*AWSServiceCatalogLaunchNotificationConstraint { - results := map[string]*AWSServiceCatalogLaunchNotificationConstraint{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSServiceCatalogLaunchNotificationConstraint: - results[name] = &resource - case *AWSServiceCatalogLaunchNotificationConstraint: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::LaunchNotificationConstraint" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogLaunchNotificationConstraint - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSServiceCatalogLaunchNotificationConstraintWithName retrieves all AWSServiceCatalogLaunchNotificationConstraint items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogLaunchNotificationConstraintWithName(name string) (*AWSServiceCatalogLaunchNotificationConstraint, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSServiceCatalogLaunchNotificationConstraint: - return &resource, nil - case *AWSServiceCatalogLaunchNotificationConstraint: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::LaunchNotificationConstraint" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogLaunchNotificationConstraint - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-servicecatalog-launchroleconstraint.go b/cloudformation/aws-servicecatalog-launchroleconstraint.go index 169cae68b0..5a538f4fce 100644 --- a/cloudformation/aws-servicecatalog-launchroleconstraint.go +++ b/cloudformation/aws-servicecatalog-launchroleconstraint.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSServiceCatalogLaunchRoleConstraint) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSServiceCatalogLaunchRoleConstraintResources retrieves all AWSServiceCatalogLaunchRoleConstraint items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogLaunchRoleConstraintResources() map[string]*AWSServiceCatalogLaunchRoleConstraint { - results := map[string]*AWSServiceCatalogLaunchRoleConstraint{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSServiceCatalogLaunchRoleConstraint: - results[name] = &resource - case *AWSServiceCatalogLaunchRoleConstraint: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::LaunchRoleConstraint" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogLaunchRoleConstraint - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSServiceCatalogLaunchRoleConstraintWithName retrieves all AWSServiceCatalogLaunchRoleConstraint items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogLaunchRoleConstraintWithName(name string) (*AWSServiceCatalogLaunchRoleConstraint, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSServiceCatalogLaunchRoleConstraint: - return &resource, nil - case *AWSServiceCatalogLaunchRoleConstraint: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::LaunchRoleConstraint" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogLaunchRoleConstraint - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-servicecatalog-launchtemplateconstraint.go b/cloudformation/aws-servicecatalog-launchtemplateconstraint.go index 262113666f..2d53029205 100644 --- a/cloudformation/aws-servicecatalog-launchtemplateconstraint.go +++ b/cloudformation/aws-servicecatalog-launchtemplateconstraint.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSServiceCatalogLaunchTemplateConstraint) UnmarshalJSON(b []byte) erro return nil } - -// GetAllAWSServiceCatalogLaunchTemplateConstraintResources retrieves all AWSServiceCatalogLaunchTemplateConstraint items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogLaunchTemplateConstraintResources() map[string]*AWSServiceCatalogLaunchTemplateConstraint { - results := map[string]*AWSServiceCatalogLaunchTemplateConstraint{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSServiceCatalogLaunchTemplateConstraint: - results[name] = &resource - case *AWSServiceCatalogLaunchTemplateConstraint: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::LaunchTemplateConstraint" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogLaunchTemplateConstraint - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSServiceCatalogLaunchTemplateConstraintWithName retrieves all AWSServiceCatalogLaunchTemplateConstraint items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogLaunchTemplateConstraintWithName(name string) (*AWSServiceCatalogLaunchTemplateConstraint, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSServiceCatalogLaunchTemplateConstraint: - return &resource, nil - case *AWSServiceCatalogLaunchTemplateConstraint: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::LaunchTemplateConstraint" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogLaunchTemplateConstraint - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-servicecatalog-portfolio.go b/cloudformation/aws-servicecatalog-portfolio.go index d384d4d5b0..af691c589c 100644 --- a/cloudformation/aws-servicecatalog-portfolio.go +++ b/cloudformation/aws-servicecatalog-portfolio.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSServiceCatalogPortfolio) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSServiceCatalogPortfolioResources retrieves all AWSServiceCatalogPortfolio items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogPortfolioResources() map[string]*AWSServiceCatalogPortfolio { - results := map[string]*AWSServiceCatalogPortfolio{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSServiceCatalogPortfolio: - results[name] = &resource - case *AWSServiceCatalogPortfolio: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::Portfolio" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogPortfolio - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSServiceCatalogPortfolioWithName retrieves all AWSServiceCatalogPortfolio items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogPortfolioWithName(name string) (*AWSServiceCatalogPortfolio, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSServiceCatalogPortfolio: - return &resource, nil - case *AWSServiceCatalogPortfolio: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::Portfolio" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogPortfolio - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-servicecatalog-portfolioprincipalassociation.go b/cloudformation/aws-servicecatalog-portfolioprincipalassociation.go index 74e4a2a3c0..13568919b5 100644 --- a/cloudformation/aws-servicecatalog-portfolioprincipalassociation.go +++ b/cloudformation/aws-servicecatalog-portfolioprincipalassociation.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSServiceCatalogPortfolioPrincipalAssociation) UnmarshalJSON(b []byte) return nil } - -// GetAllAWSServiceCatalogPortfolioPrincipalAssociationResources retrieves all AWSServiceCatalogPortfolioPrincipalAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogPortfolioPrincipalAssociationResources() map[string]*AWSServiceCatalogPortfolioPrincipalAssociation { - results := map[string]*AWSServiceCatalogPortfolioPrincipalAssociation{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSServiceCatalogPortfolioPrincipalAssociation: - results[name] = &resource - case *AWSServiceCatalogPortfolioPrincipalAssociation: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::PortfolioPrincipalAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogPortfolioPrincipalAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSServiceCatalogPortfolioPrincipalAssociationWithName retrieves all AWSServiceCatalogPortfolioPrincipalAssociation items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogPortfolioPrincipalAssociationWithName(name string) (*AWSServiceCatalogPortfolioPrincipalAssociation, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSServiceCatalogPortfolioPrincipalAssociation: - return &resource, nil - case *AWSServiceCatalogPortfolioPrincipalAssociation: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::PortfolioPrincipalAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogPortfolioPrincipalAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-servicecatalog-portfolioproductassociation.go b/cloudformation/aws-servicecatalog-portfolioproductassociation.go index c99886079a..d15349fae7 100644 --- a/cloudformation/aws-servicecatalog-portfolioproductassociation.go +++ b/cloudformation/aws-servicecatalog-portfolioproductassociation.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSServiceCatalogPortfolioProductAssociation) UnmarshalJSON(b []byte) e return nil } - -// GetAllAWSServiceCatalogPortfolioProductAssociationResources retrieves all AWSServiceCatalogPortfolioProductAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogPortfolioProductAssociationResources() map[string]*AWSServiceCatalogPortfolioProductAssociation { - results := map[string]*AWSServiceCatalogPortfolioProductAssociation{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSServiceCatalogPortfolioProductAssociation: - results[name] = &resource - case *AWSServiceCatalogPortfolioProductAssociation: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::PortfolioProductAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogPortfolioProductAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSServiceCatalogPortfolioProductAssociationWithName retrieves all AWSServiceCatalogPortfolioProductAssociation items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogPortfolioProductAssociationWithName(name string) (*AWSServiceCatalogPortfolioProductAssociation, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSServiceCatalogPortfolioProductAssociation: - return &resource, nil - case *AWSServiceCatalogPortfolioProductAssociation: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::PortfolioProductAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogPortfolioProductAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-servicecatalog-portfolioshare.go b/cloudformation/aws-servicecatalog-portfolioshare.go index e89c452cbb..ac8b79a5b5 100644 --- a/cloudformation/aws-servicecatalog-portfolioshare.go +++ b/cloudformation/aws-servicecatalog-portfolioshare.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSServiceCatalogPortfolioShare) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSServiceCatalogPortfolioShareResources retrieves all AWSServiceCatalogPortfolioShare items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogPortfolioShareResources() map[string]*AWSServiceCatalogPortfolioShare { - results := map[string]*AWSServiceCatalogPortfolioShare{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSServiceCatalogPortfolioShare: - results[name] = &resource - case *AWSServiceCatalogPortfolioShare: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::PortfolioShare" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogPortfolioShare - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSServiceCatalogPortfolioShareWithName retrieves all AWSServiceCatalogPortfolioShare items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogPortfolioShareWithName(name string) (*AWSServiceCatalogPortfolioShare, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSServiceCatalogPortfolioShare: - return &resource, nil - case *AWSServiceCatalogPortfolioShare: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::PortfolioShare" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogPortfolioShare - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-servicecatalog-tagoption.go b/cloudformation/aws-servicecatalog-tagoption.go index deda02b136..5eb7c7356a 100644 --- a/cloudformation/aws-servicecatalog-tagoption.go +++ b/cloudformation/aws-servicecatalog-tagoption.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSServiceCatalogTagOption) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSServiceCatalogTagOptionResources retrieves all AWSServiceCatalogTagOption items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogTagOptionResources() map[string]*AWSServiceCatalogTagOption { - results := map[string]*AWSServiceCatalogTagOption{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSServiceCatalogTagOption: - results[name] = &resource - case *AWSServiceCatalogTagOption: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::TagOption" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogTagOption - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSServiceCatalogTagOptionWithName retrieves all AWSServiceCatalogTagOption items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogTagOptionWithName(name string) (*AWSServiceCatalogTagOption, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSServiceCatalogTagOption: - return &resource, nil - case *AWSServiceCatalogTagOption: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::TagOption" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogTagOption - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-servicecatalog-tagoptionassociation.go b/cloudformation/aws-servicecatalog-tagoptionassociation.go index 90f15904e9..0cd4f4bd39 100644 --- a/cloudformation/aws-servicecatalog-tagoptionassociation.go +++ b/cloudformation/aws-servicecatalog-tagoptionassociation.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSServiceCatalogTagOptionAssociation) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSServiceCatalogTagOptionAssociationResources retrieves all AWSServiceCatalogTagOptionAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogTagOptionAssociationResources() map[string]*AWSServiceCatalogTagOptionAssociation { - results := map[string]*AWSServiceCatalogTagOptionAssociation{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSServiceCatalogTagOptionAssociation: - results[name] = &resource - case *AWSServiceCatalogTagOptionAssociation: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::TagOptionAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogTagOptionAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSServiceCatalogTagOptionAssociationWithName retrieves all AWSServiceCatalogTagOptionAssociation items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogTagOptionAssociationWithName(name string) (*AWSServiceCatalogTagOptionAssociation, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSServiceCatalogTagOptionAssociation: - return &resource, nil - case *AWSServiceCatalogTagOptionAssociation: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceCatalog::TagOptionAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceCatalogTagOptionAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-servicediscovery-httpnamespace.go b/cloudformation/aws-servicediscovery-httpnamespace.go index c466c6b700..c9d6c641d6 100644 --- a/cloudformation/aws-servicediscovery-httpnamespace.go +++ b/cloudformation/aws-servicediscovery-httpnamespace.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSServiceDiscoveryHttpNamespace) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSServiceDiscoveryHttpNamespaceResources retrieves all AWSServiceDiscoveryHttpNamespace items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceDiscoveryHttpNamespaceResources() map[string]*AWSServiceDiscoveryHttpNamespace { - results := map[string]*AWSServiceDiscoveryHttpNamespace{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSServiceDiscoveryHttpNamespace: - results[name] = &resource - case *AWSServiceDiscoveryHttpNamespace: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceDiscovery::HttpNamespace" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceDiscoveryHttpNamespace - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSServiceDiscoveryHttpNamespaceWithName retrieves all AWSServiceDiscoveryHttpNamespace items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceDiscoveryHttpNamespaceWithName(name string) (*AWSServiceDiscoveryHttpNamespace, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSServiceDiscoveryHttpNamespace: - return &resource, nil - case *AWSServiceDiscoveryHttpNamespace: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceDiscovery::HttpNamespace" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceDiscoveryHttpNamespace - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-servicediscovery-instance.go b/cloudformation/aws-servicediscovery-instance.go index 9f62c3cf98..4bd1347614 100644 --- a/cloudformation/aws-servicediscovery-instance.go +++ b/cloudformation/aws-servicediscovery-instance.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSServiceDiscoveryInstance) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSServiceDiscoveryInstanceResources retrieves all AWSServiceDiscoveryInstance items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceDiscoveryInstanceResources() map[string]*AWSServiceDiscoveryInstance { - results := map[string]*AWSServiceDiscoveryInstance{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSServiceDiscoveryInstance: - results[name] = &resource - case *AWSServiceDiscoveryInstance: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceDiscovery::Instance" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceDiscoveryInstance - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSServiceDiscoveryInstanceWithName retrieves all AWSServiceDiscoveryInstance items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceDiscoveryInstanceWithName(name string) (*AWSServiceDiscoveryInstance, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSServiceDiscoveryInstance: - return &resource, nil - case *AWSServiceDiscoveryInstance: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceDiscovery::Instance" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceDiscoveryInstance - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-servicediscovery-privatednsnamespace.go b/cloudformation/aws-servicediscovery-privatednsnamespace.go index 6d6f6c05a0..2bf0c53cae 100644 --- a/cloudformation/aws-servicediscovery-privatednsnamespace.go +++ b/cloudformation/aws-servicediscovery-privatednsnamespace.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSServiceDiscoveryPrivateDnsNamespace) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSServiceDiscoveryPrivateDnsNamespaceResources retrieves all AWSServiceDiscoveryPrivateDnsNamespace items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceDiscoveryPrivateDnsNamespaceResources() map[string]*AWSServiceDiscoveryPrivateDnsNamespace { - results := map[string]*AWSServiceDiscoveryPrivateDnsNamespace{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSServiceDiscoveryPrivateDnsNamespace: - results[name] = &resource - case *AWSServiceDiscoveryPrivateDnsNamespace: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceDiscovery::PrivateDnsNamespace" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceDiscoveryPrivateDnsNamespace - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSServiceDiscoveryPrivateDnsNamespaceWithName retrieves all AWSServiceDiscoveryPrivateDnsNamespace items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceDiscoveryPrivateDnsNamespaceWithName(name string) (*AWSServiceDiscoveryPrivateDnsNamespace, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSServiceDiscoveryPrivateDnsNamespace: - return &resource, nil - case *AWSServiceDiscoveryPrivateDnsNamespace: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceDiscovery::PrivateDnsNamespace" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceDiscoveryPrivateDnsNamespace - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-servicediscovery-publicdnsnamespace.go b/cloudformation/aws-servicediscovery-publicdnsnamespace.go index 30091fea56..b91b2294b5 100644 --- a/cloudformation/aws-servicediscovery-publicdnsnamespace.go +++ b/cloudformation/aws-servicediscovery-publicdnsnamespace.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSServiceDiscoveryPublicDnsNamespace) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSServiceDiscoveryPublicDnsNamespaceResources retrieves all AWSServiceDiscoveryPublicDnsNamespace items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceDiscoveryPublicDnsNamespaceResources() map[string]*AWSServiceDiscoveryPublicDnsNamespace { - results := map[string]*AWSServiceDiscoveryPublicDnsNamespace{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSServiceDiscoveryPublicDnsNamespace: - results[name] = &resource - case *AWSServiceDiscoveryPublicDnsNamespace: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceDiscovery::PublicDnsNamespace" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceDiscoveryPublicDnsNamespace - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSServiceDiscoveryPublicDnsNamespaceWithName retrieves all AWSServiceDiscoveryPublicDnsNamespace items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceDiscoveryPublicDnsNamespaceWithName(name string) (*AWSServiceDiscoveryPublicDnsNamespace, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSServiceDiscoveryPublicDnsNamespace: - return &resource, nil - case *AWSServiceDiscoveryPublicDnsNamespace: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceDiscovery::PublicDnsNamespace" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceDiscoveryPublicDnsNamespace - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-servicediscovery-service.go b/cloudformation/aws-servicediscovery-service.go index 7de68924ea..076d963a60 100644 --- a/cloudformation/aws-servicediscovery-service.go +++ b/cloudformation/aws-servicediscovery-service.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -137,63 +136,3 @@ func (r *AWSServiceDiscoveryService) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSServiceDiscoveryServiceResources retrieves all AWSServiceDiscoveryService items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceDiscoveryServiceResources() map[string]*AWSServiceDiscoveryService { - results := map[string]*AWSServiceDiscoveryService{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSServiceDiscoveryService: - results[name] = &resource - case *AWSServiceDiscoveryService: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceDiscovery::Service" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceDiscoveryService - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSServiceDiscoveryServiceWithName retrieves all AWSServiceDiscoveryService items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceDiscoveryServiceWithName(name string) (*AWSServiceDiscoveryService, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSServiceDiscoveryService: - return &resource, nil - case *AWSServiceDiscoveryService: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::ServiceDiscovery::Service" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSServiceDiscoveryService - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ses-configurationset.go b/cloudformation/aws-ses-configurationset.go index 5681935a6d..4330c51392 100644 --- a/cloudformation/aws-ses-configurationset.go +++ b/cloudformation/aws-ses-configurationset.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -112,63 +111,3 @@ func (r *AWSSESConfigurationSet) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSESConfigurationSetResources retrieves all AWSSESConfigurationSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSSESConfigurationSetResources() map[string]*AWSSESConfigurationSet { - results := map[string]*AWSSESConfigurationSet{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSESConfigurationSet: - results[name] = &resource - case *AWSSESConfigurationSet: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SES::ConfigurationSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSESConfigurationSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSESConfigurationSetWithName retrieves all AWSSESConfigurationSet items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSESConfigurationSetWithName(name string) (*AWSSESConfigurationSet, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSESConfigurationSet: - return &resource, nil - case *AWSSESConfigurationSet: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SES::ConfigurationSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSESConfigurationSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ses-configurationseteventdestination.go b/cloudformation/aws-ses-configurationseteventdestination.go index 08eb8661ee..7e125b2c16 100644 --- a/cloudformation/aws-ses-configurationseteventdestination.go +++ b/cloudformation/aws-ses-configurationseteventdestination.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSSESConfigurationSetEventDestination) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSESConfigurationSetEventDestinationResources retrieves all AWSSESConfigurationSetEventDestination items from an AWS CloudFormation template -func (t *Template) GetAllAWSSESConfigurationSetEventDestinationResources() map[string]*AWSSESConfigurationSetEventDestination { - results := map[string]*AWSSESConfigurationSetEventDestination{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSESConfigurationSetEventDestination: - results[name] = &resource - case *AWSSESConfigurationSetEventDestination: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SES::ConfigurationSetEventDestination" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSESConfigurationSetEventDestination - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSESConfigurationSetEventDestinationWithName retrieves all AWSSESConfigurationSetEventDestination items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSESConfigurationSetEventDestinationWithName(name string) (*AWSSESConfigurationSetEventDestination, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSESConfigurationSetEventDestination: - return &resource, nil - case *AWSSESConfigurationSetEventDestination: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SES::ConfigurationSetEventDestination" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSESConfigurationSetEventDestination - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ses-receiptfilter.go b/cloudformation/aws-ses-receiptfilter.go index 121e4068a1..bd3422564c 100644 --- a/cloudformation/aws-ses-receiptfilter.go +++ b/cloudformation/aws-ses-receiptfilter.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -112,63 +111,3 @@ func (r *AWSSESReceiptFilter) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSESReceiptFilterResources retrieves all AWSSESReceiptFilter items from an AWS CloudFormation template -func (t *Template) GetAllAWSSESReceiptFilterResources() map[string]*AWSSESReceiptFilter { - results := map[string]*AWSSESReceiptFilter{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSESReceiptFilter: - results[name] = &resource - case *AWSSESReceiptFilter: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SES::ReceiptFilter" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSESReceiptFilter - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSESReceiptFilterWithName retrieves all AWSSESReceiptFilter items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSESReceiptFilterWithName(name string) (*AWSSESReceiptFilter, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSESReceiptFilter: - return &resource, nil - case *AWSSESReceiptFilter: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SES::ReceiptFilter" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSESReceiptFilter - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ses-receiptrule.go b/cloudformation/aws-ses-receiptrule.go index 16a2f5c0b3..74ad2f2afc 100644 --- a/cloudformation/aws-ses-receiptrule.go +++ b/cloudformation/aws-ses-receiptrule.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSSESReceiptRule) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSESReceiptRuleResources retrieves all AWSSESReceiptRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSSESReceiptRuleResources() map[string]*AWSSESReceiptRule { - results := map[string]*AWSSESReceiptRule{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSESReceiptRule: - results[name] = &resource - case *AWSSESReceiptRule: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SES::ReceiptRule" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSESReceiptRule - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSESReceiptRuleWithName retrieves all AWSSESReceiptRule items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSESReceiptRuleWithName(name string) (*AWSSESReceiptRule, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSESReceiptRule: - return &resource, nil - case *AWSSESReceiptRule: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SES::ReceiptRule" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSESReceiptRule - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ses-receiptruleset.go b/cloudformation/aws-ses-receiptruleset.go index 5746772f71..28877211e5 100644 --- a/cloudformation/aws-ses-receiptruleset.go +++ b/cloudformation/aws-ses-receiptruleset.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -112,63 +111,3 @@ func (r *AWSSESReceiptRuleSet) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSESReceiptRuleSetResources retrieves all AWSSESReceiptRuleSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSSESReceiptRuleSetResources() map[string]*AWSSESReceiptRuleSet { - results := map[string]*AWSSESReceiptRuleSet{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSESReceiptRuleSet: - results[name] = &resource - case *AWSSESReceiptRuleSet: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SES::ReceiptRuleSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSESReceiptRuleSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSESReceiptRuleSetWithName retrieves all AWSSESReceiptRuleSet items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSESReceiptRuleSetWithName(name string) (*AWSSESReceiptRuleSet, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSESReceiptRuleSet: - return &resource, nil - case *AWSSESReceiptRuleSet: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SES::ReceiptRuleSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSESReceiptRuleSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ses-template.go b/cloudformation/aws-ses-template.go index 12459ee88d..c56009a1af 100644 --- a/cloudformation/aws-ses-template.go +++ b/cloudformation/aws-ses-template.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -112,63 +111,3 @@ func (r *AWSSESTemplate) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSESTemplateResources retrieves all AWSSESTemplate items from an AWS CloudFormation template -func (t *Template) GetAllAWSSESTemplateResources() map[string]*AWSSESTemplate { - results := map[string]*AWSSESTemplate{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSESTemplate: - results[name] = &resource - case *AWSSESTemplate: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SES::Template" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSESTemplate - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSESTemplateWithName retrieves all AWSSESTemplate items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSESTemplateWithName(name string) (*AWSSESTemplate, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSESTemplate: - return &resource, nil - case *AWSSESTemplate: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SES::Template" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSESTemplate - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-sns-subscription.go b/cloudformation/aws-sns-subscription.go index 9fdb9d6d86..20f7a3f022 100644 --- a/cloudformation/aws-sns-subscription.go +++ b/cloudformation/aws-sns-subscription.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -142,63 +141,3 @@ func (r *AWSSNSSubscription) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSNSSubscriptionResources retrieves all AWSSNSSubscription items from an AWS CloudFormation template -func (t *Template) GetAllAWSSNSSubscriptionResources() map[string]*AWSSNSSubscription { - results := map[string]*AWSSNSSubscription{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSNSSubscription: - results[name] = &resource - case *AWSSNSSubscription: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SNS::Subscription" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSNSSubscription - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSNSSubscriptionWithName retrieves all AWSSNSSubscription items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSNSSubscriptionWithName(name string) (*AWSSNSSubscription, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSNSSubscription: - return &resource, nil - case *AWSSNSSubscription: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SNS::Subscription" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSNSSubscription - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-sns-topic.go b/cloudformation/aws-sns-topic.go index f9bdad53cf..1af55bba5a 100644 --- a/cloudformation/aws-sns-topic.go +++ b/cloudformation/aws-sns-topic.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSSNSTopic) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSNSTopicResources retrieves all AWSSNSTopic items from an AWS CloudFormation template -func (t *Template) GetAllAWSSNSTopicResources() map[string]*AWSSNSTopic { - results := map[string]*AWSSNSTopic{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSNSTopic: - results[name] = &resource - case *AWSSNSTopic: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SNS::Topic" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSNSTopic - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSNSTopicWithName retrieves all AWSSNSTopic items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSNSTopicWithName(name string) (*AWSSNSTopic, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSNSTopic: - return &resource, nil - case *AWSSNSTopic: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SNS::Topic" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSNSTopic - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-sns-topicpolicy.go b/cloudformation/aws-sns-topicpolicy.go index 0feda52551..090b7934cd 100644 --- a/cloudformation/aws-sns-topicpolicy.go +++ b/cloudformation/aws-sns-topicpolicy.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSSNSTopicPolicy) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSNSTopicPolicyResources retrieves all AWSSNSTopicPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSSNSTopicPolicyResources() map[string]*AWSSNSTopicPolicy { - results := map[string]*AWSSNSTopicPolicy{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSNSTopicPolicy: - results[name] = &resource - case *AWSSNSTopicPolicy: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SNS::TopicPolicy" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSNSTopicPolicy - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSNSTopicPolicyWithName retrieves all AWSSNSTopicPolicy items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSNSTopicPolicyWithName(name string) (*AWSSNSTopicPolicy, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSNSTopicPolicy: - return &resource, nil - case *AWSSNSTopicPolicy: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SNS::TopicPolicy" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSNSTopicPolicy - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-sqs-queue.go b/cloudformation/aws-sqs-queue.go index 9cc9999bde..c76fcbe1b4 100644 --- a/cloudformation/aws-sqs-queue.go +++ b/cloudformation/aws-sqs-queue.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -167,63 +166,3 @@ func (r *AWSSQSQueue) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSQSQueueResources retrieves all AWSSQSQueue items from an AWS CloudFormation template -func (t *Template) GetAllAWSSQSQueueResources() map[string]*AWSSQSQueue { - results := map[string]*AWSSQSQueue{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSQSQueue: - results[name] = &resource - case *AWSSQSQueue: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SQS::Queue" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSQSQueue - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSQSQueueWithName retrieves all AWSSQSQueue items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSQSQueueWithName(name string) (*AWSSQSQueue, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSQSQueue: - return &resource, nil - case *AWSSQSQueue: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SQS::Queue" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSQSQueue - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-sqs-queuepolicy.go b/cloudformation/aws-sqs-queuepolicy.go index f23895de9c..2869024a58 100644 --- a/cloudformation/aws-sqs-queuepolicy.go +++ b/cloudformation/aws-sqs-queuepolicy.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSSQSQueuePolicy) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSQSQueuePolicyResources retrieves all AWSSQSQueuePolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSSQSQueuePolicyResources() map[string]*AWSSQSQueuePolicy { - results := map[string]*AWSSQSQueuePolicy{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSQSQueuePolicy: - results[name] = &resource - case *AWSSQSQueuePolicy: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SQS::QueuePolicy" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSQSQueuePolicy - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSQSQueuePolicyWithName retrieves all AWSSQSQueuePolicy items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSQSQueuePolicyWithName(name string) (*AWSSQSQueuePolicy, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSQSQueuePolicy: - return &resource, nil - case *AWSSQSQueuePolicy: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SQS::QueuePolicy" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSQSQueuePolicy - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ssm-association.go b/cloudformation/aws-ssm-association.go index e79a88eaf7..e3b60e6337 100644 --- a/cloudformation/aws-ssm-association.go +++ b/cloudformation/aws-ssm-association.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -147,63 +146,3 @@ func (r *AWSSSMAssociation) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSSMAssociationResources retrieves all AWSSSMAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSSSMAssociationResources() map[string]*AWSSSMAssociation { - results := map[string]*AWSSSMAssociation{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSSMAssociation: - results[name] = &resource - case *AWSSSMAssociation: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SSM::Association" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSSMAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSSMAssociationWithName retrieves all AWSSSMAssociation items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSSMAssociationWithName(name string) (*AWSSSMAssociation, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSSMAssociation: - return &resource, nil - case *AWSSSMAssociation: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SSM::Association" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSSMAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ssm-document.go b/cloudformation/aws-ssm-document.go index bbba9647e4..66d57ebfb3 100644 --- a/cloudformation/aws-ssm-document.go +++ b/cloudformation/aws-ssm-document.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSSSMDocument) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSSMDocumentResources retrieves all AWSSSMDocument items from an AWS CloudFormation template -func (t *Template) GetAllAWSSSMDocumentResources() map[string]*AWSSSMDocument { - results := map[string]*AWSSSMDocument{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSSMDocument: - results[name] = &resource - case *AWSSSMDocument: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SSM::Document" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSSMDocument - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSSMDocumentWithName retrieves all AWSSSMDocument items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSSMDocumentWithName(name string) (*AWSSSMDocument, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSSMDocument: - return &resource, nil - case *AWSSSMDocument: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SSM::Document" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSSMDocument - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ssm-maintenancewindow.go b/cloudformation/aws-ssm-maintenancewindow.go index 8f38cee7d1..d030524cbf 100644 --- a/cloudformation/aws-ssm-maintenancewindow.go +++ b/cloudformation/aws-ssm-maintenancewindow.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -157,63 +156,3 @@ func (r *AWSSSMMaintenanceWindow) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSSMMaintenanceWindowResources retrieves all AWSSSMMaintenanceWindow items from an AWS CloudFormation template -func (t *Template) GetAllAWSSSMMaintenanceWindowResources() map[string]*AWSSSMMaintenanceWindow { - results := map[string]*AWSSSMMaintenanceWindow{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSSMMaintenanceWindow: - results[name] = &resource - case *AWSSSMMaintenanceWindow: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SSM::MaintenanceWindow" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSSMMaintenanceWindow - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSSMMaintenanceWindowWithName retrieves all AWSSSMMaintenanceWindow items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSSMMaintenanceWindowWithName(name string) (*AWSSSMMaintenanceWindow, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSSMMaintenanceWindow: - return &resource, nil - case *AWSSSMMaintenanceWindow: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SSM::MaintenanceWindow" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSSMMaintenanceWindow - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ssm-maintenancewindowtask.go b/cloudformation/aws-ssm-maintenancewindowtask.go index 2b634d2cb1..df30e4bc3e 100644 --- a/cloudformation/aws-ssm-maintenancewindowtask.go +++ b/cloudformation/aws-ssm-maintenancewindowtask.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -172,63 +171,3 @@ func (r *AWSSSMMaintenanceWindowTask) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSSMMaintenanceWindowTaskResources retrieves all AWSSSMMaintenanceWindowTask items from an AWS CloudFormation template -func (t *Template) GetAllAWSSSMMaintenanceWindowTaskResources() map[string]*AWSSSMMaintenanceWindowTask { - results := map[string]*AWSSSMMaintenanceWindowTask{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSSMMaintenanceWindowTask: - results[name] = &resource - case *AWSSSMMaintenanceWindowTask: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SSM::MaintenanceWindowTask" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSSMMaintenanceWindowTask - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSSMMaintenanceWindowTaskWithName retrieves all AWSSSMMaintenanceWindowTask items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSSMMaintenanceWindowTaskWithName(name string) (*AWSSSMMaintenanceWindowTask, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSSMMaintenanceWindowTask: - return &resource, nil - case *AWSSSMMaintenanceWindowTask: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SSM::MaintenanceWindowTask" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSSMMaintenanceWindowTask - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ssm-parameter.go b/cloudformation/aws-ssm-parameter.go index 385c093476..343b8f2813 100644 --- a/cloudformation/aws-ssm-parameter.go +++ b/cloudformation/aws-ssm-parameter.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -132,63 +131,3 @@ func (r *AWSSSMParameter) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSSMParameterResources retrieves all AWSSSMParameter items from an AWS CloudFormation template -func (t *Template) GetAllAWSSSMParameterResources() map[string]*AWSSSMParameter { - results := map[string]*AWSSSMParameter{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSSMParameter: - results[name] = &resource - case *AWSSSMParameter: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SSM::Parameter" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSSMParameter - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSSMParameterWithName retrieves all AWSSSMParameter items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSSMParameterWithName(name string) (*AWSSSMParameter, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSSMParameter: - return &resource, nil - case *AWSSSMParameter: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SSM::Parameter" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSSMParameter - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ssm-patchbaseline.go b/cloudformation/aws-ssm-patchbaseline.go index f098461732..7db3895c24 100644 --- a/cloudformation/aws-ssm-patchbaseline.go +++ b/cloudformation/aws-ssm-patchbaseline.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -172,63 +171,3 @@ func (r *AWSSSMPatchBaseline) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSSMPatchBaselineResources retrieves all AWSSSMPatchBaseline items from an AWS CloudFormation template -func (t *Template) GetAllAWSSSMPatchBaselineResources() map[string]*AWSSSMPatchBaseline { - results := map[string]*AWSSSMPatchBaseline{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSSMPatchBaseline: - results[name] = &resource - case *AWSSSMPatchBaseline: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SSM::PatchBaseline" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSSMPatchBaseline - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSSMPatchBaselineWithName retrieves all AWSSSMPatchBaseline items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSSMPatchBaselineWithName(name string) (*AWSSSMPatchBaseline, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSSMPatchBaseline: - return &resource, nil - case *AWSSSMPatchBaseline: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SSM::PatchBaseline" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSSMPatchBaseline - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-ssm-resourcedatasync.go b/cloudformation/aws-ssm-resourcedatasync.go index 44d289e83b..2745130340 100644 --- a/cloudformation/aws-ssm-resourcedatasync.go +++ b/cloudformation/aws-ssm-resourcedatasync.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -137,63 +136,3 @@ func (r *AWSSSMResourceDataSync) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSSSMResourceDataSyncResources retrieves all AWSSSMResourceDataSync items from an AWS CloudFormation template -func (t *Template) GetAllAWSSSMResourceDataSyncResources() map[string]*AWSSSMResourceDataSync { - results := map[string]*AWSSSMResourceDataSync{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSSSMResourceDataSync: - results[name] = &resource - case *AWSSSMResourceDataSync: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SSM::ResourceDataSync" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSSMResourceDataSync - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSSSMResourceDataSyncWithName retrieves all AWSSSMResourceDataSync items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSSMResourceDataSyncWithName(name string) (*AWSSSMResourceDataSync, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSSSMResourceDataSync: - return &resource, nil - case *AWSSSMResourceDataSync: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::SSM::ResourceDataSync" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSSSMResourceDataSync - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-stepfunctions-activity.go b/cloudformation/aws-stepfunctions-activity.go index f2276836db..0d9402cc01 100644 --- a/cloudformation/aws-stepfunctions-activity.go +++ b/cloudformation/aws-stepfunctions-activity.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSStepFunctionsActivity) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSStepFunctionsActivityResources retrieves all AWSStepFunctionsActivity items from an AWS CloudFormation template -func (t *Template) GetAllAWSStepFunctionsActivityResources() map[string]*AWSStepFunctionsActivity { - results := map[string]*AWSStepFunctionsActivity{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSStepFunctionsActivity: - results[name] = &resource - case *AWSStepFunctionsActivity: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::StepFunctions::Activity" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSStepFunctionsActivity - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSStepFunctionsActivityWithName retrieves all AWSStepFunctionsActivity items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSStepFunctionsActivityWithName(name string) (*AWSStepFunctionsActivity, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSStepFunctionsActivity: - return &resource, nil - case *AWSStepFunctionsActivity: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::StepFunctions::Activity" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSStepFunctionsActivity - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-stepfunctions-statemachine.go b/cloudformation/aws-stepfunctions-statemachine.go index 0baccc0e4c..748ef1a84f 100644 --- a/cloudformation/aws-stepfunctions-statemachine.go +++ b/cloudformation/aws-stepfunctions-statemachine.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSStepFunctionsStateMachine) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSStepFunctionsStateMachineResources retrieves all AWSStepFunctionsStateMachine items from an AWS CloudFormation template -func (t *Template) GetAllAWSStepFunctionsStateMachineResources() map[string]*AWSStepFunctionsStateMachine { - results := map[string]*AWSStepFunctionsStateMachine{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSStepFunctionsStateMachine: - results[name] = &resource - case *AWSStepFunctionsStateMachine: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::StepFunctions::StateMachine" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSStepFunctionsStateMachine - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSStepFunctionsStateMachineWithName retrieves all AWSStepFunctionsStateMachine items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSStepFunctionsStateMachineWithName(name string) (*AWSStepFunctionsStateMachine, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSStepFunctionsStateMachine: - return &resource, nil - case *AWSStepFunctionsStateMachine: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::StepFunctions::StateMachine" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSStepFunctionsStateMachine - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-waf-bytematchset.go b/cloudformation/aws-waf-bytematchset.go index 185919ab59..ba7938db10 100644 --- a/cloudformation/aws-waf-bytematchset.go +++ b/cloudformation/aws-waf-bytematchset.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSWAFByteMatchSet) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSWAFByteMatchSetResources retrieves all AWSWAFByteMatchSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFByteMatchSetResources() map[string]*AWSWAFByteMatchSet { - results := map[string]*AWSWAFByteMatchSet{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSWAFByteMatchSet: - results[name] = &resource - case *AWSWAFByteMatchSet: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAF::ByteMatchSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFByteMatchSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSWAFByteMatchSetWithName retrieves all AWSWAFByteMatchSet items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFByteMatchSetWithName(name string) (*AWSWAFByteMatchSet, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSWAFByteMatchSet: - return &resource, nil - case *AWSWAFByteMatchSet: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAF::ByteMatchSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFByteMatchSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-waf-ipset.go b/cloudformation/aws-waf-ipset.go index 13c9447c1e..99145793c9 100644 --- a/cloudformation/aws-waf-ipset.go +++ b/cloudformation/aws-waf-ipset.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSWAFIPSet) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSWAFIPSetResources retrieves all AWSWAFIPSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFIPSetResources() map[string]*AWSWAFIPSet { - results := map[string]*AWSWAFIPSet{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSWAFIPSet: - results[name] = &resource - case *AWSWAFIPSet: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAF::IPSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFIPSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSWAFIPSetWithName retrieves all AWSWAFIPSet items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFIPSetWithName(name string) (*AWSWAFIPSet, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSWAFIPSet: - return &resource, nil - case *AWSWAFIPSet: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAF::IPSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFIPSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-waf-rule.go b/cloudformation/aws-waf-rule.go index 2267d714ca..e792dca1ee 100644 --- a/cloudformation/aws-waf-rule.go +++ b/cloudformation/aws-waf-rule.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSWAFRule) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSWAFRuleResources retrieves all AWSWAFRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRuleResources() map[string]*AWSWAFRule { - results := map[string]*AWSWAFRule{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSWAFRule: - results[name] = &resource - case *AWSWAFRule: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAF::Rule" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFRule - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSWAFRuleWithName retrieves all AWSWAFRule items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRuleWithName(name string) (*AWSWAFRule, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSWAFRule: - return &resource, nil - case *AWSWAFRule: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAF::Rule" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFRule - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-waf-sizeconstraintset.go b/cloudformation/aws-waf-sizeconstraintset.go index 216a6fb53d..55d1d0da9f 100644 --- a/cloudformation/aws-waf-sizeconstraintset.go +++ b/cloudformation/aws-waf-sizeconstraintset.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSWAFSizeConstraintSet) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSWAFSizeConstraintSetResources retrieves all AWSWAFSizeConstraintSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFSizeConstraintSetResources() map[string]*AWSWAFSizeConstraintSet { - results := map[string]*AWSWAFSizeConstraintSet{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSWAFSizeConstraintSet: - results[name] = &resource - case *AWSWAFSizeConstraintSet: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAF::SizeConstraintSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFSizeConstraintSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSWAFSizeConstraintSetWithName retrieves all AWSWAFSizeConstraintSet items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFSizeConstraintSetWithName(name string) (*AWSWAFSizeConstraintSet, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSWAFSizeConstraintSet: - return &resource, nil - case *AWSWAFSizeConstraintSet: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAF::SizeConstraintSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFSizeConstraintSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-waf-sqlinjectionmatchset.go b/cloudformation/aws-waf-sqlinjectionmatchset.go index 8ecf4cabc7..5a40bdd5f6 100644 --- a/cloudformation/aws-waf-sqlinjectionmatchset.go +++ b/cloudformation/aws-waf-sqlinjectionmatchset.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSWAFSqlInjectionMatchSet) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSWAFSqlInjectionMatchSetResources retrieves all AWSWAFSqlInjectionMatchSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFSqlInjectionMatchSetResources() map[string]*AWSWAFSqlInjectionMatchSet { - results := map[string]*AWSWAFSqlInjectionMatchSet{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSWAFSqlInjectionMatchSet: - results[name] = &resource - case *AWSWAFSqlInjectionMatchSet: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAF::SqlInjectionMatchSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFSqlInjectionMatchSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSWAFSqlInjectionMatchSetWithName retrieves all AWSWAFSqlInjectionMatchSet items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFSqlInjectionMatchSetWithName(name string) (*AWSWAFSqlInjectionMatchSet, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSWAFSqlInjectionMatchSet: - return &resource, nil - case *AWSWAFSqlInjectionMatchSet: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAF::SqlInjectionMatchSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFSqlInjectionMatchSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-waf-webacl.go b/cloudformation/aws-waf-webacl.go index 6a6f099044..2a52bb77ff 100644 --- a/cloudformation/aws-waf-webacl.go +++ b/cloudformation/aws-waf-webacl.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSWAFWebACL) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSWAFWebACLResources retrieves all AWSWAFWebACL items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFWebACLResources() map[string]*AWSWAFWebACL { - results := map[string]*AWSWAFWebACL{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSWAFWebACL: - results[name] = &resource - case *AWSWAFWebACL: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAF::WebACL" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFWebACL - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSWAFWebACLWithName retrieves all AWSWAFWebACL items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFWebACLWithName(name string) (*AWSWAFWebACL, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSWAFWebACL: - return &resource, nil - case *AWSWAFWebACL: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAF::WebACL" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFWebACL - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-waf-xssmatchset.go b/cloudformation/aws-waf-xssmatchset.go index b3f11658f7..f775dbb608 100644 --- a/cloudformation/aws-waf-xssmatchset.go +++ b/cloudformation/aws-waf-xssmatchset.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSWAFXssMatchSet) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSWAFXssMatchSetResources retrieves all AWSWAFXssMatchSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFXssMatchSetResources() map[string]*AWSWAFXssMatchSet { - results := map[string]*AWSWAFXssMatchSet{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSWAFXssMatchSet: - results[name] = &resource - case *AWSWAFXssMatchSet: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAF::XssMatchSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFXssMatchSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSWAFXssMatchSetWithName retrieves all AWSWAFXssMatchSet items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFXssMatchSetWithName(name string) (*AWSWAFXssMatchSet, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSWAFXssMatchSet: - return &resource, nil - case *AWSWAFXssMatchSet: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAF::XssMatchSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFXssMatchSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-wafregional-bytematchset.go b/cloudformation/aws-wafregional-bytematchset.go index 90836857cb..5eca8d29c7 100644 --- a/cloudformation/aws-wafregional-bytematchset.go +++ b/cloudformation/aws-wafregional-bytematchset.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSWAFRegionalByteMatchSet) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSWAFRegionalByteMatchSetResources retrieves all AWSWAFRegionalByteMatchSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalByteMatchSetResources() map[string]*AWSWAFRegionalByteMatchSet { - results := map[string]*AWSWAFRegionalByteMatchSet{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSWAFRegionalByteMatchSet: - results[name] = &resource - case *AWSWAFRegionalByteMatchSet: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAFRegional::ByteMatchSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFRegionalByteMatchSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSWAFRegionalByteMatchSetWithName retrieves all AWSWAFRegionalByteMatchSet items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalByteMatchSetWithName(name string) (*AWSWAFRegionalByteMatchSet, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSWAFRegionalByteMatchSet: - return &resource, nil - case *AWSWAFRegionalByteMatchSet: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAFRegional::ByteMatchSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFRegionalByteMatchSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-wafregional-ipset.go b/cloudformation/aws-wafregional-ipset.go index 5e67da6bcf..fde487e499 100644 --- a/cloudformation/aws-wafregional-ipset.go +++ b/cloudformation/aws-wafregional-ipset.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSWAFRegionalIPSet) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSWAFRegionalIPSetResources retrieves all AWSWAFRegionalIPSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalIPSetResources() map[string]*AWSWAFRegionalIPSet { - results := map[string]*AWSWAFRegionalIPSet{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSWAFRegionalIPSet: - results[name] = &resource - case *AWSWAFRegionalIPSet: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAFRegional::IPSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFRegionalIPSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSWAFRegionalIPSetWithName retrieves all AWSWAFRegionalIPSet items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalIPSetWithName(name string) (*AWSWAFRegionalIPSet, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSWAFRegionalIPSet: - return &resource, nil - case *AWSWAFRegionalIPSet: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAFRegional::IPSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFRegionalIPSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-wafregional-rule.go b/cloudformation/aws-wafregional-rule.go index 11d3852d9c..2b396f3257 100644 --- a/cloudformation/aws-wafregional-rule.go +++ b/cloudformation/aws-wafregional-rule.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -122,63 +121,3 @@ func (r *AWSWAFRegionalRule) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSWAFRegionalRuleResources retrieves all AWSWAFRegionalRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalRuleResources() map[string]*AWSWAFRegionalRule { - results := map[string]*AWSWAFRegionalRule{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSWAFRegionalRule: - results[name] = &resource - case *AWSWAFRegionalRule: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAFRegional::Rule" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFRegionalRule - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSWAFRegionalRuleWithName retrieves all AWSWAFRegionalRule items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalRuleWithName(name string) (*AWSWAFRegionalRule, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSWAFRegionalRule: - return &resource, nil - case *AWSWAFRegionalRule: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAFRegional::Rule" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFRegionalRule - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-wafregional-sizeconstraintset.go b/cloudformation/aws-wafregional-sizeconstraintset.go index 2b91695f75..7e2bbb3d36 100644 --- a/cloudformation/aws-wafregional-sizeconstraintset.go +++ b/cloudformation/aws-wafregional-sizeconstraintset.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSWAFRegionalSizeConstraintSet) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSWAFRegionalSizeConstraintSetResources retrieves all AWSWAFRegionalSizeConstraintSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalSizeConstraintSetResources() map[string]*AWSWAFRegionalSizeConstraintSet { - results := map[string]*AWSWAFRegionalSizeConstraintSet{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSWAFRegionalSizeConstraintSet: - results[name] = &resource - case *AWSWAFRegionalSizeConstraintSet: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAFRegional::SizeConstraintSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFRegionalSizeConstraintSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSWAFRegionalSizeConstraintSetWithName retrieves all AWSWAFRegionalSizeConstraintSet items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalSizeConstraintSetWithName(name string) (*AWSWAFRegionalSizeConstraintSet, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSWAFRegionalSizeConstraintSet: - return &resource, nil - case *AWSWAFRegionalSizeConstraintSet: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAFRegional::SizeConstraintSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFRegionalSizeConstraintSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-wafregional-sqlinjectionmatchset.go b/cloudformation/aws-wafregional-sqlinjectionmatchset.go index a240656ff6..0d2a4433f6 100644 --- a/cloudformation/aws-wafregional-sqlinjectionmatchset.go +++ b/cloudformation/aws-wafregional-sqlinjectionmatchset.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSWAFRegionalSqlInjectionMatchSet) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSWAFRegionalSqlInjectionMatchSetResources retrieves all AWSWAFRegionalSqlInjectionMatchSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalSqlInjectionMatchSetResources() map[string]*AWSWAFRegionalSqlInjectionMatchSet { - results := map[string]*AWSWAFRegionalSqlInjectionMatchSet{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSWAFRegionalSqlInjectionMatchSet: - results[name] = &resource - case *AWSWAFRegionalSqlInjectionMatchSet: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAFRegional::SqlInjectionMatchSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFRegionalSqlInjectionMatchSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSWAFRegionalSqlInjectionMatchSetWithName retrieves all AWSWAFRegionalSqlInjectionMatchSet items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalSqlInjectionMatchSetWithName(name string) (*AWSWAFRegionalSqlInjectionMatchSet, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSWAFRegionalSqlInjectionMatchSet: - return &resource, nil - case *AWSWAFRegionalSqlInjectionMatchSet: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAFRegional::SqlInjectionMatchSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFRegionalSqlInjectionMatchSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-wafregional-webacl.go b/cloudformation/aws-wafregional-webacl.go index b3ec017752..f3c0b4e843 100644 --- a/cloudformation/aws-wafregional-webacl.go +++ b/cloudformation/aws-wafregional-webacl.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -127,63 +126,3 @@ func (r *AWSWAFRegionalWebACL) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSWAFRegionalWebACLResources retrieves all AWSWAFRegionalWebACL items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalWebACLResources() map[string]*AWSWAFRegionalWebACL { - results := map[string]*AWSWAFRegionalWebACL{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSWAFRegionalWebACL: - results[name] = &resource - case *AWSWAFRegionalWebACL: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAFRegional::WebACL" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFRegionalWebACL - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSWAFRegionalWebACLWithName retrieves all AWSWAFRegionalWebACL items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalWebACLWithName(name string) (*AWSWAFRegionalWebACL, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSWAFRegionalWebACL: - return &resource, nil - case *AWSWAFRegionalWebACL: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAFRegional::WebACL" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFRegionalWebACL - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-wafregional-webaclassociation.go b/cloudformation/aws-wafregional-webaclassociation.go index 617852a6c9..aff7410980 100644 --- a/cloudformation/aws-wafregional-webaclassociation.go +++ b/cloudformation/aws-wafregional-webaclassociation.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSWAFRegionalWebACLAssociation) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSWAFRegionalWebACLAssociationResources retrieves all AWSWAFRegionalWebACLAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalWebACLAssociationResources() map[string]*AWSWAFRegionalWebACLAssociation { - results := map[string]*AWSWAFRegionalWebACLAssociation{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSWAFRegionalWebACLAssociation: - results[name] = &resource - case *AWSWAFRegionalWebACLAssociation: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAFRegional::WebACLAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFRegionalWebACLAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSWAFRegionalWebACLAssociationWithName retrieves all AWSWAFRegionalWebACLAssociation items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalWebACLAssociationWithName(name string) (*AWSWAFRegionalWebACLAssociation, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSWAFRegionalWebACLAssociation: - return &resource, nil - case *AWSWAFRegionalWebACLAssociation: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAFRegional::WebACLAssociation" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFRegionalWebACLAssociation - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-wafregional-xssmatchset.go b/cloudformation/aws-wafregional-xssmatchset.go index 98ccd2fdae..4345852ad9 100644 --- a/cloudformation/aws-wafregional-xssmatchset.go +++ b/cloudformation/aws-wafregional-xssmatchset.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -117,63 +116,3 @@ func (r *AWSWAFRegionalXssMatchSet) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSWAFRegionalXssMatchSetResources retrieves all AWSWAFRegionalXssMatchSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalXssMatchSetResources() map[string]*AWSWAFRegionalXssMatchSet { - results := map[string]*AWSWAFRegionalXssMatchSet{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSWAFRegionalXssMatchSet: - results[name] = &resource - case *AWSWAFRegionalXssMatchSet: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAFRegional::XssMatchSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFRegionalXssMatchSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSWAFRegionalXssMatchSetWithName retrieves all AWSWAFRegionalXssMatchSet items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalXssMatchSetWithName(name string) (*AWSWAFRegionalXssMatchSet, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSWAFRegionalXssMatchSet: - return &resource, nil - case *AWSWAFRegionalXssMatchSet: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WAFRegional::XssMatchSet" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWAFRegionalXssMatchSet - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/aws-workspaces-workspace.go b/cloudformation/aws-workspaces-workspace.go index 18eceade8a..ea3d9da975 100644 --- a/cloudformation/aws-workspaces-workspace.go +++ b/cloudformation/aws-workspaces-workspace.go @@ -3,7 +3,6 @@ package cloudformation import ( "bytes" "encoding/json" - "errors" "fmt" ) @@ -147,63 +146,3 @@ func (r *AWSWorkSpacesWorkspace) UnmarshalJSON(b []byte) error { return nil } - -// GetAllAWSWorkSpacesWorkspaceResources retrieves all AWSWorkSpacesWorkspace items from an AWS CloudFormation template -func (t *Template) GetAllAWSWorkSpacesWorkspaceResources() map[string]*AWSWorkSpacesWorkspace { - results := map[string]*AWSWorkSpacesWorkspace{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case AWSWorkSpacesWorkspace: - results[name] = &resource - case *AWSWorkSpacesWorkspace: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WorkSpaces::Workspace" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWorkSpacesWorkspace - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// GetAWSWorkSpacesWorkspaceWithName retrieves all AWSWorkSpacesWorkspace items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWorkSpacesWorkspaceWithName(name string) (*AWSWorkSpacesWorkspace, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case AWSWorkSpacesWorkspace: - return &resource, nil - case *AWSWorkSpacesWorkspace: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "AWS::WorkSpaces::Workspace" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result AWSWorkSpacesWorkspace - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} diff --git a/cloudformation/policies_test.go b/cloudformation/policies_test.go index 5611f74be2..f3619b662f 100644 --- a/cloudformation/policies_test.go +++ b/cloudformation/policies_test.go @@ -97,7 +97,7 @@ var _ = Describe("Goformation", func() { asg.SetUpdatePolicy(test.Input) template := &cloudformation.Template{ - Resources: map[string]interface{}{"AutoScalingGroup": asg}, + Resources: cloudformation.Resources{"AutoScalingGroup": &asg}, } data, err := template.JSON() @@ -163,7 +163,7 @@ var _ = Describe("Goformation", func() { asg.SetCreationPolicy(test.Input) template := &cloudformation.Template{ - Resources: map[string]interface{}{"AutoScalingGroup": asg}, + Resources: cloudformation.Resources{"AutoScalingGroup": &asg}, } data, err := template.JSON() @@ -223,7 +223,7 @@ var _ = Describe("Goformation", func() { asg.SetDeletionPolicy(test.Input) template := &cloudformation.Template{ - Resources: map[string]interface{}{"AutoScalingGroup": asg}, + Resources: cloudformation.Resources{"AutoScalingGroup": &asg}, } data, err := template.JSON() diff --git a/cloudformation/template.go b/cloudformation/template.go index 1627fbcf0d..ca1e6e24bc 100644 --- a/cloudformation/template.go +++ b/cloudformation/template.go @@ -2,6 +2,7 @@ package cloudformation import ( "encoding/json" + "fmt" "github.com/awslabs/goformation/intrinsics" "github.com/sanathkr/yaml" @@ -17,10 +18,64 @@ type Template struct { Parameters map[string]interface{} `json:"Parameters,omitempty"` Mappings map[string]interface{} `json:"Mappings,omitempty"` Conditions map[string]interface{} `json:"Conditions,omitempty"` - Resources map[string]interface{} `json:"Resources,omitempty"` + Resources Resources `json:"Resources,omitempty"` Outputs map[string]interface{} `json:"Outputs,omitempty"` } +type Resource interface { + AWSCloudFormationType() string +} + +type Resources map[string]Resource + +func (resources *Resources) UnmarshalJSON(b []byte) error { + // Resources + var rawResources map[string]*json.RawMessage + err := json.Unmarshal(b, &rawResources) + + if err != nil { + return err + } + + newResources := Resources{} + for name, raw := range rawResources { + res, err := unmarshallResource(name, raw) + if err != nil { + return err + } + newResources[name] = res + } + + *resources = newResources + return nil +} + +func unmarshallResource(name string, raw_json *json.RawMessage) (Resource, error) { + var err error + + type rType struct { + Type string + } + + var rtype rType + if err = json.Unmarshal(*raw_json, &rtype); err != nil { + return nil, err + } + + if rtype.Type == "" { + return nil, fmt.Errorf("Cannot find Type for %v", name) + } + + resourceStruct := AllResources()[rtype.Type] + err = json.Unmarshal(*raw_json, resourceStruct) + + if err != nil { + return nil, err + } + + return resourceStruct, nil +} + type Transform struct { String *string @@ -70,7 +125,7 @@ func NewTemplate() *Template { Parameters: map[string]interface{}{}, Mappings: map[string]interface{}{}, Conditions: map[string]interface{}{}, - Resources: map[string]interface{}{}, + Resources: Resources{}, Outputs: map[string]interface{}{}, } } diff --git a/generate/templates/all.template b/generate/templates/all.template index 941a7c4880..53a34725c5 100644 --- a/generate/templates/all.template +++ b/generate/templates/all.template @@ -1,8 +1,40 @@ package cloudformation +import ( + "fmt" +) + // AllResources fetches an iterable map all CloudFormation and SAM resources -func AllResources() map[string]interface{} { - return map[string]interface{}{ {{range $name, $resource := .Resources}} - "{{$name}}": {{$resource}}{},{{end}} +func AllResources() map[string]Resource { + return map[string]Resource{ {{range $name, $resource := .Resources}} + "{{$name}}": &{{$resource}}{},{{end}} } } + + +{{range $name, $resource := .Resources}} +// GetAll{{$resource}}Resources retrieves all {{$resource}} items from an AWS CloudFormation template +func (t *Template) GetAll{{$resource}}Resources () map[string]*{{$resource}} { + results := map[string]*{{$resource}}{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *{{$resource}}: + results[name] = resource + } + } + return results +} + +// Get{{$resource}}WithName retrieves all {{$resource}} items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) Get{{$resource}}WithName (name string) (*{{$resource}}, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *{{$resource}}: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type {{$resource}} not found", name) +} + +{{end}} \ No newline at end of file diff --git a/generate/templates/resource.template b/generate/templates/resource.template index 5fab624dc8..fe683178eb 100644 --- a/generate/templates/resource.template +++ b/generate/templates/resource.template @@ -4,10 +4,10 @@ package cloudformation import ( "encoding/json" "fmt" - "errors" "bytes" ) {{end}} + // {{.StructName}} AWS CloudFormation Resource ({{.Name}}) // See: {{.Resource.Documentation}} type {{.StructName}} struct { @@ -135,63 +135,4 @@ func (r *{{.StructName}}) UnmarshalJSON(b []byte) error { return nil } -// GetAll{{.StructName}}Resources retrieves all {{.StructName}} items from an AWS CloudFormation template -func (t *Template) GetAll{{.StructName}}Resources () map[string]*{{.StructName}} { - results := map[string]*{{.StructName}}{} - for name, untyped := range t.Resources { - switch resource := untyped.(type) { - case {{.StructName}}: - results[name] = &resource - case *{{.StructName}}: - // We found a strongly typed resource of the correct type; use it - results[name] = resource - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "{{.Name}}" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result {{.StructName}} - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - results[name] = &result - } - } - } - } - } - } - return results -} - -// Get{{.StructName}}WithName retrieves all {{.StructName}} items from an AWS CloudFormation template -// whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) Get{{.StructName}}WithName (name string) (*{{.StructName}}, error) { - if untyped, ok := t.Resources[name]; ok { - switch resource := untyped.(type) { - case {{.StructName}}: - return &resource, nil - case *{{.StructName}}: - // We found a strongly typed resource of the correct type; use it - return resource, nil - case map[string]interface{}: - // We found an untyped resource (likely from JSON) which *might* be - // the correct type, but we need to check it's 'Type' field - if resType, ok := resource["Type"]; ok { - if resType == "{{.Name}}" { - // The resource is correct, unmarshal it into the results - if b, err := json.Marshal(resource); err == nil { - var result {{.StructName}} - if err := json.Unmarshal(b, &result); err == nil { - t.Resources[name] = &result - return &result, nil - } - } - } - } - } - } - return nil, errors.New("resource not found") -} {{end}} diff --git a/go.mod b/go.mod index 32eccc3820..3a91898ad9 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ require ( github.com/golang/protobuf v1.2.0 // indirect github.com/imdario/mergo v0.3.6 github.com/kr/pretty v0.1.0 // indirect - github.com/mitchellh/mapstructure v1.1.0 + github.com/mitchellh/mapstructure v1.1.2 github.com/onsi/ginkgo v1.5.0 github.com/onsi/gomega v1.2.0 github.com/pmezard/go-difflib v1.0.0 // indirect diff --git a/go.sum b/go.sum index bf4da0fb4d..1889483ace 100644 --- a/go.sum +++ b/go.sum @@ -11,6 +11,8 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/mitchellh/mapstructure v1.1.0 h1:PoCJ/Ct9du6caE+91v8ov4CLjO4XEBgkPk/dF1v43eo= github.com/mitchellh/mapstructure v1.1.0/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/onsi/ginkgo v1.5.0 h1:uZr+v/TFDdYkdA+j02sPO1kA5owrfjBGCJAogfIyThE= github.com/onsi/ginkgo v1.5.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v1.2.0 h1:tQjc4uvqBp0z424R9V/S2L18penoUiwZftoY0t48IZ4= diff --git a/goformation_test.go b/goformation_test.go index dc860b3d07..b3215390f3 100644 --- a/goformation_test.go +++ b/goformation_test.go @@ -69,7 +69,7 @@ var _ = Describe("Goformation", func() { template := cloudformation.NewTemplate() - template.Resources["MySNSTopic"] = cloudformation.AWSSNSTopic{ + template.Resources["MySNSTopic"] = &cloudformation.AWSSNSTopic{ DisplayName: "test-sns-topic-display-name", TopicName: "test-sns-topic-name", Subscription: []cloudformation.AWSSNSTopic_Subscription{ @@ -80,7 +80,7 @@ var _ = Describe("Goformation", func() { }, } - template.Resources["MyRoute53HostedZone"] = cloudformation.AWSRoute53HostedZone{ + template.Resources["MyRoute53HostedZone"] = &cloudformation.AWSRoute53HostedZone{ Name: "example.com", } @@ -128,7 +128,7 @@ var _ = Describe("Goformation", func() { expected := cloudformation.NewTemplate() - expected.Resources["MySNSTopic"] = cloudformation.AWSSNSTopic{ + expected.Resources["MySNSTopic"] = &cloudformation.AWSSNSTopic{ DisplayName: "test-sns-topic-display-name", TopicName: "test-sns-topic-name", Subscription: []cloudformation.AWSSNSTopic_Subscription{ @@ -139,7 +139,7 @@ var _ = Describe("Goformation", func() { }, } - expected.Resources["MyRoute53HostedZone"] = cloudformation.AWSRoute53HostedZone{ + expected.Resources["MyRoute53HostedZone"] = &cloudformation.AWSRoute53HostedZone{ Name: "example.com", } @@ -295,8 +295,8 @@ var _ = Describe("Goformation", func() { Context("with a template defined as Go code", func() { template := &cloudformation.Template{ - Resources: map[string]interface{}{ - "MyLambdaFunction": cloudformation.AWSLambdaFunction{ + Resources: cloudformation.Resources{ + "MyLambdaFunction": &cloudformation.AWSLambdaFunction{ Handler: "nodejs6.10", }, }, @@ -324,8 +324,8 @@ var _ = Describe("Goformation", func() { Context("that has a CodeUri property set as an S3 Location", func() { template := &cloudformation.Template{ - Resources: map[string]interface{}{ - "MySAMFunction": cloudformation.AWSServerlessFunction{ + Resources: cloudformation.Resources{ + "MySAMFunction": &cloudformation.AWSServerlessFunction{ Handler: "nodejs6.10", CodeUri: &cloudformation.AWSServerlessFunction_CodeUri{ S3Location: &cloudformation.AWSServerlessFunction_S3Location{ @@ -356,8 +356,8 @@ var _ = Describe("Goformation", func() { codeuri := "./some-folder" template := &cloudformation.Template{ - Resources: map[string]interface{}{ - "MySAMFunction": cloudformation.AWSServerlessFunction{ + Resources: cloudformation.Resources{ + "MySAMFunction": &cloudformation.AWSServerlessFunction{ Handler: "nodejs6.10", CodeUri: &cloudformation.AWSServerlessFunction_CodeUri{ String: &codeuri, @@ -526,18 +526,6 @@ var _ = Describe("Goformation", func() { }) }) - Context("with a YAML template with processing disabled", func() { - - template, err := goformation.OpenWithOptions("test/yaml/aws-serverless-function-env-vars.yaml", &intrinsics.ProcessorOptions{ - NoProcess: true, - }) - - It("should successfully validate the SAM template", func() { - Expect(err).To(BeNil()) - Expect(template).ShouldNot(BeNil()) - }) - }) - Context("with a SNS event source", func() { event := cloudformation.AWSServerlessFunction_Properties{ SNSEvent: &cloudformation.AWSServerlessFunction_SNSEvent{ @@ -568,11 +556,11 @@ var _ = Describe("Goformation", func() { Context("with a template that contains a reference to another resource within the template", func() { template := &cloudformation.Template{ - Resources: map[string]interface{}{ - "TestBucket": cloudformation.AWSS3Bucket{ + Resources: cloudformation.Resources{ + "TestBucket": &cloudformation.AWSS3Bucket{ BucketName: "test-bucket", }, - "TestBucketPolicy": cloudformation.AWSS3BucketPolicy{ + "TestBucketPolicy": &cloudformation.AWSS3BucketPolicy{ Bucket: cloudformation.Ref("TestBucket"), }, }, @@ -770,22 +758,17 @@ var _ = Describe("Goformation", func() { It(test.Name+" should have the correct values", func() { template := &cloudformation.Template{ - Resources: map[string]interface{}{ - "Intrinsic_" + test.Name: test.Input, - }, + Description: test.Input, } data, _ := template.JSON() var result map[string]interface{} json.Unmarshal(data, &result) - resources, ok := result["Resources"].(map[string]interface{}) - Expect(ok).To(BeTrue()) - - intr, ok := resources["Intrinsic_"+test.Name].(map[string]interface{}) + desc, ok := result["Description"].(map[string]interface{}) Expect(ok).To(BeTrue()) - Expect(intr).To(HaveLen(1)) - Expect(intr).To(BeEquivalentTo(test.Expected)) + Expect(desc).To(HaveLen(1)) + Expect(desc).To(BeEquivalentTo(test.Expected)) }) } @@ -795,8 +778,8 @@ var _ = Describe("Goformation", func() { Context("with a template that contains nested intrinsics", func() { template := &cloudformation.Template{ - Resources: map[string]interface{}{ - "TestBucket": cloudformation.AWSS3Bucket{ + Resources: cloudformation.Resources{ + "TestBucket": &cloudformation.AWSS3Bucket{ BucketName: cloudformation.Join("/", []string{ cloudformation.Join("-", []string{"test", "bucket"}), }), @@ -856,11 +839,11 @@ var _ = Describe("Goformation", func() { Context("with a template that contains a Fn::GetAtt reference to another resource within the template", func() { template := &cloudformation.Template{ - Resources: map[string]interface{}{ - "TestBucket": cloudformation.AWSS3Bucket{ + Resources: cloudformation.Resources{ + "TestBucket": &cloudformation.AWSS3Bucket{ BucketName: "test-bucket", }, - "TestBucketPolicy": cloudformation.AWSS3BucketPolicy{ + "TestBucketPolicy": &cloudformation.AWSS3BucketPolicy{ Bucket: cloudformation.GetAtt("TestBucket", "WebsiteURL"), }, }, diff --git a/intrinsics/intrinsics_test.go b/intrinsics/intrinsics_test.go index cde6c7037d..a1cfa25c7f 100644 --- a/intrinsics/intrinsics_test.go +++ b/intrinsics/intrinsics_test.go @@ -166,10 +166,10 @@ var _ = Describe("AWS CloudFormation intrinsic function processing", func() { "ExampleResource": { "Type": "AWS::Example::Resource", "Properties": { - "AZEmpty": { "Fn::GetAZs": "" }, - "AZDefault": { "Fn::GetAZs": { "Ref": "AWS::Region" } }, - "AZParam": { "Fn::GetAZs": "eu-west-1" }, - "FirstAZ": { + "AZEmpty": { "Fn::GetAZs": "" }, + "AZDefault": { "Fn::GetAZs": { "Ref": "AWS::Region" } }, + "AZParam": { "Fn::GetAZs": "eu-west-1" }, + "FirstAZ": { "Fn::Select" : [ "0", { "Fn::GetAZs" : "eu-central-1" } ] } } @@ -315,11 +315,11 @@ var _ = Describe("AWS CloudFormation intrinsic function processing", func() { "ExampleResource": { "Type": "AWS::Example::Resource", "Properties": { - "StringProperty": "Simple string example", + "StringProperty": "Simple string example", "BooleanProperty": true, "NumberProperty": 123.45, - "JoinIntrinsicPropertyString": { "Fn::Join": [ "some", "name" ] }, - "JoinIntrinsicPropertyArray": { "Fn::Join": [ "-", [ "some", "hyphenated", "name" ] ] }, + "JoinIntrinsicPropertyString": { "Fn::Join": [ "some", "name" ] }, + "JoinIntrinsicPropertyArray": { "Fn::Join": [ "-", [ "some", "hyphenated", "name" ] ] }, "JoinNestedIntrinsicProperty": { "Fn::Join": [ "some", { "Fn::Join": [ "joined", "value" ] } ] }, "SubIntrinsicProperty": { "Fn::Sub": [ "some ${replaced}", { "replaced": "value" } ] }, "SplitIntrinsicProperty": { "Fn::Split" : [ ",", "some,string,to,be,split" ] }, @@ -331,7 +331,7 @@ var _ = Describe("AWS CloudFormation intrinsic function processing", func() { "RefNoValue": { "Ref": "AWS::NoValue" }, "RefAWSRegion": { "Ref": "AWS::Region" }, "RefAWSStackId": { "Ref": "AWS::StackId" }, - "RefAWSStackName": { "Ref": "AWS::StackName" } + "RefAWSStackName": { "Ref": "AWS::StackName" } } } } @@ -549,10 +549,10 @@ var _ = Describe("AWS CloudFormation intrinsic function processing", func() { "ExampleResource": { "Type": "AWS::Example::Resource", "Properties": { - "EqProp": { "Fn::If": [ "Eq", "OK", "false" ] }, - "Bucket": { "Fn::If": [ "UseBucketCondition", "Bucket", "NotBucket" ] }, + "EqProp": { "Fn::If": [ "Eq", "OK", "false" ] }, + "Bucket": { "Fn::If": [ "UseBucketCondition", "Bucket", "NotBucket" ] }, "NotProp": { "Fn::If": [ "NotInline", "false", "OK" ] }, - "NonExistant": { "Fn::If": [ "NonExistant", "false", "OK" ] } + "NonExistant": { "Fn::If": [ "NonExistant", "false", "OK" ] } } } } diff --git a/test/yaml/sam-official-samples/encryption_proxy/template.yaml b/test/yaml/sam-official-samples/encryption_proxy/template.yaml index dc7bd9c05c..f0f584e8d8 100644 --- a/test/yaml/sam-official-samples/encryption_proxy/template.yaml +++ b/test/yaml/sam-official-samples/encryption_proxy/template.yaml @@ -1,129 +1,104 @@ -AWSTemplateFormatVersion: "2010-09-09" -Description: | - This SAM example creates the following resources: - - Encryption Proxy: Comprised of Encryption and Decryption Lambda functions + IAM Roles - KMS Key: KMS Key and encrypt/decrypt permission for each IAM Role separately - - Last Modified: 22nd November 2016 Author: Heitor Lessa -Outputs: - DecryptFunction: - Description: "Decryption Lambda Function ARN" - Value: DecryptionFunction.Arn - DecryptURL: - Description: "Decrypt endpoint URL for Stage environment" - Value: "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Stage/decrypt" - EncryptFunction: - Description: "Encryption Lambda Function ARN" - Value: EncryptionFunction.Arn - EncryptURL: - Description: "Encrypt endpoint URL for Stage environment" - Value: "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Stage/encrypt" -Resources: - EncryptionDecryptionKey: - Properties: - Description: "Encryption and Decryption key for Lambda" - KeyPolicy: - Id: LambdaEncDec - Statement: - - - Action: - - "kms:Create*" - - "kms:Describe*" - - "kms:Enable*" - - "kms:List*" - - "kms:Put*" - - "kms:Update*" - - "kms:Revoke*" - - "kms:Disable*" - - "kms:Get*" - - "kms:Delete*" - - "kms:ScheduleKeyDeletion" - - "kms:CancelKeyDeletion" - Effect: Allow - Principal: - AWS: "AWS::AccountId" - Resource: "*" - Sid: "Allow administration of the key" - - - Action: - - "kms:Encrypt" - Effect: Allow - Principal: - AWS: EncryptionServiceIAMRole.Arn - Resource: "*" - Sid: "Allow Encryption Service to use this key" - - - Action: - - "kms:Decrypt" - Effect: Allow - Principal: - AWS: DecryptionServiceIAMRole.Arn - Resource: "*" - Sid: "Allow Decryption Service to use this key" - Version: "2012-10-17" - Type: "AWS::KMS::Key" - EncryptionServiceIAMRole: - DecryptionFunction: - Properties: - CodeUri: "s3:///encryption_proxy.zip" - Events: - decryptAction: - Properties: - Method: post - Path: /decrypt +AWSTemplateFormatVersion: '2010-09-09' +Transform: 'AWS::Serverless-2016-10-31' +Description: > + + This SAM example creates the following resources: + + Encryption Proxy: Comprised of Encryption and Decryption Lambda functions + IAM Roles + KMS Key: KMS Key and encrypt/decrypt permission for each IAM Role separately + + Last Modified: March 22nd November 2018 + Author: Heitor Lessa + +Outputs: + + EncryptURL: + Description: "Encrypt endpoint URL for Stage environment" + Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Stage/encrypt" + + DecryptURL: + Description: "Decrypt endpoint URL for Stage environment" + Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Stage/decrypt" + + EncryptFunction: + Description: "Encryption Lambda Function ARN" + Value: !GetAtt EncryptionFunction.Arn + + DecryptFunction: + Description: "Decryption Lambda Function ARN" + Value: !GetAtt DecryptionFunction.Arn + +Resources: + EncryptionDecryptionKey: + Type: AWS::KMS::Key + Properties: + Description: "Encryption and Decryption key for Lambda" + KeyPolicy: + Id: "LambdaEncDec" + Version: "2012-10-17" + Statement: + - + Sid: "Allow administration of the key" + Effect: "Allow" + Action: + - "kms:Create*" + - "kms:Describe*" + - "kms:Enable*" + - "kms:List*" + - "kms:Put*" + - "kms:Update*" + - "kms:Revoke*" + - "kms:Disable*" + - "kms:Get*" + - "kms:Delete*" + - "kms:ScheduleKeyDeletion" + - "kms:CancelKeyDeletion" + Principal: + AWS: !Ref AWS::AccountId + Resource: '*' + - + Sid: "Allow Encryption Service to use this key" + Effect: "Allow" + Action: + - "kms:Encrypt" + Principal: + AWS: !GetAtt EncryptionFunctionRole.Arn + Resource: '*' + - + Sid: "Allow Decryption Service to use this key" + Effect: "Allow" + Action: + - "kms:Decrypt" + Principal: + AWS: !GetAtt DecryptionFunctionRole.Arn + Resource: '*' + + + EncryptionFunction: + Type: 'AWS::Serverless::Function' + Properties: + Handler: encryption.post + Runtime: python2.7 + CodeUri: src/ + Events: + encryptAction: Type: Api + Properties: + Path: /encrypt + Method: post + Environment: + Variables: + keyId: !Ref EncryptionDecryptionKey + + DecryptionFunction: + Type: 'AWS::Serverless::Function' + Properties: Handler: decryption.post - Role: DecryptionServiceIAMRole.Arn Runtime: python2.7 - Type: "AWS::Serverless::Function" - DecryptionServiceIAMRole: - Properties: - AssumeRolePolicyDocument: - Statement: - - - Action: - - "sts:AssumeRole" - Effect: Allow - Principal: - Service: - - lambda.amazonaws.com - Sid: AllowLambdaServiceToAssumeRole - Version: "2012-10-17" - ManagedPolicyArns: - - "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - Path: / - Type: "AWS::IAM::Role" - EncryptionFunction: - Properties: - CodeUri: "s3:///encryption_proxy.zip" - Environment: - Variables: - keyId: EncryptionDecryptionKey - Events: - encryptAction: - Properties: - Method: post - Path: /encrypt + CodeUri: src/ + Events: + decryptAction: Type: Api - Handler: encryption.post - Role: EncryptionServiceIAMRole.Arn - Runtime: python2.7 - Type: "AWS::Serverless::Function" - Properties: - AssumeRolePolicyDocument: - Statement: - - - Action: - - "sts:AssumeRole" - Effect: Allow - Principal: - Service: - - lambda.amazonaws.com - Sid: AllowLambdaServiceToAssumeRole - Version: "2012-10-17" - ManagedPolicyArns: - - "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - Path: / - Type: "AWS::IAM::Role" -Transform: "AWS::Serverless-2016-10-31" + Properties: + Path: /decrypt + Method: post \ No newline at end of file diff --git a/test/yaml/sam-official-samples/s3_processor/template.yaml b/test/yaml/sam-official-samples/s3_processor/template.yaml index 5ff7aa2c29..3037d1acef 100644 --- a/test/yaml/sam-official-samples/s3_processor/template.yaml +++ b/test/yaml/sam-official-samples/s3_processor/template.yaml @@ -6,8 +6,8 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: index.handler - Runtime: nodejs4.3 - CodeUri: s3:///s3_processor.zip + Runtime: nodejs6.10 + CodeUri: src/ Policies: AmazonS3ReadOnlyAccess Events: PhotoUpload: @@ -15,8 +15,10 @@ Resources: Properties: Bucket: !Ref Bucket Events: s3:ObjectCreated:* - Bucket: Type: AWS::S3::Bucket - Properties: - BucketName: Test \ No newline at end of file + +Outputs: + S3Bucket: + Description: "S3 Bucket name that will trigger a Lambda function upon new objects insertion" + Value: !Ref Bucket \ No newline at end of file diff --git a/vendor/github.com/mitchellh/mapstructure/.travis.yml b/vendor/github.com/mitchellh/mapstructure/.travis.yml index d9deadb86d..1689c7d735 100644 --- a/vendor/github.com/mitchellh/mapstructure/.travis.yml +++ b/vendor/github.com/mitchellh/mapstructure/.travis.yml @@ -1,7 +1,7 @@ language: go go: - - 1.9.x + - "1.11.x" - tip script: diff --git a/vendor/github.com/mitchellh/mapstructure/CHANGELOG.md b/vendor/github.com/mitchellh/mapstructure/CHANGELOG.md index fb0f46c84b..3b3cb723f8 100644 --- a/vendor/github.com/mitchellh/mapstructure/CHANGELOG.md +++ b/vendor/github.com/mitchellh/mapstructure/CHANGELOG.md @@ -1,4 +1,13 @@ -## 1.1.0 (September 30, 2018) +## 1.1.2 + +* Fix error when decode hook decodes interface implementation into interface + type. [GH-140] + +## 1.1.1 + +* Fix panic that can happen in `decodePtr` + +## 1.1.0 * Added `StringToIPHookFunc` to convert `string` to `net.IP` and `net.IPNet` [GH-133] * Support struct to struct decoding [GH-137] diff --git a/vendor/github.com/mitchellh/mapstructure/mapstructure.go b/vendor/github.com/mitchellh/mapstructure/mapstructure.go index 32eb9a682a..256ee63fbf 100644 --- a/vendor/github.com/mitchellh/mapstructure/mapstructure.go +++ b/vendor/github.com/mitchellh/mapstructure/mapstructure.go @@ -316,7 +316,16 @@ func (d *Decoder) decodeBasic(name string, data interface{}, val reflect.Value) if val.IsValid() && val.Elem().IsValid() { return d.decode(name, data, val.Elem()) } - dataVal := reflect.Indirect(reflect.ValueOf(data)) + + dataVal := reflect.ValueOf(data) + + // If the input data is a pointer, and the assigned type is the dereference + // of that exact pointer, then indirect it so that we can assign it. + // Example: *string to string + if dataVal.Kind() == reflect.Ptr && dataVal.Type().Elem() == val.Type() { + dataVal = reflect.Indirect(dataVal) + } + if !dataVal.IsValid() { dataVal = reflect.Zero(val.Type()) } @@ -732,7 +741,19 @@ func (d *Decoder) decodeMapFromStruct(name string, dataVal reflect.Value, val re func (d *Decoder) decodePtr(name string, data interface{}, val reflect.Value) error { // If the input data is nil, then we want to just set the output // pointer to be nil as well. - if data == nil || reflect.Indirect(reflect.ValueOf(data)).IsNil() { + isNil := data == nil + if !isNil { + switch v := reflect.Indirect(reflect.ValueOf(data)); v.Kind() { + case reflect.Chan, + reflect.Func, + reflect.Interface, + reflect.Map, + reflect.Ptr, + reflect.Slice: + isNil = v.IsNil() + } + } + if isNil { if !val.IsNil() && val.CanSet() { nilValue := reflect.New(val.Type()).Elem() val.Set(nilValue) diff --git a/vendor/modules.txt b/vendor/modules.txt index e3d100f16f..55f4b24eb7 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1,6 +1,6 @@ # github.com/imdario/mergo v0.3.6 github.com/imdario/mergo -# github.com/mitchellh/mapstructure v1.1.0 +# github.com/mitchellh/mapstructure v1.1.2 github.com/mitchellh/mapstructure # github.com/onsi/ginkgo v1.5.0 github.com/onsi/ginkgo From 4cf1bee97f9355222eff8312e2b4a405562bf4be Mon Sep 17 00:00:00 2001 From: Graham Jenson Date: Sun, 10 Mar 2019 07:08:22 +0000 Subject: [PATCH 14/37] fix(spec): corrected AWS::Serverless::Api.Auth.Authorizers to be of type JSON rather than string (#164) --- generate/sam-2016-10-31.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generate/sam-2016-10-31.json b/generate/sam-2016-10-31.json index aa0d482bff..97def62583 100644 --- a/generate/sam-2016-10-31.json +++ b/generate/sam-2016-10-31.json @@ -752,7 +752,7 @@ "Authorizers": { "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api-auth-object", "Required": false, - "PrimitiveType": "String", + "PrimitiveType": "Json", "UpdateType": "Immutable" } } From 651d072cf33f7b7468623a7206f176ca5be9ed2c Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 10 Mar 2019 07:09:54 +0000 Subject: [PATCH 15/37] chore(release): 1.4.1 [skip ci] ## [1.4.1](https://github.com/awslabs/goformation/compare/v1.4.0...v1.4.1) (2019-03-10) ### Bug Fixes * **spec:** corrected AWS::Serverless::Api.Auth.Authorizers to be of type JSON rather than string ([#164](https://github.com/awslabs/goformation/issues/164)) ([4cf1bee](https://github.com/awslabs/goformation/commit/4cf1bee)) --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7fa1e91f6e..c55ae04ac8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Semantic Versioning Changelog +## [1.4.1](https://github.com/awslabs/goformation/compare/v1.4.0...v1.4.1) (2019-03-10) + + +### Bug Fixes + +* **spec:** corrected AWS::Serverless::Api.Auth.Authorizers to be of type JSON rather than string ([#164](https://github.com/awslabs/goformation/issues/164)) ([4cf1bee](https://github.com/awslabs/goformation/commit/4cf1bee)) + # [1.4.0](https://github.com/awslabs/goformation/compare/v1.3.0...v1.4.0) (2019-03-09) From 03a0123fb311f946c628403b6e6b79528a92b912 Mon Sep 17 00:00:00 2001 From: Graham Jenson Date: Sun, 10 Mar 2019 10:46:24 +0000 Subject: [PATCH 16/37] refactor(generator): moving resources and policies into their own packages (#161) BREAKING CHANGE: this PR refactors the auto-generated CloudFormation resources out of the cloudformation package and into a dedicated package (resources). This helps keep the auto generated files separate from others. E.g. cloudformation.AWSSnsTopic{} becomes resources.AWSSnsTopic{} --- README.md | 27 +- cloudformation/all.go | 4417 +++++++++-------- ...udfront-distribution_legacycustomorigin.go | 36 - ...-cloudfront-distribution_legacys3origin.go | 21 - .../aws-ssm-patchbaseline_patchgroup.go | 11 - cloudformation/{ => policies}/policies.go | 2 +- cloudformation/policies_test.go | 36 +- .../{ => resources}/alexa-ask-skill.go | 13 +- ...a-ask-skill_authenticationconfiguration.go | 8 +- .../alexa-ask-skill_overrides.go | 8 +- .../alexa-ask-skill_skillpackage.go | 8 +- .../{ => resources}/aws-amazonmq-broker.go | 13 +- .../aws-amazonmq-broker_configurationid.go | 8 +- .../aws-amazonmq-broker_loglist.go | 8 +- .../aws-amazonmq-broker_maintenancewindow.go | 8 +- .../aws-amazonmq-broker_tagsentry.go | 8 +- .../aws-amazonmq-broker_user.go | 8 +- .../aws-amazonmq-configuration.go | 13 +- .../aws-amazonmq-configuration_tagsentry.go | 8 +- .../aws-amazonmq-configurationassociation.go | 13 +- ...onfigurationassociation_configurationid.go | 8 +- .../{ => resources}/aws-apigateway-account.go | 13 +- .../{ => resources}/aws-apigateway-apikey.go | 13 +- .../aws-apigateway-apikey_stagekey.go | 8 +- .../aws-apigateway-authorizer.go | 13 +- .../aws-apigateway-basepathmapping.go | 13 +- .../aws-apigateway-clientcertificate.go | 13 +- .../aws-apigateway-deployment.go | 13 +- ...-apigateway-deployment_accesslogsetting.go | 8 +- ...aws-apigateway-deployment_canarysetting.go | 8 +- ...way-deployment_deploymentcanarysettings.go | 8 +- ...aws-apigateway-deployment_methodsetting.go | 8 +- ...-apigateway-deployment_stagedescription.go | 8 +- .../aws-apigateway-documentationpart.go | 13 +- ...s-apigateway-documentationpart_location.go | 8 +- .../aws-apigateway-documentationversion.go | 13 +- .../aws-apigateway-domainname.go | 13 +- ...ateway-domainname_endpointconfiguration.go | 8 +- .../aws-apigateway-gatewayresponse.go | 13 +- .../{ => resources}/aws-apigateway-method.go | 13 +- .../aws-apigateway-method_integration.go | 8 +- ...s-apigateway-method_integrationresponse.go | 8 +- .../aws-apigateway-method_methodresponse.go | 8 +- .../{ => resources}/aws-apigateway-model.go | 13 +- .../aws-apigateway-requestvalidator.go | 13 +- .../aws-apigateway-resource.go | 13 +- .../{ => resources}/aws-apigateway-restapi.go | 13 +- ...pigateway-restapi_endpointconfiguration.go | 8 +- .../aws-apigateway-restapi_s3location.go | 8 +- .../{ => resources}/aws-apigateway-stage.go | 13 +- .../aws-apigateway-stage_accesslogsetting.go | 8 +- .../aws-apigateway-stage_canarysetting.go | 8 +- .../aws-apigateway-stage_methodsetting.go | 8 +- .../aws-apigateway-usageplan.go | 13 +- .../aws-apigateway-usageplan_apistage.go | 8 +- .../aws-apigateway-usageplan_quotasettings.go | 8 +- ...s-apigateway-usageplan_throttlesettings.go | 8 +- .../aws-apigateway-usageplankey.go | 13 +- .../{ => resources}/aws-apigateway-vpclink.go | 13 +- .../{ => resources}/aws-apigatewayv2-api.go | 13 +- .../aws-apigatewayv2-authorizer.go | 13 +- .../aws-apigatewayv2-deployment.go | 13 +- .../aws-apigatewayv2-integration.go | 13 +- .../aws-apigatewayv2-integrationresponse.go | 13 +- .../{ => resources}/aws-apigatewayv2-model.go | 13 +- .../{ => resources}/aws-apigatewayv2-route.go | 13 +- ...apigatewayv2-route_parameterconstraints.go | 8 +- .../aws-apigatewayv2-routeresponse.go | 13 +- ...ayv2-routeresponse_parameterconstraints.go | 8 +- .../{ => resources}/aws-apigatewayv2-stage.go | 13 +- ...ws-apigatewayv2-stage_accesslogsettings.go | 8 +- .../aws-apigatewayv2-stage_routesettings.go | 8 +- ...s-applicationautoscaling-scalabletarget.go | 13 +- ...ing-scalabletarget_scalabletargetaction.go | 8 +- ...oscaling-scalabletarget_scheduledaction.go | 8 +- ...ws-applicationautoscaling-scalingpolicy.go | 13 +- ...ingpolicy_customizedmetricspecification.go | 8 +- ...toscaling-scalingpolicy_metricdimension.go | 8 +- ...ingpolicy_predefinedmetricspecification.go | 8 +- ...utoscaling-scalingpolicy_stepadjustment.go | 8 +- ...ngpolicy_stepscalingpolicyconfiguration.go | 8 +- ...argettrackingscalingpolicyconfiguration.go | 8 +- .../aws-appstream-directoryconfig.go | 13 +- ...rectoryconfig_serviceaccountcredentials.go | 8 +- .../{ => resources}/aws-appstream-fleet.go | 13 +- .../aws-appstream-fleet_computecapacity.go | 8 +- .../aws-appstream-fleet_domainjoininfo.go | 8 +- .../aws-appstream-fleet_vpcconfig.go | 8 +- .../aws-appstream-imagebuilder.go | 13 +- ...s-appstream-imagebuilder_domainjoininfo.go | 8 +- .../aws-appstream-imagebuilder_vpcconfig.go | 8 +- .../{ => resources}/aws-appstream-stack.go | 13 +- ...aws-appstream-stack_applicationsettings.go | 8 +- .../aws-appstream-stack_storageconnector.go | 8 +- .../aws-appstream-stack_usersetting.go | 8 +- .../aws-appstream-stackfleetassociation.go | 13 +- .../aws-appstream-stackuserassociation.go | 13 +- .../{ => resources}/aws-appstream-user.go | 13 +- .../{ => resources}/aws-appsync-apikey.go | 13 +- .../{ => resources}/aws-appsync-datasource.go | 13 +- ...-appsync-datasource_authorizationconfig.go | 8 +- .../aws-appsync-datasource_awsiamconfig.go | 8 +- .../aws-appsync-datasource_dynamodbconfig.go | 8 +- ...-appsync-datasource_elasticsearchconfig.go | 8 +- .../aws-appsync-datasource_httpconfig.go | 8 +- .../aws-appsync-datasource_lambdaconfig.go | 8 +- ...ppsync-datasource_rdshttpendpointconfig.go | 8 +- ...ync-datasource_relationaldatabaseconfig.go | 8 +- .../aws-appsync-functionconfiguration.go | 13 +- .../{ => resources}/aws-appsync-graphqlapi.go | 13 +- .../aws-appsync-graphqlapi_logconfig.go | 8 +- ...-appsync-graphqlapi_openidconnectconfig.go | 8 +- .../aws-appsync-graphqlapi_userpoolconfig.go | 8 +- .../aws-appsync-graphqlschema.go | 13 +- .../{ => resources}/aws-appsync-resolver.go | 13 +- .../aws-appsync-resolver_pipelineconfig.go | 8 +- .../{ => resources}/aws-athena-namedquery.go | 13 +- .../aws-autoscaling-autoscalinggroup.go | 25 +- ...-autoscalinggroup_instancesdistribution.go | 8 +- ...scaling-autoscalinggroup_launchtemplate.go | 8 +- ...utoscalinggroup_launchtemplateoverrides.go | 8 +- ...calinggroup_launchtemplatespecification.go | 8 +- ...scalinggroup_lifecyclehookspecification.go | 8 +- ...ling-autoscalinggroup_metricscollection.go | 8 +- ...g-autoscalinggroup_mixedinstancespolicy.go | 8 +- ...oscalinggroup_notificationconfiguration.go | 8 +- ...utoscaling-autoscalinggroup_tagproperty.go | 8 +- .../aws-autoscaling-launchconfiguration.go | 13 +- ...scaling-launchconfiguration_blockdevice.go | 8 +- ...-launchconfiguration_blockdevicemapping.go | 8 +- .../aws-autoscaling-lifecyclehook.go | 13 +- .../aws-autoscaling-scalingpolicy.go | 13 +- ...ingpolicy_customizedmetricspecification.go | 8 +- ...toscaling-scalingpolicy_metricdimension.go | 8 +- ...ingpolicy_predefinedmetricspecification.go | 8 +- ...utoscaling-scalingpolicy_stepadjustment.go | 8 +- ...alingpolicy_targettrackingconfiguration.go | 8 +- .../aws-autoscaling-scheduledaction.go | 13 +- .../aws-autoscalingplans-scalingplan.go | 13 +- ...lingplans-scalingplan_applicationsource.go | 8 +- ...gplan_customizedloadmetricspecification.go | 8 +- ...an_customizedscalingmetricspecification.go | 8 +- ...calingplans-scalingplan_metricdimension.go | 8 +- ...gplan_predefinedloadmetricspecification.go | 8 +- ...an_predefinedscalingmetricspecification.go | 8 +- ...ingplans-scalingplan_scalinginstruction.go | 8 +- ...-autoscalingplans-scalingplan_tagfilter.go | 8 +- ...scalingplan_targettrackingconfiguration.go | 8 +- .../aws-batch-computeenvironment.go | 13 +- ...tch-computeenvironment_computeresources.go | 8 +- ...environment_launchtemplatespecification.go | 8 +- .../aws-batch-jobdefinition.go | 13 +- ...batch-jobdefinition_containerproperties.go | 8 +- .../aws-batch-jobdefinition_environment.go | 8 +- .../aws-batch-jobdefinition_mountpoints.go | 8 +- .../aws-batch-jobdefinition_nodeproperties.go | 8 +- ...s-batch-jobdefinition_noderangeproperty.go | 8 +- .../aws-batch-jobdefinition_retrystrategy.go | 8 +- .../aws-batch-jobdefinition_timeout.go | 8 +- .../aws-batch-jobdefinition_ulimit.go | 8 +- .../aws-batch-jobdefinition_volumes.go | 8 +- .../aws-batch-jobdefinition_volumeshost.go | 8 +- .../{ => resources}/aws-batch-jobqueue.go | 13 +- ...-batch-jobqueue_computeenvironmentorder.go | 8 +- .../{ => resources}/aws-budgets-budget.go | 13 +- .../aws-budgets-budget_budgetdata.go | 8 +- .../aws-budgets-budget_costtypes.go | 8 +- .../aws-budgets-budget_notification.go | 8 +- ...gets-budget_notificationwithsubscribers.go | 8 +- .../aws-budgets-budget_spend.go | 8 +- .../aws-budgets-budget_subscriber.go | 8 +- .../aws-budgets-budget_timeperiod.go | 8 +- .../aws-certificatemanager-certificate.go | 13 +- ...ager-certificate_domainvalidationoption.go | 8 +- .../aws-cloud9-environmentec2.go | 13 +- .../aws-cloud9-environmentec2_repository.go | 8 +- .../aws-cloudformation-customresource.go | 13 +- .../aws-cloudformation-macro.go | 13 +- .../aws-cloudformation-stack.go | 13 +- .../aws-cloudformation-waitcondition.go | 19 +- .../aws-cloudformation-waitconditionhandle.go | 13 +- ...oudfront-cloudfrontoriginaccessidentity.go | 13 +- ...ty_cloudfrontoriginaccessidentityconfig.go | 8 +- .../aws-cloudfront-distribution.go | 13 +- ...s-cloudfront-distribution_cachebehavior.go | 8 +- .../aws-cloudfront-distribution_cookies.go | 8 +- ...dfront-distribution_customerrorresponse.go | 8 +- ...udfront-distribution_customoriginconfig.go | 8 +- ...front-distribution_defaultcachebehavior.go | 8 +- ...udfront-distribution_distributionconfig.go | 8 +- ...cloudfront-distribution_forwardedvalues.go | 8 +- ...-cloudfront-distribution_georestriction.go | 8 +- ...-distribution_lambdafunctionassociation.go | 8 +- .../aws-cloudfront-distribution_logging.go | 8 +- .../aws-cloudfront-distribution_origin.go | 8 +- ...udfront-distribution_origincustomheader.go | 8 +- ...ws-cloudfront-distribution_restrictions.go | 8 +- ...-cloudfront-distribution_s3originconfig.go | 8 +- ...oudfront-distribution_viewercertificate.go | 8 +- .../aws-cloudfront-streamingdistribution.go | 13 +- ...loudfront-streamingdistribution_logging.go | 8 +- ...oudfront-streamingdistribution_s3origin.go | 8 +- ...istribution_streamingdistributionconfig.go | 8 +- ...nt-streamingdistribution_trustedsigners.go | 8 +- .../{ => resources}/aws-cloudtrail-trail.go | 13 +- .../aws-cloudtrail-trail_dataresource.go | 8 +- .../aws-cloudtrail-trail_eventselector.go | 8 +- .../{ => resources}/aws-cloudwatch-alarm.go | 13 +- .../aws-cloudwatch-alarm_dimension.go | 8 +- .../aws-cloudwatch-alarm_metric.go | 8 +- .../aws-cloudwatch-alarm_metricdataquery.go | 8 +- .../aws-cloudwatch-alarm_metricstat.go | 8 +- .../aws-cloudwatch-dashboard.go | 13 +- .../{ => resources}/aws-codebuild-project.go | 13 +- .../aws-codebuild-project_artifacts.go | 8 +- ...-codebuild-project_cloudwatchlogsconfig.go | 8 +- .../aws-codebuild-project_environment.go | 8 +- ...s-codebuild-project_environmentvariable.go | 8 +- .../aws-codebuild-project_filtergroup.go | 8 +- .../aws-codebuild-project_logsconfig.go | 8 +- .../aws-codebuild-project_projectcache.go | 8 +- .../aws-codebuild-project_projecttriggers.go | 8 +- ...ws-codebuild-project_registrycredential.go | 8 +- .../aws-codebuild-project_s3logsconfig.go | 8 +- .../aws-codebuild-project_source.go | 8 +- .../aws-codebuild-project_sourceauth.go | 8 +- .../aws-codebuild-project_vpcconfig.go | 8 +- .../aws-codebuild-project_webhookfilter.go | 8 +- .../aws-codecommit-repository.go | 13 +- ...codecommit-repository_repositorytrigger.go | 8 +- .../aws-codedeploy-application.go | 13 +- .../aws-codedeploy-deploymentconfig.go | 13 +- ...oy-deploymentconfig_minimumhealthyhosts.go | 8 +- .../aws-codedeploy-deploymentgroup.go | 13 +- .../aws-codedeploy-deploymentgroup_alarm.go | 8 +- ...ploy-deploymentgroup_alarmconfiguration.go | 8 +- ...ploymentgroup_autorollbackconfiguration.go | 8 +- ...s-codedeploy-deploymentgroup_deployment.go | 8 +- ...edeploy-deploymentgroup_deploymentstyle.go | 8 +- ...codedeploy-deploymentgroup_ec2tagfilter.go | 8 +- ...ws-codedeploy-deploymentgroup_ec2tagset.go | 8 +- ...loy-deploymentgroup_ec2tagsetlistobject.go | 8 +- .../aws-codedeploy-deploymentgroup_elbinfo.go | 8 +- ...dedeploy-deploymentgroup_githublocation.go | 8 +- ...deploy-deploymentgroup_loadbalancerinfo.go | 8 +- ...deploy-deploymentgroup_onpremisestagset.go | 8 +- ...loymentgroup_onpremisestagsetlistobject.go | 8 +- ...deploy-deploymentgroup_revisionlocation.go | 8 +- ...s-codedeploy-deploymentgroup_s3location.go | 8 +- ...ws-codedeploy-deploymentgroup_tagfilter.go | 8 +- ...edeploy-deploymentgroup_targetgroupinfo.go | 8 +- ...odedeploy-deploymentgroup_triggerconfig.go | 8 +- .../aws-codepipeline-customactiontype.go | 13 +- ...peline-customactiontype_artifactdetails.go | 8 +- ...ustomactiontype_configurationproperties.go | 8 +- ...-codepipeline-customactiontype_settings.go | 8 +- .../aws-codepipeline-pipeline.go | 13 +- ...codepipeline-pipeline_actiondeclaration.go | 8 +- .../aws-codepipeline-pipeline_actiontypeid.go | 8 +- ...aws-codepipeline-pipeline_artifactstore.go | 8 +- ...-codepipeline-pipeline_artifactstoremap.go | 8 +- ...odepipeline-pipeline_blockerdeclaration.go | 8 +- ...aws-codepipeline-pipeline_encryptionkey.go | 8 +- ...aws-codepipeline-pipeline_inputartifact.go | 8 +- ...ws-codepipeline-pipeline_outputartifact.go | 8 +- ...-codepipeline-pipeline_stagedeclaration.go | 8 +- ...s-codepipeline-pipeline_stagetransition.go | 8 +- .../aws-codepipeline-webhook.go | 13 +- ...peline-webhook_webhookauthconfiguration.go | 8 +- ...-codepipeline-webhook_webhookfilterrule.go | 8 +- .../aws-cognito-identitypool.go | 13 +- ...to-identitypool_cognitoidentityprovider.go | 8 +- ...aws-cognito-identitypool_cognitostreams.go | 8 +- .../aws-cognito-identitypool_pushsync.go | 8 +- .../aws-cognito-identitypoolroleattachment.go | 13 +- ...-identitypoolroleattachment_mappingrule.go | 8 +- ...-identitypoolroleattachment_rolemapping.go | 8 +- ...olroleattachment_rulesconfigurationtype.go | 8 +- .../{ => resources}/aws-cognito-userpool.go | 13 +- ...-cognito-userpool_admincreateuserconfig.go | 8 +- ...ws-cognito-userpool_deviceconfiguration.go | 8 +- ...aws-cognito-userpool_emailconfiguration.go | 8 +- ...-cognito-userpool_invitemessagetemplate.go | 8 +- .../aws-cognito-userpool_lambdaconfig.go | 8 +- ...ito-userpool_numberattributeconstraints.go | 8 +- .../aws-cognito-userpool_passwordpolicy.go | 8 +- .../aws-cognito-userpool_policies.go | 8 +- .../aws-cognito-userpool_schemaattribute.go | 8 +- .../aws-cognito-userpool_smsconfiguration.go | 8 +- ...ito-userpool_stringattributeconstraints.go | 8 +- .../aws-cognito-userpoolclient.go | 13 +- .../aws-cognito-userpoolgroup.go | 13 +- .../aws-cognito-userpooluser.go | 13 +- .../aws-cognito-userpooluser_attributetype.go | 8 +- ...s-cognito-userpoolusertogroupattachment.go | 13 +- .../aws-config-aggregationauthorization.go | 13 +- .../{ => resources}/aws-config-configrule.go | 13 +- .../aws-config-configrule_scope.go | 8 +- .../aws-config-configrule_source.go | 8 +- .../aws-config-configrule_sourcedetail.go | 8 +- .../aws-config-configurationaggregator.go | 13 +- ...tionaggregator_accountaggregationsource.go | 8 +- ...ggregator_organizationaggregationsource.go | 8 +- .../aws-config-configurationrecorder.go | 13 +- ...ig-configurationrecorder_recordinggroup.go | 8 +- .../aws-config-deliverychannel.go | 13 +- ...hannel_configsnapshotdeliveryproperties.go | 8 +- .../aws-datapipeline-pipeline.go | 13 +- .../aws-datapipeline-pipeline_field.go | 8 +- ...atapipeline-pipeline_parameterattribute.go | 8 +- ...s-datapipeline-pipeline_parameterobject.go | 8 +- ...ws-datapipeline-pipeline_parametervalue.go | 8 +- ...ws-datapipeline-pipeline_pipelineobject.go | 8 +- .../aws-datapipeline-pipeline_pipelinetag.go | 8 +- .../{ => resources}/aws-dax-cluster.go | 13 +- .../aws-dax-cluster_ssespecification.go | 8 +- .../{ => resources}/aws-dax-parametergroup.go | 13 +- .../{ => resources}/aws-dax-subnetgroup.go | 13 +- .../aws-directoryservice-microsoftad.go | 13 +- ...irectoryservice-microsoftad_vpcsettings.go | 8 +- .../aws-directoryservice-simplead.go | 13 +- ...s-directoryservice-simplead_vpcsettings.go | 8 +- .../aws-dlm-lifecyclepolicy.go | 13 +- .../aws-dlm-lifecyclepolicy_createrule.go | 8 +- .../aws-dlm-lifecyclepolicy_policydetails.go | 8 +- .../aws-dlm-lifecyclepolicy_retainrule.go | 8 +- .../aws-dlm-lifecyclepolicy_schedule.go | 8 +- .../{ => resources}/aws-dms-certificate.go | 13 +- .../{ => resources}/aws-dms-endpoint.go | 13 +- .../aws-dms-endpoint_dynamodbsettings.go | 8 +- .../aws-dms-endpoint_elasticsearchsettings.go | 8 +- .../aws-dms-endpoint_kinesissettings.go | 8 +- .../aws-dms-endpoint_mongodbsettings.go | 8 +- .../aws-dms-endpoint_s3settings.go | 8 +- .../aws-dms-eventsubscription.go | 13 +- .../aws-dms-replicationinstance.go | 13 +- .../aws-dms-replicationsubnetgroup.go | 13 +- .../aws-dms-replicationtask.go | 13 +- .../{ => resources}/aws-docdb-dbcluster.go | 13 +- .../aws-docdb-dbclusterparametergroup.go | 13 +- .../{ => resources}/aws-docdb-dbinstance.go | 13 +- .../aws-docdb-dbsubnetgroup.go | 13 +- .../{ => resources}/aws-dynamodb-table.go | 13 +- .../aws-dynamodb-table_attributedefinition.go | 8 +- ...aws-dynamodb-table_globalsecondaryindex.go | 8 +- .../aws-dynamodb-table_keyschema.go | 8 +- .../aws-dynamodb-table_localsecondaryindex.go | 8 +- ...-table_pointintimerecoveryspecification.go | 8 +- .../aws-dynamodb-table_projection.go | 8 +- ...ws-dynamodb-table_provisionedthroughput.go | 8 +- .../aws-dynamodb-table_ssespecification.go | 8 +- .../aws-dynamodb-table_streamspecification.go | 8 +- ...-dynamodb-table_timetolivespecification.go | 8 +- .../aws-ec2-customergateway.go | 13 +- .../{ => resources}/aws-ec2-dhcpoptions.go | 13 +- .../{ => resources}/aws-ec2-ec2fleet.go | 13 +- ...2fleet_fleetlaunchtemplateconfigrequest.go | 8 +- ...eet_fleetlaunchtemplateoverridesrequest.go | 8 +- ...fleetlaunchtemplatespecificationrequest.go | 8 +- ...aws-ec2-ec2fleet_ondemandoptionsrequest.go | 8 +- .../aws-ec2-ec2fleet_spotoptionsrequest.go | 8 +- .../aws-ec2-ec2fleet_tagrequest.go | 8 +- .../aws-ec2-ec2fleet_tagspecification.go | 8 +- ...leet_targetcapacityspecificationrequest.go | 8 +- .../aws-ec2-egressonlyinternetgateway.go | 13 +- cloudformation/{ => resources}/aws-ec2-eip.go | 13 +- .../{ => resources}/aws-ec2-eipassociation.go | 13 +- .../{ => resources}/aws-ec2-flowlog.go | 13 +- .../{ => resources}/aws-ec2-host.go | 13 +- .../{ => resources}/aws-ec2-instance.go | 19 +- .../aws-ec2-instance_associationparameter.go | 8 +- .../aws-ec2-instance_blockdevicemapping.go | 8 +- .../aws-ec2-instance_creditspecification.go | 8 +- .../{ => resources}/aws-ec2-instance_ebs.go | 8 +- ...ws-ec2-instance_elasticgpuspecification.go | 8 +- ...c2-instance_elasticinferenceaccelerator.go | 8 +- .../aws-ec2-instance_instanceipv6address.go | 8 +- ...c2-instance_launchtemplatespecification.go | 8 +- .../aws-ec2-instance_licensespecification.go | 8 +- .../aws-ec2-instance_networkinterface.go | 8 +- .../aws-ec2-instance_nodevice.go | 8 +- ...-instance_privateipaddressspecification.go | 8 +- .../aws-ec2-instance_ssmassociation.go | 8 +- .../aws-ec2-instance_volume.go | 8 +- .../aws-ec2-internetgateway.go | 13 +- .../{ => resources}/aws-ec2-launchtemplate.go | 13 +- ...s-ec2-launchtemplate_blockdevicemapping.go | 8 +- ...htemplate_capacityreservationpreference.go | 8 +- ...mplate_capacityreservationspecification.go | 8 +- ...aunchtemplate_capacityreservationtarget.go | 8 +- .../aws-ec2-launchtemplate_cpuoptions.go | 8 +- ...-ec2-launchtemplate_creditspecification.go | 8 +- .../aws-ec2-launchtemplate_ebs.go | 8 +- ...-launchtemplate_elasticgpuspecification.go | 8 +- ...s-ec2-launchtemplate_hibernationoptions.go | 8 +- ...s-ec2-launchtemplate_iaminstanceprofile.go | 8 +- ...c2-launchtemplate_instancemarketoptions.go | 8 +- .../aws-ec2-launchtemplate_ipv6add.go | 8 +- ...s-ec2-launchtemplate_launchtemplatedata.go | 8 +- ...unchtemplateelasticinferenceaccelerator.go | 8 +- ...ec2-launchtemplate_licensespecification.go | 8 +- .../aws-ec2-launchtemplate_monitoring.go | 8 +- ...aws-ec2-launchtemplate_networkinterface.go | 8 +- .../aws-ec2-launchtemplate_placement.go | 8 +- .../aws-ec2-launchtemplate_privateipadd.go | 8 +- .../aws-ec2-launchtemplate_spotoptions.go | 8 +- ...aws-ec2-launchtemplate_tagspecification.go | 8 +- .../{ => resources}/aws-ec2-natgateway.go | 13 +- .../{ => resources}/aws-ec2-networkacl.go | 13 +- .../aws-ec2-networkaclentry.go | 13 +- .../aws-ec2-networkaclentry_icmp.go | 8 +- .../aws-ec2-networkaclentry_portrange.go | 8 +- .../aws-ec2-networkinterface.go | 13 +- ...c2-networkinterface_instanceipv6address.go | 8 +- ...interface_privateipaddressspecification.go | 8 +- .../aws-ec2-networkinterfaceattachment.go | 13 +- .../aws-ec2-networkinterfacepermission.go | 13 +- .../{ => resources}/aws-ec2-placementgroup.go | 13 +- .../{ => resources}/aws-ec2-route.go | 13 +- .../{ => resources}/aws-ec2-routetable.go | 13 +- .../{ => resources}/aws-ec2-securitygroup.go | 13 +- .../aws-ec2-securitygroup_egress.go | 8 +- .../aws-ec2-securitygroup_ingress.go | 8 +- .../aws-ec2-securitygroupegress.go | 13 +- .../aws-ec2-securitygroupingress.go | 13 +- .../{ => resources}/aws-ec2-spotfleet.go | 13 +- .../aws-ec2-spotfleet_blockdevicemapping.go | 8 +- .../aws-ec2-spotfleet_classicloadbalancer.go | 8 +- ...c2-spotfleet_classicloadbalancersconfig.go | 8 +- .../aws-ec2-spotfleet_ebsblockdevice.go | 8 +- ...tfleet_fleetlaunchtemplatespecification.go | 8 +- .../aws-ec2-spotfleet_groupidentifier.go | 8 +- ...otfleet_iaminstanceprofilespecification.go | 8 +- .../aws-ec2-spotfleet_instanceipv6address.go | 8 +- ...t_instancenetworkinterfacespecification.go | 8 +- .../aws-ec2-spotfleet_launchtemplateconfig.go | 8 +- ...s-ec2-spotfleet_launchtemplateoverrides.go | 8 +- .../aws-ec2-spotfleet_loadbalancersconfig.go | 8 +- ...spotfleet_privateipaddressspecification.go | 8 +- ...-spotfleet_spotfleetlaunchspecification.go | 8 +- .../aws-ec2-spotfleet_spotfleetmonitoring.go | 8 +- ...c2-spotfleet_spotfleetrequestconfigdata.go | 8 +- ...ec2-spotfleet_spotfleettagspecification.go | 8 +- .../aws-ec2-spotfleet_spotplacement.go | 8 +- .../aws-ec2-spotfleet_targetgroup.go | 8 +- .../aws-ec2-spotfleet_targetgroupsconfig.go | 8 +- .../{ => resources}/aws-ec2-subnet.go | 13 +- .../aws-ec2-subnetcidrblock.go | 13 +- .../aws-ec2-subnetnetworkaclassociation.go | 13 +- .../aws-ec2-subnetroutetableassociation.go | 13 +- .../{ => resources}/aws-ec2-transitgateway.go | 13 +- .../aws-ec2-transitgatewayattachment.go | 13 +- .../aws-ec2-transitgatewayroute.go | 13 +- .../aws-ec2-transitgatewayroutetable.go | 13 +- ...ec2-transitgatewayroutetableassociation.go | 13 +- ...ec2-transitgatewayroutetablepropagation.go | 13 +- .../aws-ec2-trunkinterfaceassociation.go | 13 +- .../{ => resources}/aws-ec2-volume.go | 13 +- .../aws-ec2-volumeattachment.go | 13 +- cloudformation/{ => resources}/aws-ec2-vpc.go | 13 +- .../{ => resources}/aws-ec2-vpccidrblock.go | 13 +- .../aws-ec2-vpcdhcpoptionsassociation.go | 13 +- .../{ => resources}/aws-ec2-vpcendpoint.go | 13 +- ...s-ec2-vpcendpointconnectionnotification.go | 13 +- .../aws-ec2-vpcendpointservicepermissions.go | 13 +- .../aws-ec2-vpcgatewayattachment.go | 13 +- .../aws-ec2-vpcpeeringconnection.go | 13 +- .../{ => resources}/aws-ec2-vpnconnection.go | 13 +- ...onnection_vpntunneloptionsspecification.go | 8 +- .../aws-ec2-vpnconnectionroute.go | 13 +- .../{ => resources}/aws-ec2-vpngateway.go | 13 +- .../aws-ec2-vpngatewayroutepropagation.go | 13 +- .../{ => resources}/aws-ecr-repository.go | 13 +- .../aws-ecr-repository_lifecyclepolicy.go | 8 +- .../{ => resources}/aws-ecs-cluster.go | 13 +- .../{ => resources}/aws-ecs-service.go | 13 +- .../aws-ecs-service_awsvpcconfiguration.go | 8 +- ...aws-ecs-service_deploymentconfiguration.go | 8 +- .../aws-ecs-service_loadbalancer.go | 8 +- .../aws-ecs-service_networkconfiguration.go | 8 +- .../aws-ecs-service_placementconstraint.go | 8 +- .../aws-ecs-service_placementstrategy.go | 8 +- .../aws-ecs-service_serviceregistry.go | 8 +- .../{ => resources}/aws-ecs-taskdefinition.go | 13 +- ...-ecs-taskdefinition_containerdefinition.go | 8 +- .../aws-ecs-taskdefinition_device.go | 8 +- ...askdefinition_dockervolumeconfiguration.go | 8 +- .../aws-ecs-taskdefinition_healthcheck.go | 8 +- .../aws-ecs-taskdefinition_hostentry.go | 8 +- ...ecs-taskdefinition_hostvolumeproperties.go | 8 +- ...s-ecs-taskdefinition_kernelcapabilities.go | 8 +- .../aws-ecs-taskdefinition_keyvaluepair.go | 8 +- .../aws-ecs-taskdefinition_linuxparameters.go | 8 +- ...aws-ecs-taskdefinition_logconfiguration.go | 8 +- .../aws-ecs-taskdefinition_mountpoint.go | 8 +- .../aws-ecs-taskdefinition_portmapping.go | 8 +- ...cs-taskdefinition_repositorycredentials.go | 8 +- ...ition_taskdefinitionplacementconstraint.go | 8 +- .../aws-ecs-taskdefinition_tmpfs.go | 8 +- .../aws-ecs-taskdefinition_ulimit.go | 8 +- .../aws-ecs-taskdefinition_volume.go | 8 +- .../aws-ecs-taskdefinition_volumefrom.go | 8 +- .../{ => resources}/aws-efs-filesystem.go | 13 +- ...aws-efs-filesystem_elasticfilesystemtag.go | 8 +- .../{ => resources}/aws-efs-mounttarget.go | 13 +- .../{ => resources}/aws-eks-cluster.go | 13 +- .../aws-eks-cluster_resourcesvpcconfig.go | 8 +- .../aws-elasticache-cachecluster.go | 13 +- .../aws-elasticache-parametergroup.go | 13 +- .../aws-elasticache-replicationgroup.go | 13 +- ...replicationgroup_nodegroupconfiguration.go | 8 +- .../aws-elasticache-securitygroup.go | 13 +- .../aws-elasticache-securitygroupingress.go | 13 +- .../aws-elasticache-subnetgroup.go | 13 +- .../aws-elasticbeanstalk-application.go | 13 +- ...tion_applicationresourcelifecycleconfig.go | 8 +- ...ation_applicationversionlifecycleconfig.go | 8 +- ...elasticbeanstalk-application_maxagerule.go | 8 +- ...asticbeanstalk-application_maxcountrule.go | 8 +- ...aws-elasticbeanstalk-applicationversion.go | 13 +- ...anstalk-applicationversion_sourcebundle.go | 8 +- ...-elasticbeanstalk-configurationtemplate.go | 13 +- ...tiontemplate_configurationoptionsetting.go | 8 +- ...nfigurationtemplate_sourceconfiguration.go | 8 +- .../aws-elasticbeanstalk-environment.go | 13 +- ...sticbeanstalk-environment_optionsetting.go | 8 +- .../aws-elasticbeanstalk-environment_tier.go | 8 +- .../aws-elasticloadbalancing-loadbalancer.go | 13 +- ...ancing-loadbalancer_accessloggingpolicy.go | 8 +- ...-loadbalancer_appcookiestickinesspolicy.go | 8 +- ...g-loadbalancer_connectiondrainingpolicy.go | 8 +- ...lancing-loadbalancer_connectionsettings.go | 8 +- ...cloadbalancing-loadbalancer_healthcheck.go | 8 +- ...g-loadbalancer_lbcookiestickinesspolicy.go | 8 +- ...ticloadbalancing-loadbalancer_listeners.go | 8 +- ...sticloadbalancing-loadbalancer_policies.go | 8 +- .../aws-elasticloadbalancingv2-listener.go | 13 +- ...-elasticloadbalancingv2-listener_action.go | 8 +- ...ngv2-listener_authenticatecognitoconfig.go | 8 +- ...ncingv2-listener_authenticateoidcconfig.go | 8 +- ...ticloadbalancingv2-listener_certificate.go | 8 +- ...alancingv2-listener_fixedresponseconfig.go | 8 +- ...loadbalancingv2-listener_redirectconfig.go | 8 +- ...sticloadbalancingv2-listenercertificate.go | 13 +- ...ncingv2-listenercertificate_certificate.go | 8 +- ...aws-elasticloadbalancingv2-listenerrule.go | 13 +- ...sticloadbalancingv2-listenerrule_action.go | 8 +- ...-listenerrule_authenticatecognitoconfig.go | 8 +- ...gv2-listenerrule_authenticateoidcconfig.go | 8 +- ...cingv2-listenerrule_fixedresponseconfig.go | 8 +- ...balancingv2-listenerrule_redirectconfig.go | 8 +- ...dbalancingv2-listenerrule_rulecondition.go | 8 +- ...aws-elasticloadbalancingv2-loadbalancer.go | 13 +- ...ngv2-loadbalancer_loadbalancerattribute.go | 8 +- ...dbalancingv2-loadbalancer_subnetmapping.go | 8 +- .../aws-elasticloadbalancingv2-targetgroup.go | 13 +- ...sticloadbalancingv2-targetgroup_matcher.go | 8 +- ...lancingv2-targetgroup_targetdescription.go | 8 +- ...cingv2-targetgroup_targetgroupattribute.go | 8 +- .../aws-elasticsearch-domain.go | 13 +- .../aws-elasticsearch-domain_ebsoptions.go | 8 +- ...earch-domain_elasticsearchclusterconfig.go | 8 +- ...icsearch-domain_encryptionatrestoptions.go | 8 +- ...arch-domain_nodetonodeencryptionoptions.go | 8 +- ...ws-elasticsearch-domain_snapshotoptions.go | 8 +- .../aws-elasticsearch-domain_vpcoptions.go | 8 +- .../{ => resources}/aws-emr-cluster.go | 13 +- .../aws-emr-cluster_application.go | 8 +- .../aws-emr-cluster_autoscalingpolicy.go | 8 +- .../aws-emr-cluster_bootstrapactionconfig.go | 8 +- ...s-emr-cluster_cloudwatchalarmdefinition.go | 8 +- .../aws-emr-cluster_configuration.go | 8 +- .../aws-emr-cluster_ebsblockdeviceconfig.go | 8 +- .../aws-emr-cluster_ebsconfiguration.go | 8 +- .../aws-emr-cluster_hadoopjarstepconfig.go | 8 +- .../aws-emr-cluster_instancefleetconfig.go | 8 +- ...instancefleetprovisioningspecifications.go | 8 +- .../aws-emr-cluster_instancegroupconfig.go | 8 +- .../aws-emr-cluster_instancetypeconfig.go | 8 +- .../aws-emr-cluster_jobflowinstancesconfig.go | 8 +- .../aws-emr-cluster_kerberosattributes.go | 8 +- .../aws-emr-cluster_keyvalue.go | 8 +- .../aws-emr-cluster_metricdimension.go | 8 +- .../aws-emr-cluster_placementtype.go | 8 +- .../aws-emr-cluster_scalingaction.go | 8 +- .../aws-emr-cluster_scalingconstraints.go | 8 +- .../aws-emr-cluster_scalingrule.go | 8 +- .../aws-emr-cluster_scalingtrigger.go | 8 +- ...emr-cluster_scriptbootstrapactionconfig.go | 8 +- ...luster_simplescalingpolicyconfiguration.go | 8 +- ...r-cluster_spotprovisioningspecification.go | 8 +- .../aws-emr-cluster_stepconfig.go | 8 +- .../aws-emr-cluster_volumespecification.go | 8 +- .../aws-emr-instancefleetconfig.go | 13 +- ...s-emr-instancefleetconfig_configuration.go | 8 +- ...nstancefleetconfig_ebsblockdeviceconfig.go | 8 +- ...mr-instancefleetconfig_ebsconfiguration.go | 8 +- ...instancefleetprovisioningspecifications.go | 8 +- ...-instancefleetconfig_instancetypeconfig.go | 8 +- ...eetconfig_spotprovisioningspecification.go | 8 +- ...instancefleetconfig_volumespecification.go | 8 +- .../aws-emr-instancegroupconfig.go | 13 +- ...r-instancegroupconfig_autoscalingpolicy.go | 8 +- ...cegroupconfig_cloudwatchalarmdefinition.go | 8 +- ...s-emr-instancegroupconfig_configuration.go | 8 +- ...nstancegroupconfig_ebsblockdeviceconfig.go | 8 +- ...mr-instancegroupconfig_ebsconfiguration.go | 8 +- ...emr-instancegroupconfig_metricdimension.go | 8 +- ...s-emr-instancegroupconfig_scalingaction.go | 8 +- ...-instancegroupconfig_scalingconstraints.go | 8 +- ...aws-emr-instancegroupconfig_scalingrule.go | 8 +- ...-emr-instancegroupconfig_scalingtrigger.go | 8 +- ...config_simplescalingpolicyconfiguration.go | 8 +- ...instancegroupconfig_volumespecification.go | 8 +- .../aws-emr-securityconfiguration.go | 13 +- .../{ => resources}/aws-emr-step.go | 13 +- .../aws-emr-step_hadoopjarstepconfig.go | 8 +- .../{ => resources}/aws-emr-step_keyvalue.go | 8 +- .../aws-events-eventbuspolicy.go | 13 +- .../aws-events-eventbuspolicy_condition.go | 8 +- .../{ => resources}/aws-events-rule.go | 13 +- .../aws-events-rule_ecsparameters.go | 8 +- .../aws-events-rule_inputtransformer.go | 8 +- .../aws-events-rule_kinesisparameters.go | 8 +- .../aws-events-rule_runcommandparameters.go | 8 +- .../aws-events-rule_runcommandtarget.go | 8 +- .../aws-events-rule_sqsparameters.go | 8 +- .../{ => resources}/aws-events-rule_target.go | 8 +- .../{ => resources}/aws-fsx-filesystem.go | 13 +- .../aws-fsx-filesystem_lustreconfiguration.go | 8 +- .../aws-fsx-filesystem_tagentry.go | 8 +- ...aws-fsx-filesystem_windowsconfiguration.go | 8 +- .../{ => resources}/aws-gamelift-alias.go | 13 +- .../aws-gamelift-alias_routingstrategy.go | 8 +- .../{ => resources}/aws-gamelift-build.go | 13 +- .../aws-gamelift-build_s3location.go | 8 +- .../{ => resources}/aws-gamelift-fleet.go | 13 +- .../aws-gamelift-fleet_ippermission.go | 8 +- .../{ => resources}/aws-glue-classifier.go | 13 +- .../aws-glue-classifier_grokclassifier.go | 8 +- .../aws-glue-classifier_jsonclassifier.go | 8 +- .../aws-glue-classifier_xmlclassifier.go | 8 +- .../{ => resources}/aws-glue-connection.go | 13 +- .../aws-glue-connection_connectioninput.go | 8 +- ...nnection_physicalconnectionrequirements.go | 8 +- .../{ => resources}/aws-glue-crawler.go | 13 +- .../aws-glue-crawler_jdbctarget.go | 8 +- .../aws-glue-crawler_s3target.go | 8 +- .../aws-glue-crawler_schedule.go | 8 +- .../aws-glue-crawler_schemachangepolicy.go | 8 +- .../aws-glue-crawler_targets.go | 8 +- .../{ => resources}/aws-glue-database.go | 13 +- .../aws-glue-database_databaseinput.go | 8 +- .../{ => resources}/aws-glue-devendpoint.go | 13 +- .../{ => resources}/aws-glue-job.go | 13 +- .../aws-glue-job_connectionslist.go | 8 +- .../aws-glue-job_executionproperty.go | 8 +- .../aws-glue-job_jobcommand.go | 8 +- .../{ => resources}/aws-glue-partition.go | 13 +- .../aws-glue-partition_column.go | 8 +- .../aws-glue-partition_order.go | 8 +- .../aws-glue-partition_partitioninput.go | 8 +- .../aws-glue-partition_serdeinfo.go | 8 +- .../aws-glue-partition_skewedinfo.go | 8 +- .../aws-glue-partition_storagedescriptor.go | 8 +- .../{ => resources}/aws-glue-table.go | 13 +- .../{ => resources}/aws-glue-table_column.go | 8 +- .../{ => resources}/aws-glue-table_order.go | 8 +- .../aws-glue-table_serdeinfo.go | 8 +- .../aws-glue-table_skewedinfo.go | 8 +- .../aws-glue-table_storagedescriptor.go | 8 +- .../aws-glue-table_tableinput.go | 8 +- .../{ => resources}/aws-glue-trigger.go | 13 +- .../aws-glue-trigger_action.go | 8 +- .../aws-glue-trigger_condition.go | 8 +- .../aws-glue-trigger_predicate.go | 8 +- .../{ => resources}/aws-guardduty-detector.go | 13 +- .../{ => resources}/aws-guardduty-filter.go | 13 +- .../aws-guardduty-filter_condition.go | 8 +- .../aws-guardduty-filter_findingcriteria.go | 8 +- .../{ => resources}/aws-guardduty-ipset.go | 13 +- .../{ => resources}/aws-guardduty-master.go | 13 +- .../{ => resources}/aws-guardduty-member.go | 13 +- .../aws-guardduty-threatintelset.go | 13 +- .../{ => resources}/aws-iam-accesskey.go | 13 +- .../{ => resources}/aws-iam-group.go | 13 +- .../{ => resources}/aws-iam-group_policy.go | 8 +- .../aws-iam-instanceprofile.go | 13 +- .../{ => resources}/aws-iam-managedpolicy.go | 13 +- .../{ => resources}/aws-iam-policy.go | 13 +- .../{ => resources}/aws-iam-role.go | 13 +- .../{ => resources}/aws-iam-role_policy.go | 8 +- .../aws-iam-servicelinkedrole.go | 13 +- .../{ => resources}/aws-iam-user.go | 13 +- .../aws-iam-user_loginprofile.go | 8 +- .../{ => resources}/aws-iam-user_policy.go | 8 +- .../aws-iam-usertogroupaddition.go | 13 +- .../aws-inspector-assessmenttarget.go | 13 +- .../aws-inspector-assessmenttemplate.go | 13 +- .../aws-inspector-resourcegroup.go | 13 +- .../{ => resources}/aws-iot-certificate.go | 13 +- .../{ => resources}/aws-iot-policy.go | 13 +- .../aws-iot-policyprincipalattachment.go | 13 +- .../{ => resources}/aws-iot-thing.go | 13 +- .../aws-iot-thing_attributepayload.go | 8 +- .../aws-iot-thingprincipalattachment.go | 13 +- .../{ => resources}/aws-iot-topicrule.go | 13 +- .../aws-iot-topicrule_action.go | 8 +- ...aws-iot-topicrule_cloudwatchalarmaction.go | 8 +- ...ws-iot-topicrule_cloudwatchmetricaction.go | 8 +- .../aws-iot-topicrule_dynamodbaction.go | 8 +- .../aws-iot-topicrule_dynamodbv2action.go | 8 +- .../aws-iot-topicrule_elasticsearchaction.go | 8 +- .../aws-iot-topicrule_firehoseaction.go | 8 +- .../aws-iot-topicrule_iotanalyticsaction.go | 8 +- .../aws-iot-topicrule_kinesisaction.go | 8 +- .../aws-iot-topicrule_lambdaaction.go | 8 +- .../aws-iot-topicrule_putiteminput.go | 8 +- .../aws-iot-topicrule_republishaction.go | 8 +- .../aws-iot-topicrule_s3action.go | 8 +- .../aws-iot-topicrule_snsaction.go | 8 +- .../aws-iot-topicrule_sqsaction.go | 8 +- .../aws-iot-topicrule_stepfunctionsaction.go | 8 +- .../aws-iot-topicrule_topicrulepayload.go | 8 +- .../{ => resources}/aws-iot1click-device.go | 13 +- .../aws-iot1click-placement.go | 13 +- .../{ => resources}/aws-iot1click-project.go | 13 +- .../aws-iot1click-project_devicetemplate.go | 8 +- ...aws-iot1click-project_placementtemplate.go | 8 +- .../aws-iotanalytics-channel.go | 13 +- ...ws-iotanalytics-channel_retentionperiod.go | 8 +- .../aws-iotanalytics-dataset.go | 13 +- .../aws-iotanalytics-dataset_action.go | 8 +- ...ws-iotanalytics-dataset_containeraction.go | 8 +- ...tics-dataset_datasetcontentversionvalue.go | 8 +- .../aws-iotanalytics-dataset_deltatime.go | 8 +- .../aws-iotanalytics-dataset_filter.go | 8 +- ...iotanalytics-dataset_outputfileurivalue.go | 8 +- .../aws-iotanalytics-dataset_queryaction.go | 8 +- ...analytics-dataset_resourceconfiguration.go | 8 +- ...ws-iotanalytics-dataset_retentionperiod.go | 8 +- .../aws-iotanalytics-dataset_schedule.go | 8 +- .../aws-iotanalytics-dataset_trigger.go | 8 +- ...-iotanalytics-dataset_triggeringdataset.go | 8 +- .../aws-iotanalytics-dataset_variable.go | 8 +- .../aws-iotanalytics-datastore.go | 13 +- ...-iotanalytics-datastore_retentionperiod.go | 8 +- .../aws-iotanalytics-pipeline.go | 13 +- .../aws-iotanalytics-pipeline_activity.go | 8 +- ...aws-iotanalytics-pipeline_addattributes.go | 8 +- .../aws-iotanalytics-pipeline_channel.go | 8 +- .../aws-iotanalytics-pipeline_datastore.go | 8 +- ...analytics-pipeline_deviceregistryenrich.go | 8 +- ...otanalytics-pipeline_deviceshadowenrich.go | 8 +- .../aws-iotanalytics-pipeline_filter.go | 8 +- .../aws-iotanalytics-pipeline_lambda.go | 8 +- .../aws-iotanalytics-pipeline_math.go | 8 +- ...-iotanalytics-pipeline_removeattributes.go | 8 +- ...-iotanalytics-pipeline_selectattributes.go | 8 +- .../{ => resources}/aws-kinesis-stream.go | 13 +- .../aws-kinesis-stream_streamencryption.go | 8 +- .../aws-kinesis-streamconsumer.go | 13 +- .../aws-kinesisanalytics-application.go | 13 +- ...lytics-application_csvmappingparameters.go | 8 +- .../aws-kinesisanalytics-application_input.go | 8 +- ...lytics-application_inputlambdaprocessor.go | 8 +- ...sanalytics-application_inputparallelism.go | 8 +- ...pplication_inputprocessingconfiguration.go | 8 +- ...inesisanalytics-application_inputschema.go | 8 +- ...ytics-application_jsonmappingparameters.go | 8 +- ...lytics-application_kinesisfirehoseinput.go | 8 +- ...alytics-application_kinesisstreamsinput.go | 8 +- ...analytics-application_mappingparameters.go | 8 +- ...nesisanalytics-application_recordcolumn.go | 8 +- ...nesisanalytics-application_recordformat.go | 8 +- .../aws-kinesisanalytics-applicationoutput.go | 13 +- ...ics-applicationoutput_destinationschema.go | 8 +- ...applicationoutput_kinesisfirehoseoutput.go | 8 +- ...-applicationoutput_kinesisstreamsoutput.go | 8 +- ...nalytics-applicationoutput_lambdaoutput.go | 8 +- ...nesisanalytics-applicationoutput_output.go | 8 +- ...nalytics-applicationreferencedatasource.go | 13 +- ...eferencedatasource_csvmappingparameters.go | 8 +- ...ferencedatasource_jsonmappingparameters.go | 8 +- ...onreferencedatasource_mappingparameters.go | 8 +- ...icationreferencedatasource_recordcolumn.go | 8 +- ...icationreferencedatasource_recordformat.go | 8 +- ...referencedatasource_referencedatasource.go | 8 +- ...tionreferencedatasource_referenceschema.go | 8 +- ...ferencedatasource_s3referencedatasource.go | 8 +- .../aws-kinesisanalyticsv2-application.go | 13 +- ...pplication_applicationcodeconfiguration.go | 8 +- ...v2-application_applicationconfiguration.go | 8 +- ...cation_applicationsnapshotconfiguration.go | 8 +- ...sv2-application_checkpointconfiguration.go | 8 +- ...esisanalyticsv2-application_codecontent.go | 8 +- ...ticsv2-application_csvmappingparameters.go | 8 +- ...icsv2-application_environmentproperties.go | 8 +- ...plication_flinkapplicationconfiguration.go | 8 +- ...ws-kinesisanalyticsv2-application_input.go | 8 +- ...ticsv2-application_inputlambdaprocessor.go | 8 +- ...nalyticsv2-application_inputparallelism.go | 8 +- ...pplication_inputprocessingconfiguration.go | 8 +- ...esisanalyticsv2-application_inputschema.go | 8 +- ...icsv2-application_jsonmappingparameters.go | 8 +- ...ticsv2-application_kinesisfirehoseinput.go | 8 +- ...yticsv2-application_kinesisstreamsinput.go | 8 +- ...alyticsv2-application_mappingparameters.go | 8 +- ...sv2-application_monitoringconfiguration.go | 8 +- ...v2-application_parallelismconfiguration.go | 8 +- ...isanalyticsv2-application_propertygroup.go | 8 +- ...sisanalyticsv2-application_recordcolumn.go | 8 +- ...sisanalyticsv2-application_recordformat.go | 8 +- ...alyticsv2-application_s3contentlocation.go | 8 +- ...application_sqlapplicationconfiguration.go | 8 +- ...csv2-applicationcloudwatchloggingoption.go | 13 +- ...chloggingoption_cloudwatchloggingoption.go | 8 +- ...ws-kinesisanalyticsv2-applicationoutput.go | 13 +- ...sv2-applicationoutput_destinationschema.go | 8 +- ...applicationoutput_kinesisfirehoseoutput.go | 8 +- ...-applicationoutput_kinesisstreamsoutput.go | 8 +- ...lyticsv2-applicationoutput_lambdaoutput.go | 8 +- ...sisanalyticsv2-applicationoutput_output.go | 8 +- ...lyticsv2-applicationreferencedatasource.go | 13 +- ...eferencedatasource_csvmappingparameters.go | 8 +- ...ferencedatasource_jsonmappingparameters.go | 8 +- ...onreferencedatasource_mappingparameters.go | 8 +- ...icationreferencedatasource_recordcolumn.go | 8 +- ...icationreferencedatasource_recordformat.go | 8 +- ...referencedatasource_referencedatasource.go | 8 +- ...tionreferencedatasource_referenceschema.go | 8 +- ...ferencedatasource_s3referencedatasource.go | 8 +- .../aws-kinesisfirehose-deliverystream.go | 13 +- ...sfirehose-deliverystream_bufferinghints.go | 8 +- ...deliverystream_cloudwatchloggingoptions.go | 8 +- ...esisfirehose-deliverystream_copycommand.go | 8 +- ...iverystream_elasticsearchbufferinghints.go | 8 +- ...m_elasticsearchdestinationconfiguration.go | 8 +- ...eliverystream_elasticsearchretryoptions.go | 8 +- ...-deliverystream_encryptionconfiguration.go | 8 +- ...ream_extendeds3destinationconfiguration.go | 8 +- ...stream_kinesisstreamsourceconfiguration.go | 8 +- ...hose-deliverystream_kmsencryptionconfig.go | 8 +- ...-deliverystream_processingconfiguration.go | 8 +- ...inesisfirehose-deliverystream_processor.go | 8 +- ...ehose-deliverystream_processorparameter.go | 8 +- ...stream_redshiftdestinationconfiguration.go | 8 +- ...liverystream_s3destinationconfiguration.go | 8 +- ...rystream_splunkdestinationconfiguration.go | 8 +- ...ehose-deliverystream_splunkretryoptions.go | 8 +- .../{ => resources}/aws-kms-alias.go | 13 +- cloudformation/{ => resources}/aws-kms-key.go | 13 +- .../{ => resources}/aws-lambda-alias.go | 19 +- ...-lambda-alias_aliasroutingconfiguration.go | 8 +- .../aws-lambda-alias_versionweight.go | 8 +- .../aws-lambda-eventsourcemapping.go | 13 +- .../{ => resources}/aws-lambda-function.go | 13 +- .../aws-lambda-function_code.go | 8 +- .../aws-lambda-function_deadletterconfig.go | 8 +- .../aws-lambda-function_environment.go | 8 +- .../aws-lambda-function_tracingconfig.go | 8 +- .../aws-lambda-function_vpcconfig.go | 8 +- .../aws-lambda-layerversion.go | 13 +- .../aws-lambda-layerversion_content.go | 8 +- .../aws-lambda-layerversionpermission.go | 13 +- .../{ => resources}/aws-lambda-permission.go | 13 +- .../{ => resources}/aws-lambda-version.go | 13 +- .../{ => resources}/aws-logs-destination.go | 13 +- .../{ => resources}/aws-logs-loggroup.go | 13 +- .../{ => resources}/aws-logs-logstream.go | 13 +- .../{ => resources}/aws-logs-metricfilter.go | 13 +- ...-logs-metricfilter_metrictransformation.go | 8 +- .../aws-logs-subscriptionfilter.go | 13 +- .../{ => resources}/aws-neptune-dbcluster.go | 13 +- .../aws-neptune-dbclusterparametergroup.go | 13 +- .../{ => resources}/aws-neptune-dbinstance.go | 13 +- .../aws-neptune-dbparametergroup.go | 13 +- .../aws-neptune-dbsubnetgroup.go | 13 +- .../{ => resources}/aws-opsworks-app.go | 13 +- .../aws-opsworks-app_datasource.go | 8 +- .../aws-opsworks-app_environmentvariable.go | 8 +- .../aws-opsworks-app_source.go | 8 +- .../aws-opsworks-app_sslconfiguration.go | 8 +- ...-opsworks-elasticloadbalancerattachment.go | 13 +- .../{ => resources}/aws-opsworks-instance.go | 13 +- ...ws-opsworks-instance_blockdevicemapping.go | 8 +- .../aws-opsworks-instance_ebsblockdevice.go | 8 +- ...-opsworks-instance_timebasedautoscaling.go | 8 +- .../{ => resources}/aws-opsworks-layer.go | 13 +- ...ws-opsworks-layer_autoscalingthresholds.go | 8 +- ...works-layer_lifecycleeventconfiguration.go | 8 +- ...aws-opsworks-layer_loadbasedautoscaling.go | 8 +- .../aws-opsworks-layer_recipes.go | 8 +- ...sworks-layer_shutdowneventconfiguration.go | 8 +- .../aws-opsworks-layer_volumeconfiguration.go | 8 +- .../{ => resources}/aws-opsworks-stack.go | 13 +- .../aws-opsworks-stack_chefconfiguration.go | 8 +- .../aws-opsworks-stack_elasticip.go | 8 +- .../aws-opsworks-stack_rdsdbinstance.go | 8 +- .../aws-opsworks-stack_source.go | 8 +- ...psworks-stack_stackconfigurationmanager.go | 8 +- .../aws-opsworks-userprofile.go | 13 +- .../{ => resources}/aws-opsworks-volume.go | 13 +- .../{ => resources}/aws-opsworkscm-server.go | 13 +- .../aws-opsworkscm-server_engineattribute.go | 8 +- .../{ => resources}/aws-ram-resourceshare.go | 13 +- .../{ => resources}/aws-rds-dbcluster.go | 13 +- .../aws-rds-dbcluster_scalingconfiguration.go | 8 +- .../aws-rds-dbclusterparametergroup.go | 13 +- .../{ => resources}/aws-rds-dbinstance.go | 13 +- .../aws-rds-dbinstance_processorfeature.go | 8 +- .../aws-rds-dbparametergroup.go | 13 +- .../aws-rds-dbsecuritygroup.go | 13 +- .../aws-rds-dbsecuritygroup_ingress.go | 8 +- .../aws-rds-dbsecuritygroupingress.go | 13 +- .../{ => resources}/aws-rds-dbsubnetgroup.go | 13 +- .../aws-rds-eventsubscription.go | 13 +- .../{ => resources}/aws-rds-optiongroup.go | 13 +- ...aws-rds-optiongroup_optionconfiguration.go | 8 +- .../aws-rds-optiongroup_optionsetting.go | 8 +- .../{ => resources}/aws-redshift-cluster.go | 13 +- .../aws-redshift-cluster_loggingproperties.go | 8 +- .../aws-redshift-clusterparametergroup.go | 13 +- ...edshift-clusterparametergroup_parameter.go | 8 +- .../aws-redshift-clustersecuritygroup.go | 13 +- ...ws-redshift-clustersecuritygroupingress.go | 13 +- .../aws-redshift-clustersubnetgroup.go | 13 +- .../{ => resources}/aws-robomaker-fleet.go | 13 +- .../{ => resources}/aws-robomaker-robot.go | 13 +- .../aws-robomaker-robotapplication.go | 13 +- ...ker-robotapplication_robotsoftwaresuite.go | 8 +- ...robomaker-robotapplication_sourceconfig.go | 8 +- .../aws-robomaker-robotapplicationversion.go | 13 +- .../aws-robomaker-simulationapplication.go | 13 +- ...r-simulationapplication_renderingengine.go | 8 +- ...imulationapplication_robotsoftwaresuite.go | 8 +- ...tionapplication_simulationsoftwaresuite.go | 8 +- ...aker-simulationapplication_sourceconfig.go | 8 +- ...-robomaker-simulationapplicationversion.go | 13 +- .../aws-route53-healthcheck.go | 13 +- ...aws-route53-healthcheck_alarmidentifier.go | 8 +- ...s-route53-healthcheck_healthcheckconfig.go | 8 +- .../aws-route53-healthcheck_healthchecktag.go | 8 +- .../{ => resources}/aws-route53-hostedzone.go | 13 +- ...aws-route53-hostedzone_hostedzoneconfig.go | 8 +- .../aws-route53-hostedzone_hostedzonetag.go | 8 +- ...s-route53-hostedzone_queryloggingconfig.go | 8 +- .../aws-route53-hostedzone_vpc.go | 8 +- .../{ => resources}/aws-route53-recordset.go | 13 +- .../aws-route53-recordset_aliastarget.go | 8 +- .../aws-route53-recordset_geolocation.go | 8 +- .../aws-route53-recordsetgroup.go | 13 +- .../aws-route53-recordsetgroup_aliastarget.go | 8 +- .../aws-route53-recordsetgroup_geolocation.go | 8 +- .../aws-route53-recordsetgroup_recordset.go | 8 +- .../aws-route53resolver-resolverendpoint.go | 13 +- ...olver-resolverendpoint_ipaddressrequest.go | 8 +- .../aws-route53resolver-resolverrule.go | 13 +- ...te53resolver-resolverrule_targetaddress.go | 8 +- ...route53resolver-resolverruleassociation.go | 13 +- .../{ => resources}/aws-s3-bucket.go | 13 +- ...3-bucket_abortincompletemultipartupload.go | 8 +- .../aws-s3-bucket_accelerateconfiguration.go | 8 +- .../aws-s3-bucket_accesscontroltranslation.go | 8 +- .../aws-s3-bucket_analyticsconfiguration.go | 8 +- .../aws-s3-bucket_bucketencryption.go | 8 +- .../aws-s3-bucket_corsconfiguration.go | 8 +- .../{ => resources}/aws-s3-bucket_corsrule.go | 8 +- .../aws-s3-bucket_dataexport.go | 8 +- .../aws-s3-bucket_destination.go | 8 +- .../aws-s3-bucket_encryptionconfiguration.go | 8 +- .../aws-s3-bucket_filterrule.go | 8 +- .../aws-s3-bucket_inventoryconfiguration.go | 8 +- .../aws-s3-bucket_lambdaconfiguration.go | 8 +- .../aws-s3-bucket_lifecycleconfiguration.go | 8 +- .../aws-s3-bucket_loggingconfiguration.go | 8 +- .../aws-s3-bucket_metricsconfiguration.go | 8 +- ...s-s3-bucket_noncurrentversiontransition.go | 8 +- ...aws-s3-bucket_notificationconfiguration.go | 8 +- .../aws-s3-bucket_notificationfilter.go | 8 +- ...3-bucket_publicaccessblockconfiguration.go | 8 +- .../aws-s3-bucket_queueconfiguration.go | 8 +- .../aws-s3-bucket_redirectallrequeststo.go | 8 +- .../aws-s3-bucket_redirectrule.go | 8 +- .../aws-s3-bucket_replicationconfiguration.go | 8 +- .../aws-s3-bucket_replicationdestination.go | 8 +- .../aws-s3-bucket_replicationrule.go | 8 +- .../aws-s3-bucket_routingrule.go | 8 +- .../aws-s3-bucket_routingrulecondition.go | 8 +- .../{ => resources}/aws-s3-bucket_rule.go | 8 +- .../aws-s3-bucket_s3keyfilter.go | 8 +- ...s3-bucket_serversideencryptionbydefault.go | 8 +- .../aws-s3-bucket_serversideencryptionrule.go | 8 +- .../aws-s3-bucket_sourceselectioncriteria.go | 8 +- .../aws-s3-bucket_ssekmsencryptedobjects.go | 8 +- .../aws-s3-bucket_storageclassanalysis.go | 8 +- .../aws-s3-bucket_tagfilter.go | 8 +- .../aws-s3-bucket_topicconfiguration.go | 8 +- .../aws-s3-bucket_transition.go | 8 +- .../aws-s3-bucket_versioningconfiguration.go | 8 +- .../aws-s3-bucket_websiteconfiguration.go | 8 +- .../{ => resources}/aws-s3-bucketpolicy.go | 13 +- .../{ => resources}/aws-sagemaker-endpoint.go | 13 +- .../aws-sagemaker-endpointconfig.go | 13 +- ...emaker-endpointconfig_productionvariant.go | 8 +- .../{ => resources}/aws-sagemaker-model.go | 13 +- ...aws-sagemaker-model_containerdefinition.go | 8 +- .../aws-sagemaker-model_vpcconfig.go | 8 +- .../aws-sagemaker-notebookinstance.go | 13 +- ...gemaker-notebookinstancelifecycleconfig.go | 13 +- ...cleconfig_notebookinstancelifecyclehook.go | 8 +- .../{ => resources}/aws-sdb-domain.go | 13 +- .../aws-secretsmanager-resourcepolicy.go | 13 +- .../aws-secretsmanager-rotationschedule.go | 13 +- ...smanager-rotationschedule_rotationrules.go | 8 +- .../aws-secretsmanager-secret.go | 13 +- ...retsmanager-secret_generatesecretstring.go | 8 +- ...s-secretsmanager-secrettargetattachment.go | 13 +- .../{ => resources}/aws-serverless-api.go | 13 +- .../aws-serverless-api_auth.go | 10 +- .../aws-serverless-api_s3location.go | 8 +- .../aws-serverless-application.go | 13 +- ...verless-application_applicationlocation.go | 8 +- .../aws-serverless-function.go | 13 +- ...aws-serverless-function_alexaskillevent.go | 8 +- .../aws-serverless-function_apievent.go | 8 +- ...erverless-function_cloudwatcheventevent.go | 8 +- ...aws-serverless-function_deadletterqueue.go | 8 +- ...erverless-function_deploymentpreference.go | 8 +- .../aws-serverless-function_dynamodbevent.go | 8 +- .../aws-serverless-function_eventsource.go | 8 +- ...serverless-function_functionenvironment.go | 8 +- ...s-serverless-function_iampolicydocument.go | 8 +- .../aws-serverless-function_iotruleevent.go | 8 +- .../aws-serverless-function_kinesisevent.go | 8 +- .../aws-serverless-function_s3event.go | 8 +- .../aws-serverless-function_s3location.go | 8 +- ...erverless-function_s3notificationfilter.go | 8 +- .../aws-serverless-function_scheduleevent.go | 8 +- .../aws-serverless-function_snsevent.go | 8 +- .../aws-serverless-function_sqsevent.go | 8 +- .../aws-serverless-function_vpcconfig.go | 8 +- .../aws-serverless-layerversion.go | 13 +- .../aws-serverless-simpletable.go | 13 +- .../aws-serverless-simpletable_primarykey.go | 8 +- ...rless-simpletable_provisionedthroughput.go | 8 +- ...serverless-simpletable_ssespecification.go | 8 +- ...s-servicecatalog-acceptedportfolioshare.go | 13 +- ...ws-servicecatalog-cloudformationproduct.go | 13 +- ...nproduct_provisioningartifactproperties.go | 8 +- ...atalog-cloudformationprovisionedproduct.go | 13 +- ...rovisionedproduct_provisioningparameter.go | 8 +- ...icecatalog-launchnotificationconstraint.go | 13 +- ...aws-servicecatalog-launchroleconstraint.go | 13 +- ...servicecatalog-launchtemplateconstraint.go | 13 +- .../aws-servicecatalog-portfolio.go | 13 +- ...cecatalog-portfolioprincipalassociation.go | 13 +- ...vicecatalog-portfolioproductassociation.go | 13 +- .../aws-servicecatalog-portfolioshare.go | 13 +- .../aws-servicecatalog-tagoption.go | 13 +- ...aws-servicecatalog-tagoptionassociation.go | 13 +- .../aws-servicediscovery-httpnamespace.go | 13 +- .../aws-servicediscovery-instance.go | 13 +- ...ws-servicediscovery-privatednsnamespace.go | 13 +- ...aws-servicediscovery-publicdnsnamespace.go | 13 +- .../aws-servicediscovery-service.go | 13 +- .../aws-servicediscovery-service_dnsconfig.go | 8 +- .../aws-servicediscovery-service_dnsrecord.go | 8 +- ...vicediscovery-service_healthcheckconfig.go | 8 +- ...scovery-service_healthcheckcustomconfig.go | 8 +- .../aws-ses-configurationset.go | 13 +- ...ws-ses-configurationseteventdestination.go | 13 +- ...teventdestination_cloudwatchdestination.go | 8 +- ...eventdestination_dimensionconfiguration.go | 8 +- ...ionseteventdestination_eventdestination.go | 8 +- ...tdestination_kinesisfirehosedestination.go | 8 +- .../{ => resources}/aws-ses-receiptfilter.go | 13 +- .../aws-ses-receiptfilter_filter.go | 8 +- .../aws-ses-receiptfilter_ipfilter.go | 8 +- .../{ => resources}/aws-ses-receiptrule.go | 13 +- .../aws-ses-receiptrule_action.go | 8 +- .../aws-ses-receiptrule_addheaderaction.go | 8 +- .../aws-ses-receiptrule_bounceaction.go | 8 +- .../aws-ses-receiptrule_lambdaaction.go | 8 +- .../aws-ses-receiptrule_rule.go | 8 +- .../aws-ses-receiptrule_s3action.go | 8 +- .../aws-ses-receiptrule_snsaction.go | 8 +- .../aws-ses-receiptrule_stopaction.go | 8 +- .../aws-ses-receiptrule_workmailaction.go | 8 +- .../{ => resources}/aws-ses-receiptruleset.go | 13 +- .../{ => resources}/aws-ses-template.go | 13 +- .../aws-ses-template_template.go | 8 +- .../{ => resources}/aws-sns-subscription.go | 13 +- .../{ => resources}/aws-sns-topic.go | 13 +- .../aws-sns-topic_subscription.go | 8 +- .../{ => resources}/aws-sns-topicpolicy.go | 13 +- .../{ => resources}/aws-sqs-queue.go | 13 +- .../{ => resources}/aws-sqs-queuepolicy.go | 13 +- .../{ => resources}/aws-ssm-association.go | 13 +- ...ation_instanceassociationoutputlocation.go | 8 +- .../aws-ssm-association_parametervalues.go | 8 +- .../aws-ssm-association_s3outputlocation.go | 8 +- .../aws-ssm-association_target.go | 8 +- .../{ => resources}/aws-ssm-document.go | 13 +- .../aws-ssm-maintenancewindow.go | 13 +- .../aws-ssm-maintenancewindowtask.go | 13 +- ...s-ssm-maintenancewindowtask_logginginfo.go | 8 +- ...k_maintenancewindowautomationparameters.go | 8 +- ...wtask_maintenancewindowlambdaparameters.go | 8 +- ...k_maintenancewindowruncommandparameters.go | 8 +- ...aintenancewindowstepfunctionsparameters.go | 8 +- ...aintenancewindowtask_notificationconfig.go | 8 +- .../aws-ssm-maintenancewindowtask_target.go | 8 +- ...ancewindowtask_taskinvocationparameters.go | 8 +- .../{ => resources}/aws-ssm-parameter.go | 13 +- .../{ => resources}/aws-ssm-patchbaseline.go | 13 +- .../aws-ssm-patchbaseline_patchfilter.go | 8 +- .../aws-ssm-patchbaseline_patchfiltergroup.go | 8 +- .../aws-ssm-patchbaseline_patchsource.go | 8 +- .../aws-ssm-patchbaseline_rule.go | 8 +- .../aws-ssm-patchbaseline_rulegroup.go | 8 +- .../aws-ssm-resourcedatasync.go | 13 +- .../aws-stepfunctions-activity.go | 13 +- .../aws-stepfunctions-activity_tagsentry.go | 8 +- .../aws-stepfunctions-statemachine.go | 13 +- ...ws-stepfunctions-statemachine_tagsentry.go | 8 +- .../{ => resources}/aws-waf-bytematchset.go | 13 +- .../aws-waf-bytematchset_bytematchtuple.go | 8 +- .../aws-waf-bytematchset_fieldtomatch.go | 8 +- .../{ => resources}/aws-waf-ipset.go | 13 +- .../aws-waf-ipset_ipsetdescriptor.go | 8 +- .../{ => resources}/aws-waf-rule.go | 13 +- .../{ => resources}/aws-waf-rule_predicate.go | 8 +- .../aws-waf-sizeconstraintset.go | 13 +- .../aws-waf-sizeconstraintset_fieldtomatch.go | 8 +- ...ws-waf-sizeconstraintset_sizeconstraint.go | 8 +- .../aws-waf-sqlinjectionmatchset.go | 13 +- ...s-waf-sqlinjectionmatchset_fieldtomatch.go | 8 +- ...njectionmatchset_sqlinjectionmatchtuple.go | 8 +- .../{ => resources}/aws-waf-webacl.go | 13 +- .../aws-waf-webacl_activatedrule.go | 8 +- .../aws-waf-webacl_wafaction.go | 8 +- .../{ => resources}/aws-waf-xssmatchset.go | 13 +- .../aws-waf-xssmatchset_fieldtomatch.go | 8 +- .../aws-waf-xssmatchset_xssmatchtuple.go | 8 +- .../aws-wafregional-bytematchset.go | 13 +- ...wafregional-bytematchset_bytematchtuple.go | 8 +- ...s-wafregional-bytematchset_fieldtomatch.go | 8 +- .../{ => resources}/aws-wafregional-ipset.go | 13 +- .../aws-wafregional-ipset_ipsetdescriptor.go | 8 +- .../{ => resources}/aws-wafregional-rule.go | 13 +- .../aws-wafregional-rule_predicate.go | 8 +- .../aws-wafregional-sizeconstraintset.go | 13 +- ...regional-sizeconstraintset_fieldtomatch.go | 8 +- ...gional-sizeconstraintset_sizeconstraint.go | 8 +- .../aws-wafregional-sqlinjectionmatchset.go | 13 +- ...ional-sqlinjectionmatchset_fieldtomatch.go | 8 +- ...njectionmatchset_sqlinjectionmatchtuple.go | 8 +- .../{ => resources}/aws-wafregional-webacl.go | 13 +- .../aws-wafregional-webacl_action.go | 8 +- .../aws-wafregional-webacl_rule.go | 8 +- .../aws-wafregional-webaclassociation.go | 13 +- .../aws-wafregional-xssmatchset.go | 13 +- ...ws-wafregional-xssmatchset_fieldtomatch.go | 8 +- ...s-wafregional-xssmatchset_xssmatchtuple.go | 8 +- .../aws-workspaces-workspace.go | 13 +- ...orkspaces-workspace_workspaceproperties.go | 8 +- .../awsserverlessapi_definitionuri.go | 2 +- .../awsserverlessapplication_location.go | 2 +- .../awsserverlessfunction_codeuri.go | 2 +- .../awsserverlessfunction_events.go | 2 +- .../awsserverlessfunction_policies.go | 2 +- .../awsserverlessfunction_properties.go | 2 +- cloudformation/{ => resources}/tag.go | 8 +- example/go-to-yaml/main.go | 5 +- generate/generate.go | 4 +- generate/property_test.go | 24 +- generate/resource_test.go | 33 +- generate/templates/all.template | 13 +- .../templates/polymorphic-property.template | 2 +- generate/templates/resource.template | 23 +- goformation_test.go | 48 +- schema/sam.go | 2 +- schema/sam.schema.json | 2 +- 1184 files changed, 8887 insertions(+), 6991 deletions(-) delete mode 100644 cloudformation/aws-cloudfront-distribution_legacycustomorigin.go delete mode 100644 cloudformation/aws-cloudfront-distribution_legacys3origin.go delete mode 100644 cloudformation/aws-ssm-patchbaseline_patchgroup.go rename cloudformation/{ => policies}/policies.go (99%) rename cloudformation/{ => resources}/alexa-ask-skill.go (91%) rename cloudformation/{ => resources}/alexa-ask-skill_authenticationconfiguration.go (95%) rename cloudformation/{ => resources}/alexa-ask-skill_overrides.go (91%) rename cloudformation/{ => resources}/alexa-ask-skill_skillpackage.go (94%) rename cloudformation/{ => resources}/aws-amazonmq-broker.go (94%) rename cloudformation/{ => resources}/aws-amazonmq-broker_configurationid.go (94%) rename cloudformation/{ => resources}/aws-amazonmq-broker_loglist.go (92%) rename cloudformation/{ => resources}/aws-amazonmq-broker_maintenancewindow.go (95%) rename cloudformation/{ => resources}/aws-amazonmq-broker_tagsentry.go (92%) rename cloudformation/{ => resources}/aws-amazonmq-broker_user.go (93%) rename cloudformation/{ => resources}/aws-amazonmq-configuration.go (92%) rename cloudformation/{ => resources}/aws-amazonmq-configuration_tagsentry.go (94%) rename cloudformation/{ => resources}/aws-amazonmq-configurationassociation.go (92%) rename cloudformation/{ => resources}/aws-amazonmq-configurationassociation_configurationid.go (94%) rename cloudformation/{ => resources}/aws-apigateway-account.go (89%) rename cloudformation/{ => resources}/aws-apigateway-apikey.go (92%) rename cloudformation/{ => resources}/aws-apigateway-apikey_stagekey.go (94%) rename cloudformation/{ => resources}/aws-apigateway-authorizer.go (93%) rename cloudformation/{ => resources}/aws-apigateway-basepathmapping.go (92%) rename cloudformation/{ => resources}/aws-apigateway-clientcertificate.go (91%) rename cloudformation/{ => resources}/aws-apigateway-deployment.go (92%) rename cloudformation/{ => resources}/aws-apigateway-deployment_accesslogsetting.go (94%) rename cloudformation/{ => resources}/aws-apigateway-deployment_canarysetting.go (95%) rename cloudformation/{ => resources}/aws-apigateway-deployment_deploymentcanarysettings.go (95%) rename cloudformation/{ => resources}/aws-apigateway-deployment_methodsetting.go (97%) rename cloudformation/{ => resources}/aws-apigateway-deployment_stagedescription.go (98%) rename cloudformation/{ => resources}/aws-apigateway-documentationpart.go (92%) rename cloudformation/{ => resources}/aws-apigateway-documentationpart_location.go (95%) rename cloudformation/{ => resources}/aws-apigateway-documentationversion.go (92%) rename cloudformation/{ => resources}/aws-apigateway-domainname.go (91%) rename cloudformation/{ => resources}/aws-apigateway-domainname_endpointconfiguration.go (93%) rename cloudformation/{ => resources}/aws-apigateway-gatewayresponse.go (93%) rename cloudformation/{ => resources}/aws-apigateway-method.go (94%) rename cloudformation/{ => resources}/aws-apigateway-method_integration.go (97%) rename cloudformation/{ => resources}/aws-apigateway-method_integrationresponse.go (96%) rename cloudformation/{ => resources}/aws-apigateway-method_methodresponse.go (95%) rename cloudformation/{ => resources}/aws-apigateway-model.go (91%) rename cloudformation/{ => resources}/aws-apigateway-requestvalidator.go (93%) rename cloudformation/{ => resources}/aws-apigateway-resource.go (91%) rename cloudformation/{ => resources}/aws-apigateway-restapi.go (94%) rename cloudformation/{ => resources}/aws-apigateway-restapi_endpointconfiguration.go (93%) rename cloudformation/{ => resources}/aws-apigateway-restapi_s3location.go (95%) rename cloudformation/{ => resources}/aws-apigateway-stage.go (94%) rename cloudformation/{ => resources}/aws-apigateway-stage_accesslogsetting.go (94%) rename cloudformation/{ => resources}/aws-apigateway-stage_canarysetting.go (95%) rename cloudformation/{ => resources}/aws-apigateway-stage_methodsetting.go (97%) rename cloudformation/{ => resources}/aws-apigateway-usageplan.go (92%) rename cloudformation/{ => resources}/aws-apigateway-usageplan_apistage.go (95%) rename cloudformation/{ => resources}/aws-apigateway-usageplan_quotasettings.go (94%) rename cloudformation/{ => resources}/aws-apigateway-usageplan_throttlesettings.go (94%) rename cloudformation/{ => resources}/aws-apigateway-usageplankey.go (91%) rename cloudformation/{ => resources}/aws-apigateway-vpclink.go (91%) rename cloudformation/{ => resources}/aws-apigatewayv2-api.go (92%) rename cloudformation/{ => resources}/aws-apigatewayv2-authorizer.go (93%) rename cloudformation/{ => resources}/aws-apigatewayv2-deployment.go (91%) rename cloudformation/{ => resources}/aws-apigatewayv2-integration.go (94%) rename cloudformation/{ => resources}/aws-apigatewayv2-integrationresponse.go (94%) rename cloudformation/{ => resources}/aws-apigatewayv2-model.go (91%) rename cloudformation/{ => resources}/aws-apigatewayv2-route.go (94%) rename cloudformation/{ => resources}/aws-apigatewayv2-route_parameterconstraints.go (93%) rename cloudformation/{ => resources}/aws-apigatewayv2-routeresponse.go (93%) rename cloudformation/{ => resources}/aws-apigatewayv2-routeresponse_parameterconstraints.go (93%) rename cloudformation/{ => resources}/aws-apigatewayv2-stage.go (93%) rename cloudformation/{ => resources}/aws-apigatewayv2-stage_accesslogsettings.go (94%) rename cloudformation/{ => resources}/aws-apigatewayv2-stage_routesettings.go (95%) rename cloudformation/{ => resources}/aws-applicationautoscaling-scalabletarget.go (94%) rename cloudformation/{ => resources}/aws-applicationautoscaling-scalabletarget_scalabletargetaction.go (94%) rename cloudformation/{ => resources}/aws-applicationautoscaling-scalabletarget_scheduledaction.go (95%) rename cloudformation/{ => resources}/aws-applicationautoscaling-scalingpolicy.go (94%) rename cloudformation/{ => resources}/aws-applicationautoscaling-scalingpolicy_customizedmetricspecification.go (95%) rename cloudformation/{ => resources}/aws-applicationautoscaling-scalingpolicy_metricdimension.go (94%) rename cloudformation/{ => resources}/aws-applicationautoscaling-scalingpolicy_predefinedmetricspecification.go (94%) rename cloudformation/{ => resources}/aws-applicationautoscaling-scalingpolicy_stepadjustment.go (95%) rename cloudformation/{ => resources}/aws-applicationautoscaling-scalingpolicy_stepscalingpolicyconfiguration.go (95%) rename cloudformation/{ => resources}/aws-applicationautoscaling-scalingpolicy_targettrackingscalingpolicyconfiguration.go (96%) rename cloudformation/{ => resources}/aws-appstream-directoryconfig.go (91%) rename cloudformation/{ => resources}/aws-appstream-directoryconfig_serviceaccountcredentials.go (94%) rename cloudformation/{ => resources}/aws-appstream-fleet.go (94%) rename cloudformation/{ => resources}/aws-appstream-fleet_computecapacity.go (94%) rename cloudformation/{ => resources}/aws-appstream-fleet_domainjoininfo.go (94%) rename cloudformation/{ => resources}/aws-appstream-fleet_vpcconfig.go (92%) rename cloudformation/{ => resources}/aws-appstream-imagebuilder.go (93%) rename cloudformation/{ => resources}/aws-appstream-imagebuilder_domainjoininfo.go (94%) rename cloudformation/{ => resources}/aws-appstream-imagebuilder_vpcconfig.go (94%) rename cloudformation/{ => resources}/aws-appstream-stack.go (93%) rename cloudformation/{ => resources}/aws-appstream-stack_applicationsettings.go (94%) rename cloudformation/{ => resources}/aws-appstream-stack_storageconnector.go (95%) rename cloudformation/{ => resources}/aws-appstream-stack_usersetting.go (94%) rename cloudformation/{ => resources}/aws-appstream-stackfleetassociation.go (92%) rename cloudformation/{ => resources}/aws-appstream-stackuserassociation.go (93%) rename cloudformation/{ => resources}/aws-appstream-user.go (91%) rename cloudformation/{ => resources}/aws-appsync-apikey.go (90%) rename cloudformation/{ => resources}/aws-appsync-datasource.go (93%) rename cloudformation/{ => resources}/aws-appsync-datasource_authorizationconfig.go (94%) rename cloudformation/{ => resources}/aws-appsync-datasource_awsiamconfig.go (94%) rename cloudformation/{ => resources}/aws-appsync-datasource_dynamodbconfig.go (95%) rename cloudformation/{ => resources}/aws-appsync-datasource_elasticsearchconfig.go (94%) rename cloudformation/{ => resources}/aws-appsync-datasource_httpconfig.go (94%) rename cloudformation/{ => resources}/aws-appsync-datasource_lambdaconfig.go (94%) rename cloudformation/{ => resources}/aws-appsync-datasource_rdshttpendpointconfig.go (95%) rename cloudformation/{ => resources}/aws-appsync-datasource_relationaldatabaseconfig.go (94%) rename cloudformation/{ => resources}/aws-appsync-functionconfiguration.go (94%) rename cloudformation/{ => resources}/aws-appsync-graphqlapi.go (92%) rename cloudformation/{ => resources}/aws-appsync-graphqlapi_logconfig.go (94%) rename cloudformation/{ => resources}/aws-appsync-graphqlapi_openidconnectconfig.go (95%) rename cloudformation/{ => resources}/aws-appsync-graphqlapi_userpoolconfig.go (95%) rename cloudformation/{ => resources}/aws-appsync-graphqlschema.go (91%) rename cloudformation/{ => resources}/aws-appsync-resolver.go (93%) rename cloudformation/{ => resources}/aws-appsync-resolver_pipelineconfig.go (93%) rename cloudformation/{ => resources}/aws-athena-namedquery.go (91%) rename cloudformation/{ => resources}/aws-autoscaling-autoscalinggroup.go (94%) rename cloudformation/{ => resources}/aws-autoscaling-autoscalinggroup_instancesdistribution.go (96%) rename cloudformation/{ => resources}/aws-autoscaling-autoscalinggroup_launchtemplate.go (94%) rename cloudformation/{ => resources}/aws-autoscaling-autoscalinggroup_launchtemplateoverrides.go (93%) rename cloudformation/{ => resources}/aws-autoscaling-autoscalinggroup_launchtemplatespecification.go (95%) rename cloudformation/{ => resources}/aws-autoscaling-autoscalinggroup_lifecyclehookspecification.go (96%) rename cloudformation/{ => resources}/aws-autoscaling-autoscalinggroup_metricscollection.go (94%) rename cloudformation/{ => resources}/aws-autoscaling-autoscalinggroup_mixedinstancespolicy.go (94%) rename cloudformation/{ => resources}/aws-autoscaling-autoscalinggroup_notificationconfiguration.go (94%) rename cloudformation/{ => resources}/aws-autoscaling-autoscalinggroup_tagproperty.go (94%) rename cloudformation/{ => resources}/aws-autoscaling-launchconfiguration.go (95%) rename cloudformation/{ => resources}/aws-autoscaling-launchconfiguration_blockdevice.go (95%) rename cloudformation/{ => resources}/aws-autoscaling-launchconfiguration_blockdevicemapping.go (95%) rename cloudformation/{ => resources}/aws-autoscaling-lifecyclehook.go (93%) rename cloudformation/{ => resources}/aws-autoscaling-scalingpolicy.go (93%) rename cloudformation/{ => resources}/aws-autoscaling-scalingpolicy_customizedmetricspecification.go (95%) rename cloudformation/{ => resources}/aws-autoscaling-scalingpolicy_metricdimension.go (94%) rename cloudformation/{ => resources}/aws-autoscaling-scalingpolicy_predefinedmetricspecification.go (94%) rename cloudformation/{ => resources}/aws-autoscaling-scalingpolicy_stepadjustment.go (95%) rename cloudformation/{ => resources}/aws-autoscaling-scalingpolicy_targettrackingconfiguration.go (95%) rename cloudformation/{ => resources}/aws-autoscaling-scheduledaction.go (93%) rename cloudformation/{ => resources}/aws-autoscalingplans-scalingplan.go (92%) rename cloudformation/{ => resources}/aws-autoscalingplans-scalingplan_applicationsource.go (94%) rename cloudformation/{ => resources}/aws-autoscalingplans-scalingplan_customizedloadmetricspecification.go (95%) rename cloudformation/{ => resources}/aws-autoscalingplans-scalingplan_customizedscalingmetricspecification.go (95%) rename cloudformation/{ => resources}/aws-autoscalingplans-scalingplan_metricdimension.go (94%) rename cloudformation/{ => resources}/aws-autoscalingplans-scalingplan_predefinedloadmetricspecification.go (94%) rename cloudformation/{ => resources}/aws-autoscalingplans-scalingplan_predefinedscalingmetricspecification.go (94%) rename cloudformation/{ => resources}/aws-autoscalingplans-scalingplan_scalinginstruction.go (97%) rename cloudformation/{ => resources}/aws-autoscalingplans-scalingplan_tagfilter.go (94%) rename cloudformation/{ => resources}/aws-autoscalingplans-scalingplan_targettrackingconfiguration.go (96%) rename cloudformation/{ => resources}/aws-batch-computeenvironment.go (92%) rename cloudformation/{ => resources}/aws-batch-computeenvironment_computeresources.go (97%) rename cloudformation/{ => resources}/aws-batch-computeenvironment_launchtemplatespecification.go (95%) rename cloudformation/{ => resources}/aws-batch-jobdefinition.go (92%) rename cloudformation/{ => resources}/aws-batch-jobdefinition_containerproperties.go (97%) rename cloudformation/{ => resources}/aws-batch-jobdefinition_environment.go (94%) rename cloudformation/{ => resources}/aws-batch-jobdefinition_mountpoints.go (95%) rename cloudformation/{ => resources}/aws-batch-jobdefinition_nodeproperties.go (95%) rename cloudformation/{ => resources}/aws-batch-jobdefinition_noderangeproperty.go (94%) rename cloudformation/{ => resources}/aws-batch-jobdefinition_retrystrategy.go (93%) rename cloudformation/{ => resources}/aws-batch-jobdefinition_timeout.go (94%) rename cloudformation/{ => resources}/aws-batch-jobdefinition_ulimit.go (94%) rename cloudformation/{ => resources}/aws-batch-jobdefinition_volumes.go (94%) rename cloudformation/{ => resources}/aws-batch-jobdefinition_volumeshost.go (93%) rename cloudformation/{ => resources}/aws-batch-jobqueue.go (91%) rename cloudformation/{ => resources}/aws-batch-jobqueue_computeenvironmentorder.go (94%) rename cloudformation/{ => resources}/aws-budgets-budget.go (90%) rename cloudformation/{ => resources}/aws-budgets-budget_budgetdata.go (94%) rename cloudformation/{ => resources}/aws-budgets-budget_costtypes.go (96%) rename cloudformation/{ => resources}/aws-budgets-budget_notification.go (95%) rename cloudformation/{ => resources}/aws-budgets-budget_notificationwithsubscribers.go (94%) rename cloudformation/{ => resources}/aws-budgets-budget_spend.go (92%) rename cloudformation/{ => resources}/aws-budgets-budget_subscriber.go (92%) rename cloudformation/{ => resources}/aws-budgets-budget_timeperiod.go (92%) rename cloudformation/{ => resources}/aws-certificatemanager-certificate.go (93%) rename cloudformation/{ => resources}/aws-certificatemanager-certificate_domainvalidationoption.go (94%) rename cloudformation/{ => resources}/aws-cloud9-environmentec2.go (92%) rename cloudformation/{ => resources}/aws-cloud9-environmentec2_repository.go (94%) rename cloudformation/{ => resources}/aws-cloudformation-customresource.go (91%) rename cloudformation/{ => resources}/aws-cloudformation-macro.go (91%) rename cloudformation/{ => resources}/aws-cloudformation-stack.go (91%) rename cloudformation/{ => resources}/aws-cloudformation-waitcondition.go (90%) rename cloudformation/{ => resources}/aws-cloudformation-waitconditionhandle.go (91%) rename cloudformation/{ => resources}/aws-cloudfront-cloudfrontoriginaccessidentity.go (92%) rename cloudformation/{ => resources}/aws-cloudfront-cloudfrontoriginaccessidentity_cloudfrontoriginaccessidentityconfig.go (93%) rename cloudformation/{ => resources}/aws-cloudfront-distribution.go (90%) rename cloudformation/{ => resources}/aws-cloudfront-distribution_cachebehavior.go (97%) rename cloudformation/{ => resources}/aws-cloudfront-distribution_cookies.go (94%) rename cloudformation/{ => resources}/aws-cloudfront-distribution_customerrorresponse.go (95%) rename cloudformation/{ => resources}/aws-cloudfront-distribution_customoriginconfig.go (96%) rename cloudformation/{ => resources}/aws-cloudfront-distribution_defaultcachebehavior.go (97%) rename cloudformation/{ => resources}/aws-cloudfront-distribution_distributionconfig.go (97%) rename cloudformation/{ => resources}/aws-cloudfront-distribution_forwardedvalues.go (95%) rename cloudformation/{ => resources}/aws-cloudfront-distribution_georestriction.go (94%) rename cloudformation/{ => resources}/aws-cloudfront-distribution_lambdafunctionassociation.go (94%) rename cloudformation/{ => resources}/aws-cloudfront-distribution_logging.go (95%) rename cloudformation/{ => resources}/aws-cloudfront-distribution_origin.go (96%) rename cloudformation/{ => resources}/aws-cloudfront-distribution_origincustomheader.go (94%) rename cloudformation/{ => resources}/aws-cloudfront-distribution_restrictions.go (94%) rename cloudformation/{ => resources}/aws-cloudfront-distribution_s3originconfig.go (94%) rename cloudformation/{ => resources}/aws-cloudfront-distribution_viewercertificate.go (95%) rename cloudformation/{ => resources}/aws-cloudfront-streamingdistribution.go (92%) rename cloudformation/{ => resources}/aws-cloudfront-streamingdistribution_logging.go (94%) rename cloudformation/{ => resources}/aws-cloudfront-streamingdistribution_s3origin.go (94%) rename cloudformation/{ => resources}/aws-cloudfront-streamingdistribution_streamingdistributionconfig.go (96%) rename cloudformation/{ => resources}/aws-cloudfront-streamingdistribution_trustedsigners.go (94%) rename cloudformation/{ => resources}/aws-cloudtrail-trail.go (94%) rename cloudformation/{ => resources}/aws-cloudtrail-trail_dataresource.go (94%) rename cloudformation/{ => resources}/aws-cloudtrail-trail_eventselector.go (95%) rename cloudformation/{ => resources}/aws-cloudwatch-alarm.go (95%) rename cloudformation/{ => resources}/aws-cloudwatch-alarm_dimension.go (94%) rename cloudformation/{ => resources}/aws-cloudwatch-alarm_metric.go (93%) rename cloudformation/{ => resources}/aws-cloudwatch-alarm_metricdataquery.go (95%) rename cloudformation/{ => resources}/aws-cloudwatch-alarm_metricstat.go (95%) rename cloudformation/{ => resources}/aws-cloudwatch-dashboard.go (90%) rename cloudformation/{ => resources}/aws-codebuild-project.go (95%) rename cloudformation/{ => resources}/aws-codebuild-project_artifacts.go (96%) rename cloudformation/{ => resources}/aws-codebuild-project_cloudwatchlogsconfig.go (94%) rename cloudformation/{ => resources}/aws-codebuild-project_environment.go (96%) rename cloudformation/{ => resources}/aws-codebuild-project_environmentvariable.go (94%) rename cloudformation/{ => resources}/aws-codebuild-project_filtergroup.go (93%) rename cloudformation/{ => resources}/aws-codebuild-project_logsconfig.go (94%) rename cloudformation/{ => resources}/aws-codebuild-project_projectcache.go (94%) rename cloudformation/{ => resources}/aws-codebuild-project_projecttriggers.go (94%) rename cloudformation/{ => resources}/aws-codebuild-project_registrycredential.go (94%) rename cloudformation/{ => resources}/aws-codebuild-project_s3logsconfig.go (94%) rename cloudformation/{ => resources}/aws-codebuild-project_source.go (95%) rename cloudformation/{ => resources}/aws-codebuild-project_sourceauth.go (94%) rename cloudformation/{ => resources}/aws-codebuild-project_vpcconfig.go (95%) rename cloudformation/{ => resources}/aws-codebuild-project_webhookfilter.go (95%) rename cloudformation/{ => resources}/aws-codecommit-repository.go (91%) rename cloudformation/{ => resources}/aws-codecommit-repository_repositorytrigger.go (95%) rename cloudformation/{ => resources}/aws-codedeploy-application.go (90%) rename cloudformation/{ => resources}/aws-codedeploy-deploymentconfig.go (92%) rename cloudformation/{ => resources}/aws-codedeploy-deploymentconfig_minimumhealthyhosts.go (94%) rename cloudformation/{ => resources}/aws-codedeploy-deploymentgroup.go (95%) rename cloudformation/{ => resources}/aws-codedeploy-deploymentgroup_alarm.go (93%) rename cloudformation/{ => resources}/aws-codedeploy-deploymentgroup_alarmconfiguration.go (95%) rename cloudformation/{ => resources}/aws-codedeploy-deploymentgroup_autorollbackconfiguration.go (94%) rename cloudformation/{ => resources}/aws-codedeploy-deploymentgroup_deployment.go (95%) rename cloudformation/{ => resources}/aws-codedeploy-deploymentgroup_deploymentstyle.go (94%) rename cloudformation/{ => resources}/aws-codedeploy-deploymentgroup_ec2tagfilter.go (94%) rename cloudformation/{ => resources}/aws-codedeploy-deploymentgroup_ec2tagset.go (94%) rename cloudformation/{ => resources}/aws-codedeploy-deploymentgroup_ec2tagsetlistobject.go (93%) rename cloudformation/{ => resources}/aws-codedeploy-deploymentgroup_elbinfo.go (93%) rename cloudformation/{ => resources}/aws-codedeploy-deploymentgroup_githublocation.go (94%) rename cloudformation/{ => resources}/aws-codedeploy-deploymentgroup_loadbalancerinfo.go (94%) rename cloudformation/{ => resources}/aws-codedeploy-deploymentgroup_onpremisestagset.go (94%) rename cloudformation/{ => resources}/aws-codedeploy-deploymentgroup_onpremisestagsetlistobject.go (93%) rename cloudformation/{ => resources}/aws-codedeploy-deploymentgroup_revisionlocation.go (95%) rename cloudformation/{ => resources}/aws-codedeploy-deploymentgroup_s3location.go (95%) rename cloudformation/{ => resources}/aws-codedeploy-deploymentgroup_tagfilter.go (94%) rename cloudformation/{ => resources}/aws-codedeploy-deploymentgroup_targetgroupinfo.go (93%) rename cloudformation/{ => resources}/aws-codedeploy-deploymentgroup_triggerconfig.go (95%) rename cloudformation/{ => resources}/aws-codepipeline-customactiontype.go (94%) rename cloudformation/{ => resources}/aws-codepipeline-customactiontype_artifactdetails.go (94%) rename cloudformation/{ => resources}/aws-codepipeline-customactiontype_configurationproperties.go (96%) rename cloudformation/{ => resources}/aws-codepipeline-customactiontype_settings.go (95%) rename cloudformation/{ => resources}/aws-codepipeline-pipeline.go (93%) rename cloudformation/{ => resources}/aws-codepipeline-pipeline_actiondeclaration.go (96%) rename cloudformation/{ => resources}/aws-codepipeline-pipeline_actiontypeid.go (95%) rename cloudformation/{ => resources}/aws-codepipeline-pipeline_artifactstore.go (95%) rename cloudformation/{ => resources}/aws-codepipeline-pipeline_artifactstoremap.go (94%) rename cloudformation/{ => resources}/aws-codepipeline-pipeline_blockerdeclaration.go (94%) rename cloudformation/{ => resources}/aws-codepipeline-pipeline_encryptionkey.go (94%) rename cloudformation/{ => resources}/aws-codepipeline-pipeline_inputartifact.go (93%) rename cloudformation/{ => resources}/aws-codepipeline-pipeline_outputartifact.go (93%) rename cloudformation/{ => resources}/aws-codepipeline-pipeline_stagedeclaration.go (94%) rename cloudformation/{ => resources}/aws-codepipeline-pipeline_stagetransition.go (94%) rename cloudformation/{ => resources}/aws-codepipeline-webhook.go (93%) rename cloudformation/{ => resources}/aws-codepipeline-webhook_webhookauthconfiguration.go (94%) rename cloudformation/{ => resources}/aws-codepipeline-webhook_webhookfilterrule.go (94%) rename cloudformation/{ => resources}/aws-cognito-identitypool.go (94%) rename cloudformation/{ => resources}/aws-cognito-identitypool_cognitoidentityprovider.go (95%) rename cloudformation/{ => resources}/aws-cognito-identitypool_cognitostreams.go (95%) rename cloudformation/{ => resources}/aws-cognito-identitypool_pushsync.go (94%) rename cloudformation/{ => resources}/aws-cognito-identitypoolroleattachment.go (92%) rename cloudformation/{ => resources}/aws-cognito-identitypoolroleattachment_mappingrule.go (95%) rename cloudformation/{ => resources}/aws-cognito-identitypoolroleattachment_rolemapping.go (95%) rename cloudformation/{ => resources}/aws-cognito-identitypoolroleattachment_rulesconfigurationtype.go (93%) rename cloudformation/{ => resources}/aws-cognito-userpool.go (95%) rename cloudformation/{ => resources}/aws-cognito-userpool_admincreateuserconfig.go (95%) rename cloudformation/{ => resources}/aws-cognito-userpool_deviceconfiguration.go (94%) rename cloudformation/{ => resources}/aws-cognito-userpool_emailconfiguration.go (94%) rename cloudformation/{ => resources}/aws-cognito-userpool_invitemessagetemplate.go (95%) rename cloudformation/{ => resources}/aws-cognito-userpool_lambdaconfig.go (96%) rename cloudformation/{ => resources}/aws-cognito-userpool_numberattributeconstraints.go (94%) rename cloudformation/{ => resources}/aws-cognito-userpool_passwordpolicy.go (95%) rename cloudformation/{ => resources}/aws-cognito-userpool_policies.go (91%) rename cloudformation/{ => resources}/aws-cognito-userpool_schemaattribute.go (96%) rename cloudformation/{ => resources}/aws-cognito-userpool_smsconfiguration.go (94%) rename cloudformation/{ => resources}/aws-cognito-userpool_stringattributeconstraints.go (94%) rename cloudformation/{ => resources}/aws-cognito-userpoolclient.go (92%) rename cloudformation/{ => resources}/aws-cognito-userpoolgroup.go (91%) rename cloudformation/{ => resources}/aws-cognito-userpooluser.go (92%) rename cloudformation/{ => resources}/aws-cognito-userpooluser_attributetype.go (94%) rename cloudformation/{ => resources}/aws-cognito-userpoolusertogroupattachment.go (92%) rename cloudformation/{ => resources}/aws-config-aggregationauthorization.go (92%) rename cloudformation/{ => resources}/aws-config-configrule.go (92%) rename cloudformation/{ => resources}/aws-config-configrule_scope.go (93%) rename cloudformation/{ => resources}/aws-config-configrule_source.go (93%) rename cloudformation/{ => resources}/aws-config-configrule_sourcedetail.go (95%) rename cloudformation/{ => resources}/aws-config-configurationaggregator.go (93%) rename cloudformation/{ => resources}/aws-config-configurationaggregator_accountaggregationsource.go (94%) rename cloudformation/{ => resources}/aws-config-configurationaggregator_organizationaggregationsource.go (94%) rename cloudformation/{ => resources}/aws-config-configurationrecorder.go (92%) rename cloudformation/{ => resources}/aws-config-configurationrecorder_recordinggroup.go (95%) rename cloudformation/{ => resources}/aws-config-deliverychannel.go (92%) rename cloudformation/{ => resources}/aws-config-deliverychannel_configsnapshotdeliveryproperties.go (93%) rename cloudformation/{ => resources}/aws-datapipeline-pipeline.go (92%) rename cloudformation/{ => resources}/aws-datapipeline-pipeline_field.go (95%) rename cloudformation/{ => resources}/aws-datapipeline-pipeline_parameterattribute.go (94%) rename cloudformation/{ => resources}/aws-datapipeline-pipeline_parameterobject.go (94%) rename cloudformation/{ => resources}/aws-datapipeline-pipeline_parametervalue.go (94%) rename cloudformation/{ => resources}/aws-datapipeline-pipeline_pipelineobject.go (94%) rename cloudformation/{ => resources}/aws-datapipeline-pipeline_pipelinetag.go (94%) rename cloudformation/{ => resources}/aws-dax-cluster.go (94%) rename cloudformation/{ => resources}/aws-dax-cluster_ssespecification.go (93%) rename cloudformation/{ => resources}/aws-dax-parametergroup.go (91%) rename cloudformation/{ => resources}/aws-dax-subnetgroup.go (91%) rename cloudformation/{ => resources}/aws-directoryservice-microsoftad.go (93%) rename cloudformation/{ => resources}/aws-directoryservice-microsoftad_vpcsettings.go (94%) rename cloudformation/{ => resources}/aws-directoryservice-simplead.go (93%) rename cloudformation/{ => resources}/aws-directoryservice-simplead_vpcsettings.go (94%) rename cloudformation/{ => resources}/aws-dlm-lifecyclepolicy.go (91%) rename cloudformation/{ => resources}/aws-dlm-lifecyclepolicy_createrule.go (95%) rename cloudformation/{ => resources}/aws-dlm-lifecyclepolicy_policydetails.go (95%) rename cloudformation/{ => resources}/aws-dlm-lifecyclepolicy_retainrule.go (93%) rename cloudformation/{ => resources}/aws-dlm-lifecyclepolicy_schedule.go (95%) rename cloudformation/{ => resources}/aws-dms-certificate.go (91%) rename cloudformation/{ => resources}/aws-dms-endpoint.go (95%) rename cloudformation/{ => resources}/aws-dms-endpoint_dynamodbsettings.go (94%) rename cloudformation/{ => resources}/aws-dms-endpoint_elasticsearchsettings.go (95%) rename cloudformation/{ => resources}/aws-dms-endpoint_kinesissettings.go (95%) rename cloudformation/{ => resources}/aws-dms-endpoint_mongodbsettings.go (97%) rename cloudformation/{ => resources}/aws-dms-endpoint_s3settings.go (94%) rename cloudformation/{ => resources}/aws-dms-eventsubscription.go (92%) rename cloudformation/{ => resources}/aws-dms-replicationinstance.go (94%) rename cloudformation/{ => resources}/aws-dms-replicationsubnetgroup.go (93%) rename cloudformation/{ => resources}/aws-dms-replicationtask.go (93%) rename cloudformation/{ => resources}/aws-docdb-dbcluster.go (95%) rename cloudformation/{ => resources}/aws-docdb-dbclusterparametergroup.go (93%) rename cloudformation/{ => resources}/aws-docdb-dbinstance.go (92%) rename cloudformation/{ => resources}/aws-docdb-dbsubnetgroup.go (91%) rename cloudformation/{ => resources}/aws-dynamodb-table.go (94%) rename cloudformation/{ => resources}/aws-dynamodb-table_attributedefinition.go (94%) rename cloudformation/{ => resources}/aws-dynamodb-table_globalsecondaryindex.go (95%) rename cloudformation/{ => resources}/aws-dynamodb-table_keyschema.go (92%) rename cloudformation/{ => resources}/aws-dynamodb-table_localsecondaryindex.go (94%) rename cloudformation/{ => resources}/aws-dynamodb-table_pointintimerecoveryspecification.go (93%) rename cloudformation/{ => resources}/aws-dynamodb-table_projection.go (92%) rename cloudformation/{ => resources}/aws-dynamodb-table_provisionedthroughput.go (94%) rename cloudformation/{ => resources}/aws-dynamodb-table_ssespecification.go (93%) rename cloudformation/{ => resources}/aws-dynamodb-table_streamspecification.go (93%) rename cloudformation/{ => resources}/aws-dynamodb-table_timetolivespecification.go (94%) rename cloudformation/{ => resources}/aws-ec2-customergateway.go (91%) rename cloudformation/{ => resources}/aws-ec2-dhcpoptions.go (92%) rename cloudformation/{ => resources}/aws-ec2-ec2fleet.go (94%) rename cloudformation/{ => resources}/aws-ec2-ec2fleet_fleetlaunchtemplateconfigrequest.go (94%) rename cloudformation/{ => resources}/aws-ec2-ec2fleet_fleetlaunchtemplateoverridesrequest.go (96%) rename cloudformation/{ => resources}/aws-ec2-ec2fleet_fleetlaunchtemplatespecificationrequest.go (95%) rename cloudformation/{ => resources}/aws-ec2-ec2fleet_ondemandoptionsrequest.go (94%) rename cloudformation/{ => resources}/aws-ec2-ec2fleet_spotoptionsrequest.go (95%) rename cloudformation/{ => resources}/aws-ec2-ec2fleet_tagrequest.go (92%) rename cloudformation/{ => resources}/aws-ec2-ec2fleet_tagspecification.go (94%) rename cloudformation/{ => resources}/aws-ec2-ec2fleet_targetcapacityspecificationrequest.go (95%) rename cloudformation/{ => resources}/aws-ec2-egressonlyinternetgateway.go (91%) rename cloudformation/{ => resources}/aws-ec2-eip.go (90%) rename cloudformation/{ => resources}/aws-ec2-eipassociation.go (92%) rename cloudformation/{ => resources}/aws-ec2-flowlog.go (92%) rename cloudformation/{ => resources}/aws-ec2-host.go (90%) rename cloudformation/{ => resources}/aws-ec2-instance.go (95%) rename cloudformation/{ => resources}/aws-ec2-instance_associationparameter.go (94%) rename cloudformation/{ => resources}/aws-ec2-instance_blockdevicemapping.go (95%) rename cloudformation/{ => resources}/aws-ec2-instance_creditspecification.go (93%) rename cloudformation/{ => resources}/aws-ec2-instance_ebs.go (94%) rename cloudformation/{ => resources}/aws-ec2-instance_elasticgpuspecification.go (93%) rename cloudformation/{ => resources}/aws-ec2-instance_elasticinferenceaccelerator.go (93%) rename cloudformation/{ => resources}/aws-ec2-instance_instanceipv6address.go (93%) rename cloudformation/{ => resources}/aws-ec2-instance_launchtemplatespecification.go (95%) rename cloudformation/{ => resources}/aws-ec2-instance_licensespecification.go (94%) rename cloudformation/{ => resources}/aws-ec2-instance_networkinterface.go (97%) rename cloudformation/{ => resources}/aws-ec2-instance_nodevice.go (90%) rename cloudformation/{ => resources}/aws-ec2-instance_privateipaddressspecification.go (94%) rename cloudformation/{ => resources}/aws-ec2-instance_ssmassociation.go (94%) rename cloudformation/{ => resources}/aws-ec2-instance_volume.go (92%) rename cloudformation/{ => resources}/aws-ec2-internetgateway.go (89%) rename cloudformation/{ => resources}/aws-ec2-launchtemplate.go (90%) rename cloudformation/{ => resources}/aws-ec2-launchtemplate_blockdevicemapping.go (95%) rename cloudformation/{ => resources}/aws-ec2-launchtemplate_capacityreservationpreference.go (92%) rename cloudformation/{ => resources}/aws-ec2-launchtemplate_capacityreservationspecification.go (94%) rename cloudformation/{ => resources}/aws-ec2-launchtemplate_capacityreservationtarget.go (93%) rename cloudformation/{ => resources}/aws-ec2-launchtemplate_cpuoptions.go (94%) rename cloudformation/{ => resources}/aws-ec2-launchtemplate_creditspecification.go (94%) rename cloudformation/{ => resources}/aws-ec2-launchtemplate_ebs.go (95%) rename cloudformation/{ => resources}/aws-ec2-launchtemplate_elasticgpuspecification.go (93%) rename cloudformation/{ => resources}/aws-ec2-launchtemplate_hibernationoptions.go (94%) rename cloudformation/{ => resources}/aws-ec2-launchtemplate_iaminstanceprofile.go (94%) rename cloudformation/{ => resources}/aws-ec2-launchtemplate_instancemarketoptions.go (94%) rename cloudformation/{ => resources}/aws-ec2-launchtemplate_ipv6add.go (94%) rename cloudformation/{ => resources}/aws-ec2-launchtemplate_launchtemplatedata.go (98%) rename cloudformation/{ => resources}/aws-ec2-launchtemplate_launchtemplateelasticinferenceaccelerator.go (93%) rename cloudformation/{ => resources}/aws-ec2-launchtemplate_licensespecification.go (94%) rename cloudformation/{ => resources}/aws-ec2-launchtemplate_monitoring.go (94%) rename cloudformation/{ => resources}/aws-ec2-launchtemplate_networkinterface.go (97%) rename cloudformation/{ => resources}/aws-ec2-launchtemplate_placement.go (96%) rename cloudformation/{ => resources}/aws-ec2-launchtemplate_privateipadd.go (94%) rename cloudformation/{ => resources}/aws-ec2-launchtemplate_spotoptions.go (95%) rename cloudformation/{ => resources}/aws-ec2-launchtemplate_tagspecification.go (94%) rename cloudformation/{ => resources}/aws-ec2-natgateway.go (90%) rename cloudformation/{ => resources}/aws-ec2-networkacl.go (90%) rename cloudformation/{ => resources}/aws-ec2-networkaclentry.go (93%) rename cloudformation/{ => resources}/aws-ec2-networkaclentry_icmp.go (92%) rename cloudformation/{ => resources}/aws-ec2-networkaclentry_portrange.go (94%) rename cloudformation/{ => resources}/aws-ec2-networkinterface.go (94%) rename cloudformation/{ => resources}/aws-ec2-networkinterface_instanceipv6address.go (93%) rename cloudformation/{ => resources}/aws-ec2-networkinterface_privateipaddressspecification.go (94%) rename cloudformation/{ => resources}/aws-ec2-networkinterfaceattachment.go (93%) rename cloudformation/{ => resources}/aws-ec2-networkinterfacepermission.go (92%) rename cloudformation/{ => resources}/aws-ec2-placementgroup.go (89%) rename cloudformation/{ => resources}/aws-ec2-route.go (93%) rename cloudformation/{ => resources}/aws-ec2-routetable.go (90%) rename cloudformation/{ => resources}/aws-ec2-securitygroup.go (92%) rename cloudformation/{ => resources}/aws-ec2-securitygroup_egress.go (95%) rename cloudformation/{ => resources}/aws-ec2-securitygroup_ingress.go (95%) rename cloudformation/{ => resources}/aws-ec2-securitygroupegress.go (93%) rename cloudformation/{ => resources}/aws-ec2-securitygroupingress.go (94%) rename cloudformation/{ => resources}/aws-ec2-spotfleet.go (90%) rename cloudformation/{ => resources}/aws-ec2-spotfleet_blockdevicemapping.go (95%) rename cloudformation/{ => resources}/aws-ec2-spotfleet_classicloadbalancer.go (93%) rename cloudformation/{ => resources}/aws-ec2-spotfleet_classicloadbalancersconfig.go (94%) rename cloudformation/{ => resources}/aws-ec2-spotfleet_ebsblockdevice.go (96%) rename cloudformation/{ => resources}/aws-ec2-spotfleet_fleetlaunchtemplatespecification.go (95%) rename cloudformation/{ => resources}/aws-ec2-spotfleet_groupidentifier.go (94%) rename cloudformation/{ => resources}/aws-ec2-spotfleet_iaminstanceprofilespecification.go (93%) rename cloudformation/{ => resources}/aws-ec2-spotfleet_instanceipv6address.go (93%) rename cloudformation/{ => resources}/aws-ec2-spotfleet_instancenetworkinterfacespecification.go (97%) rename cloudformation/{ => resources}/aws-ec2-spotfleet_launchtemplateconfig.go (94%) rename cloudformation/{ => resources}/aws-ec2-spotfleet_launchtemplateoverrides.go (95%) rename cloudformation/{ => resources}/aws-ec2-spotfleet_loadbalancersconfig.go (94%) rename cloudformation/{ => resources}/aws-ec2-spotfleet_privateipaddressspecification.go (94%) rename cloudformation/{ => resources}/aws-ec2-spotfleet_spotfleetlaunchspecification.go (97%) rename cloudformation/{ => resources}/aws-ec2-spotfleet_spotfleetmonitoring.go (94%) rename cloudformation/{ => resources}/aws-ec2-spotfleet_spotfleetrequestconfigdata.go (97%) rename cloudformation/{ => resources}/aws-ec2-spotfleet_spotfleettagspecification.go (94%) rename cloudformation/{ => resources}/aws-ec2-spotfleet_spotplacement.go (95%) rename cloudformation/{ => resources}/aws-ec2-spotfleet_targetgroup.go (91%) rename cloudformation/{ => resources}/aws-ec2-spotfleet_targetgroupsconfig.go (94%) rename cloudformation/{ => resources}/aws-ec2-subnet.go (92%) rename cloudformation/{ => resources}/aws-ec2-subnetcidrblock.go (90%) rename cloudformation/{ => resources}/aws-ec2-subnetnetworkaclassociation.go (92%) rename cloudformation/{ => resources}/aws-ec2-subnetroutetableassociation.go (92%) rename cloudformation/{ => resources}/aws-ec2-transitgateway.go (93%) rename cloudformation/{ => resources}/aws-ec2-transitgatewayattachment.go (92%) rename cloudformation/{ => resources}/aws-ec2-transitgatewayroute.go (91%) rename cloudformation/{ => resources}/aws-ec2-transitgatewayroutetable.go (92%) rename cloudformation/{ => resources}/aws-ec2-transitgatewayroutetableassociation.go (92%) rename cloudformation/{ => resources}/aws-ec2-transitgatewayroutetablepropagation.go (92%) rename cloudformation/{ => resources}/aws-ec2-trunkinterfaceassociation.go (93%) rename cloudformation/{ => resources}/aws-ec2-volume.go (93%) rename cloudformation/{ => resources}/aws-ec2-volumeattachment.go (91%) rename cloudformation/{ => resources}/aws-ec2-vpc.go (91%) rename cloudformation/{ => resources}/aws-ec2-vpccidrblock.go (91%) rename cloudformation/{ => resources}/aws-ec2-vpcdhcpoptionsassociation.go (92%) rename cloudformation/{ => resources}/aws-ec2-vpcendpoint.go (93%) rename cloudformation/{ => resources}/aws-ec2-vpcendpointconnectionnotification.go (93%) rename cloudformation/{ => resources}/aws-ec2-vpcendpointservicepermissions.go (92%) rename cloudformation/{ => resources}/aws-ec2-vpcgatewayattachment.go (91%) rename cloudformation/{ => resources}/aws-ec2-vpcpeeringconnection.go (92%) rename cloudformation/{ => resources}/aws-ec2-vpnconnection.go (92%) rename cloudformation/{ => resources}/aws-ec2-vpnconnection_vpntunneloptionsspecification.go (94%) rename cloudformation/{ => resources}/aws-ec2-vpnconnectionroute.go (90%) rename cloudformation/{ => resources}/aws-ec2-vpngateway.go (90%) rename cloudformation/{ => resources}/aws-ec2-vpngatewayroutepropagation.go (92%) rename cloudformation/{ => resources}/aws-ecr-repository.go (91%) rename cloudformation/{ => resources}/aws-ecr-repository_lifecyclepolicy.go (94%) rename cloudformation/{ => resources}/aws-ecs-cluster.go (89%) rename cloudformation/{ => resources}/aws-ecs-service.go (94%) rename cloudformation/{ => resources}/aws-ecs-service_awsvpcconfiguration.go (95%) rename cloudformation/{ => resources}/aws-ecs-service_deploymentconfiguration.go (94%) rename cloudformation/{ => resources}/aws-ecs-service_loadbalancer.go (93%) rename cloudformation/{ => resources}/aws-ecs-service_networkconfiguration.go (94%) rename cloudformation/{ => resources}/aws-ecs-service_placementconstraint.go (94%) rename cloudformation/{ => resources}/aws-ecs-service_placementstrategy.go (94%) rename cloudformation/{ => resources}/aws-ecs-service_serviceregistry.go (95%) rename cloudformation/{ => resources}/aws-ecs-taskdefinition.go (93%) rename cloudformation/{ => resources}/aws-ecs-taskdefinition_containerdefinition.go (98%) rename cloudformation/{ => resources}/aws-ecs-taskdefinition_device.go (93%) rename cloudformation/{ => resources}/aws-ecs-taskdefinition_dockervolumeconfiguration.go (95%) rename cloudformation/{ => resources}/aws-ecs-taskdefinition_healthcheck.go (95%) rename cloudformation/{ => resources}/aws-ecs-taskdefinition_hostentry.go (94%) rename cloudformation/{ => resources}/aws-ecs-taskdefinition_hostvolumeproperties.go (93%) rename cloudformation/{ => resources}/aws-ecs-taskdefinition_kernelcapabilities.go (94%) rename cloudformation/{ => resources}/aws-ecs-taskdefinition_keyvaluepair.go (94%) rename cloudformation/{ => resources}/aws-ecs-taskdefinition_linuxparameters.go (95%) rename cloudformation/{ => resources}/aws-ecs-taskdefinition_logconfiguration.go (94%) rename cloudformation/{ => resources}/aws-ecs-taskdefinition_mountpoint.go (95%) rename cloudformation/{ => resources}/aws-ecs-taskdefinition_portmapping.go (95%) rename cloudformation/{ => resources}/aws-ecs-taskdefinition_repositorycredentials.go (93%) rename cloudformation/{ => resources}/aws-ecs-taskdefinition_taskdefinitionplacementconstraint.go (94%) rename cloudformation/{ => resources}/aws-ecs-taskdefinition_tmpfs.go (92%) rename cloudformation/{ => resources}/aws-ecs-taskdefinition_ulimit.go (93%) rename cloudformation/{ => resources}/aws-ecs-taskdefinition_volume.go (93%) rename cloudformation/{ => resources}/aws-ecs-taskdefinition_volumefrom.go (94%) rename cloudformation/{ => resources}/aws-efs-filesystem.go (92%) rename cloudformation/{ => resources}/aws-efs-filesystem_elasticfilesystemtag.go (94%) rename cloudformation/{ => resources}/aws-efs-mounttarget.go (91%) rename cloudformation/{ => resources}/aws-eks-cluster.go (91%) rename cloudformation/{ => resources}/aws-eks-cluster_resourcesvpcconfig.go (94%) rename cloudformation/{ => resources}/aws-elasticache-cachecluster.go (95%) rename cloudformation/{ => resources}/aws-elasticache-parametergroup.go (92%) rename cloudformation/{ => resources}/aws-elasticache-replicationgroup.go (97%) rename cloudformation/{ => resources}/aws-elasticache-replicationgroup_nodegroupconfiguration.go (95%) rename cloudformation/{ => resources}/aws-elasticache-securitygroup.go (90%) rename cloudformation/{ => resources}/aws-elasticache-securitygroupingress.go (92%) rename cloudformation/{ => resources}/aws-elasticache-subnetgroup.go (91%) rename cloudformation/{ => resources}/aws-elasticbeanstalk-application.go (92%) rename cloudformation/{ => resources}/aws-elasticbeanstalk-application_applicationresourcelifecycleconfig.go (94%) rename cloudformation/{ => resources}/aws-elasticbeanstalk-application_applicationversionlifecycleconfig.go (94%) rename cloudformation/{ => resources}/aws-elasticbeanstalk-application_maxagerule.go (95%) rename cloudformation/{ => resources}/aws-elasticbeanstalk-application_maxcountrule.go (95%) rename cloudformation/{ => resources}/aws-elasticbeanstalk-applicationversion.go (92%) rename cloudformation/{ => resources}/aws-elasticbeanstalk-applicationversion_sourcebundle.go (94%) rename cloudformation/{ => resources}/aws-elasticbeanstalk-configurationtemplate.go (94%) rename cloudformation/{ => resources}/aws-elasticbeanstalk-configurationtemplate_configurationoptionsetting.go (95%) rename cloudformation/{ => resources}/aws-elasticbeanstalk-configurationtemplate_sourceconfiguration.go (94%) rename cloudformation/{ => resources}/aws-elasticbeanstalk-environment.go (94%) rename cloudformation/{ => resources}/aws-elasticbeanstalk-environment_optionsetting.go (95%) rename cloudformation/{ => resources}/aws-elasticbeanstalk-environment_tier.go (94%) rename cloudformation/{ => resources}/aws-elasticloadbalancing-loadbalancer.go (95%) rename cloudformation/{ => resources}/aws-elasticloadbalancing-loadbalancer_accessloggingpolicy.go (95%) rename cloudformation/{ => resources}/aws-elasticloadbalancing-loadbalancer_appcookiestickinesspolicy.go (94%) rename cloudformation/{ => resources}/aws-elasticloadbalancing-loadbalancer_connectiondrainingpolicy.go (94%) rename cloudformation/{ => resources}/aws-elasticloadbalancing-loadbalancer_connectionsettings.go (93%) rename cloudformation/{ => resources}/aws-elasticloadbalancing-loadbalancer_healthcheck.go (95%) rename cloudformation/{ => resources}/aws-elasticloadbalancing-loadbalancer_lbcookiestickinesspolicy.go (94%) rename cloudformation/{ => resources}/aws-elasticloadbalancing-loadbalancer_listeners.go (95%) rename cloudformation/{ => resources}/aws-elasticloadbalancing-loadbalancer_policies.go (95%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-listener.go (93%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-listener_action.go (96%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-listener_authenticatecognitoconfig.go (96%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-listener_authenticateoidcconfig.go (97%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-listener_certificate.go (93%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-listener_fixedresponseconfig.go (94%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-listener_redirectconfig.go (95%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-listenercertificate.go (92%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-listenercertificate_certificate.go (93%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-listenerrule.go (93%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-listenerrule_action.go (96%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-listenerrule_authenticatecognitoconfig.go (96%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-listenerrule_authenticateoidcconfig.go (97%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-listenerrule_fixedresponseconfig.go (94%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-listenerrule_redirectconfig.go (95%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-listenerrule_rulecondition.go (94%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-loadbalancer.go (94%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-loadbalancer_loadbalancerattribute.go (94%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-loadbalancer_subnetmapping.go (94%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-targetgroup.go (96%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-targetgroup_matcher.go (93%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-targetgroup_targetdescription.go (94%) rename cloudformation/{ => resources}/aws-elasticloadbalancingv2-targetgroup_targetgroupattribute.go (94%) rename cloudformation/{ => resources}/aws-elasticsearch-domain.go (94%) rename cloudformation/{ => resources}/aws-elasticsearch-domain_ebsoptions.go (95%) rename cloudformation/{ => resources}/aws-elasticsearch-domain_elasticsearchclusterconfig.go (96%) rename cloudformation/{ => resources}/aws-elasticsearch-domain_encryptionatrestoptions.go (94%) rename cloudformation/{ => resources}/aws-elasticsearch-domain_nodetonodeencryptionoptions.go (93%) rename cloudformation/{ => resources}/aws-elasticsearch-domain_snapshotoptions.go (94%) rename cloudformation/{ => resources}/aws-elasticsearch-domain_vpcoptions.go (94%) rename cloudformation/{ => resources}/aws-emr-cluster.go (95%) rename cloudformation/{ => resources}/aws-emr-cluster_application.go (93%) rename cloudformation/{ => resources}/aws-emr-cluster_autoscalingpolicy.go (94%) rename cloudformation/{ => resources}/aws-emr-cluster_bootstrapactionconfig.go (94%) rename cloudformation/{ => resources}/aws-emr-cluster_cloudwatchalarmdefinition.go (96%) rename cloudformation/{ => resources}/aws-emr-cluster_configuration.go (93%) rename cloudformation/{ => resources}/aws-emr-cluster_ebsblockdeviceconfig.go (94%) rename cloudformation/{ => resources}/aws-emr-cluster_ebsconfiguration.go (94%) rename cloudformation/{ => resources}/aws-emr-cluster_hadoopjarstepconfig.go (95%) rename cloudformation/{ => resources}/aws-emr-cluster_instancefleetconfig.go (96%) rename cloudformation/{ => resources}/aws-emr-cluster_instancefleetprovisioningspecifications.go (94%) rename cloudformation/{ => resources}/aws-emr-cluster_instancegroupconfig.go (96%) rename cloudformation/{ => resources}/aws-emr-cluster_instancetypeconfig.go (96%) rename cloudformation/{ => resources}/aws-emr-cluster_jobflowinstancesconfig.go (97%) rename cloudformation/{ => resources}/aws-emr-cluster_kerberosattributes.go (96%) rename cloudformation/{ => resources}/aws-emr-cluster_keyvalue.go (92%) rename cloudformation/{ => resources}/aws-emr-cluster_metricdimension.go (94%) rename cloudformation/{ => resources}/aws-emr-cluster_placementtype.go (91%) rename cloudformation/{ => resources}/aws-emr-cluster_scalingaction.go (92%) rename cloudformation/{ => resources}/aws-emr-cluster_scalingconstraints.go (94%) rename cloudformation/{ => resources}/aws-emr-cluster_scalingrule.go (93%) rename cloudformation/{ => resources}/aws-emr-cluster_scalingtrigger.go (94%) rename cloudformation/{ => resources}/aws-emr-cluster_scriptbootstrapactionconfig.go (94%) rename cloudformation/{ => resources}/aws-emr-cluster_simplescalingpolicyconfiguration.go (95%) rename cloudformation/{ => resources}/aws-emr-cluster_spotprovisioningspecification.go (95%) rename cloudformation/{ => resources}/aws-emr-cluster_stepconfig.go (93%) rename cloudformation/{ => resources}/aws-emr-cluster_volumespecification.go (95%) rename cloudformation/{ => resources}/aws-emr-instancefleetconfig.go (93%) rename cloudformation/{ => resources}/aws-emr-instancefleetconfig_configuration.go (95%) rename cloudformation/{ => resources}/aws-emr-instancefleetconfig_ebsblockdeviceconfig.go (94%) rename cloudformation/{ => resources}/aws-emr-instancefleetconfig_ebsconfiguration.go (94%) rename cloudformation/{ => resources}/aws-emr-instancefleetconfig_instancefleetprovisioningspecifications.go (93%) rename cloudformation/{ => resources}/aws-emr-instancefleetconfig_instancetypeconfig.go (96%) rename cloudformation/{ => resources}/aws-emr-instancefleetconfig_spotprovisioningspecification.go (95%) rename cloudformation/{ => resources}/aws-emr-instancefleetconfig_volumespecification.go (95%) rename cloudformation/{ => resources}/aws-emr-instancegroupconfig.go (93%) rename cloudformation/{ => resources}/aws-emr-instancegroupconfig_autoscalingpolicy.go (94%) rename cloudformation/{ => resources}/aws-emr-instancegroupconfig_cloudwatchalarmdefinition.go (96%) rename cloudformation/{ => resources}/aws-emr-instancegroupconfig_configuration.go (95%) rename cloudformation/{ => resources}/aws-emr-instancegroupconfig_ebsblockdeviceconfig.go (94%) rename cloudformation/{ => resources}/aws-emr-instancegroupconfig_ebsconfiguration.go (94%) rename cloudformation/{ => resources}/aws-emr-instancegroupconfig_metricdimension.go (94%) rename cloudformation/{ => resources}/aws-emr-instancegroupconfig_scalingaction.go (94%) rename cloudformation/{ => resources}/aws-emr-instancegroupconfig_scalingconstraints.go (94%) rename cloudformation/{ => resources}/aws-emr-instancegroupconfig_scalingrule.go (95%) rename cloudformation/{ => resources}/aws-emr-instancegroupconfig_scalingtrigger.go (94%) rename cloudformation/{ => resources}/aws-emr-instancegroupconfig_simplescalingpolicyconfiguration.go (95%) rename cloudformation/{ => resources}/aws-emr-instancegroupconfig_volumespecification.go (95%) rename cloudformation/{ => resources}/aws-emr-securityconfiguration.go (90%) rename cloudformation/{ => resources}/aws-emr-step.go (91%) rename cloudformation/{ => resources}/aws-emr-step_hadoopjarstepconfig.go (95%) rename cloudformation/{ => resources}/aws-emr-step_keyvalue.go (92%) rename cloudformation/{ => resources}/aws-events-eventbuspolicy.go (91%) rename cloudformation/{ => resources}/aws-events-eventbuspolicy_condition.go (94%) rename cloudformation/{ => resources}/aws-events-rule.go (92%) rename cloudformation/{ => resources}/aws-events-rule_ecsparameters.go (92%) rename cloudformation/{ => resources}/aws-events-rule_inputtransformer.go (94%) rename cloudformation/{ => resources}/aws-events-rule_kinesisparameters.go (94%) rename cloudformation/{ => resources}/aws-events-rule_runcommandparameters.go (94%) rename cloudformation/{ => resources}/aws-events-rule_runcommandtarget.go (94%) rename cloudformation/{ => resources}/aws-events-rule_sqsparameters.go (91%) rename cloudformation/{ => resources}/aws-events-rule_target.go (95%) rename cloudformation/{ => resources}/aws-fsx-filesystem.go (93%) rename cloudformation/{ => resources}/aws-fsx-filesystem_lustreconfiguration.go (95%) rename cloudformation/{ => resources}/aws-fsx-filesystem_tagentry.go (92%) rename cloudformation/{ => resources}/aws-fsx-filesystem_windowsconfiguration.go (96%) rename cloudformation/{ => resources}/aws-gamelift-alias.go (91%) rename cloudformation/{ => resources}/aws-gamelift-alias_routingstrategy.go (94%) rename cloudformation/{ => resources}/aws-gamelift-build.go (90%) rename cloudformation/{ => resources}/aws-gamelift-build_s3location.go (92%) rename cloudformation/{ => resources}/aws-gamelift-fleet.go (93%) rename cloudformation/{ => resources}/aws-gamelift-fleet_ippermission.go (95%) rename cloudformation/{ => resources}/aws-glue-classifier.go (91%) rename cloudformation/{ => resources}/aws-glue-classifier_grokclassifier.go (95%) rename cloudformation/{ => resources}/aws-glue-classifier_jsonclassifier.go (94%) rename cloudformation/{ => resources}/aws-glue-classifier_xmlclassifier.go (95%) rename cloudformation/{ => resources}/aws-glue-connection.go (90%) rename cloudformation/{ => resources}/aws-glue-connection_connectioninput.go (96%) rename cloudformation/{ => resources}/aws-glue-connection_physicalconnectionrequirements.go (95%) rename cloudformation/{ => resources}/aws-glue-crawler.go (93%) rename cloudformation/{ => resources}/aws-glue-crawler_jdbctarget.go (92%) rename cloudformation/{ => resources}/aws-glue-crawler_s3target.go (92%) rename cloudformation/{ => resources}/aws-glue-crawler_schedule.go (91%) rename cloudformation/{ => resources}/aws-glue-crawler_schemachangepolicy.go (94%) rename cloudformation/{ => resources}/aws-glue-crawler_targets.go (92%) rename cloudformation/{ => resources}/aws-glue-database.go (90%) rename cloudformation/{ => resources}/aws-glue-database_databaseinput.go (95%) rename cloudformation/{ => resources}/aws-glue-devendpoint.go (93%) rename cloudformation/{ => resources}/aws-glue-job.go (93%) rename cloudformation/{ => resources}/aws-glue-job_connectionslist.go (91%) rename cloudformation/{ => resources}/aws-glue-job_executionproperty.go (94%) rename cloudformation/{ => resources}/aws-glue-job_jobcommand.go (92%) rename cloudformation/{ => resources}/aws-glue-partition.go (91%) rename cloudformation/{ => resources}/aws-glue-partition_column.go (92%) rename cloudformation/{ => resources}/aws-glue-partition_order.go (92%) rename cloudformation/{ => resources}/aws-glue-partition_partitioninput.go (95%) rename cloudformation/{ => resources}/aws-glue-partition_serdeinfo.go (93%) rename cloudformation/{ => resources}/aws-glue-partition_skewedinfo.go (93%) rename cloudformation/{ => resources}/aws-glue-partition_storagedescriptor.go (97%) rename cloudformation/{ => resources}/aws-glue-table.go (90%) rename cloudformation/{ => resources}/aws-glue-table_column.go (92%) rename cloudformation/{ => resources}/aws-glue-table_order.go (92%) rename cloudformation/{ => resources}/aws-glue-table_serdeinfo.go (93%) rename cloudformation/{ => resources}/aws-glue-table_skewedinfo.go (93%) rename cloudformation/{ => resources}/aws-glue-table_storagedescriptor.go (97%) rename cloudformation/{ => resources}/aws-glue-table_tableinput.go (95%) rename cloudformation/{ => resources}/aws-glue-trigger.go (92%) rename cloudformation/{ => resources}/aws-glue-trigger_action.go (92%) rename cloudformation/{ => resources}/aws-glue-trigger_condition.go (92%) rename cloudformation/{ => resources}/aws-glue-trigger_predicate.go (92%) rename cloudformation/{ => resources}/aws-guardduty-detector.go (90%) rename cloudformation/{ => resources}/aws-guardduty-filter.go (92%) rename cloudformation/{ => resources}/aws-guardduty-filter_condition.go (95%) rename cloudformation/{ => resources}/aws-guardduty-filter_findingcriteria.go (94%) rename cloudformation/{ => resources}/aws-guardduty-ipset.go (91%) rename cloudformation/{ => resources}/aws-guardduty-master.go (90%) rename cloudformation/{ => resources}/aws-guardduty-member.go (92%) rename cloudformation/{ => resources}/aws-guardduty-threatintelset.go (91%) rename cloudformation/{ => resources}/aws-iam-accesskey.go (90%) rename cloudformation/{ => resources}/aws-iam-group.go (91%) rename cloudformation/{ => resources}/aws-iam-group_policy.go (92%) rename cloudformation/{ => resources}/aws-iam-instanceprofile.go (91%) rename cloudformation/{ => resources}/aws-iam-managedpolicy.go (92%) rename cloudformation/{ => resources}/aws-iam-policy.go (91%) rename cloudformation/{ => resources}/aws-iam-role.go (92%) rename cloudformation/{ => resources}/aws-iam-role_policy.go (92%) rename cloudformation/{ => resources}/aws-iam-servicelinkedrole.go (91%) rename cloudformation/{ => resources}/aws-iam-user.go (92%) rename cloudformation/{ => resources}/aws-iam-user_loginprofile.go (92%) rename cloudformation/{ => resources}/aws-iam-user_policy.go (92%) rename cloudformation/{ => resources}/aws-iam-usertogroupaddition.go (90%) rename cloudformation/{ => resources}/aws-inspector-assessmenttarget.go (92%) rename cloudformation/{ => resources}/aws-inspector-assessmenttemplate.go (93%) rename cloudformation/{ => resources}/aws-inspector-resourcegroup.go (90%) rename cloudformation/{ => resources}/aws-iot-certificate.go (90%) rename cloudformation/{ => resources}/aws-iot-policy.go (90%) rename cloudformation/{ => resources}/aws-iot-policyprincipalattachment.go (92%) rename cloudformation/{ => resources}/aws-iot-thing.go (90%) rename cloudformation/{ => resources}/aws-iot-thing_attributepayload.go (94%) rename cloudformation/{ => resources}/aws-iot-thingprincipalattachment.go (92%) rename cloudformation/{ => resources}/aws-iot-topicrule.go (90%) rename cloudformation/{ => resources}/aws-iot-topicrule_action.go (96%) rename cloudformation/{ => resources}/aws-iot-topicrule_cloudwatchalarmaction.go (95%) rename cloudformation/{ => resources}/aws-iot-topicrule_cloudwatchmetricaction.go (96%) rename cloudformation/{ => resources}/aws-iot-topicrule_dynamodbaction.go (96%) rename cloudformation/{ => resources}/aws-iot-topicrule_dynamodbv2action.go (94%) rename cloudformation/{ => resources}/aws-iot-topicrule_elasticsearchaction.go (95%) rename cloudformation/{ => resources}/aws-iot-topicrule_firehoseaction.go (95%) rename cloudformation/{ => resources}/aws-iot-topicrule_iotanalyticsaction.go (94%) rename cloudformation/{ => resources}/aws-iot-topicrule_kinesisaction.go (95%) rename cloudformation/{ => resources}/aws-iot-topicrule_lambdaaction.go (94%) rename cloudformation/{ => resources}/aws-iot-topicrule_putiteminput.go (94%) rename cloudformation/{ => resources}/aws-iot-topicrule_republishaction.go (94%) rename cloudformation/{ => resources}/aws-iot-topicrule_s3action.go (92%) rename cloudformation/{ => resources}/aws-iot-topicrule_snsaction.go (92%) rename cloudformation/{ => resources}/aws-iot-topicrule_sqsaction.go (92%) rename cloudformation/{ => resources}/aws-iot-topicrule_stepfunctionsaction.go (95%) rename cloudformation/{ => resources}/aws-iot-topicrule_topicrulepayload.go (96%) rename cloudformation/{ => resources}/aws-iot1click-device.go (90%) rename cloudformation/{ => resources}/aws-iot1click-placement.go (91%) rename cloudformation/{ => resources}/aws-iot1click-project.go (91%) rename cloudformation/{ => resources}/aws-iot1click-project_devicetemplate.go (94%) rename cloudformation/{ => resources}/aws-iot1click-project_placementtemplate.go (94%) rename cloudformation/{ => resources}/aws-iotanalytics-channel.go (91%) rename cloudformation/{ => resources}/aws-iotanalytics-channel_retentionperiod.go (94%) rename cloudformation/{ => resources}/aws-iotanalytics-dataset.go (92%) rename cloudformation/{ => resources}/aws-iotanalytics-dataset_action.go (95%) rename cloudformation/{ => resources}/aws-iotanalytics-dataset_containeraction.go (95%) rename cloudformation/{ => resources}/aws-iotanalytics-dataset_datasetcontentversionvalue.go (93%) rename cloudformation/{ => resources}/aws-iotanalytics-dataset_deltatime.go (94%) rename cloudformation/{ => resources}/aws-iotanalytics-dataset_filter.go (94%) rename cloudformation/{ => resources}/aws-iotanalytics-dataset_outputfileurivalue.go (93%) rename cloudformation/{ => resources}/aws-iotanalytics-dataset_queryaction.go (94%) rename cloudformation/{ => resources}/aws-iotanalytics-dataset_resourceconfiguration.go (94%) rename cloudformation/{ => resources}/aws-iotanalytics-dataset_retentionperiod.go (94%) rename cloudformation/{ => resources}/aws-iotanalytics-dataset_schedule.go (94%) rename cloudformation/{ => resources}/aws-iotanalytics-dataset_trigger.go (94%) rename cloudformation/{ => resources}/aws-iotanalytics-dataset_triggeringdataset.go (93%) rename cloudformation/{ => resources}/aws-iotanalytics-dataset_variable.go (96%) rename cloudformation/{ => resources}/aws-iotanalytics-datastore.go (91%) rename cloudformation/{ => resources}/aws-iotanalytics-datastore_retentionperiod.go (94%) rename cloudformation/{ => resources}/aws-iotanalytics-pipeline.go (91%) rename cloudformation/{ => resources}/aws-iotanalytics-pipeline_activity.go (97%) rename cloudformation/{ => resources}/aws-iotanalytics-pipeline_addattributes.go (94%) rename cloudformation/{ => resources}/aws-iotanalytics-pipeline_channel.go (94%) rename cloudformation/{ => resources}/aws-iotanalytics-pipeline_datastore.go (94%) rename cloudformation/{ => resources}/aws-iotanalytics-pipeline_deviceregistryenrich.go (95%) rename cloudformation/{ => resources}/aws-iotanalytics-pipeline_deviceshadowenrich.go (95%) rename cloudformation/{ => resources}/aws-iotanalytics-pipeline_filter.go (94%) rename cloudformation/{ => resources}/aws-iotanalytics-pipeline_lambda.go (95%) rename cloudformation/{ => resources}/aws-iotanalytics-pipeline_math.go (95%) rename cloudformation/{ => resources}/aws-iotanalytics-pipeline_removeattributes.go (94%) rename cloudformation/{ => resources}/aws-iotanalytics-pipeline_selectattributes.go (94%) rename cloudformation/{ => resources}/aws-kinesis-stream.go (91%) rename cloudformation/{ => resources}/aws-kinesis-stream_streamencryption.go (94%) rename cloudformation/{ => resources}/aws-kinesis-streamconsumer.go (90%) rename cloudformation/{ => resources}/aws-kinesisanalytics-application.go (93%) rename cloudformation/{ => resources}/aws-kinesisanalytics-application_csvmappingparameters.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalytics-application_input.go (96%) rename cloudformation/{ => resources}/aws-kinesisanalytics-application_inputlambdaprocessor.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalytics-application_inputparallelism.go (93%) rename cloudformation/{ => resources}/aws-kinesisanalytics-application_inputprocessingconfiguration.go (93%) rename cloudformation/{ => resources}/aws-kinesisanalytics-application_inputschema.go (95%) rename cloudformation/{ => resources}/aws-kinesisanalytics-application_jsonmappingparameters.go (93%) rename cloudformation/{ => resources}/aws-kinesisanalytics-application_kinesisfirehoseinput.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalytics-application_kinesisstreamsinput.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalytics-application_mappingparameters.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalytics-application_recordcolumn.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalytics-application_recordformat.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalytics-applicationoutput.go (92%) rename cloudformation/{ => resources}/aws-kinesisanalytics-applicationoutput_destinationschema.go (93%) rename cloudformation/{ => resources}/aws-kinesisanalytics-applicationoutput_kinesisfirehoseoutput.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalytics-applicationoutput_kinesisstreamsoutput.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalytics-applicationoutput_lambdaoutput.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalytics-applicationoutput_output.go (96%) rename cloudformation/{ => resources}/aws-kinesisanalytics-applicationreferencedatasource.go (92%) rename cloudformation/{ => resources}/aws-kinesisanalytics-applicationreferencedatasource_csvmappingparameters.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalytics-applicationreferencedatasource_jsonmappingparameters.go (93%) rename cloudformation/{ => resources}/aws-kinesisanalytics-applicationreferencedatasource_mappingparameters.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalytics-applicationreferencedatasource_recordcolumn.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalytics-applicationreferencedatasource_recordformat.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalytics-applicationreferencedatasource_referencedatasource.go (95%) rename cloudformation/{ => resources}/aws-kinesisanalytics-applicationreferencedatasource_referenceschema.go (95%) rename cloudformation/{ => resources}/aws-kinesisanalytics-applicationreferencedatasource_s3referencedatasource.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application.go (93%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_applicationcodeconfiguration.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_applicationconfiguration.go (96%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_applicationsnapshotconfiguration.go (93%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_checkpointconfiguration.go (95%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_codecontent.go (95%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_csvmappingparameters.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_environmentproperties.go (93%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_flinkapplicationconfiguration.go (95%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_input.go (96%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_inputlambdaprocessor.go (93%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_inputparallelism.go (93%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_inputprocessingconfiguration.go (93%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_inputschema.go (95%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_jsonmappingparameters.go (93%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_kinesisfirehoseinput.go (93%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_kinesisstreamsinput.go (93%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_mappingparameters.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_monitoringconfiguration.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_parallelismconfiguration.go (95%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_propertygroup.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_recordcolumn.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_recordformat.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_s3contentlocation.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-application_sqlapplicationconfiguration.go (93%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.go (92%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption_cloudwatchloggingoption.go (93%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-applicationoutput.go (92%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-applicationoutput_destinationschema.go (93%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-applicationoutput_kinesisfirehoseoutput.go (93%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-applicationoutput_kinesisstreamsoutput.go (93%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-applicationoutput_lambdaoutput.go (93%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-applicationoutput_output.go (96%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-applicationreferencedatasource.go (92%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-applicationreferencedatasource_csvmappingparameters.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-applicationreferencedatasource_jsonmappingparameters.go (93%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-applicationreferencedatasource_mappingparameters.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-applicationreferencedatasource_recordcolumn.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-applicationreferencedatasource_recordformat.go (94%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-applicationreferencedatasource_referencedatasource.go (95%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-applicationreferencedatasource_referenceschema.go (95%) rename cloudformation/{ => resources}/aws-kinesisanalyticsv2-applicationreferencedatasource_s3referencedatasource.go (94%) rename cloudformation/{ => resources}/aws-kinesisfirehose-deliverystream.go (95%) rename cloudformation/{ => resources}/aws-kinesisfirehose-deliverystream_bufferinghints.go (94%) rename cloudformation/{ => resources}/aws-kinesisfirehose-deliverystream_cloudwatchloggingoptions.go (94%) rename cloudformation/{ => resources}/aws-kinesisfirehose-deliverystream_copycommand.go (95%) rename cloudformation/{ => resources}/aws-kinesisfirehose-deliverystream_elasticsearchbufferinghints.go (94%) rename cloudformation/{ => resources}/aws-kinesisfirehose-deliverystream_elasticsearchdestinationconfiguration.go (97%) rename cloudformation/{ => resources}/aws-kinesisfirehose-deliverystream_elasticsearchretryoptions.go (93%) rename cloudformation/{ => resources}/aws-kinesisfirehose-deliverystream_encryptionconfiguration.go (94%) rename cloudformation/{ => resources}/aws-kinesisfirehose-deliverystream_extendeds3destinationconfiguration.go (97%) rename cloudformation/{ => resources}/aws-kinesisfirehose-deliverystream_kinesisstreamsourceconfiguration.go (94%) rename cloudformation/{ => resources}/aws-kinesisfirehose-deliverystream_kmsencryptionconfig.go (93%) rename cloudformation/{ => resources}/aws-kinesisfirehose-deliverystream_processingconfiguration.go (94%) rename cloudformation/{ => resources}/aws-kinesisfirehose-deliverystream_processor.go (94%) rename cloudformation/{ => resources}/aws-kinesisfirehose-deliverystream_processorparameter.go (94%) rename cloudformation/{ => resources}/aws-kinesisfirehose-deliverystream_redshiftdestinationconfiguration.go (96%) rename cloudformation/{ => resources}/aws-kinesisfirehose-deliverystream_s3destinationconfiguration.go (96%) rename cloudformation/{ => resources}/aws-kinesisfirehose-deliverystream_splunkdestinationconfiguration.go (96%) rename cloudformation/{ => resources}/aws-kinesisfirehose-deliverystream_splunkretryoptions.go (93%) rename cloudformation/{ => resources}/aws-kms-alias.go (90%) rename cloudformation/{ => resources}/aws-kms-key.go (92%) rename cloudformation/{ => resources}/aws-lambda-alias.go (89%) rename cloudformation/{ => resources}/aws-lambda-alias_aliasroutingconfiguration.go (94%) rename cloudformation/{ => resources}/aws-lambda-alias_versionweight.go (94%) rename cloudformation/{ => resources}/aws-lambda-eventsourcemapping.go (92%) rename cloudformation/{ => resources}/aws-lambda-function.go (94%) rename cloudformation/{ => resources}/aws-lambda-function_code.go (93%) rename cloudformation/{ => resources}/aws-lambda-function_deadletterconfig.go (93%) rename cloudformation/{ => resources}/aws-lambda-function_environment.go (94%) rename cloudformation/{ => resources}/aws-lambda-function_tracingconfig.go (93%) rename cloudformation/{ => resources}/aws-lambda-function_vpcconfig.go (92%) rename cloudformation/{ => resources}/aws-lambda-layerversion.go (92%) rename cloudformation/{ => resources}/aws-lambda-layerversion_content.go (95%) rename cloudformation/{ => resources}/aws-lambda-layerversionpermission.go (93%) rename cloudformation/{ => resources}/aws-lambda-permission.go (92%) rename cloudformation/{ => resources}/aws-lambda-version.go (90%) rename cloudformation/{ => resources}/aws-logs-destination.go (91%) rename cloudformation/{ => resources}/aws-logs-loggroup.go (90%) rename cloudformation/{ => resources}/aws-logs-logstream.go (90%) rename cloudformation/{ => resources}/aws-logs-metricfilter.go (91%) rename cloudformation/{ => resources}/aws-logs-metricfilter_metrictransformation.go (95%) rename cloudformation/{ => resources}/aws-logs-subscriptionfilter.go (91%) rename cloudformation/{ => resources}/aws-neptune-dbcluster.go (94%) rename cloudformation/{ => resources}/aws-neptune-dbclusterparametergroup.go (93%) rename cloudformation/{ => resources}/aws-neptune-dbinstance.go (94%) rename cloudformation/{ => resources}/aws-neptune-dbparametergroup.go (91%) rename cloudformation/{ => resources}/aws-neptune-dbsubnetgroup.go (91%) rename cloudformation/{ => resources}/aws-opsworks-app.go (93%) rename cloudformation/{ => resources}/aws-opsworks-app_datasource.go (92%) rename cloudformation/{ => resources}/aws-opsworks-app_environmentvariable.go (94%) rename cloudformation/{ => resources}/aws-opsworks-app_source.go (94%) rename cloudformation/{ => resources}/aws-opsworks-app_sslconfiguration.go (95%) rename cloudformation/{ => resources}/aws-opsworks-elasticloadbalancerattachment.go (92%) rename cloudformation/{ => resources}/aws-opsworks-instance.go (95%) rename cloudformation/{ => resources}/aws-opsworks-instance_blockdevicemapping.go (95%) rename cloudformation/{ => resources}/aws-opsworks-instance_ebsblockdevice.go (95%) rename cloudformation/{ => resources}/aws-opsworks-instance_timebasedautoscaling.go (96%) rename cloudformation/{ => resources}/aws-opsworks-layer.go (95%) rename cloudformation/{ => resources}/aws-opsworks-layer_autoscalingthresholds.go (96%) rename cloudformation/{ => resources}/aws-opsworks-layer_lifecycleeventconfiguration.go (94%) rename cloudformation/{ => resources}/aws-opsworks-layer_loadbasedautoscaling.go (95%) rename cloudformation/{ => resources}/aws-opsworks-layer_recipes.go (94%) rename cloudformation/{ => resources}/aws-opsworks-layer_shutdowneventconfiguration.go (94%) rename cloudformation/{ => resources}/aws-opsworks-layer_volumeconfiguration.go (96%) rename cloudformation/{ => resources}/aws-opsworks-stack.go (96%) rename cloudformation/{ => resources}/aws-opsworks-stack_chefconfiguration.go (94%) rename cloudformation/{ => resources}/aws-opsworks-stack_elasticip.go (92%) rename cloudformation/{ => resources}/aws-opsworks-stack_rdsdbinstance.go (95%) rename cloudformation/{ => resources}/aws-opsworks-stack_source.go (94%) rename cloudformation/{ => resources}/aws-opsworks-stack_stackconfigurationmanager.go (94%) rename cloudformation/{ => resources}/aws-opsworks-userprofile.go (91%) rename cloudformation/{ => resources}/aws-opsworks-volume.go (91%) rename cloudformation/{ => resources}/aws-opsworkscm-server.go (95%) rename cloudformation/{ => resources}/aws-opsworkscm-server_engineattribute.go (94%) rename cloudformation/{ => resources}/aws-ram-resourceshare.go (91%) rename cloudformation/{ => resources}/aws-rds-dbcluster.go (96%) rename cloudformation/{ => resources}/aws-rds-dbcluster_scalingconfiguration.go (95%) rename cloudformation/{ => resources}/aws-rds-dbclusterparametergroup.go (92%) rename cloudformation/{ => resources}/aws-rds-dbinstance.go (97%) rename cloudformation/{ => resources}/aws-rds-dbinstance_processorfeature.go (94%) rename cloudformation/{ => resources}/aws-rds-dbparametergroup.go (91%) rename cloudformation/{ => resources}/aws-rds-dbsecuritygroup.go (91%) rename cloudformation/{ => resources}/aws-rds-dbsecuritygroup_ingress.go (95%) rename cloudformation/{ => resources}/aws-rds-dbsecuritygroupingress.go (93%) rename cloudformation/{ => resources}/aws-rds-dbsubnetgroup.go (91%) rename cloudformation/{ => resources}/aws-rds-eventsubscription.go (92%) rename cloudformation/{ => resources}/aws-rds-optiongroup.go (92%) rename cloudformation/{ => resources}/aws-rds-optiongroup_optionconfiguration.go (96%) rename cloudformation/{ => resources}/aws-rds-optiongroup_optionsetting.go (94%) rename cloudformation/{ => resources}/aws-redshift-cluster.go (96%) rename cloudformation/{ => resources}/aws-redshift-cluster_loggingproperties.go (94%) rename cloudformation/{ => resources}/aws-redshift-clusterparametergroup.go (93%) rename cloudformation/{ => resources}/aws-redshift-clusterparametergroup_parameter.go (94%) rename cloudformation/{ => resources}/aws-redshift-clustersecuritygroup.go (92%) rename cloudformation/{ => resources}/aws-redshift-clustersecuritygroupingress.go (93%) rename cloudformation/{ => resources}/aws-redshift-clustersubnetgroup.go (92%) rename cloudformation/{ => resources}/aws-robomaker-fleet.go (90%) rename cloudformation/{ => resources}/aws-robomaker-robot.go (91%) rename cloudformation/{ => resources}/aws-robomaker-robotapplication.go (93%) rename cloudformation/{ => resources}/aws-robomaker-robotapplication_robotsoftwaresuite.go (94%) rename cloudformation/{ => resources}/aws-robomaker-robotapplication_sourceconfig.go (94%) rename cloudformation/{ => resources}/aws-robomaker-robotapplicationversion.go (92%) rename cloudformation/{ => resources}/aws-robomaker-simulationapplication.go (94%) rename cloudformation/{ => resources}/aws-robomaker-simulationapplication_renderingengine.go (94%) rename cloudformation/{ => resources}/aws-robomaker-simulationapplication_robotsoftwaresuite.go (94%) rename cloudformation/{ => resources}/aws-robomaker-simulationapplication_simulationsoftwaresuite.go (94%) rename cloudformation/{ => resources}/aws-robomaker-simulationapplication_sourceconfig.go (94%) rename cloudformation/{ => resources}/aws-robomaker-simulationapplicationversion.go (92%) rename cloudformation/{ => resources}/aws-route53-healthcheck.go (90%) rename cloudformation/{ => resources}/aws-route53-healthcheck_alarmidentifier.go (94%) rename cloudformation/{ => resources}/aws-route53-healthcheck_healthcheckconfig.go (97%) rename cloudformation/{ => resources}/aws-route53-healthcheck_healthchecktag.go (94%) rename cloudformation/{ => resources}/aws-route53-hostedzone.go (92%) rename cloudformation/{ => resources}/aws-route53-hostedzone_hostedzoneconfig.go (93%) rename cloudformation/{ => resources}/aws-route53-hostedzone_hostedzonetag.go (94%) rename cloudformation/{ => resources}/aws-route53-hostedzone_queryloggingconfig.go (94%) rename cloudformation/{ => resources}/aws-route53-hostedzone_vpc.go (92%) rename cloudformation/{ => resources}/aws-route53-recordset.go (94%) rename cloudformation/{ => resources}/aws-route53-recordset_aliastarget.go (95%) rename cloudformation/{ => resources}/aws-route53-recordset_geolocation.go (95%) rename cloudformation/{ => resources}/aws-route53-recordsetgroup.go (91%) rename cloudformation/{ => resources}/aws-route53-recordsetgroup_aliastarget.go (94%) rename cloudformation/{ => resources}/aws-route53-recordsetgroup_geolocation.go (95%) rename cloudformation/{ => resources}/aws-route53-recordsetgroup_recordset.go (97%) rename cloudformation/{ => resources}/aws-route53resolver-resolverendpoint.go (93%) rename cloudformation/{ => resources}/aws-route53resolver-resolverendpoint_ipaddressrequest.go (94%) rename cloudformation/{ => resources}/aws-route53resolver-resolverrule.go (93%) rename cloudformation/{ => resources}/aws-route53resolver-resolverrule_targetaddress.go (94%) rename cloudformation/{ => resources}/aws-route53resolver-resolverruleassociation.go (92%) rename cloudformation/{ => resources}/aws-s3-bucket.go (95%) rename cloudformation/{ => resources}/aws-s3-bucket_abortincompletemultipartupload.go (93%) rename cloudformation/{ => resources}/aws-s3-bucket_accelerateconfiguration.go (94%) rename cloudformation/{ => resources}/aws-s3-bucket_accesscontroltranslation.go (93%) rename cloudformation/{ => resources}/aws-s3-bucket_analyticsconfiguration.go (95%) rename cloudformation/{ => resources}/aws-s3-bucket_bucketencryption.go (94%) rename cloudformation/{ => resources}/aws-s3-bucket_corsconfiguration.go (93%) rename cloudformation/{ => resources}/aws-s3-bucket_corsrule.go (94%) rename cloudformation/{ => resources}/aws-s3-bucket_dataexport.go (92%) rename cloudformation/{ => resources}/aws-s3-bucket_destination.go (93%) rename cloudformation/{ => resources}/aws-s3-bucket_encryptionconfiguration.go (94%) rename cloudformation/{ => resources}/aws-s3-bucket_filterrule.go (92%) rename cloudformation/{ => resources}/aws-s3-bucket_inventoryconfiguration.go (96%) rename cloudformation/{ => resources}/aws-s3-bucket_lambdaconfiguration.go (95%) rename cloudformation/{ => resources}/aws-s3-bucket_lifecycleconfiguration.go (93%) rename cloudformation/{ => resources}/aws-s3-bucket_loggingconfiguration.go (94%) rename cloudformation/{ => resources}/aws-s3-bucket_metricsconfiguration.go (95%) rename cloudformation/{ => resources}/aws-s3-bucket_noncurrentversiontransition.go (94%) rename cloudformation/{ => resources}/aws-s3-bucket_notificationconfiguration.go (95%) rename cloudformation/{ => resources}/aws-s3-bucket_notificationfilter.go (94%) rename cloudformation/{ => resources}/aws-s3-bucket_publicaccessblockconfiguration.go (95%) rename cloudformation/{ => resources}/aws-s3-bucket_queueconfiguration.go (95%) rename cloudformation/{ => resources}/aws-s3-bucket_redirectallrequeststo.go (94%) rename cloudformation/{ => resources}/aws-s3-bucket_redirectrule.go (94%) rename cloudformation/{ => resources}/aws-s3-bucket_replicationconfiguration.go (94%) rename cloudformation/{ => resources}/aws-s3-bucket_replicationdestination.go (96%) rename cloudformation/{ => resources}/aws-s3-bucket_replicationrule.go (94%) rename cloudformation/{ => resources}/aws-s3-bucket_routingrule.go (92%) rename cloudformation/{ => resources}/aws-s3-bucket_routingrulecondition.go (94%) rename cloudformation/{ => resources}/aws-s3-bucket_rule.go (96%) rename cloudformation/{ => resources}/aws-s3-bucket_s3keyfilter.go (91%) rename cloudformation/{ => resources}/aws-s3-bucket_serversideencryptionbydefault.go (94%) rename cloudformation/{ => resources}/aws-s3-bucket_serversideencryptionrule.go (94%) rename cloudformation/{ => resources}/aws-s3-bucket_sourceselectioncriteria.go (94%) rename cloudformation/{ => resources}/aws-s3-bucket_ssekmsencryptedobjects.go (93%) rename cloudformation/{ => resources}/aws-s3-bucket_storageclassanalysis.go (94%) rename cloudformation/{ => resources}/aws-s3-bucket_tagfilter.go (92%) rename cloudformation/{ => resources}/aws-s3-bucket_topicconfiguration.go (95%) rename cloudformation/{ => resources}/aws-s3-bucket_transition.go (93%) rename cloudformation/{ => resources}/aws-s3-bucket_versioningconfiguration.go (93%) rename cloudformation/{ => resources}/aws-s3-bucket_websiteconfiguration.go (95%) rename cloudformation/{ => resources}/aws-s3-bucketpolicy.go (90%) rename cloudformation/{ => resources}/aws-sagemaker-endpoint.go (91%) rename cloudformation/{ => resources}/aws-sagemaker-endpointconfig.go (91%) rename cloudformation/{ => resources}/aws-sagemaker-endpointconfig_productionvariant.go (96%) rename cloudformation/{ => resources}/aws-sagemaker-model.go (92%) rename cloudformation/{ => resources}/aws-sagemaker-model_containerdefinition.go (95%) rename cloudformation/{ => resources}/aws-sagemaker-model_vpcconfig.go (92%) rename cloudformation/{ => resources}/aws-sagemaker-notebookinstance.go (94%) rename cloudformation/{ => resources}/aws-sagemaker-notebookinstancelifecycleconfig.go (93%) rename cloudformation/{ => resources}/aws-sagemaker-notebookinstancelifecycleconfig_notebookinstancelifecyclehook.go (93%) rename cloudformation/{ => resources}/aws-sdb-domain.go (89%) rename cloudformation/{ => resources}/aws-secretsmanager-resourcepolicy.go (92%) rename cloudformation/{ => resources}/aws-secretsmanager-rotationschedule.go (92%) rename cloudformation/{ => resources}/aws-secretsmanager-rotationschedule_rotationrules.go (93%) rename cloudformation/{ => resources}/aws-secretsmanager-secret.go (92%) rename cloudformation/{ => resources}/aws-secretsmanager-secret_generatesecretstring.go (97%) rename cloudformation/{ => resources}/aws-secretsmanager-secrettargetattachment.go (92%) rename cloudformation/{ => resources}/aws-serverless-api.go (93%) rename cloudformation/{ => resources}/aws-serverless-api_auth.go (90%) rename cloudformation/{ => resources}/aws-serverless-api_s3location.go (92%) rename cloudformation/{ => resources}/aws-serverless-application.go (91%) rename cloudformation/{ => resources}/aws-serverless-application_applicationlocation.go (94%) rename cloudformation/{ => resources}/aws-serverless-function.go (95%) rename cloudformation/{ => resources}/aws-serverless-function_alexaskillevent.go (93%) rename cloudformation/{ => resources}/aws-serverless-function_apievent.go (94%) rename cloudformation/{ => resources}/aws-serverless-function_cloudwatcheventevent.go (94%) rename cloudformation/{ => resources}/aws-serverless-function_deadletterqueue.go (94%) rename cloudformation/{ => resources}/aws-serverless-function_deploymentpreference.go (95%) rename cloudformation/{ => resources}/aws-serverless-function_dynamodbevent.go (94%) rename cloudformation/{ => resources}/aws-serverless-function_eventsource.go (94%) rename cloudformation/{ => resources}/aws-serverless-function_functionenvironment.go (93%) rename cloudformation/{ => resources}/aws-serverless-function_iampolicydocument.go (93%) rename cloudformation/{ => resources}/aws-serverless-function_iotruleevent.go (94%) rename cloudformation/{ => resources}/aws-serverless-function_kinesisevent.go (94%) rename cloudformation/{ => resources}/aws-serverless-function_s3event.go (94%) rename cloudformation/{ => resources}/aws-serverless-function_s3location.go (94%) rename cloudformation/{ => resources}/aws-serverless-function_s3notificationfilter.go (93%) rename cloudformation/{ => resources}/aws-serverless-function_scheduleevent.go (94%) rename cloudformation/{ => resources}/aws-serverless-function_snsevent.go (93%) rename cloudformation/{ => resources}/aws-serverless-function_sqsevent.go (94%) rename cloudformation/{ => resources}/aws-serverless-function_vpcconfig.go (94%) rename cloudformation/{ => resources}/aws-serverless-layerversion.go (92%) rename cloudformation/{ => resources}/aws-serverless-simpletable.go (92%) rename cloudformation/{ => resources}/aws-serverless-simpletable_primarykey.go (94%) rename cloudformation/{ => resources}/aws-serverless-simpletable_provisionedthroughput.go (94%) rename cloudformation/{ => resources}/aws-serverless-simpletable_ssespecification.go (93%) rename cloudformation/{ => resources}/aws-servicecatalog-acceptedportfolioshare.go (92%) rename cloudformation/{ => resources}/aws-servicecatalog-cloudformationproduct.go (94%) rename cloudformation/{ => resources}/aws-servicecatalog-cloudformationproduct_provisioningartifactproperties.go (94%) rename cloudformation/{ => resources}/aws-servicecatalog-cloudformationprovisionedproduct.go (95%) rename cloudformation/{ => resources}/aws-servicecatalog-cloudformationprovisionedproduct_provisioningparameter.go (94%) rename cloudformation/{ => resources}/aws-servicecatalog-launchnotificationconstraint.go (93%) rename cloudformation/{ => resources}/aws-servicecatalog-launchroleconstraint.go (93%) rename cloudformation/{ => resources}/aws-servicecatalog-launchtemplateconstraint.go (93%) rename cloudformation/{ => resources}/aws-servicecatalog-portfolio.go (92%) rename cloudformation/{ => resources}/aws-servicecatalog-portfolioprincipalassociation.go (93%) rename cloudformation/{ => resources}/aws-servicecatalog-portfolioproductassociation.go (93%) rename cloudformation/{ => resources}/aws-servicecatalog-portfolioshare.go (92%) rename cloudformation/{ => resources}/aws-servicecatalog-tagoption.go (91%) rename cloudformation/{ => resources}/aws-servicecatalog-tagoptionassociation.go (92%) rename cloudformation/{ => resources}/aws-servicediscovery-httpnamespace.go (92%) rename cloudformation/{ => resources}/aws-servicediscovery-instance.go (91%) rename cloudformation/{ => resources}/aws-servicediscovery-privatednsnamespace.go (92%) rename cloudformation/{ => resources}/aws-servicediscovery-publicdnsnamespace.go (92%) rename cloudformation/{ => resources}/aws-servicediscovery-service.go (92%) rename cloudformation/{ => resources}/aws-servicediscovery-service_dnsconfig.go (95%) rename cloudformation/{ => resources}/aws-servicediscovery-service_dnsrecord.go (94%) rename cloudformation/{ => resources}/aws-servicediscovery-service_healthcheckconfig.go (95%) rename cloudformation/{ => resources}/aws-servicediscovery-service_healthcheckcustomconfig.go (93%) rename cloudformation/{ => resources}/aws-ses-configurationset.go (89%) rename cloudformation/{ => resources}/aws-ses-configurationseteventdestination.go (92%) rename cloudformation/{ => resources}/aws-ses-configurationseteventdestination_cloudwatchdestination.go (94%) rename cloudformation/{ => resources}/aws-ses-configurationseteventdestination_dimensionconfiguration.go (95%) rename cloudformation/{ => resources}/aws-ses-configurationseteventdestination_eventdestination.go (95%) rename cloudformation/{ => resources}/aws-ses-configurationseteventdestination_kinesisfirehosedestination.go (94%) rename cloudformation/{ => resources}/aws-ses-receiptfilter.go (89%) rename cloudformation/{ => resources}/aws-ses-receiptfilter_filter.go (92%) rename cloudformation/{ => resources}/aws-ses-receiptfilter_ipfilter.go (94%) rename cloudformation/{ => resources}/aws-ses-receiptrule.go (90%) rename cloudformation/{ => resources}/aws-ses-receiptrule_action.go (95%) rename cloudformation/{ => resources}/aws-ses-receiptrule_addheaderaction.go (94%) rename cloudformation/{ => resources}/aws-ses-receiptrule_bounceaction.go (95%) rename cloudformation/{ => resources}/aws-ses-receiptrule_lambdaaction.go (95%) rename cloudformation/{ => resources}/aws-ses-receiptrule_rule.go (94%) rename cloudformation/{ => resources}/aws-ses-receiptrule_s3action.go (93%) rename cloudformation/{ => resources}/aws-ses-receiptrule_snsaction.go (92%) rename cloudformation/{ => resources}/aws-ses-receiptrule_stopaction.go (94%) rename cloudformation/{ => resources}/aws-ses-receiptrule_workmailaction.go (94%) rename cloudformation/{ => resources}/aws-ses-receiptruleset.go (89%) rename cloudformation/{ => resources}/aws-ses-template.go (89%) rename cloudformation/{ => resources}/aws-ses-template_template.go (93%) rename cloudformation/{ => resources}/aws-sns-subscription.go (92%) rename cloudformation/{ => resources}/aws-sns-topic.go (91%) rename cloudformation/{ => resources}/aws-sns-topic_subscription.go (92%) rename cloudformation/{ => resources}/aws-sns-topicpolicy.go (90%) rename cloudformation/{ => resources}/aws-sqs-queue.go (94%) rename cloudformation/{ => resources}/aws-sqs-queuepolicy.go (90%) rename cloudformation/{ => resources}/aws-ssm-association.go (93%) rename cloudformation/{ => resources}/aws-ssm-association_instanceassociationoutputlocation.go (93%) rename cloudformation/{ => resources}/aws-ssm-association_parametervalues.go (94%) rename cloudformation/{ => resources}/aws-ssm-association_s3outputlocation.go (94%) rename cloudformation/{ => resources}/aws-ssm-association_target.go (92%) rename cloudformation/{ => resources}/aws-ssm-document.go (90%) rename cloudformation/{ => resources}/aws-ssm-maintenancewindow.go (93%) rename cloudformation/{ => resources}/aws-ssm-maintenancewindowtask.go (94%) rename cloudformation/{ => resources}/aws-ssm-maintenancewindowtask_logginginfo.go (94%) rename cloudformation/{ => resources}/aws-ssm-maintenancewindowtask_maintenancewindowautomationparameters.go (94%) rename cloudformation/{ => resources}/aws-ssm-maintenancewindowtask_maintenancewindowlambdaparameters.go (94%) rename cloudformation/{ => resources}/aws-ssm-maintenancewindowtask_maintenancewindowruncommandparameters.go (96%) rename cloudformation/{ => resources}/aws-ssm-maintenancewindowtask_maintenancewindowstepfunctionsparameters.go (94%) rename cloudformation/{ => resources}/aws-ssm-maintenancewindowtask_notificationconfig.go (95%) rename cloudformation/{ => resources}/aws-ssm-maintenancewindowtask_target.go (94%) rename cloudformation/{ => resources}/aws-ssm-maintenancewindowtask_taskinvocationparameters.go (96%) rename cloudformation/{ => resources}/aws-ssm-parameter.go (91%) rename cloudformation/{ => resources}/aws-ssm-patchbaseline.go (94%) rename cloudformation/{ => resources}/aws-ssm-patchbaseline_patchfilter.go (94%) rename cloudformation/{ => resources}/aws-ssm-patchbaseline_patchfiltergroup.go (94%) rename cloudformation/{ => resources}/aws-ssm-patchbaseline_patchsource.go (95%) rename cloudformation/{ => resources}/aws-ssm-patchbaseline_rule.go (93%) rename cloudformation/{ => resources}/aws-ssm-patchbaseline_rulegroup.go (94%) rename cloudformation/{ => resources}/aws-ssm-resourcedatasync.go (92%) rename cloudformation/{ => resources}/aws-stepfunctions-activity.go (90%) rename cloudformation/{ => resources}/aws-stepfunctions-activity_tagsentry.go (94%) rename cloudformation/{ => resources}/aws-stepfunctions-statemachine.go (93%) rename cloudformation/{ => resources}/aws-stepfunctions-statemachine_tagsentry.go (94%) rename cloudformation/{ => resources}/aws-waf-bytematchset.go (90%) rename cloudformation/{ => resources}/aws-waf-bytematchset_bytematchtuple.go (95%) rename cloudformation/{ => resources}/aws-waf-bytematchset_fieldtomatch.go (94%) rename cloudformation/{ => resources}/aws-waf-ipset.go (90%) rename cloudformation/{ => resources}/aws-waf-ipset_ipsetdescriptor.go (92%) rename cloudformation/{ => resources}/aws-waf-rule.go (90%) rename cloudformation/{ => resources}/aws-waf-rule_predicate.go (92%) rename cloudformation/{ => resources}/aws-waf-sizeconstraintset.go (90%) rename cloudformation/{ => resources}/aws-waf-sizeconstraintset_fieldtomatch.go (94%) rename cloudformation/{ => resources}/aws-waf-sizeconstraintset_sizeconstraint.go (95%) rename cloudformation/{ => resources}/aws-waf-sqlinjectionmatchset.go (90%) rename cloudformation/{ => resources}/aws-waf-sqlinjectionmatchset_fieldtomatch.go (94%) rename cloudformation/{ => resources}/aws-waf-sqlinjectionmatchset_sqlinjectionmatchtuple.go (94%) rename cloudformation/{ => resources}/aws-waf-webacl.go (91%) rename cloudformation/{ => resources}/aws-waf-webacl_activatedrule.go (92%) rename cloudformation/{ => resources}/aws-waf-webacl_wafaction.go (91%) rename cloudformation/{ => resources}/aws-waf-xssmatchset.go (90%) rename cloudformation/{ => resources}/aws-waf-xssmatchset_fieldtomatch.go (94%) rename cloudformation/{ => resources}/aws-waf-xssmatchset_xssmatchtuple.go (94%) rename cloudformation/{ => resources}/aws-wafregional-bytematchset.go (90%) rename cloudformation/{ => resources}/aws-wafregional-bytematchset_bytematchtuple.go (95%) rename cloudformation/{ => resources}/aws-wafregional-bytematchset_fieldtomatch.go (94%) rename cloudformation/{ => resources}/aws-wafregional-ipset.go (90%) rename cloudformation/{ => resources}/aws-wafregional-ipset_ipsetdescriptor.go (94%) rename cloudformation/{ => resources}/aws-wafregional-rule.go (90%) rename cloudformation/{ => resources}/aws-wafregional-rule_predicate.go (94%) rename cloudformation/{ => resources}/aws-wafregional-sizeconstraintset.go (92%) rename cloudformation/{ => resources}/aws-wafregional-sizeconstraintset_fieldtomatch.go (94%) rename cloudformation/{ => resources}/aws-wafregional-sizeconstraintset_sizeconstraint.go (95%) rename cloudformation/{ => resources}/aws-wafregional-sqlinjectionmatchset.go (92%) rename cloudformation/{ => resources}/aws-wafregional-sqlinjectionmatchset_fieldtomatch.go (94%) rename cloudformation/{ => resources}/aws-wafregional-sqlinjectionmatchset_sqlinjectionmatchtuple.go (94%) rename cloudformation/{ => resources}/aws-wafregional-webacl.go (91%) rename cloudformation/{ => resources}/aws-wafregional-webacl_action.go (91%) rename cloudformation/{ => resources}/aws-wafregional-webacl_rule.go (92%) rename cloudformation/{ => resources}/aws-wafregional-webaclassociation.go (92%) rename cloudformation/{ => resources}/aws-wafregional-xssmatchset.go (90%) rename cloudformation/{ => resources}/aws-wafregional-xssmatchset_fieldtomatch.go (94%) rename cloudformation/{ => resources}/aws-wafregional-xssmatchset_xssmatchtuple.go (94%) rename cloudformation/{ => resources}/aws-workspaces-workspace.go (93%) rename cloudformation/{ => resources}/aws-workspaces-workspace_workspaceproperties.go (95%) rename cloudformation/{ => resources}/awsserverlessapi_definitionuri.go (97%) rename cloudformation/{ => resources}/awsserverlessapplication_location.go (98%) rename cloudformation/{ => resources}/awsserverlessfunction_codeuri.go (98%) rename cloudformation/{ => resources}/awsserverlessfunction_events.go (97%) rename cloudformation/{ => resources}/awsserverlessfunction_policies.go (98%) rename cloudformation/{ => resources}/awsserverlessfunction_properties.go (99%) rename cloudformation/{ => resources}/tag.go (92%) diff --git a/README.md b/README.md index 0c89fa99bd..7a7dfca9ad 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # AWS GoFormation -[![Build Status](https://travis-ci.org/awslabs/goformation.svg?branch=0.1.0)](https://travis-ci.org/awslabs/goformation) [![GoDoc Reference](https://godoc.org/gopkg.in/awslabs/goformation.v1?status.svg)](http://godoc.org/github.com/awslabs/goformation) ![Apache-2.0](https://img.shields.io/badge/Licence-Apache%202.0-blue.svg) +[![Build Status](https://travis-ci.org/awslabs/goformation.svg?branch=0.1.0)](https://travis-ci.org/awslabs/goformation) [![GoDoc Reference](https://godoc.org/gopkg.in/awslabs/goformation.v1?status.svg)](http://godoc.org/github.com/awslabs/goformation) ![Apache-2.0](https://img.shields.io/badge/Licence-Apache%202.0-blue.svg) -`GoFormation` is a Go library for working with AWS CloudFormation / AWS Serverless Application Model (SAM) templates. +`GoFormation` is a Go library for working with AWS CloudFormation / AWS Serverless Application Model (SAM) templates. - [Main features](#main-features) - [Installation](#installation) - [Usage](#usage) @@ -45,6 +45,7 @@ import ( "time" "github.com/awslabs/goformation/cloudformation" + "github.com/awslabs/goformation/cloudformation/resources" ) func main() { @@ -53,12 +54,12 @@ func main() { template := cloudformation.NewTemplate() // Create an Amazon SNS topic, with a unique name based off the current timestamp - template.Resources["MyTopic"] = &cloudformation.AWSSNSTopic{ + template.Resources["MyTopic"] = &resources.AWSSNSTopic{ TopicName: "my-topic-" + strconv.FormatInt(time.Now().Unix(), 10), } // Create a subscription, connected to our topic, that forwards notifications to an email address - template.Resources["MyTopicSubscription"] = &cloudformation.AWSSNSSubscription{ + template.Resources["MyTopicSubscription"] = &resources.AWSSNSSubscription{ TopicArn: cloudformation.Ref("MyTopic"), Protocol: "email", Endpoint: "some.email@example.com", @@ -146,7 +147,7 @@ When creating templates, you can use the following convenience functions to use - `Not(conditions []string)` - `Or(conditions []string)` -### Unmarshalling CloudFormation YAML/JSON into Go structs +### Unmarshalling CloudFormation YAML/JSON into Go structs GoFormation also works the other way - parsing JSON/YAML CloudFormation/SAM templates into Go structs. @@ -191,7 +192,7 @@ func main() { ``` ## Updating CloudFormation / SAM Resources in GoFormation - + AWS GoFormation contains automatically generated Go structs for every CloudFormation/SAM resource, located in the [cloudformation/](cloudformation/) directory. These can be generated, from the latest [AWS CloudFormation Resource Specification](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-resource-specification.html) published for `us-east-1` by just running `go generate`: ``` @@ -216,13 +217,13 @@ The following [AWS CloudFormation Intrinsic Functions](http://docs.aws.amazon.co - [x] [Fn::Select](intrinsics/fnselect.go) - [x] [Fn::Split](intrinsics/fnsplit.go) - [x] [Fn::Sub](intrinsics/fnsub.go) -- [x] [Ref](intrinsics/ref.go) -- [x] [Fn::And](intrinsics/fnand.go) -- [x] [Fn::Equals](intrinsics/fnequals.go) -- [x] [Fn::If](intrinsics/fnif.go) -- [x] [Fn::Not](intrinsics/fnnot.go) -- [x] [Fn::Or](intrinsics/fnor.go) -- [ ] Fn::GetAtt +- [x] [Ref](intrinsics/ref.go) +- [x] [Fn::And](intrinsics/fnand.go) +- [x] [Fn::Equals](intrinsics/fnequals.go) +- [x] [Fn::If](intrinsics/fnif.go) +- [x] [Fn::Not](intrinsics/fnnot.go) +- [x] [Fn::Or](intrinsics/fnor.go) +- [ ] Fn::GetAtt - [x] [Fn::GetAZs](intrinsics/fngetazs.go) - [ ] Fn::ImportValue diff --git a/cloudformation/all.go b/cloudformation/all.go index ff3beb2e88..84345816f6 100644 --- a/cloudformation/all.go +++ b/cloudformation/all.go @@ -2,388 +2,389 @@ package cloudformation import ( "fmt" + "github.com/awslabs/goformation/cloudformation/resources" ) // AllResources fetches an iterable map all CloudFormation and SAM resources func AllResources() map[string]Resource { return map[string]Resource{ - "AWS::AmazonMQ::Broker": &AWSAmazonMQBroker{}, - "AWS::AmazonMQ::Configuration": &AWSAmazonMQConfiguration{}, - "AWS::AmazonMQ::ConfigurationAssociation": &AWSAmazonMQConfigurationAssociation{}, - "AWS::ApiGateway::Account": &AWSApiGatewayAccount{}, - "AWS::ApiGateway::ApiKey": &AWSApiGatewayApiKey{}, - "AWS::ApiGateway::Authorizer": &AWSApiGatewayAuthorizer{}, - "AWS::ApiGateway::BasePathMapping": &AWSApiGatewayBasePathMapping{}, - "AWS::ApiGateway::ClientCertificate": &AWSApiGatewayClientCertificate{}, - "AWS::ApiGateway::Deployment": &AWSApiGatewayDeployment{}, - "AWS::ApiGateway::DocumentationPart": &AWSApiGatewayDocumentationPart{}, - "AWS::ApiGateway::DocumentationVersion": &AWSApiGatewayDocumentationVersion{}, - "AWS::ApiGateway::DomainName": &AWSApiGatewayDomainName{}, - "AWS::ApiGateway::GatewayResponse": &AWSApiGatewayGatewayResponse{}, - "AWS::ApiGateway::Method": &AWSApiGatewayMethod{}, - "AWS::ApiGateway::Model": &AWSApiGatewayModel{}, - "AWS::ApiGateway::RequestValidator": &AWSApiGatewayRequestValidator{}, - "AWS::ApiGateway::Resource": &AWSApiGatewayResource{}, - "AWS::ApiGateway::RestApi": &AWSApiGatewayRestApi{}, - "AWS::ApiGateway::Stage": &AWSApiGatewayStage{}, - "AWS::ApiGateway::UsagePlan": &AWSApiGatewayUsagePlan{}, - "AWS::ApiGateway::UsagePlanKey": &AWSApiGatewayUsagePlanKey{}, - "AWS::ApiGateway::VpcLink": &AWSApiGatewayVpcLink{}, - "AWS::ApiGatewayV2::Api": &AWSApiGatewayV2Api{}, - "AWS::ApiGatewayV2::Authorizer": &AWSApiGatewayV2Authorizer{}, - "AWS::ApiGatewayV2::Deployment": &AWSApiGatewayV2Deployment{}, - "AWS::ApiGatewayV2::Integration": &AWSApiGatewayV2Integration{}, - "AWS::ApiGatewayV2::IntegrationResponse": &AWSApiGatewayV2IntegrationResponse{}, - "AWS::ApiGatewayV2::Model": &AWSApiGatewayV2Model{}, - "AWS::ApiGatewayV2::Route": &AWSApiGatewayV2Route{}, - "AWS::ApiGatewayV2::RouteResponse": &AWSApiGatewayV2RouteResponse{}, - "AWS::ApiGatewayV2::Stage": &AWSApiGatewayV2Stage{}, - "AWS::AppStream::DirectoryConfig": &AWSAppStreamDirectoryConfig{}, - "AWS::AppStream::Fleet": &AWSAppStreamFleet{}, - "AWS::AppStream::ImageBuilder": &AWSAppStreamImageBuilder{}, - "AWS::AppStream::Stack": &AWSAppStreamStack{}, - "AWS::AppStream::StackFleetAssociation": &AWSAppStreamStackFleetAssociation{}, - "AWS::AppStream::StackUserAssociation": &AWSAppStreamStackUserAssociation{}, - "AWS::AppStream::User": &AWSAppStreamUser{}, - "AWS::AppSync::ApiKey": &AWSAppSyncApiKey{}, - "AWS::AppSync::DataSource": &AWSAppSyncDataSource{}, - "AWS::AppSync::FunctionConfiguration": &AWSAppSyncFunctionConfiguration{}, - "AWS::AppSync::GraphQLApi": &AWSAppSyncGraphQLApi{}, - "AWS::AppSync::GraphQLSchema": &AWSAppSyncGraphQLSchema{}, - "AWS::AppSync::Resolver": &AWSAppSyncResolver{}, - "AWS::ApplicationAutoScaling::ScalableTarget": &AWSApplicationAutoScalingScalableTarget{}, - "AWS::ApplicationAutoScaling::ScalingPolicy": &AWSApplicationAutoScalingScalingPolicy{}, - "AWS::Athena::NamedQuery": &AWSAthenaNamedQuery{}, - "AWS::AutoScaling::AutoScalingGroup": &AWSAutoScalingAutoScalingGroup{}, - "AWS::AutoScaling::LaunchConfiguration": &AWSAutoScalingLaunchConfiguration{}, - "AWS::AutoScaling::LifecycleHook": &AWSAutoScalingLifecycleHook{}, - "AWS::AutoScaling::ScalingPolicy": &AWSAutoScalingScalingPolicy{}, - "AWS::AutoScaling::ScheduledAction": &AWSAutoScalingScheduledAction{}, - "AWS::AutoScalingPlans::ScalingPlan": &AWSAutoScalingPlansScalingPlan{}, - "AWS::Batch::ComputeEnvironment": &AWSBatchComputeEnvironment{}, - "AWS::Batch::JobDefinition": &AWSBatchJobDefinition{}, - "AWS::Batch::JobQueue": &AWSBatchJobQueue{}, - "AWS::Budgets::Budget": &AWSBudgetsBudget{}, - "AWS::CertificateManager::Certificate": &AWSCertificateManagerCertificate{}, - "AWS::Cloud9::EnvironmentEC2": &AWSCloud9EnvironmentEC2{}, - "AWS::CloudFormation::CustomResource": &AWSCloudFormationCustomResource{}, - "AWS::CloudFormation::Macro": &AWSCloudFormationMacro{}, - "AWS::CloudFormation::Stack": &AWSCloudFormationStack{}, - "AWS::CloudFormation::WaitCondition": &AWSCloudFormationWaitCondition{}, - "AWS::CloudFormation::WaitConditionHandle": &AWSCloudFormationWaitConditionHandle{}, - "AWS::CloudFront::CloudFrontOriginAccessIdentity": &AWSCloudFrontCloudFrontOriginAccessIdentity{}, - "AWS::CloudFront::Distribution": &AWSCloudFrontDistribution{}, - "AWS::CloudFront::StreamingDistribution": &AWSCloudFrontStreamingDistribution{}, - "AWS::CloudTrail::Trail": &AWSCloudTrailTrail{}, - "AWS::CloudWatch::Alarm": &AWSCloudWatchAlarm{}, - "AWS::CloudWatch::Dashboard": &AWSCloudWatchDashboard{}, - "AWS::CodeBuild::Project": &AWSCodeBuildProject{}, - "AWS::CodeCommit::Repository": &AWSCodeCommitRepository{}, - "AWS::CodeDeploy::Application": &AWSCodeDeployApplication{}, - "AWS::CodeDeploy::DeploymentConfig": &AWSCodeDeployDeploymentConfig{}, - "AWS::CodeDeploy::DeploymentGroup": &AWSCodeDeployDeploymentGroup{}, - "AWS::CodePipeline::CustomActionType": &AWSCodePipelineCustomActionType{}, - "AWS::CodePipeline::Pipeline": &AWSCodePipelinePipeline{}, - "AWS::CodePipeline::Webhook": &AWSCodePipelineWebhook{}, - "AWS::Cognito::IdentityPool": &AWSCognitoIdentityPool{}, - "AWS::Cognito::IdentityPoolRoleAttachment": &AWSCognitoIdentityPoolRoleAttachment{}, - "AWS::Cognito::UserPool": &AWSCognitoUserPool{}, - "AWS::Cognito::UserPoolClient": &AWSCognitoUserPoolClient{}, - "AWS::Cognito::UserPoolGroup": &AWSCognitoUserPoolGroup{}, - "AWS::Cognito::UserPoolUser": &AWSCognitoUserPoolUser{}, - "AWS::Cognito::UserPoolUserToGroupAttachment": &AWSCognitoUserPoolUserToGroupAttachment{}, - "AWS::Config::AggregationAuthorization": &AWSConfigAggregationAuthorization{}, - "AWS::Config::ConfigRule": &AWSConfigConfigRule{}, - "AWS::Config::ConfigurationAggregator": &AWSConfigConfigurationAggregator{}, - "AWS::Config::ConfigurationRecorder": &AWSConfigConfigurationRecorder{}, - "AWS::Config::DeliveryChannel": &AWSConfigDeliveryChannel{}, - "AWS::DAX::Cluster": &AWSDAXCluster{}, - "AWS::DAX::ParameterGroup": &AWSDAXParameterGroup{}, - "AWS::DAX::SubnetGroup": &AWSDAXSubnetGroup{}, - "AWS::DLM::LifecyclePolicy": &AWSDLMLifecyclePolicy{}, - "AWS::DMS::Certificate": &AWSDMSCertificate{}, - "AWS::DMS::Endpoint": &AWSDMSEndpoint{}, - "AWS::DMS::EventSubscription": &AWSDMSEventSubscription{}, - "AWS::DMS::ReplicationInstance": &AWSDMSReplicationInstance{}, - "AWS::DMS::ReplicationSubnetGroup": &AWSDMSReplicationSubnetGroup{}, - "AWS::DMS::ReplicationTask": &AWSDMSReplicationTask{}, - "AWS::DataPipeline::Pipeline": &AWSDataPipelinePipeline{}, - "AWS::DirectoryService::MicrosoftAD": &AWSDirectoryServiceMicrosoftAD{}, - "AWS::DirectoryService::SimpleAD": &AWSDirectoryServiceSimpleAD{}, - "AWS::DocDB::DBCluster": &AWSDocDBDBCluster{}, - "AWS::DocDB::DBClusterParameterGroup": &AWSDocDBDBClusterParameterGroup{}, - "AWS::DocDB::DBInstance": &AWSDocDBDBInstance{}, - "AWS::DocDB::DBSubnetGroup": &AWSDocDBDBSubnetGroup{}, - "AWS::DynamoDB::Table": &AWSDynamoDBTable{}, - "AWS::EC2::CustomerGateway": &AWSEC2CustomerGateway{}, - "AWS::EC2::DHCPOptions": &AWSEC2DHCPOptions{}, - "AWS::EC2::EC2Fleet": &AWSEC2EC2Fleet{}, - "AWS::EC2::EIP": &AWSEC2EIP{}, - "AWS::EC2::EIPAssociation": &AWSEC2EIPAssociation{}, - "AWS::EC2::EgressOnlyInternetGateway": &AWSEC2EgressOnlyInternetGateway{}, - "AWS::EC2::FlowLog": &AWSEC2FlowLog{}, - "AWS::EC2::Host": &AWSEC2Host{}, - "AWS::EC2::Instance": &AWSEC2Instance{}, - "AWS::EC2::InternetGateway": &AWSEC2InternetGateway{}, - "AWS::EC2::LaunchTemplate": &AWSEC2LaunchTemplate{}, - "AWS::EC2::NatGateway": &AWSEC2NatGateway{}, - "AWS::EC2::NetworkAcl": &AWSEC2NetworkAcl{}, - "AWS::EC2::NetworkAclEntry": &AWSEC2NetworkAclEntry{}, - "AWS::EC2::NetworkInterface": &AWSEC2NetworkInterface{}, - "AWS::EC2::NetworkInterfaceAttachment": &AWSEC2NetworkInterfaceAttachment{}, - "AWS::EC2::NetworkInterfacePermission": &AWSEC2NetworkInterfacePermission{}, - "AWS::EC2::PlacementGroup": &AWSEC2PlacementGroup{}, - "AWS::EC2::Route": &AWSEC2Route{}, - "AWS::EC2::RouteTable": &AWSEC2RouteTable{}, - "AWS::EC2::SecurityGroup": &AWSEC2SecurityGroup{}, - "AWS::EC2::SecurityGroupEgress": &AWSEC2SecurityGroupEgress{}, - "AWS::EC2::SecurityGroupIngress": &AWSEC2SecurityGroupIngress{}, - "AWS::EC2::SpotFleet": &AWSEC2SpotFleet{}, - "AWS::EC2::Subnet": &AWSEC2Subnet{}, - "AWS::EC2::SubnetCidrBlock": &AWSEC2SubnetCidrBlock{}, - "AWS::EC2::SubnetNetworkAclAssociation": &AWSEC2SubnetNetworkAclAssociation{}, - "AWS::EC2::SubnetRouteTableAssociation": &AWSEC2SubnetRouteTableAssociation{}, - "AWS::EC2::TransitGateway": &AWSEC2TransitGateway{}, - "AWS::EC2::TransitGatewayAttachment": &AWSEC2TransitGatewayAttachment{}, - "AWS::EC2::TransitGatewayRoute": &AWSEC2TransitGatewayRoute{}, - "AWS::EC2::TransitGatewayRouteTable": &AWSEC2TransitGatewayRouteTable{}, - "AWS::EC2::TransitGatewayRouteTableAssociation": &AWSEC2TransitGatewayRouteTableAssociation{}, - "AWS::EC2::TransitGatewayRouteTablePropagation": &AWSEC2TransitGatewayRouteTablePropagation{}, - "AWS::EC2::TrunkInterfaceAssociation": &AWSEC2TrunkInterfaceAssociation{}, - "AWS::EC2::VPC": &AWSEC2VPC{}, - "AWS::EC2::VPCCidrBlock": &AWSEC2VPCCidrBlock{}, - "AWS::EC2::VPCDHCPOptionsAssociation": &AWSEC2VPCDHCPOptionsAssociation{}, - "AWS::EC2::VPCEndpoint": &AWSEC2VPCEndpoint{}, - "AWS::EC2::VPCEndpointConnectionNotification": &AWSEC2VPCEndpointConnectionNotification{}, - "AWS::EC2::VPCEndpointServicePermissions": &AWSEC2VPCEndpointServicePermissions{}, - "AWS::EC2::VPCGatewayAttachment": &AWSEC2VPCGatewayAttachment{}, - "AWS::EC2::VPCPeeringConnection": &AWSEC2VPCPeeringConnection{}, - "AWS::EC2::VPNConnection": &AWSEC2VPNConnection{}, - "AWS::EC2::VPNConnectionRoute": &AWSEC2VPNConnectionRoute{}, - "AWS::EC2::VPNGateway": &AWSEC2VPNGateway{}, - "AWS::EC2::VPNGatewayRoutePropagation": &AWSEC2VPNGatewayRoutePropagation{}, - "AWS::EC2::Volume": &AWSEC2Volume{}, - "AWS::EC2::VolumeAttachment": &AWSEC2VolumeAttachment{}, - "AWS::ECR::Repository": &AWSECRRepository{}, - "AWS::ECS::Cluster": &AWSECSCluster{}, - "AWS::ECS::Service": &AWSECSService{}, - "AWS::ECS::TaskDefinition": &AWSECSTaskDefinition{}, - "AWS::EFS::FileSystem": &AWSEFSFileSystem{}, - "AWS::EFS::MountTarget": &AWSEFSMountTarget{}, - "AWS::EKS::Cluster": &AWSEKSCluster{}, - "AWS::EMR::Cluster": &AWSEMRCluster{}, - "AWS::EMR::InstanceFleetConfig": &AWSEMRInstanceFleetConfig{}, - "AWS::EMR::InstanceGroupConfig": &AWSEMRInstanceGroupConfig{}, - "AWS::EMR::SecurityConfiguration": &AWSEMRSecurityConfiguration{}, - "AWS::EMR::Step": &AWSEMRStep{}, - "AWS::ElastiCache::CacheCluster": &AWSElastiCacheCacheCluster{}, - "AWS::ElastiCache::ParameterGroup": &AWSElastiCacheParameterGroup{}, - "AWS::ElastiCache::ReplicationGroup": &AWSElastiCacheReplicationGroup{}, - "AWS::ElastiCache::SecurityGroup": &AWSElastiCacheSecurityGroup{}, - "AWS::ElastiCache::SecurityGroupIngress": &AWSElastiCacheSecurityGroupIngress{}, - "AWS::ElastiCache::SubnetGroup": &AWSElastiCacheSubnetGroup{}, - "AWS::ElasticBeanstalk::Application": &AWSElasticBeanstalkApplication{}, - "AWS::ElasticBeanstalk::ApplicationVersion": &AWSElasticBeanstalkApplicationVersion{}, - "AWS::ElasticBeanstalk::ConfigurationTemplate": &AWSElasticBeanstalkConfigurationTemplate{}, - "AWS::ElasticBeanstalk::Environment": &AWSElasticBeanstalkEnvironment{}, - "AWS::ElasticLoadBalancing::LoadBalancer": &AWSElasticLoadBalancingLoadBalancer{}, - "AWS::ElasticLoadBalancingV2::Listener": &AWSElasticLoadBalancingV2Listener{}, - "AWS::ElasticLoadBalancingV2::ListenerCertificate": &AWSElasticLoadBalancingV2ListenerCertificate{}, - "AWS::ElasticLoadBalancingV2::ListenerRule": &AWSElasticLoadBalancingV2ListenerRule{}, - "AWS::ElasticLoadBalancingV2::LoadBalancer": &AWSElasticLoadBalancingV2LoadBalancer{}, - "AWS::ElasticLoadBalancingV2::TargetGroup": &AWSElasticLoadBalancingV2TargetGroup{}, - "AWS::Elasticsearch::Domain": &AWSElasticsearchDomain{}, - "AWS::Events::EventBusPolicy": &AWSEventsEventBusPolicy{}, - "AWS::Events::Rule": &AWSEventsRule{}, - "AWS::FSx::FileSystem": &AWSFSxFileSystem{}, - "AWS::GameLift::Alias": &AWSGameLiftAlias{}, - "AWS::GameLift::Build": &AWSGameLiftBuild{}, - "AWS::GameLift::Fleet": &AWSGameLiftFleet{}, - "AWS::Glue::Classifier": &AWSGlueClassifier{}, - "AWS::Glue::Connection": &AWSGlueConnection{}, - "AWS::Glue::Crawler": &AWSGlueCrawler{}, - "AWS::Glue::Database": &AWSGlueDatabase{}, - "AWS::Glue::DevEndpoint": &AWSGlueDevEndpoint{}, - "AWS::Glue::Job": &AWSGlueJob{}, - "AWS::Glue::Partition": &AWSGluePartition{}, - "AWS::Glue::Table": &AWSGlueTable{}, - "AWS::Glue::Trigger": &AWSGlueTrigger{}, - "AWS::GuardDuty::Detector": &AWSGuardDutyDetector{}, - "AWS::GuardDuty::Filter": &AWSGuardDutyFilter{}, - "AWS::GuardDuty::IPSet": &AWSGuardDutyIPSet{}, - "AWS::GuardDuty::Master": &AWSGuardDutyMaster{}, - "AWS::GuardDuty::Member": &AWSGuardDutyMember{}, - "AWS::GuardDuty::ThreatIntelSet": &AWSGuardDutyThreatIntelSet{}, - "AWS::IAM::AccessKey": &AWSIAMAccessKey{}, - "AWS::IAM::Group": &AWSIAMGroup{}, - "AWS::IAM::InstanceProfile": &AWSIAMInstanceProfile{}, - "AWS::IAM::ManagedPolicy": &AWSIAMManagedPolicy{}, - "AWS::IAM::Policy": &AWSIAMPolicy{}, - "AWS::IAM::Role": &AWSIAMRole{}, - "AWS::IAM::ServiceLinkedRole": &AWSIAMServiceLinkedRole{}, - "AWS::IAM::User": &AWSIAMUser{}, - "AWS::IAM::UserToGroupAddition": &AWSIAMUserToGroupAddition{}, - "AWS::Inspector::AssessmentTarget": &AWSInspectorAssessmentTarget{}, - "AWS::Inspector::AssessmentTemplate": &AWSInspectorAssessmentTemplate{}, - "AWS::Inspector::ResourceGroup": &AWSInspectorResourceGroup{}, - "AWS::IoT1Click::Device": &AWSIoT1ClickDevice{}, - "AWS::IoT1Click::Placement": &AWSIoT1ClickPlacement{}, - "AWS::IoT1Click::Project": &AWSIoT1ClickProject{}, - "AWS::IoT::Certificate": &AWSIoTCertificate{}, - "AWS::IoT::Policy": &AWSIoTPolicy{}, - "AWS::IoT::PolicyPrincipalAttachment": &AWSIoTPolicyPrincipalAttachment{}, - "AWS::IoT::Thing": &AWSIoTThing{}, - "AWS::IoT::ThingPrincipalAttachment": &AWSIoTThingPrincipalAttachment{}, - "AWS::IoT::TopicRule": &AWSIoTTopicRule{}, - "AWS::IoTAnalytics::Channel": &AWSIoTAnalyticsChannel{}, - "AWS::IoTAnalytics::Dataset": &AWSIoTAnalyticsDataset{}, - "AWS::IoTAnalytics::Datastore": &AWSIoTAnalyticsDatastore{}, - "AWS::IoTAnalytics::Pipeline": &AWSIoTAnalyticsPipeline{}, - "AWS::KMS::Alias": &AWSKMSAlias{}, - "AWS::KMS::Key": &AWSKMSKey{}, - "AWS::Kinesis::Stream": &AWSKinesisStream{}, - "AWS::Kinesis::StreamConsumer": &AWSKinesisStreamConsumer{}, - "AWS::KinesisAnalytics::Application": &AWSKinesisAnalyticsApplication{}, - "AWS::KinesisAnalytics::ApplicationOutput": &AWSKinesisAnalyticsApplicationOutput{}, - "AWS::KinesisAnalytics::ApplicationReferenceDataSource": &AWSKinesisAnalyticsApplicationReferenceDataSource{}, - "AWS::KinesisAnalyticsV2::Application": &AWSKinesisAnalyticsV2Application{}, - "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption": &AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption{}, - "AWS::KinesisAnalyticsV2::ApplicationOutput": &AWSKinesisAnalyticsV2ApplicationOutput{}, - "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource": &AWSKinesisAnalyticsV2ApplicationReferenceDataSource{}, - "AWS::KinesisFirehose::DeliveryStream": &AWSKinesisFirehoseDeliveryStream{}, - "AWS::Lambda::Alias": &AWSLambdaAlias{}, - "AWS::Lambda::EventSourceMapping": &AWSLambdaEventSourceMapping{}, - "AWS::Lambda::Function": &AWSLambdaFunction{}, - "AWS::Lambda::LayerVersion": &AWSLambdaLayerVersion{}, - "AWS::Lambda::LayerVersionPermission": &AWSLambdaLayerVersionPermission{}, - "AWS::Lambda::Permission": &AWSLambdaPermission{}, - "AWS::Lambda::Version": &AWSLambdaVersion{}, - "AWS::Logs::Destination": &AWSLogsDestination{}, - "AWS::Logs::LogGroup": &AWSLogsLogGroup{}, - "AWS::Logs::LogStream": &AWSLogsLogStream{}, - "AWS::Logs::MetricFilter": &AWSLogsMetricFilter{}, - "AWS::Logs::SubscriptionFilter": &AWSLogsSubscriptionFilter{}, - "AWS::Neptune::DBCluster": &AWSNeptuneDBCluster{}, - "AWS::Neptune::DBClusterParameterGroup": &AWSNeptuneDBClusterParameterGroup{}, - "AWS::Neptune::DBInstance": &AWSNeptuneDBInstance{}, - "AWS::Neptune::DBParameterGroup": &AWSNeptuneDBParameterGroup{}, - "AWS::Neptune::DBSubnetGroup": &AWSNeptuneDBSubnetGroup{}, - "AWS::OpsWorks::App": &AWSOpsWorksApp{}, - "AWS::OpsWorks::ElasticLoadBalancerAttachment": &AWSOpsWorksElasticLoadBalancerAttachment{}, - "AWS::OpsWorks::Instance": &AWSOpsWorksInstance{}, - "AWS::OpsWorks::Layer": &AWSOpsWorksLayer{}, - "AWS::OpsWorks::Stack": &AWSOpsWorksStack{}, - "AWS::OpsWorks::UserProfile": &AWSOpsWorksUserProfile{}, - "AWS::OpsWorks::Volume": &AWSOpsWorksVolume{}, - "AWS::OpsWorksCM::Server": &AWSOpsWorksCMServer{}, - "AWS::RAM::ResourceShare": &AWSRAMResourceShare{}, - "AWS::RDS::DBCluster": &AWSRDSDBCluster{}, - "AWS::RDS::DBClusterParameterGroup": &AWSRDSDBClusterParameterGroup{}, - "AWS::RDS::DBInstance": &AWSRDSDBInstance{}, - "AWS::RDS::DBParameterGroup": &AWSRDSDBParameterGroup{}, - "AWS::RDS::DBSecurityGroup": &AWSRDSDBSecurityGroup{}, - "AWS::RDS::DBSecurityGroupIngress": &AWSRDSDBSecurityGroupIngress{}, - "AWS::RDS::DBSubnetGroup": &AWSRDSDBSubnetGroup{}, - "AWS::RDS::EventSubscription": &AWSRDSEventSubscription{}, - "AWS::RDS::OptionGroup": &AWSRDSOptionGroup{}, - "AWS::Redshift::Cluster": &AWSRedshiftCluster{}, - "AWS::Redshift::ClusterParameterGroup": &AWSRedshiftClusterParameterGroup{}, - "AWS::Redshift::ClusterSecurityGroup": &AWSRedshiftClusterSecurityGroup{}, - "AWS::Redshift::ClusterSecurityGroupIngress": &AWSRedshiftClusterSecurityGroupIngress{}, - "AWS::Redshift::ClusterSubnetGroup": &AWSRedshiftClusterSubnetGroup{}, - "AWS::RoboMaker::Fleet": &AWSRoboMakerFleet{}, - "AWS::RoboMaker::Robot": &AWSRoboMakerRobot{}, - "AWS::RoboMaker::RobotApplication": &AWSRoboMakerRobotApplication{}, - "AWS::RoboMaker::RobotApplicationVersion": &AWSRoboMakerRobotApplicationVersion{}, - "AWS::RoboMaker::SimulationApplication": &AWSRoboMakerSimulationApplication{}, - "AWS::RoboMaker::SimulationApplicationVersion": &AWSRoboMakerSimulationApplicationVersion{}, - "AWS::Route53::HealthCheck": &AWSRoute53HealthCheck{}, - "AWS::Route53::HostedZone": &AWSRoute53HostedZone{}, - "AWS::Route53::RecordSet": &AWSRoute53RecordSet{}, - "AWS::Route53::RecordSetGroup": &AWSRoute53RecordSetGroup{}, - "AWS::Route53Resolver::ResolverEndpoint": &AWSRoute53ResolverResolverEndpoint{}, - "AWS::Route53Resolver::ResolverRule": &AWSRoute53ResolverResolverRule{}, - "AWS::Route53Resolver::ResolverRuleAssociation": &AWSRoute53ResolverResolverRuleAssociation{}, - "AWS::S3::Bucket": &AWSS3Bucket{}, - "AWS::S3::BucketPolicy": &AWSS3BucketPolicy{}, - "AWS::SDB::Domain": &AWSSDBDomain{}, - "AWS::SES::ConfigurationSet": &AWSSESConfigurationSet{}, - "AWS::SES::ConfigurationSetEventDestination": &AWSSESConfigurationSetEventDestination{}, - "AWS::SES::ReceiptFilter": &AWSSESReceiptFilter{}, - "AWS::SES::ReceiptRule": &AWSSESReceiptRule{}, - "AWS::SES::ReceiptRuleSet": &AWSSESReceiptRuleSet{}, - "AWS::SES::Template": &AWSSESTemplate{}, - "AWS::SNS::Subscription": &AWSSNSSubscription{}, - "AWS::SNS::Topic": &AWSSNSTopic{}, - "AWS::SNS::TopicPolicy": &AWSSNSTopicPolicy{}, - "AWS::SQS::Queue": &AWSSQSQueue{}, - "AWS::SQS::QueuePolicy": &AWSSQSQueuePolicy{}, - "AWS::SSM::Association": &AWSSSMAssociation{}, - "AWS::SSM::Document": &AWSSSMDocument{}, - "AWS::SSM::MaintenanceWindow": &AWSSSMMaintenanceWindow{}, - "AWS::SSM::MaintenanceWindowTask": &AWSSSMMaintenanceWindowTask{}, - "AWS::SSM::Parameter": &AWSSSMParameter{}, - "AWS::SSM::PatchBaseline": &AWSSSMPatchBaseline{}, - "AWS::SSM::ResourceDataSync": &AWSSSMResourceDataSync{}, - "AWS::SageMaker::Endpoint": &AWSSageMakerEndpoint{}, - "AWS::SageMaker::EndpointConfig": &AWSSageMakerEndpointConfig{}, - "AWS::SageMaker::Model": &AWSSageMakerModel{}, - "AWS::SageMaker::NotebookInstance": &AWSSageMakerNotebookInstance{}, - "AWS::SageMaker::NotebookInstanceLifecycleConfig": &AWSSageMakerNotebookInstanceLifecycleConfig{}, - "AWS::SecretsManager::ResourcePolicy": &AWSSecretsManagerResourcePolicy{}, - "AWS::SecretsManager::RotationSchedule": &AWSSecretsManagerRotationSchedule{}, - "AWS::SecretsManager::Secret": &AWSSecretsManagerSecret{}, - "AWS::SecretsManager::SecretTargetAttachment": &AWSSecretsManagerSecretTargetAttachment{}, - "AWS::Serverless::Api": &AWSServerlessApi{}, - "AWS::Serverless::Application": &AWSServerlessApplication{}, - "AWS::Serverless::Function": &AWSServerlessFunction{}, - "AWS::Serverless::LayerVersion": &AWSServerlessLayerVersion{}, - "AWS::Serverless::SimpleTable": &AWSServerlessSimpleTable{}, - "AWS::ServiceCatalog::AcceptedPortfolioShare": &AWSServiceCatalogAcceptedPortfolioShare{}, - "AWS::ServiceCatalog::CloudFormationProduct": &AWSServiceCatalogCloudFormationProduct{}, - "AWS::ServiceCatalog::CloudFormationProvisionedProduct": &AWSServiceCatalogCloudFormationProvisionedProduct{}, - "AWS::ServiceCatalog::LaunchNotificationConstraint": &AWSServiceCatalogLaunchNotificationConstraint{}, - "AWS::ServiceCatalog::LaunchRoleConstraint": &AWSServiceCatalogLaunchRoleConstraint{}, - "AWS::ServiceCatalog::LaunchTemplateConstraint": &AWSServiceCatalogLaunchTemplateConstraint{}, - "AWS::ServiceCatalog::Portfolio": &AWSServiceCatalogPortfolio{}, - "AWS::ServiceCatalog::PortfolioPrincipalAssociation": &AWSServiceCatalogPortfolioPrincipalAssociation{}, - "AWS::ServiceCatalog::PortfolioProductAssociation": &AWSServiceCatalogPortfolioProductAssociation{}, - "AWS::ServiceCatalog::PortfolioShare": &AWSServiceCatalogPortfolioShare{}, - "AWS::ServiceCatalog::TagOption": &AWSServiceCatalogTagOption{}, - "AWS::ServiceCatalog::TagOptionAssociation": &AWSServiceCatalogTagOptionAssociation{}, - "AWS::ServiceDiscovery::HttpNamespace": &AWSServiceDiscoveryHttpNamespace{}, - "AWS::ServiceDiscovery::Instance": &AWSServiceDiscoveryInstance{}, - "AWS::ServiceDiscovery::PrivateDnsNamespace": &AWSServiceDiscoveryPrivateDnsNamespace{}, - "AWS::ServiceDiscovery::PublicDnsNamespace": &AWSServiceDiscoveryPublicDnsNamespace{}, - "AWS::ServiceDiscovery::Service": &AWSServiceDiscoveryService{}, - "AWS::StepFunctions::Activity": &AWSStepFunctionsActivity{}, - "AWS::StepFunctions::StateMachine": &AWSStepFunctionsStateMachine{}, - "AWS::WAF::ByteMatchSet": &AWSWAFByteMatchSet{}, - "AWS::WAF::IPSet": &AWSWAFIPSet{}, - "AWS::WAF::Rule": &AWSWAFRule{}, - "AWS::WAF::SizeConstraintSet": &AWSWAFSizeConstraintSet{}, - "AWS::WAF::SqlInjectionMatchSet": &AWSWAFSqlInjectionMatchSet{}, - "AWS::WAF::WebACL": &AWSWAFWebACL{}, - "AWS::WAF::XssMatchSet": &AWSWAFXssMatchSet{}, - "AWS::WAFRegional::ByteMatchSet": &AWSWAFRegionalByteMatchSet{}, - "AWS::WAFRegional::IPSet": &AWSWAFRegionalIPSet{}, - "AWS::WAFRegional::Rule": &AWSWAFRegionalRule{}, - "AWS::WAFRegional::SizeConstraintSet": &AWSWAFRegionalSizeConstraintSet{}, - "AWS::WAFRegional::SqlInjectionMatchSet": &AWSWAFRegionalSqlInjectionMatchSet{}, - "AWS::WAFRegional::WebACL": &AWSWAFRegionalWebACL{}, - "AWS::WAFRegional::WebACLAssociation": &AWSWAFRegionalWebACLAssociation{}, - "AWS::WAFRegional::XssMatchSet": &AWSWAFRegionalXssMatchSet{}, - "AWS::WorkSpaces::Workspace": &AWSWorkSpacesWorkspace{}, - "Alexa::ASK::Skill": &AlexaASKSkill{}, + "AWS::AmazonMQ::Broker": &resources.AWSAmazonMQBroker{}, + "AWS::AmazonMQ::Configuration": &resources.AWSAmazonMQConfiguration{}, + "AWS::AmazonMQ::ConfigurationAssociation": &resources.AWSAmazonMQConfigurationAssociation{}, + "AWS::ApiGateway::Account": &resources.AWSApiGatewayAccount{}, + "AWS::ApiGateway::ApiKey": &resources.AWSApiGatewayApiKey{}, + "AWS::ApiGateway::Authorizer": &resources.AWSApiGatewayAuthorizer{}, + "AWS::ApiGateway::BasePathMapping": &resources.AWSApiGatewayBasePathMapping{}, + "AWS::ApiGateway::ClientCertificate": &resources.AWSApiGatewayClientCertificate{}, + "AWS::ApiGateway::Deployment": &resources.AWSApiGatewayDeployment{}, + "AWS::ApiGateway::DocumentationPart": &resources.AWSApiGatewayDocumentationPart{}, + "AWS::ApiGateway::DocumentationVersion": &resources.AWSApiGatewayDocumentationVersion{}, + "AWS::ApiGateway::DomainName": &resources.AWSApiGatewayDomainName{}, + "AWS::ApiGateway::GatewayResponse": &resources.AWSApiGatewayGatewayResponse{}, + "AWS::ApiGateway::Method": &resources.AWSApiGatewayMethod{}, + "AWS::ApiGateway::Model": &resources.AWSApiGatewayModel{}, + "AWS::ApiGateway::RequestValidator": &resources.AWSApiGatewayRequestValidator{}, + "AWS::ApiGateway::Resource": &resources.AWSApiGatewayResource{}, + "AWS::ApiGateway::RestApi": &resources.AWSApiGatewayRestApi{}, + "AWS::ApiGateway::Stage": &resources.AWSApiGatewayStage{}, + "AWS::ApiGateway::UsagePlan": &resources.AWSApiGatewayUsagePlan{}, + "AWS::ApiGateway::UsagePlanKey": &resources.AWSApiGatewayUsagePlanKey{}, + "AWS::ApiGateway::VpcLink": &resources.AWSApiGatewayVpcLink{}, + "AWS::ApiGatewayV2::Api": &resources.AWSApiGatewayV2Api{}, + "AWS::ApiGatewayV2::Authorizer": &resources.AWSApiGatewayV2Authorizer{}, + "AWS::ApiGatewayV2::Deployment": &resources.AWSApiGatewayV2Deployment{}, + "AWS::ApiGatewayV2::Integration": &resources.AWSApiGatewayV2Integration{}, + "AWS::ApiGatewayV2::IntegrationResponse": &resources.AWSApiGatewayV2IntegrationResponse{}, + "AWS::ApiGatewayV2::Model": &resources.AWSApiGatewayV2Model{}, + "AWS::ApiGatewayV2::Route": &resources.AWSApiGatewayV2Route{}, + "AWS::ApiGatewayV2::RouteResponse": &resources.AWSApiGatewayV2RouteResponse{}, + "AWS::ApiGatewayV2::Stage": &resources.AWSApiGatewayV2Stage{}, + "AWS::AppStream::DirectoryConfig": &resources.AWSAppStreamDirectoryConfig{}, + "AWS::AppStream::Fleet": &resources.AWSAppStreamFleet{}, + "AWS::AppStream::ImageBuilder": &resources.AWSAppStreamImageBuilder{}, + "AWS::AppStream::Stack": &resources.AWSAppStreamStack{}, + "AWS::AppStream::StackFleetAssociation": &resources.AWSAppStreamStackFleetAssociation{}, + "AWS::AppStream::StackUserAssociation": &resources.AWSAppStreamStackUserAssociation{}, + "AWS::AppStream::User": &resources.AWSAppStreamUser{}, + "AWS::AppSync::ApiKey": &resources.AWSAppSyncApiKey{}, + "AWS::AppSync::DataSource": &resources.AWSAppSyncDataSource{}, + "AWS::AppSync::FunctionConfiguration": &resources.AWSAppSyncFunctionConfiguration{}, + "AWS::AppSync::GraphQLApi": &resources.AWSAppSyncGraphQLApi{}, + "AWS::AppSync::GraphQLSchema": &resources.AWSAppSyncGraphQLSchema{}, + "AWS::AppSync::Resolver": &resources.AWSAppSyncResolver{}, + "AWS::ApplicationAutoScaling::ScalableTarget": &resources.AWSApplicationAutoScalingScalableTarget{}, + "AWS::ApplicationAutoScaling::ScalingPolicy": &resources.AWSApplicationAutoScalingScalingPolicy{}, + "AWS::Athena::NamedQuery": &resources.AWSAthenaNamedQuery{}, + "AWS::AutoScaling::AutoScalingGroup": &resources.AWSAutoScalingAutoScalingGroup{}, + "AWS::AutoScaling::LaunchConfiguration": &resources.AWSAutoScalingLaunchConfiguration{}, + "AWS::AutoScaling::LifecycleHook": &resources.AWSAutoScalingLifecycleHook{}, + "AWS::AutoScaling::ScalingPolicy": &resources.AWSAutoScalingScalingPolicy{}, + "AWS::AutoScaling::ScheduledAction": &resources.AWSAutoScalingScheduledAction{}, + "AWS::AutoScalingPlans::ScalingPlan": &resources.AWSAutoScalingPlansScalingPlan{}, + "AWS::Batch::ComputeEnvironment": &resources.AWSBatchComputeEnvironment{}, + "AWS::Batch::JobDefinition": &resources.AWSBatchJobDefinition{}, + "AWS::Batch::JobQueue": &resources.AWSBatchJobQueue{}, + "AWS::Budgets::Budget": &resources.AWSBudgetsBudget{}, + "AWS::CertificateManager::Certificate": &resources.AWSCertificateManagerCertificate{}, + "AWS::Cloud9::EnvironmentEC2": &resources.AWSCloud9EnvironmentEC2{}, + "AWS::CloudFormation::CustomResource": &resources.AWSCloudFormationCustomResource{}, + "AWS::CloudFormation::Macro": &resources.AWSCloudFormationMacro{}, + "AWS::CloudFormation::Stack": &resources.AWSCloudFormationStack{}, + "AWS::CloudFormation::WaitCondition": &resources.AWSCloudFormationWaitCondition{}, + "AWS::CloudFormation::WaitConditionHandle": &resources.AWSCloudFormationWaitConditionHandle{}, + "AWS::CloudFront::CloudFrontOriginAccessIdentity": &resources.AWSCloudFrontCloudFrontOriginAccessIdentity{}, + "AWS::CloudFront::Distribution": &resources.AWSCloudFrontDistribution{}, + "AWS::CloudFront::StreamingDistribution": &resources.AWSCloudFrontStreamingDistribution{}, + "AWS::CloudTrail::Trail": &resources.AWSCloudTrailTrail{}, + "AWS::CloudWatch::Alarm": &resources.AWSCloudWatchAlarm{}, + "AWS::CloudWatch::Dashboard": &resources.AWSCloudWatchDashboard{}, + "AWS::CodeBuild::Project": &resources.AWSCodeBuildProject{}, + "AWS::CodeCommit::Repository": &resources.AWSCodeCommitRepository{}, + "AWS::CodeDeploy::Application": &resources.AWSCodeDeployApplication{}, + "AWS::CodeDeploy::DeploymentConfig": &resources.AWSCodeDeployDeploymentConfig{}, + "AWS::CodeDeploy::DeploymentGroup": &resources.AWSCodeDeployDeploymentGroup{}, + "AWS::CodePipeline::CustomActionType": &resources.AWSCodePipelineCustomActionType{}, + "AWS::CodePipeline::Pipeline": &resources.AWSCodePipelinePipeline{}, + "AWS::CodePipeline::Webhook": &resources.AWSCodePipelineWebhook{}, + "AWS::Cognito::IdentityPool": &resources.AWSCognitoIdentityPool{}, + "AWS::Cognito::IdentityPoolRoleAttachment": &resources.AWSCognitoIdentityPoolRoleAttachment{}, + "AWS::Cognito::UserPool": &resources.AWSCognitoUserPool{}, + "AWS::Cognito::UserPoolClient": &resources.AWSCognitoUserPoolClient{}, + "AWS::Cognito::UserPoolGroup": &resources.AWSCognitoUserPoolGroup{}, + "AWS::Cognito::UserPoolUser": &resources.AWSCognitoUserPoolUser{}, + "AWS::Cognito::UserPoolUserToGroupAttachment": &resources.AWSCognitoUserPoolUserToGroupAttachment{}, + "AWS::Config::AggregationAuthorization": &resources.AWSConfigAggregationAuthorization{}, + "AWS::Config::ConfigRule": &resources.AWSConfigConfigRule{}, + "AWS::Config::ConfigurationAggregator": &resources.AWSConfigConfigurationAggregator{}, + "AWS::Config::ConfigurationRecorder": &resources.AWSConfigConfigurationRecorder{}, + "AWS::Config::DeliveryChannel": &resources.AWSConfigDeliveryChannel{}, + "AWS::DAX::Cluster": &resources.AWSDAXCluster{}, + "AWS::DAX::ParameterGroup": &resources.AWSDAXParameterGroup{}, + "AWS::DAX::SubnetGroup": &resources.AWSDAXSubnetGroup{}, + "AWS::DLM::LifecyclePolicy": &resources.AWSDLMLifecyclePolicy{}, + "AWS::DMS::Certificate": &resources.AWSDMSCertificate{}, + "AWS::DMS::Endpoint": &resources.AWSDMSEndpoint{}, + "AWS::DMS::EventSubscription": &resources.AWSDMSEventSubscription{}, + "AWS::DMS::ReplicationInstance": &resources.AWSDMSReplicationInstance{}, + "AWS::DMS::ReplicationSubnetGroup": &resources.AWSDMSReplicationSubnetGroup{}, + "AWS::DMS::ReplicationTask": &resources.AWSDMSReplicationTask{}, + "AWS::DataPipeline::Pipeline": &resources.AWSDataPipelinePipeline{}, + "AWS::DirectoryService::MicrosoftAD": &resources.AWSDirectoryServiceMicrosoftAD{}, + "AWS::DirectoryService::SimpleAD": &resources.AWSDirectoryServiceSimpleAD{}, + "AWS::DocDB::DBCluster": &resources.AWSDocDBDBCluster{}, + "AWS::DocDB::DBClusterParameterGroup": &resources.AWSDocDBDBClusterParameterGroup{}, + "AWS::DocDB::DBInstance": &resources.AWSDocDBDBInstance{}, + "AWS::DocDB::DBSubnetGroup": &resources.AWSDocDBDBSubnetGroup{}, + "AWS::DynamoDB::Table": &resources.AWSDynamoDBTable{}, + "AWS::EC2::CustomerGateway": &resources.AWSEC2CustomerGateway{}, + "AWS::EC2::DHCPOptions": &resources.AWSEC2DHCPOptions{}, + "AWS::EC2::EC2Fleet": &resources.AWSEC2EC2Fleet{}, + "AWS::EC2::EIP": &resources.AWSEC2EIP{}, + "AWS::EC2::EIPAssociation": &resources.AWSEC2EIPAssociation{}, + "AWS::EC2::EgressOnlyInternetGateway": &resources.AWSEC2EgressOnlyInternetGateway{}, + "AWS::EC2::FlowLog": &resources.AWSEC2FlowLog{}, + "AWS::EC2::Host": &resources.AWSEC2Host{}, + "AWS::EC2::Instance": &resources.AWSEC2Instance{}, + "AWS::EC2::InternetGateway": &resources.AWSEC2InternetGateway{}, + "AWS::EC2::LaunchTemplate": &resources.AWSEC2LaunchTemplate{}, + "AWS::EC2::NatGateway": &resources.AWSEC2NatGateway{}, + "AWS::EC2::NetworkAcl": &resources.AWSEC2NetworkAcl{}, + "AWS::EC2::NetworkAclEntry": &resources.AWSEC2NetworkAclEntry{}, + "AWS::EC2::NetworkInterface": &resources.AWSEC2NetworkInterface{}, + "AWS::EC2::NetworkInterfaceAttachment": &resources.AWSEC2NetworkInterfaceAttachment{}, + "AWS::EC2::NetworkInterfacePermission": &resources.AWSEC2NetworkInterfacePermission{}, + "AWS::EC2::PlacementGroup": &resources.AWSEC2PlacementGroup{}, + "AWS::EC2::Route": &resources.AWSEC2Route{}, + "AWS::EC2::RouteTable": &resources.AWSEC2RouteTable{}, + "AWS::EC2::SecurityGroup": &resources.AWSEC2SecurityGroup{}, + "AWS::EC2::SecurityGroupEgress": &resources.AWSEC2SecurityGroupEgress{}, + "AWS::EC2::SecurityGroupIngress": &resources.AWSEC2SecurityGroupIngress{}, + "AWS::EC2::SpotFleet": &resources.AWSEC2SpotFleet{}, + "AWS::EC2::Subnet": &resources.AWSEC2Subnet{}, + "AWS::EC2::SubnetCidrBlock": &resources.AWSEC2SubnetCidrBlock{}, + "AWS::EC2::SubnetNetworkAclAssociation": &resources.AWSEC2SubnetNetworkAclAssociation{}, + "AWS::EC2::SubnetRouteTableAssociation": &resources.AWSEC2SubnetRouteTableAssociation{}, + "AWS::EC2::TransitGateway": &resources.AWSEC2TransitGateway{}, + "AWS::EC2::TransitGatewayAttachment": &resources.AWSEC2TransitGatewayAttachment{}, + "AWS::EC2::TransitGatewayRoute": &resources.AWSEC2TransitGatewayRoute{}, + "AWS::EC2::TransitGatewayRouteTable": &resources.AWSEC2TransitGatewayRouteTable{}, + "AWS::EC2::TransitGatewayRouteTableAssociation": &resources.AWSEC2TransitGatewayRouteTableAssociation{}, + "AWS::EC2::TransitGatewayRouteTablePropagation": &resources.AWSEC2TransitGatewayRouteTablePropagation{}, + "AWS::EC2::TrunkInterfaceAssociation": &resources.AWSEC2TrunkInterfaceAssociation{}, + "AWS::EC2::VPC": &resources.AWSEC2VPC{}, + "AWS::EC2::VPCCidrBlock": &resources.AWSEC2VPCCidrBlock{}, + "AWS::EC2::VPCDHCPOptionsAssociation": &resources.AWSEC2VPCDHCPOptionsAssociation{}, + "AWS::EC2::VPCEndpoint": &resources.AWSEC2VPCEndpoint{}, + "AWS::EC2::VPCEndpointConnectionNotification": &resources.AWSEC2VPCEndpointConnectionNotification{}, + "AWS::EC2::VPCEndpointServicePermissions": &resources.AWSEC2VPCEndpointServicePermissions{}, + "AWS::EC2::VPCGatewayAttachment": &resources.AWSEC2VPCGatewayAttachment{}, + "AWS::EC2::VPCPeeringConnection": &resources.AWSEC2VPCPeeringConnection{}, + "AWS::EC2::VPNConnection": &resources.AWSEC2VPNConnection{}, + "AWS::EC2::VPNConnectionRoute": &resources.AWSEC2VPNConnectionRoute{}, + "AWS::EC2::VPNGateway": &resources.AWSEC2VPNGateway{}, + "AWS::EC2::VPNGatewayRoutePropagation": &resources.AWSEC2VPNGatewayRoutePropagation{}, + "AWS::EC2::Volume": &resources.AWSEC2Volume{}, + "AWS::EC2::VolumeAttachment": &resources.AWSEC2VolumeAttachment{}, + "AWS::ECR::Repository": &resources.AWSECRRepository{}, + "AWS::ECS::Cluster": &resources.AWSECSCluster{}, + "AWS::ECS::Service": &resources.AWSECSService{}, + "AWS::ECS::TaskDefinition": &resources.AWSECSTaskDefinition{}, + "AWS::EFS::FileSystem": &resources.AWSEFSFileSystem{}, + "AWS::EFS::MountTarget": &resources.AWSEFSMountTarget{}, + "AWS::EKS::Cluster": &resources.AWSEKSCluster{}, + "AWS::EMR::Cluster": &resources.AWSEMRCluster{}, + "AWS::EMR::InstanceFleetConfig": &resources.AWSEMRInstanceFleetConfig{}, + "AWS::EMR::InstanceGroupConfig": &resources.AWSEMRInstanceGroupConfig{}, + "AWS::EMR::SecurityConfiguration": &resources.AWSEMRSecurityConfiguration{}, + "AWS::EMR::Step": &resources.AWSEMRStep{}, + "AWS::ElastiCache::CacheCluster": &resources.AWSElastiCacheCacheCluster{}, + "AWS::ElastiCache::ParameterGroup": &resources.AWSElastiCacheParameterGroup{}, + "AWS::ElastiCache::ReplicationGroup": &resources.AWSElastiCacheReplicationGroup{}, + "AWS::ElastiCache::SecurityGroup": &resources.AWSElastiCacheSecurityGroup{}, + "AWS::ElastiCache::SecurityGroupIngress": &resources.AWSElastiCacheSecurityGroupIngress{}, + "AWS::ElastiCache::SubnetGroup": &resources.AWSElastiCacheSubnetGroup{}, + "AWS::ElasticBeanstalk::Application": &resources.AWSElasticBeanstalkApplication{}, + "AWS::ElasticBeanstalk::ApplicationVersion": &resources.AWSElasticBeanstalkApplicationVersion{}, + "AWS::ElasticBeanstalk::ConfigurationTemplate": &resources.AWSElasticBeanstalkConfigurationTemplate{}, + "AWS::ElasticBeanstalk::Environment": &resources.AWSElasticBeanstalkEnvironment{}, + "AWS::ElasticLoadBalancing::LoadBalancer": &resources.AWSElasticLoadBalancingLoadBalancer{}, + "AWS::ElasticLoadBalancingV2::Listener": &resources.AWSElasticLoadBalancingV2Listener{}, + "AWS::ElasticLoadBalancingV2::ListenerCertificate": &resources.AWSElasticLoadBalancingV2ListenerCertificate{}, + "AWS::ElasticLoadBalancingV2::ListenerRule": &resources.AWSElasticLoadBalancingV2ListenerRule{}, + "AWS::ElasticLoadBalancingV2::LoadBalancer": &resources.AWSElasticLoadBalancingV2LoadBalancer{}, + "AWS::ElasticLoadBalancingV2::TargetGroup": &resources.AWSElasticLoadBalancingV2TargetGroup{}, + "AWS::Elasticsearch::Domain": &resources.AWSElasticsearchDomain{}, + "AWS::Events::EventBusPolicy": &resources.AWSEventsEventBusPolicy{}, + "AWS::Events::Rule": &resources.AWSEventsRule{}, + "AWS::FSx::FileSystem": &resources.AWSFSxFileSystem{}, + "AWS::GameLift::Alias": &resources.AWSGameLiftAlias{}, + "AWS::GameLift::Build": &resources.AWSGameLiftBuild{}, + "AWS::GameLift::Fleet": &resources.AWSGameLiftFleet{}, + "AWS::Glue::Classifier": &resources.AWSGlueClassifier{}, + "AWS::Glue::Connection": &resources.AWSGlueConnection{}, + "AWS::Glue::Crawler": &resources.AWSGlueCrawler{}, + "AWS::Glue::Database": &resources.AWSGlueDatabase{}, + "AWS::Glue::DevEndpoint": &resources.AWSGlueDevEndpoint{}, + "AWS::Glue::Job": &resources.AWSGlueJob{}, + "AWS::Glue::Partition": &resources.AWSGluePartition{}, + "AWS::Glue::Table": &resources.AWSGlueTable{}, + "AWS::Glue::Trigger": &resources.AWSGlueTrigger{}, + "AWS::GuardDuty::Detector": &resources.AWSGuardDutyDetector{}, + "AWS::GuardDuty::Filter": &resources.AWSGuardDutyFilter{}, + "AWS::GuardDuty::IPSet": &resources.AWSGuardDutyIPSet{}, + "AWS::GuardDuty::Master": &resources.AWSGuardDutyMaster{}, + "AWS::GuardDuty::Member": &resources.AWSGuardDutyMember{}, + "AWS::GuardDuty::ThreatIntelSet": &resources.AWSGuardDutyThreatIntelSet{}, + "AWS::IAM::AccessKey": &resources.AWSIAMAccessKey{}, + "AWS::IAM::Group": &resources.AWSIAMGroup{}, + "AWS::IAM::InstanceProfile": &resources.AWSIAMInstanceProfile{}, + "AWS::IAM::ManagedPolicy": &resources.AWSIAMManagedPolicy{}, + "AWS::IAM::Policy": &resources.AWSIAMPolicy{}, + "AWS::IAM::Role": &resources.AWSIAMRole{}, + "AWS::IAM::ServiceLinkedRole": &resources.AWSIAMServiceLinkedRole{}, + "AWS::IAM::User": &resources.AWSIAMUser{}, + "AWS::IAM::UserToGroupAddition": &resources.AWSIAMUserToGroupAddition{}, + "AWS::Inspector::AssessmentTarget": &resources.AWSInspectorAssessmentTarget{}, + "AWS::Inspector::AssessmentTemplate": &resources.AWSInspectorAssessmentTemplate{}, + "AWS::Inspector::ResourceGroup": &resources.AWSInspectorResourceGroup{}, + "AWS::IoT1Click::Device": &resources.AWSIoT1ClickDevice{}, + "AWS::IoT1Click::Placement": &resources.AWSIoT1ClickPlacement{}, + "AWS::IoT1Click::Project": &resources.AWSIoT1ClickProject{}, + "AWS::IoT::Certificate": &resources.AWSIoTCertificate{}, + "AWS::IoT::Policy": &resources.AWSIoTPolicy{}, + "AWS::IoT::PolicyPrincipalAttachment": &resources.AWSIoTPolicyPrincipalAttachment{}, + "AWS::IoT::Thing": &resources.AWSIoTThing{}, + "AWS::IoT::ThingPrincipalAttachment": &resources.AWSIoTThingPrincipalAttachment{}, + "AWS::IoT::TopicRule": &resources.AWSIoTTopicRule{}, + "AWS::IoTAnalytics::Channel": &resources.AWSIoTAnalyticsChannel{}, + "AWS::IoTAnalytics::Dataset": &resources.AWSIoTAnalyticsDataset{}, + "AWS::IoTAnalytics::Datastore": &resources.AWSIoTAnalyticsDatastore{}, + "AWS::IoTAnalytics::Pipeline": &resources.AWSIoTAnalyticsPipeline{}, + "AWS::KMS::Alias": &resources.AWSKMSAlias{}, + "AWS::KMS::Key": &resources.AWSKMSKey{}, + "AWS::Kinesis::Stream": &resources.AWSKinesisStream{}, + "AWS::Kinesis::StreamConsumer": &resources.AWSKinesisStreamConsumer{}, + "AWS::KinesisAnalytics::Application": &resources.AWSKinesisAnalyticsApplication{}, + "AWS::KinesisAnalytics::ApplicationOutput": &resources.AWSKinesisAnalyticsApplicationOutput{}, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource": &resources.AWSKinesisAnalyticsApplicationReferenceDataSource{}, + "AWS::KinesisAnalyticsV2::Application": &resources.AWSKinesisAnalyticsV2Application{}, + "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption": &resources.AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption{}, + "AWS::KinesisAnalyticsV2::ApplicationOutput": &resources.AWSKinesisAnalyticsV2ApplicationOutput{}, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource": &resources.AWSKinesisAnalyticsV2ApplicationReferenceDataSource{}, + "AWS::KinesisFirehose::DeliveryStream": &resources.AWSKinesisFirehoseDeliveryStream{}, + "AWS::Lambda::Alias": &resources.AWSLambdaAlias{}, + "AWS::Lambda::EventSourceMapping": &resources.AWSLambdaEventSourceMapping{}, + "AWS::Lambda::Function": &resources.AWSLambdaFunction{}, + "AWS::Lambda::LayerVersion": &resources.AWSLambdaLayerVersion{}, + "AWS::Lambda::LayerVersionPermission": &resources.AWSLambdaLayerVersionPermission{}, + "AWS::Lambda::Permission": &resources.AWSLambdaPermission{}, + "AWS::Lambda::Version": &resources.AWSLambdaVersion{}, + "AWS::Logs::Destination": &resources.AWSLogsDestination{}, + "AWS::Logs::LogGroup": &resources.AWSLogsLogGroup{}, + "AWS::Logs::LogStream": &resources.AWSLogsLogStream{}, + "AWS::Logs::MetricFilter": &resources.AWSLogsMetricFilter{}, + "AWS::Logs::SubscriptionFilter": &resources.AWSLogsSubscriptionFilter{}, + "AWS::Neptune::DBCluster": &resources.AWSNeptuneDBCluster{}, + "AWS::Neptune::DBClusterParameterGroup": &resources.AWSNeptuneDBClusterParameterGroup{}, + "AWS::Neptune::DBInstance": &resources.AWSNeptuneDBInstance{}, + "AWS::Neptune::DBParameterGroup": &resources.AWSNeptuneDBParameterGroup{}, + "AWS::Neptune::DBSubnetGroup": &resources.AWSNeptuneDBSubnetGroup{}, + "AWS::OpsWorks::App": &resources.AWSOpsWorksApp{}, + "AWS::OpsWorks::ElasticLoadBalancerAttachment": &resources.AWSOpsWorksElasticLoadBalancerAttachment{}, + "AWS::OpsWorks::Instance": &resources.AWSOpsWorksInstance{}, + "AWS::OpsWorks::Layer": &resources.AWSOpsWorksLayer{}, + "AWS::OpsWorks::Stack": &resources.AWSOpsWorksStack{}, + "AWS::OpsWorks::UserProfile": &resources.AWSOpsWorksUserProfile{}, + "AWS::OpsWorks::Volume": &resources.AWSOpsWorksVolume{}, + "AWS::OpsWorksCM::Server": &resources.AWSOpsWorksCMServer{}, + "AWS::RAM::ResourceShare": &resources.AWSRAMResourceShare{}, + "AWS::RDS::DBCluster": &resources.AWSRDSDBCluster{}, + "AWS::RDS::DBClusterParameterGroup": &resources.AWSRDSDBClusterParameterGroup{}, + "AWS::RDS::DBInstance": &resources.AWSRDSDBInstance{}, + "AWS::RDS::DBParameterGroup": &resources.AWSRDSDBParameterGroup{}, + "AWS::RDS::DBSecurityGroup": &resources.AWSRDSDBSecurityGroup{}, + "AWS::RDS::DBSecurityGroupIngress": &resources.AWSRDSDBSecurityGroupIngress{}, + "AWS::RDS::DBSubnetGroup": &resources.AWSRDSDBSubnetGroup{}, + "AWS::RDS::EventSubscription": &resources.AWSRDSEventSubscription{}, + "AWS::RDS::OptionGroup": &resources.AWSRDSOptionGroup{}, + "AWS::Redshift::Cluster": &resources.AWSRedshiftCluster{}, + "AWS::Redshift::ClusterParameterGroup": &resources.AWSRedshiftClusterParameterGroup{}, + "AWS::Redshift::ClusterSecurityGroup": &resources.AWSRedshiftClusterSecurityGroup{}, + "AWS::Redshift::ClusterSecurityGroupIngress": &resources.AWSRedshiftClusterSecurityGroupIngress{}, + "AWS::Redshift::ClusterSubnetGroup": &resources.AWSRedshiftClusterSubnetGroup{}, + "AWS::RoboMaker::Fleet": &resources.AWSRoboMakerFleet{}, + "AWS::RoboMaker::Robot": &resources.AWSRoboMakerRobot{}, + "AWS::RoboMaker::RobotApplication": &resources.AWSRoboMakerRobotApplication{}, + "AWS::RoboMaker::RobotApplicationVersion": &resources.AWSRoboMakerRobotApplicationVersion{}, + "AWS::RoboMaker::SimulationApplication": &resources.AWSRoboMakerSimulationApplication{}, + "AWS::RoboMaker::SimulationApplicationVersion": &resources.AWSRoboMakerSimulationApplicationVersion{}, + "AWS::Route53::HealthCheck": &resources.AWSRoute53HealthCheck{}, + "AWS::Route53::HostedZone": &resources.AWSRoute53HostedZone{}, + "AWS::Route53::RecordSet": &resources.AWSRoute53RecordSet{}, + "AWS::Route53::RecordSetGroup": &resources.AWSRoute53RecordSetGroup{}, + "AWS::Route53Resolver::ResolverEndpoint": &resources.AWSRoute53ResolverResolverEndpoint{}, + "AWS::Route53Resolver::ResolverRule": &resources.AWSRoute53ResolverResolverRule{}, + "AWS::Route53Resolver::ResolverRuleAssociation": &resources.AWSRoute53ResolverResolverRuleAssociation{}, + "AWS::S3::Bucket": &resources.AWSS3Bucket{}, + "AWS::S3::BucketPolicy": &resources.AWSS3BucketPolicy{}, + "AWS::SDB::Domain": &resources.AWSSDBDomain{}, + "AWS::SES::ConfigurationSet": &resources.AWSSESConfigurationSet{}, + "AWS::SES::ConfigurationSetEventDestination": &resources.AWSSESConfigurationSetEventDestination{}, + "AWS::SES::ReceiptFilter": &resources.AWSSESReceiptFilter{}, + "AWS::SES::ReceiptRule": &resources.AWSSESReceiptRule{}, + "AWS::SES::ReceiptRuleSet": &resources.AWSSESReceiptRuleSet{}, + "AWS::SES::Template": &resources.AWSSESTemplate{}, + "AWS::SNS::Subscription": &resources.AWSSNSSubscription{}, + "AWS::SNS::Topic": &resources.AWSSNSTopic{}, + "AWS::SNS::TopicPolicy": &resources.AWSSNSTopicPolicy{}, + "AWS::SQS::Queue": &resources.AWSSQSQueue{}, + "AWS::SQS::QueuePolicy": &resources.AWSSQSQueuePolicy{}, + "AWS::SSM::Association": &resources.AWSSSMAssociation{}, + "AWS::SSM::Document": &resources.AWSSSMDocument{}, + "AWS::SSM::MaintenanceWindow": &resources.AWSSSMMaintenanceWindow{}, + "AWS::SSM::MaintenanceWindowTask": &resources.AWSSSMMaintenanceWindowTask{}, + "AWS::SSM::Parameter": &resources.AWSSSMParameter{}, + "AWS::SSM::PatchBaseline": &resources.AWSSSMPatchBaseline{}, + "AWS::SSM::ResourceDataSync": &resources.AWSSSMResourceDataSync{}, + "AWS::SageMaker::Endpoint": &resources.AWSSageMakerEndpoint{}, + "AWS::SageMaker::EndpointConfig": &resources.AWSSageMakerEndpointConfig{}, + "AWS::SageMaker::Model": &resources.AWSSageMakerModel{}, + "AWS::SageMaker::NotebookInstance": &resources.AWSSageMakerNotebookInstance{}, + "AWS::SageMaker::NotebookInstanceLifecycleConfig": &resources.AWSSageMakerNotebookInstanceLifecycleConfig{}, + "AWS::SecretsManager::ResourcePolicy": &resources.AWSSecretsManagerResourcePolicy{}, + "AWS::SecretsManager::RotationSchedule": &resources.AWSSecretsManagerRotationSchedule{}, + "AWS::SecretsManager::Secret": &resources.AWSSecretsManagerSecret{}, + "AWS::SecretsManager::SecretTargetAttachment": &resources.AWSSecretsManagerSecretTargetAttachment{}, + "AWS::Serverless::Api": &resources.AWSServerlessApi{}, + "AWS::Serverless::Application": &resources.AWSServerlessApplication{}, + "AWS::Serverless::Function": &resources.AWSServerlessFunction{}, + "AWS::Serverless::LayerVersion": &resources.AWSServerlessLayerVersion{}, + "AWS::Serverless::SimpleTable": &resources.AWSServerlessSimpleTable{}, + "AWS::ServiceCatalog::AcceptedPortfolioShare": &resources.AWSServiceCatalogAcceptedPortfolioShare{}, + "AWS::ServiceCatalog::CloudFormationProduct": &resources.AWSServiceCatalogCloudFormationProduct{}, + "AWS::ServiceCatalog::CloudFormationProvisionedProduct": &resources.AWSServiceCatalogCloudFormationProvisionedProduct{}, + "AWS::ServiceCatalog::LaunchNotificationConstraint": &resources.AWSServiceCatalogLaunchNotificationConstraint{}, + "AWS::ServiceCatalog::LaunchRoleConstraint": &resources.AWSServiceCatalogLaunchRoleConstraint{}, + "AWS::ServiceCatalog::LaunchTemplateConstraint": &resources.AWSServiceCatalogLaunchTemplateConstraint{}, + "AWS::ServiceCatalog::Portfolio": &resources.AWSServiceCatalogPortfolio{}, + "AWS::ServiceCatalog::PortfolioPrincipalAssociation": &resources.AWSServiceCatalogPortfolioPrincipalAssociation{}, + "AWS::ServiceCatalog::PortfolioProductAssociation": &resources.AWSServiceCatalogPortfolioProductAssociation{}, + "AWS::ServiceCatalog::PortfolioShare": &resources.AWSServiceCatalogPortfolioShare{}, + "AWS::ServiceCatalog::TagOption": &resources.AWSServiceCatalogTagOption{}, + "AWS::ServiceCatalog::TagOptionAssociation": &resources.AWSServiceCatalogTagOptionAssociation{}, + "AWS::ServiceDiscovery::HttpNamespace": &resources.AWSServiceDiscoveryHttpNamespace{}, + "AWS::ServiceDiscovery::Instance": &resources.AWSServiceDiscoveryInstance{}, + "AWS::ServiceDiscovery::PrivateDnsNamespace": &resources.AWSServiceDiscoveryPrivateDnsNamespace{}, + "AWS::ServiceDiscovery::PublicDnsNamespace": &resources.AWSServiceDiscoveryPublicDnsNamespace{}, + "AWS::ServiceDiscovery::Service": &resources.AWSServiceDiscoveryService{}, + "AWS::StepFunctions::Activity": &resources.AWSStepFunctionsActivity{}, + "AWS::StepFunctions::StateMachine": &resources.AWSStepFunctionsStateMachine{}, + "AWS::WAF::ByteMatchSet": &resources.AWSWAFByteMatchSet{}, + "AWS::WAF::IPSet": &resources.AWSWAFIPSet{}, + "AWS::WAF::Rule": &resources.AWSWAFRule{}, + "AWS::WAF::SizeConstraintSet": &resources.AWSWAFSizeConstraintSet{}, + "AWS::WAF::SqlInjectionMatchSet": &resources.AWSWAFSqlInjectionMatchSet{}, + "AWS::WAF::WebACL": &resources.AWSWAFWebACL{}, + "AWS::WAF::XssMatchSet": &resources.AWSWAFXssMatchSet{}, + "AWS::WAFRegional::ByteMatchSet": &resources.AWSWAFRegionalByteMatchSet{}, + "AWS::WAFRegional::IPSet": &resources.AWSWAFRegionalIPSet{}, + "AWS::WAFRegional::Rule": &resources.AWSWAFRegionalRule{}, + "AWS::WAFRegional::SizeConstraintSet": &resources.AWSWAFRegionalSizeConstraintSet{}, + "AWS::WAFRegional::SqlInjectionMatchSet": &resources.AWSWAFRegionalSqlInjectionMatchSet{}, + "AWS::WAFRegional::WebACL": &resources.AWSWAFRegionalWebACL{}, + "AWS::WAFRegional::WebACLAssociation": &resources.AWSWAFRegionalWebACLAssociation{}, + "AWS::WAFRegional::XssMatchSet": &resources.AWSWAFRegionalXssMatchSet{}, + "AWS::WorkSpaces::Workspace": &resources.AWSWorkSpacesWorkspace{}, + "Alexa::ASK::Skill": &resources.AlexaASKSkill{}, } } // GetAllAWSAmazonMQBrokerResources retrieves all AWSAmazonMQBroker items from an AWS CloudFormation template -func (t *Template) GetAllAWSAmazonMQBrokerResources() map[string]*AWSAmazonMQBroker { - results := map[string]*AWSAmazonMQBroker{} +func (t *Template) GetAllAWSAmazonMQBrokerResources() map[string]*resources.AWSAmazonMQBroker { + results := map[string]*resources.AWSAmazonMQBroker{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAmazonMQBroker: + case *resources.AWSAmazonMQBroker: results[name] = resource } } @@ -392,10 +393,10 @@ func (t *Template) GetAllAWSAmazonMQBrokerResources() map[string]*AWSAmazonMQBro // GetAWSAmazonMQBrokerWithName retrieves all AWSAmazonMQBroker items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAmazonMQBrokerWithName(name string) (*AWSAmazonMQBroker, error) { +func (t *Template) GetAWSAmazonMQBrokerWithName(name string) (*resources.AWSAmazonMQBroker, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAmazonMQBroker: + case *resources.AWSAmazonMQBroker: return resource, nil } } @@ -403,11 +404,11 @@ func (t *Template) GetAWSAmazonMQBrokerWithName(name string) (*AWSAmazonMQBroker } // GetAllAWSAmazonMQConfigurationResources retrieves all AWSAmazonMQConfiguration items from an AWS CloudFormation template -func (t *Template) GetAllAWSAmazonMQConfigurationResources() map[string]*AWSAmazonMQConfiguration { - results := map[string]*AWSAmazonMQConfiguration{} +func (t *Template) GetAllAWSAmazonMQConfigurationResources() map[string]*resources.AWSAmazonMQConfiguration { + results := map[string]*resources.AWSAmazonMQConfiguration{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAmazonMQConfiguration: + case *resources.AWSAmazonMQConfiguration: results[name] = resource } } @@ -416,10 +417,10 @@ func (t *Template) GetAllAWSAmazonMQConfigurationResources() map[string]*AWSAmaz // GetAWSAmazonMQConfigurationWithName retrieves all AWSAmazonMQConfiguration items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAmazonMQConfigurationWithName(name string) (*AWSAmazonMQConfiguration, error) { +func (t *Template) GetAWSAmazonMQConfigurationWithName(name string) (*resources.AWSAmazonMQConfiguration, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAmazonMQConfiguration: + case *resources.AWSAmazonMQConfiguration: return resource, nil } } @@ -427,11 +428,11 @@ func (t *Template) GetAWSAmazonMQConfigurationWithName(name string) (*AWSAmazonM } // GetAllAWSAmazonMQConfigurationAssociationResources retrieves all AWSAmazonMQConfigurationAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSAmazonMQConfigurationAssociationResources() map[string]*AWSAmazonMQConfigurationAssociation { - results := map[string]*AWSAmazonMQConfigurationAssociation{} +func (t *Template) GetAllAWSAmazonMQConfigurationAssociationResources() map[string]*resources.AWSAmazonMQConfigurationAssociation { + results := map[string]*resources.AWSAmazonMQConfigurationAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAmazonMQConfigurationAssociation: + case *resources.AWSAmazonMQConfigurationAssociation: results[name] = resource } } @@ -440,10 +441,10 @@ func (t *Template) GetAllAWSAmazonMQConfigurationAssociationResources() map[stri // GetAWSAmazonMQConfigurationAssociationWithName retrieves all AWSAmazonMQConfigurationAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAmazonMQConfigurationAssociationWithName(name string) (*AWSAmazonMQConfigurationAssociation, error) { +func (t *Template) GetAWSAmazonMQConfigurationAssociationWithName(name string) (*resources.AWSAmazonMQConfigurationAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAmazonMQConfigurationAssociation: + case *resources.AWSAmazonMQConfigurationAssociation: return resource, nil } } @@ -451,11 +452,11 @@ func (t *Template) GetAWSAmazonMQConfigurationAssociationWithName(name string) ( } // GetAllAWSApiGatewayAccountResources retrieves all AWSApiGatewayAccount items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayAccountResources() map[string]*AWSApiGatewayAccount { - results := map[string]*AWSApiGatewayAccount{} +func (t *Template) GetAllAWSApiGatewayAccountResources() map[string]*resources.AWSApiGatewayAccount { + results := map[string]*resources.AWSApiGatewayAccount{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayAccount: + case *resources.AWSApiGatewayAccount: results[name] = resource } } @@ -464,10 +465,10 @@ func (t *Template) GetAllAWSApiGatewayAccountResources() map[string]*AWSApiGatew // GetAWSApiGatewayAccountWithName retrieves all AWSApiGatewayAccount items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayAccountWithName(name string) (*AWSApiGatewayAccount, error) { +func (t *Template) GetAWSApiGatewayAccountWithName(name string) (*resources.AWSApiGatewayAccount, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayAccount: + case *resources.AWSApiGatewayAccount: return resource, nil } } @@ -475,11 +476,11 @@ func (t *Template) GetAWSApiGatewayAccountWithName(name string) (*AWSApiGatewayA } // GetAllAWSApiGatewayApiKeyResources retrieves all AWSApiGatewayApiKey items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayApiKeyResources() map[string]*AWSApiGatewayApiKey { - results := map[string]*AWSApiGatewayApiKey{} +func (t *Template) GetAllAWSApiGatewayApiKeyResources() map[string]*resources.AWSApiGatewayApiKey { + results := map[string]*resources.AWSApiGatewayApiKey{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayApiKey: + case *resources.AWSApiGatewayApiKey: results[name] = resource } } @@ -488,10 +489,10 @@ func (t *Template) GetAllAWSApiGatewayApiKeyResources() map[string]*AWSApiGatewa // GetAWSApiGatewayApiKeyWithName retrieves all AWSApiGatewayApiKey items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayApiKeyWithName(name string) (*AWSApiGatewayApiKey, error) { +func (t *Template) GetAWSApiGatewayApiKeyWithName(name string) (*resources.AWSApiGatewayApiKey, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayApiKey: + case *resources.AWSApiGatewayApiKey: return resource, nil } } @@ -499,11 +500,11 @@ func (t *Template) GetAWSApiGatewayApiKeyWithName(name string) (*AWSApiGatewayAp } // GetAllAWSApiGatewayAuthorizerResources retrieves all AWSApiGatewayAuthorizer items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayAuthorizerResources() map[string]*AWSApiGatewayAuthorizer { - results := map[string]*AWSApiGatewayAuthorizer{} +func (t *Template) GetAllAWSApiGatewayAuthorizerResources() map[string]*resources.AWSApiGatewayAuthorizer { + results := map[string]*resources.AWSApiGatewayAuthorizer{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayAuthorizer: + case *resources.AWSApiGatewayAuthorizer: results[name] = resource } } @@ -512,10 +513,10 @@ func (t *Template) GetAllAWSApiGatewayAuthorizerResources() map[string]*AWSApiGa // GetAWSApiGatewayAuthorizerWithName retrieves all AWSApiGatewayAuthorizer items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayAuthorizerWithName(name string) (*AWSApiGatewayAuthorizer, error) { +func (t *Template) GetAWSApiGatewayAuthorizerWithName(name string) (*resources.AWSApiGatewayAuthorizer, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayAuthorizer: + case *resources.AWSApiGatewayAuthorizer: return resource, nil } } @@ -523,11 +524,11 @@ func (t *Template) GetAWSApiGatewayAuthorizerWithName(name string) (*AWSApiGatew } // GetAllAWSApiGatewayBasePathMappingResources retrieves all AWSApiGatewayBasePathMapping items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayBasePathMappingResources() map[string]*AWSApiGatewayBasePathMapping { - results := map[string]*AWSApiGatewayBasePathMapping{} +func (t *Template) GetAllAWSApiGatewayBasePathMappingResources() map[string]*resources.AWSApiGatewayBasePathMapping { + results := map[string]*resources.AWSApiGatewayBasePathMapping{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayBasePathMapping: + case *resources.AWSApiGatewayBasePathMapping: results[name] = resource } } @@ -536,10 +537,10 @@ func (t *Template) GetAllAWSApiGatewayBasePathMappingResources() map[string]*AWS // GetAWSApiGatewayBasePathMappingWithName retrieves all AWSApiGatewayBasePathMapping items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayBasePathMappingWithName(name string) (*AWSApiGatewayBasePathMapping, error) { +func (t *Template) GetAWSApiGatewayBasePathMappingWithName(name string) (*resources.AWSApiGatewayBasePathMapping, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayBasePathMapping: + case *resources.AWSApiGatewayBasePathMapping: return resource, nil } } @@ -547,11 +548,11 @@ func (t *Template) GetAWSApiGatewayBasePathMappingWithName(name string) (*AWSApi } // GetAllAWSApiGatewayClientCertificateResources retrieves all AWSApiGatewayClientCertificate items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayClientCertificateResources() map[string]*AWSApiGatewayClientCertificate { - results := map[string]*AWSApiGatewayClientCertificate{} +func (t *Template) GetAllAWSApiGatewayClientCertificateResources() map[string]*resources.AWSApiGatewayClientCertificate { + results := map[string]*resources.AWSApiGatewayClientCertificate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayClientCertificate: + case *resources.AWSApiGatewayClientCertificate: results[name] = resource } } @@ -560,10 +561,10 @@ func (t *Template) GetAllAWSApiGatewayClientCertificateResources() map[string]*A // GetAWSApiGatewayClientCertificateWithName retrieves all AWSApiGatewayClientCertificate items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayClientCertificateWithName(name string) (*AWSApiGatewayClientCertificate, error) { +func (t *Template) GetAWSApiGatewayClientCertificateWithName(name string) (*resources.AWSApiGatewayClientCertificate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayClientCertificate: + case *resources.AWSApiGatewayClientCertificate: return resource, nil } } @@ -571,11 +572,11 @@ func (t *Template) GetAWSApiGatewayClientCertificateWithName(name string) (*AWSA } // GetAllAWSApiGatewayDeploymentResources retrieves all AWSApiGatewayDeployment items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayDeploymentResources() map[string]*AWSApiGatewayDeployment { - results := map[string]*AWSApiGatewayDeployment{} +func (t *Template) GetAllAWSApiGatewayDeploymentResources() map[string]*resources.AWSApiGatewayDeployment { + results := map[string]*resources.AWSApiGatewayDeployment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayDeployment: + case *resources.AWSApiGatewayDeployment: results[name] = resource } } @@ -584,10 +585,10 @@ func (t *Template) GetAllAWSApiGatewayDeploymentResources() map[string]*AWSApiGa // GetAWSApiGatewayDeploymentWithName retrieves all AWSApiGatewayDeployment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayDeploymentWithName(name string) (*AWSApiGatewayDeployment, error) { +func (t *Template) GetAWSApiGatewayDeploymentWithName(name string) (*resources.AWSApiGatewayDeployment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayDeployment: + case *resources.AWSApiGatewayDeployment: return resource, nil } } @@ -595,11 +596,11 @@ func (t *Template) GetAWSApiGatewayDeploymentWithName(name string) (*AWSApiGatew } // GetAllAWSApiGatewayDocumentationPartResources retrieves all AWSApiGatewayDocumentationPart items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayDocumentationPartResources() map[string]*AWSApiGatewayDocumentationPart { - results := map[string]*AWSApiGatewayDocumentationPart{} +func (t *Template) GetAllAWSApiGatewayDocumentationPartResources() map[string]*resources.AWSApiGatewayDocumentationPart { + results := map[string]*resources.AWSApiGatewayDocumentationPart{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayDocumentationPart: + case *resources.AWSApiGatewayDocumentationPart: results[name] = resource } } @@ -608,10 +609,10 @@ func (t *Template) GetAllAWSApiGatewayDocumentationPartResources() map[string]*A // GetAWSApiGatewayDocumentationPartWithName retrieves all AWSApiGatewayDocumentationPart items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayDocumentationPartWithName(name string) (*AWSApiGatewayDocumentationPart, error) { +func (t *Template) GetAWSApiGatewayDocumentationPartWithName(name string) (*resources.AWSApiGatewayDocumentationPart, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayDocumentationPart: + case *resources.AWSApiGatewayDocumentationPart: return resource, nil } } @@ -619,11 +620,11 @@ func (t *Template) GetAWSApiGatewayDocumentationPartWithName(name string) (*AWSA } // GetAllAWSApiGatewayDocumentationVersionResources retrieves all AWSApiGatewayDocumentationVersion items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayDocumentationVersionResources() map[string]*AWSApiGatewayDocumentationVersion { - results := map[string]*AWSApiGatewayDocumentationVersion{} +func (t *Template) GetAllAWSApiGatewayDocumentationVersionResources() map[string]*resources.AWSApiGatewayDocumentationVersion { + results := map[string]*resources.AWSApiGatewayDocumentationVersion{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayDocumentationVersion: + case *resources.AWSApiGatewayDocumentationVersion: results[name] = resource } } @@ -632,10 +633,10 @@ func (t *Template) GetAllAWSApiGatewayDocumentationVersionResources() map[string // GetAWSApiGatewayDocumentationVersionWithName retrieves all AWSApiGatewayDocumentationVersion items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayDocumentationVersionWithName(name string) (*AWSApiGatewayDocumentationVersion, error) { +func (t *Template) GetAWSApiGatewayDocumentationVersionWithName(name string) (*resources.AWSApiGatewayDocumentationVersion, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayDocumentationVersion: + case *resources.AWSApiGatewayDocumentationVersion: return resource, nil } } @@ -643,11 +644,11 @@ func (t *Template) GetAWSApiGatewayDocumentationVersionWithName(name string) (*A } // GetAllAWSApiGatewayDomainNameResources retrieves all AWSApiGatewayDomainName items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayDomainNameResources() map[string]*AWSApiGatewayDomainName { - results := map[string]*AWSApiGatewayDomainName{} +func (t *Template) GetAllAWSApiGatewayDomainNameResources() map[string]*resources.AWSApiGatewayDomainName { + results := map[string]*resources.AWSApiGatewayDomainName{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayDomainName: + case *resources.AWSApiGatewayDomainName: results[name] = resource } } @@ -656,10 +657,10 @@ func (t *Template) GetAllAWSApiGatewayDomainNameResources() map[string]*AWSApiGa // GetAWSApiGatewayDomainNameWithName retrieves all AWSApiGatewayDomainName items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayDomainNameWithName(name string) (*AWSApiGatewayDomainName, error) { +func (t *Template) GetAWSApiGatewayDomainNameWithName(name string) (*resources.AWSApiGatewayDomainName, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayDomainName: + case *resources.AWSApiGatewayDomainName: return resource, nil } } @@ -667,11 +668,11 @@ func (t *Template) GetAWSApiGatewayDomainNameWithName(name string) (*AWSApiGatew } // GetAllAWSApiGatewayGatewayResponseResources retrieves all AWSApiGatewayGatewayResponse items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayGatewayResponseResources() map[string]*AWSApiGatewayGatewayResponse { - results := map[string]*AWSApiGatewayGatewayResponse{} +func (t *Template) GetAllAWSApiGatewayGatewayResponseResources() map[string]*resources.AWSApiGatewayGatewayResponse { + results := map[string]*resources.AWSApiGatewayGatewayResponse{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayGatewayResponse: + case *resources.AWSApiGatewayGatewayResponse: results[name] = resource } } @@ -680,10 +681,10 @@ func (t *Template) GetAllAWSApiGatewayGatewayResponseResources() map[string]*AWS // GetAWSApiGatewayGatewayResponseWithName retrieves all AWSApiGatewayGatewayResponse items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayGatewayResponseWithName(name string) (*AWSApiGatewayGatewayResponse, error) { +func (t *Template) GetAWSApiGatewayGatewayResponseWithName(name string) (*resources.AWSApiGatewayGatewayResponse, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayGatewayResponse: + case *resources.AWSApiGatewayGatewayResponse: return resource, nil } } @@ -691,11 +692,11 @@ func (t *Template) GetAWSApiGatewayGatewayResponseWithName(name string) (*AWSApi } // GetAllAWSApiGatewayMethodResources retrieves all AWSApiGatewayMethod items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayMethodResources() map[string]*AWSApiGatewayMethod { - results := map[string]*AWSApiGatewayMethod{} +func (t *Template) GetAllAWSApiGatewayMethodResources() map[string]*resources.AWSApiGatewayMethod { + results := map[string]*resources.AWSApiGatewayMethod{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayMethod: + case *resources.AWSApiGatewayMethod: results[name] = resource } } @@ -704,10 +705,10 @@ func (t *Template) GetAllAWSApiGatewayMethodResources() map[string]*AWSApiGatewa // GetAWSApiGatewayMethodWithName retrieves all AWSApiGatewayMethod items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayMethodWithName(name string) (*AWSApiGatewayMethod, error) { +func (t *Template) GetAWSApiGatewayMethodWithName(name string) (*resources.AWSApiGatewayMethod, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayMethod: + case *resources.AWSApiGatewayMethod: return resource, nil } } @@ -715,11 +716,11 @@ func (t *Template) GetAWSApiGatewayMethodWithName(name string) (*AWSApiGatewayMe } // GetAllAWSApiGatewayModelResources retrieves all AWSApiGatewayModel items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayModelResources() map[string]*AWSApiGatewayModel { - results := map[string]*AWSApiGatewayModel{} +func (t *Template) GetAllAWSApiGatewayModelResources() map[string]*resources.AWSApiGatewayModel { + results := map[string]*resources.AWSApiGatewayModel{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayModel: + case *resources.AWSApiGatewayModel: results[name] = resource } } @@ -728,10 +729,10 @@ func (t *Template) GetAllAWSApiGatewayModelResources() map[string]*AWSApiGateway // GetAWSApiGatewayModelWithName retrieves all AWSApiGatewayModel items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayModelWithName(name string) (*AWSApiGatewayModel, error) { +func (t *Template) GetAWSApiGatewayModelWithName(name string) (*resources.AWSApiGatewayModel, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayModel: + case *resources.AWSApiGatewayModel: return resource, nil } } @@ -739,11 +740,11 @@ func (t *Template) GetAWSApiGatewayModelWithName(name string) (*AWSApiGatewayMod } // GetAllAWSApiGatewayRequestValidatorResources retrieves all AWSApiGatewayRequestValidator items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayRequestValidatorResources() map[string]*AWSApiGatewayRequestValidator { - results := map[string]*AWSApiGatewayRequestValidator{} +func (t *Template) GetAllAWSApiGatewayRequestValidatorResources() map[string]*resources.AWSApiGatewayRequestValidator { + results := map[string]*resources.AWSApiGatewayRequestValidator{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayRequestValidator: + case *resources.AWSApiGatewayRequestValidator: results[name] = resource } } @@ -752,10 +753,10 @@ func (t *Template) GetAllAWSApiGatewayRequestValidatorResources() map[string]*AW // GetAWSApiGatewayRequestValidatorWithName retrieves all AWSApiGatewayRequestValidator items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayRequestValidatorWithName(name string) (*AWSApiGatewayRequestValidator, error) { +func (t *Template) GetAWSApiGatewayRequestValidatorWithName(name string) (*resources.AWSApiGatewayRequestValidator, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayRequestValidator: + case *resources.AWSApiGatewayRequestValidator: return resource, nil } } @@ -763,11 +764,11 @@ func (t *Template) GetAWSApiGatewayRequestValidatorWithName(name string) (*AWSAp } // GetAllAWSApiGatewayResourceResources retrieves all AWSApiGatewayResource items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayResourceResources() map[string]*AWSApiGatewayResource { - results := map[string]*AWSApiGatewayResource{} +func (t *Template) GetAllAWSApiGatewayResourceResources() map[string]*resources.AWSApiGatewayResource { + results := map[string]*resources.AWSApiGatewayResource{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayResource: + case *resources.AWSApiGatewayResource: results[name] = resource } } @@ -776,10 +777,10 @@ func (t *Template) GetAllAWSApiGatewayResourceResources() map[string]*AWSApiGate // GetAWSApiGatewayResourceWithName retrieves all AWSApiGatewayResource items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayResourceWithName(name string) (*AWSApiGatewayResource, error) { +func (t *Template) GetAWSApiGatewayResourceWithName(name string) (*resources.AWSApiGatewayResource, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayResource: + case *resources.AWSApiGatewayResource: return resource, nil } } @@ -787,11 +788,11 @@ func (t *Template) GetAWSApiGatewayResourceWithName(name string) (*AWSApiGateway } // GetAllAWSApiGatewayRestApiResources retrieves all AWSApiGatewayRestApi items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayRestApiResources() map[string]*AWSApiGatewayRestApi { - results := map[string]*AWSApiGatewayRestApi{} +func (t *Template) GetAllAWSApiGatewayRestApiResources() map[string]*resources.AWSApiGatewayRestApi { + results := map[string]*resources.AWSApiGatewayRestApi{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayRestApi: + case *resources.AWSApiGatewayRestApi: results[name] = resource } } @@ -800,10 +801,10 @@ func (t *Template) GetAllAWSApiGatewayRestApiResources() map[string]*AWSApiGatew // GetAWSApiGatewayRestApiWithName retrieves all AWSApiGatewayRestApi items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayRestApiWithName(name string) (*AWSApiGatewayRestApi, error) { +func (t *Template) GetAWSApiGatewayRestApiWithName(name string) (*resources.AWSApiGatewayRestApi, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayRestApi: + case *resources.AWSApiGatewayRestApi: return resource, nil } } @@ -811,11 +812,11 @@ func (t *Template) GetAWSApiGatewayRestApiWithName(name string) (*AWSApiGatewayR } // GetAllAWSApiGatewayStageResources retrieves all AWSApiGatewayStage items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayStageResources() map[string]*AWSApiGatewayStage { - results := map[string]*AWSApiGatewayStage{} +func (t *Template) GetAllAWSApiGatewayStageResources() map[string]*resources.AWSApiGatewayStage { + results := map[string]*resources.AWSApiGatewayStage{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayStage: + case *resources.AWSApiGatewayStage: results[name] = resource } } @@ -824,10 +825,10 @@ func (t *Template) GetAllAWSApiGatewayStageResources() map[string]*AWSApiGateway // GetAWSApiGatewayStageWithName retrieves all AWSApiGatewayStage items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayStageWithName(name string) (*AWSApiGatewayStage, error) { +func (t *Template) GetAWSApiGatewayStageWithName(name string) (*resources.AWSApiGatewayStage, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayStage: + case *resources.AWSApiGatewayStage: return resource, nil } } @@ -835,11 +836,11 @@ func (t *Template) GetAWSApiGatewayStageWithName(name string) (*AWSApiGatewaySta } // GetAllAWSApiGatewayUsagePlanResources retrieves all AWSApiGatewayUsagePlan items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayUsagePlanResources() map[string]*AWSApiGatewayUsagePlan { - results := map[string]*AWSApiGatewayUsagePlan{} +func (t *Template) GetAllAWSApiGatewayUsagePlanResources() map[string]*resources.AWSApiGatewayUsagePlan { + results := map[string]*resources.AWSApiGatewayUsagePlan{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayUsagePlan: + case *resources.AWSApiGatewayUsagePlan: results[name] = resource } } @@ -848,10 +849,10 @@ func (t *Template) GetAllAWSApiGatewayUsagePlanResources() map[string]*AWSApiGat // GetAWSApiGatewayUsagePlanWithName retrieves all AWSApiGatewayUsagePlan items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayUsagePlanWithName(name string) (*AWSApiGatewayUsagePlan, error) { +func (t *Template) GetAWSApiGatewayUsagePlanWithName(name string) (*resources.AWSApiGatewayUsagePlan, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayUsagePlan: + case *resources.AWSApiGatewayUsagePlan: return resource, nil } } @@ -859,11 +860,11 @@ func (t *Template) GetAWSApiGatewayUsagePlanWithName(name string) (*AWSApiGatewa } // GetAllAWSApiGatewayUsagePlanKeyResources retrieves all AWSApiGatewayUsagePlanKey items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayUsagePlanKeyResources() map[string]*AWSApiGatewayUsagePlanKey { - results := map[string]*AWSApiGatewayUsagePlanKey{} +func (t *Template) GetAllAWSApiGatewayUsagePlanKeyResources() map[string]*resources.AWSApiGatewayUsagePlanKey { + results := map[string]*resources.AWSApiGatewayUsagePlanKey{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayUsagePlanKey: + case *resources.AWSApiGatewayUsagePlanKey: results[name] = resource } } @@ -872,10 +873,10 @@ func (t *Template) GetAllAWSApiGatewayUsagePlanKeyResources() map[string]*AWSApi // GetAWSApiGatewayUsagePlanKeyWithName retrieves all AWSApiGatewayUsagePlanKey items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayUsagePlanKeyWithName(name string) (*AWSApiGatewayUsagePlanKey, error) { +func (t *Template) GetAWSApiGatewayUsagePlanKeyWithName(name string) (*resources.AWSApiGatewayUsagePlanKey, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayUsagePlanKey: + case *resources.AWSApiGatewayUsagePlanKey: return resource, nil } } @@ -883,11 +884,11 @@ func (t *Template) GetAWSApiGatewayUsagePlanKeyWithName(name string) (*AWSApiGat } // GetAllAWSApiGatewayVpcLinkResources retrieves all AWSApiGatewayVpcLink items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayVpcLinkResources() map[string]*AWSApiGatewayVpcLink { - results := map[string]*AWSApiGatewayVpcLink{} +func (t *Template) GetAllAWSApiGatewayVpcLinkResources() map[string]*resources.AWSApiGatewayVpcLink { + results := map[string]*resources.AWSApiGatewayVpcLink{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayVpcLink: + case *resources.AWSApiGatewayVpcLink: results[name] = resource } } @@ -896,10 +897,10 @@ func (t *Template) GetAllAWSApiGatewayVpcLinkResources() map[string]*AWSApiGatew // GetAWSApiGatewayVpcLinkWithName retrieves all AWSApiGatewayVpcLink items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayVpcLinkWithName(name string) (*AWSApiGatewayVpcLink, error) { +func (t *Template) GetAWSApiGatewayVpcLinkWithName(name string) (*resources.AWSApiGatewayVpcLink, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayVpcLink: + case *resources.AWSApiGatewayVpcLink: return resource, nil } } @@ -907,11 +908,11 @@ func (t *Template) GetAWSApiGatewayVpcLinkWithName(name string) (*AWSApiGatewayV } // GetAllAWSApiGatewayV2ApiResources retrieves all AWSApiGatewayV2Api items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayV2ApiResources() map[string]*AWSApiGatewayV2Api { - results := map[string]*AWSApiGatewayV2Api{} +func (t *Template) GetAllAWSApiGatewayV2ApiResources() map[string]*resources.AWSApiGatewayV2Api { + results := map[string]*resources.AWSApiGatewayV2Api{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayV2Api: + case *resources.AWSApiGatewayV2Api: results[name] = resource } } @@ -920,10 +921,10 @@ func (t *Template) GetAllAWSApiGatewayV2ApiResources() map[string]*AWSApiGateway // GetAWSApiGatewayV2ApiWithName retrieves all AWSApiGatewayV2Api items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayV2ApiWithName(name string) (*AWSApiGatewayV2Api, error) { +func (t *Template) GetAWSApiGatewayV2ApiWithName(name string) (*resources.AWSApiGatewayV2Api, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayV2Api: + case *resources.AWSApiGatewayV2Api: return resource, nil } } @@ -931,11 +932,11 @@ func (t *Template) GetAWSApiGatewayV2ApiWithName(name string) (*AWSApiGatewayV2A } // GetAllAWSApiGatewayV2AuthorizerResources retrieves all AWSApiGatewayV2Authorizer items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayV2AuthorizerResources() map[string]*AWSApiGatewayV2Authorizer { - results := map[string]*AWSApiGatewayV2Authorizer{} +func (t *Template) GetAllAWSApiGatewayV2AuthorizerResources() map[string]*resources.AWSApiGatewayV2Authorizer { + results := map[string]*resources.AWSApiGatewayV2Authorizer{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayV2Authorizer: + case *resources.AWSApiGatewayV2Authorizer: results[name] = resource } } @@ -944,10 +945,10 @@ func (t *Template) GetAllAWSApiGatewayV2AuthorizerResources() map[string]*AWSApi // GetAWSApiGatewayV2AuthorizerWithName retrieves all AWSApiGatewayV2Authorizer items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayV2AuthorizerWithName(name string) (*AWSApiGatewayV2Authorizer, error) { +func (t *Template) GetAWSApiGatewayV2AuthorizerWithName(name string) (*resources.AWSApiGatewayV2Authorizer, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayV2Authorizer: + case *resources.AWSApiGatewayV2Authorizer: return resource, nil } } @@ -955,11 +956,11 @@ func (t *Template) GetAWSApiGatewayV2AuthorizerWithName(name string) (*AWSApiGat } // GetAllAWSApiGatewayV2DeploymentResources retrieves all AWSApiGatewayV2Deployment items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayV2DeploymentResources() map[string]*AWSApiGatewayV2Deployment { - results := map[string]*AWSApiGatewayV2Deployment{} +func (t *Template) GetAllAWSApiGatewayV2DeploymentResources() map[string]*resources.AWSApiGatewayV2Deployment { + results := map[string]*resources.AWSApiGatewayV2Deployment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayV2Deployment: + case *resources.AWSApiGatewayV2Deployment: results[name] = resource } } @@ -968,10 +969,10 @@ func (t *Template) GetAllAWSApiGatewayV2DeploymentResources() map[string]*AWSApi // GetAWSApiGatewayV2DeploymentWithName retrieves all AWSApiGatewayV2Deployment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayV2DeploymentWithName(name string) (*AWSApiGatewayV2Deployment, error) { +func (t *Template) GetAWSApiGatewayV2DeploymentWithName(name string) (*resources.AWSApiGatewayV2Deployment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayV2Deployment: + case *resources.AWSApiGatewayV2Deployment: return resource, nil } } @@ -979,11 +980,11 @@ func (t *Template) GetAWSApiGatewayV2DeploymentWithName(name string) (*AWSApiGat } // GetAllAWSApiGatewayV2IntegrationResources retrieves all AWSApiGatewayV2Integration items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayV2IntegrationResources() map[string]*AWSApiGatewayV2Integration { - results := map[string]*AWSApiGatewayV2Integration{} +func (t *Template) GetAllAWSApiGatewayV2IntegrationResources() map[string]*resources.AWSApiGatewayV2Integration { + results := map[string]*resources.AWSApiGatewayV2Integration{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayV2Integration: + case *resources.AWSApiGatewayV2Integration: results[name] = resource } } @@ -992,10 +993,10 @@ func (t *Template) GetAllAWSApiGatewayV2IntegrationResources() map[string]*AWSAp // GetAWSApiGatewayV2IntegrationWithName retrieves all AWSApiGatewayV2Integration items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayV2IntegrationWithName(name string) (*AWSApiGatewayV2Integration, error) { +func (t *Template) GetAWSApiGatewayV2IntegrationWithName(name string) (*resources.AWSApiGatewayV2Integration, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayV2Integration: + case *resources.AWSApiGatewayV2Integration: return resource, nil } } @@ -1003,11 +1004,11 @@ func (t *Template) GetAWSApiGatewayV2IntegrationWithName(name string) (*AWSApiGa } // GetAllAWSApiGatewayV2IntegrationResponseResources retrieves all AWSApiGatewayV2IntegrationResponse items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayV2IntegrationResponseResources() map[string]*AWSApiGatewayV2IntegrationResponse { - results := map[string]*AWSApiGatewayV2IntegrationResponse{} +func (t *Template) GetAllAWSApiGatewayV2IntegrationResponseResources() map[string]*resources.AWSApiGatewayV2IntegrationResponse { + results := map[string]*resources.AWSApiGatewayV2IntegrationResponse{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayV2IntegrationResponse: + case *resources.AWSApiGatewayV2IntegrationResponse: results[name] = resource } } @@ -1016,10 +1017,10 @@ func (t *Template) GetAllAWSApiGatewayV2IntegrationResponseResources() map[strin // GetAWSApiGatewayV2IntegrationResponseWithName retrieves all AWSApiGatewayV2IntegrationResponse items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayV2IntegrationResponseWithName(name string) (*AWSApiGatewayV2IntegrationResponse, error) { +func (t *Template) GetAWSApiGatewayV2IntegrationResponseWithName(name string) (*resources.AWSApiGatewayV2IntegrationResponse, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayV2IntegrationResponse: + case *resources.AWSApiGatewayV2IntegrationResponse: return resource, nil } } @@ -1027,11 +1028,11 @@ func (t *Template) GetAWSApiGatewayV2IntegrationResponseWithName(name string) (* } // GetAllAWSApiGatewayV2ModelResources retrieves all AWSApiGatewayV2Model items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayV2ModelResources() map[string]*AWSApiGatewayV2Model { - results := map[string]*AWSApiGatewayV2Model{} +func (t *Template) GetAllAWSApiGatewayV2ModelResources() map[string]*resources.AWSApiGatewayV2Model { + results := map[string]*resources.AWSApiGatewayV2Model{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayV2Model: + case *resources.AWSApiGatewayV2Model: results[name] = resource } } @@ -1040,10 +1041,10 @@ func (t *Template) GetAllAWSApiGatewayV2ModelResources() map[string]*AWSApiGatew // GetAWSApiGatewayV2ModelWithName retrieves all AWSApiGatewayV2Model items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayV2ModelWithName(name string) (*AWSApiGatewayV2Model, error) { +func (t *Template) GetAWSApiGatewayV2ModelWithName(name string) (*resources.AWSApiGatewayV2Model, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayV2Model: + case *resources.AWSApiGatewayV2Model: return resource, nil } } @@ -1051,11 +1052,11 @@ func (t *Template) GetAWSApiGatewayV2ModelWithName(name string) (*AWSApiGatewayV } // GetAllAWSApiGatewayV2RouteResources retrieves all AWSApiGatewayV2Route items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayV2RouteResources() map[string]*AWSApiGatewayV2Route { - results := map[string]*AWSApiGatewayV2Route{} +func (t *Template) GetAllAWSApiGatewayV2RouteResources() map[string]*resources.AWSApiGatewayV2Route { + results := map[string]*resources.AWSApiGatewayV2Route{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayV2Route: + case *resources.AWSApiGatewayV2Route: results[name] = resource } } @@ -1064,10 +1065,10 @@ func (t *Template) GetAllAWSApiGatewayV2RouteResources() map[string]*AWSApiGatew // GetAWSApiGatewayV2RouteWithName retrieves all AWSApiGatewayV2Route items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayV2RouteWithName(name string) (*AWSApiGatewayV2Route, error) { +func (t *Template) GetAWSApiGatewayV2RouteWithName(name string) (*resources.AWSApiGatewayV2Route, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayV2Route: + case *resources.AWSApiGatewayV2Route: return resource, nil } } @@ -1075,11 +1076,11 @@ func (t *Template) GetAWSApiGatewayV2RouteWithName(name string) (*AWSApiGatewayV } // GetAllAWSApiGatewayV2RouteResponseResources retrieves all AWSApiGatewayV2RouteResponse items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayV2RouteResponseResources() map[string]*AWSApiGatewayV2RouteResponse { - results := map[string]*AWSApiGatewayV2RouteResponse{} +func (t *Template) GetAllAWSApiGatewayV2RouteResponseResources() map[string]*resources.AWSApiGatewayV2RouteResponse { + results := map[string]*resources.AWSApiGatewayV2RouteResponse{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayV2RouteResponse: + case *resources.AWSApiGatewayV2RouteResponse: results[name] = resource } } @@ -1088,10 +1089,10 @@ func (t *Template) GetAllAWSApiGatewayV2RouteResponseResources() map[string]*AWS // GetAWSApiGatewayV2RouteResponseWithName retrieves all AWSApiGatewayV2RouteResponse items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayV2RouteResponseWithName(name string) (*AWSApiGatewayV2RouteResponse, error) { +func (t *Template) GetAWSApiGatewayV2RouteResponseWithName(name string) (*resources.AWSApiGatewayV2RouteResponse, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayV2RouteResponse: + case *resources.AWSApiGatewayV2RouteResponse: return resource, nil } } @@ -1099,11 +1100,11 @@ func (t *Template) GetAWSApiGatewayV2RouteResponseWithName(name string) (*AWSApi } // GetAllAWSApiGatewayV2StageResources retrieves all AWSApiGatewayV2Stage items from an AWS CloudFormation template -func (t *Template) GetAllAWSApiGatewayV2StageResources() map[string]*AWSApiGatewayV2Stage { - results := map[string]*AWSApiGatewayV2Stage{} +func (t *Template) GetAllAWSApiGatewayV2StageResources() map[string]*resources.AWSApiGatewayV2Stage { + results := map[string]*resources.AWSApiGatewayV2Stage{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApiGatewayV2Stage: + case *resources.AWSApiGatewayV2Stage: results[name] = resource } } @@ -1112,10 +1113,10 @@ func (t *Template) GetAllAWSApiGatewayV2StageResources() map[string]*AWSApiGatew // GetAWSApiGatewayV2StageWithName retrieves all AWSApiGatewayV2Stage items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApiGatewayV2StageWithName(name string) (*AWSApiGatewayV2Stage, error) { +func (t *Template) GetAWSApiGatewayV2StageWithName(name string) (*resources.AWSApiGatewayV2Stage, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApiGatewayV2Stage: + case *resources.AWSApiGatewayV2Stage: return resource, nil } } @@ -1123,11 +1124,11 @@ func (t *Template) GetAWSApiGatewayV2StageWithName(name string) (*AWSApiGatewayV } // GetAllAWSAppStreamDirectoryConfigResources retrieves all AWSAppStreamDirectoryConfig items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppStreamDirectoryConfigResources() map[string]*AWSAppStreamDirectoryConfig { - results := map[string]*AWSAppStreamDirectoryConfig{} +func (t *Template) GetAllAWSAppStreamDirectoryConfigResources() map[string]*resources.AWSAppStreamDirectoryConfig { + results := map[string]*resources.AWSAppStreamDirectoryConfig{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAppStreamDirectoryConfig: + case *resources.AWSAppStreamDirectoryConfig: results[name] = resource } } @@ -1136,10 +1137,10 @@ func (t *Template) GetAllAWSAppStreamDirectoryConfigResources() map[string]*AWSA // GetAWSAppStreamDirectoryConfigWithName retrieves all AWSAppStreamDirectoryConfig items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppStreamDirectoryConfigWithName(name string) (*AWSAppStreamDirectoryConfig, error) { +func (t *Template) GetAWSAppStreamDirectoryConfigWithName(name string) (*resources.AWSAppStreamDirectoryConfig, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAppStreamDirectoryConfig: + case *resources.AWSAppStreamDirectoryConfig: return resource, nil } } @@ -1147,11 +1148,11 @@ func (t *Template) GetAWSAppStreamDirectoryConfigWithName(name string) (*AWSAppS } // GetAllAWSAppStreamFleetResources retrieves all AWSAppStreamFleet items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppStreamFleetResources() map[string]*AWSAppStreamFleet { - results := map[string]*AWSAppStreamFleet{} +func (t *Template) GetAllAWSAppStreamFleetResources() map[string]*resources.AWSAppStreamFleet { + results := map[string]*resources.AWSAppStreamFleet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAppStreamFleet: + case *resources.AWSAppStreamFleet: results[name] = resource } } @@ -1160,10 +1161,10 @@ func (t *Template) GetAllAWSAppStreamFleetResources() map[string]*AWSAppStreamFl // GetAWSAppStreamFleetWithName retrieves all AWSAppStreamFleet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppStreamFleetWithName(name string) (*AWSAppStreamFleet, error) { +func (t *Template) GetAWSAppStreamFleetWithName(name string) (*resources.AWSAppStreamFleet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAppStreamFleet: + case *resources.AWSAppStreamFleet: return resource, nil } } @@ -1171,11 +1172,11 @@ func (t *Template) GetAWSAppStreamFleetWithName(name string) (*AWSAppStreamFleet } // GetAllAWSAppStreamImageBuilderResources retrieves all AWSAppStreamImageBuilder items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppStreamImageBuilderResources() map[string]*AWSAppStreamImageBuilder { - results := map[string]*AWSAppStreamImageBuilder{} +func (t *Template) GetAllAWSAppStreamImageBuilderResources() map[string]*resources.AWSAppStreamImageBuilder { + results := map[string]*resources.AWSAppStreamImageBuilder{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAppStreamImageBuilder: + case *resources.AWSAppStreamImageBuilder: results[name] = resource } } @@ -1184,10 +1185,10 @@ func (t *Template) GetAllAWSAppStreamImageBuilderResources() map[string]*AWSAppS // GetAWSAppStreamImageBuilderWithName retrieves all AWSAppStreamImageBuilder items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppStreamImageBuilderWithName(name string) (*AWSAppStreamImageBuilder, error) { +func (t *Template) GetAWSAppStreamImageBuilderWithName(name string) (*resources.AWSAppStreamImageBuilder, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAppStreamImageBuilder: + case *resources.AWSAppStreamImageBuilder: return resource, nil } } @@ -1195,11 +1196,11 @@ func (t *Template) GetAWSAppStreamImageBuilderWithName(name string) (*AWSAppStre } // GetAllAWSAppStreamStackResources retrieves all AWSAppStreamStack items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppStreamStackResources() map[string]*AWSAppStreamStack { - results := map[string]*AWSAppStreamStack{} +func (t *Template) GetAllAWSAppStreamStackResources() map[string]*resources.AWSAppStreamStack { + results := map[string]*resources.AWSAppStreamStack{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAppStreamStack: + case *resources.AWSAppStreamStack: results[name] = resource } } @@ -1208,10 +1209,10 @@ func (t *Template) GetAllAWSAppStreamStackResources() map[string]*AWSAppStreamSt // GetAWSAppStreamStackWithName retrieves all AWSAppStreamStack items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppStreamStackWithName(name string) (*AWSAppStreamStack, error) { +func (t *Template) GetAWSAppStreamStackWithName(name string) (*resources.AWSAppStreamStack, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAppStreamStack: + case *resources.AWSAppStreamStack: return resource, nil } } @@ -1219,11 +1220,11 @@ func (t *Template) GetAWSAppStreamStackWithName(name string) (*AWSAppStreamStack } // GetAllAWSAppStreamStackFleetAssociationResources retrieves all AWSAppStreamStackFleetAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppStreamStackFleetAssociationResources() map[string]*AWSAppStreamStackFleetAssociation { - results := map[string]*AWSAppStreamStackFleetAssociation{} +func (t *Template) GetAllAWSAppStreamStackFleetAssociationResources() map[string]*resources.AWSAppStreamStackFleetAssociation { + results := map[string]*resources.AWSAppStreamStackFleetAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAppStreamStackFleetAssociation: + case *resources.AWSAppStreamStackFleetAssociation: results[name] = resource } } @@ -1232,10 +1233,10 @@ func (t *Template) GetAllAWSAppStreamStackFleetAssociationResources() map[string // GetAWSAppStreamStackFleetAssociationWithName retrieves all AWSAppStreamStackFleetAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppStreamStackFleetAssociationWithName(name string) (*AWSAppStreamStackFleetAssociation, error) { +func (t *Template) GetAWSAppStreamStackFleetAssociationWithName(name string) (*resources.AWSAppStreamStackFleetAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAppStreamStackFleetAssociation: + case *resources.AWSAppStreamStackFleetAssociation: return resource, nil } } @@ -1243,11 +1244,11 @@ func (t *Template) GetAWSAppStreamStackFleetAssociationWithName(name string) (*A } // GetAllAWSAppStreamStackUserAssociationResources retrieves all AWSAppStreamStackUserAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppStreamStackUserAssociationResources() map[string]*AWSAppStreamStackUserAssociation { - results := map[string]*AWSAppStreamStackUserAssociation{} +func (t *Template) GetAllAWSAppStreamStackUserAssociationResources() map[string]*resources.AWSAppStreamStackUserAssociation { + results := map[string]*resources.AWSAppStreamStackUserAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAppStreamStackUserAssociation: + case *resources.AWSAppStreamStackUserAssociation: results[name] = resource } } @@ -1256,10 +1257,10 @@ func (t *Template) GetAllAWSAppStreamStackUserAssociationResources() map[string] // GetAWSAppStreamStackUserAssociationWithName retrieves all AWSAppStreamStackUserAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppStreamStackUserAssociationWithName(name string) (*AWSAppStreamStackUserAssociation, error) { +func (t *Template) GetAWSAppStreamStackUserAssociationWithName(name string) (*resources.AWSAppStreamStackUserAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAppStreamStackUserAssociation: + case *resources.AWSAppStreamStackUserAssociation: return resource, nil } } @@ -1267,11 +1268,11 @@ func (t *Template) GetAWSAppStreamStackUserAssociationWithName(name string) (*AW } // GetAllAWSAppStreamUserResources retrieves all AWSAppStreamUser items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppStreamUserResources() map[string]*AWSAppStreamUser { - results := map[string]*AWSAppStreamUser{} +func (t *Template) GetAllAWSAppStreamUserResources() map[string]*resources.AWSAppStreamUser { + results := map[string]*resources.AWSAppStreamUser{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAppStreamUser: + case *resources.AWSAppStreamUser: results[name] = resource } } @@ -1280,10 +1281,10 @@ func (t *Template) GetAllAWSAppStreamUserResources() map[string]*AWSAppStreamUse // GetAWSAppStreamUserWithName retrieves all AWSAppStreamUser items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppStreamUserWithName(name string) (*AWSAppStreamUser, error) { +func (t *Template) GetAWSAppStreamUserWithName(name string) (*resources.AWSAppStreamUser, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAppStreamUser: + case *resources.AWSAppStreamUser: return resource, nil } } @@ -1291,11 +1292,11 @@ func (t *Template) GetAWSAppStreamUserWithName(name string) (*AWSAppStreamUser, } // GetAllAWSAppSyncApiKeyResources retrieves all AWSAppSyncApiKey items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppSyncApiKeyResources() map[string]*AWSAppSyncApiKey { - results := map[string]*AWSAppSyncApiKey{} +func (t *Template) GetAllAWSAppSyncApiKeyResources() map[string]*resources.AWSAppSyncApiKey { + results := map[string]*resources.AWSAppSyncApiKey{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAppSyncApiKey: + case *resources.AWSAppSyncApiKey: results[name] = resource } } @@ -1304,10 +1305,10 @@ func (t *Template) GetAllAWSAppSyncApiKeyResources() map[string]*AWSAppSyncApiKe // GetAWSAppSyncApiKeyWithName retrieves all AWSAppSyncApiKey items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppSyncApiKeyWithName(name string) (*AWSAppSyncApiKey, error) { +func (t *Template) GetAWSAppSyncApiKeyWithName(name string) (*resources.AWSAppSyncApiKey, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAppSyncApiKey: + case *resources.AWSAppSyncApiKey: return resource, nil } } @@ -1315,11 +1316,11 @@ func (t *Template) GetAWSAppSyncApiKeyWithName(name string) (*AWSAppSyncApiKey, } // GetAllAWSAppSyncDataSourceResources retrieves all AWSAppSyncDataSource items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppSyncDataSourceResources() map[string]*AWSAppSyncDataSource { - results := map[string]*AWSAppSyncDataSource{} +func (t *Template) GetAllAWSAppSyncDataSourceResources() map[string]*resources.AWSAppSyncDataSource { + results := map[string]*resources.AWSAppSyncDataSource{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAppSyncDataSource: + case *resources.AWSAppSyncDataSource: results[name] = resource } } @@ -1328,10 +1329,10 @@ func (t *Template) GetAllAWSAppSyncDataSourceResources() map[string]*AWSAppSyncD // GetAWSAppSyncDataSourceWithName retrieves all AWSAppSyncDataSource items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppSyncDataSourceWithName(name string) (*AWSAppSyncDataSource, error) { +func (t *Template) GetAWSAppSyncDataSourceWithName(name string) (*resources.AWSAppSyncDataSource, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAppSyncDataSource: + case *resources.AWSAppSyncDataSource: return resource, nil } } @@ -1339,11 +1340,11 @@ func (t *Template) GetAWSAppSyncDataSourceWithName(name string) (*AWSAppSyncData } // GetAllAWSAppSyncFunctionConfigurationResources retrieves all AWSAppSyncFunctionConfiguration items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppSyncFunctionConfigurationResources() map[string]*AWSAppSyncFunctionConfiguration { - results := map[string]*AWSAppSyncFunctionConfiguration{} +func (t *Template) GetAllAWSAppSyncFunctionConfigurationResources() map[string]*resources.AWSAppSyncFunctionConfiguration { + results := map[string]*resources.AWSAppSyncFunctionConfiguration{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAppSyncFunctionConfiguration: + case *resources.AWSAppSyncFunctionConfiguration: results[name] = resource } } @@ -1352,10 +1353,10 @@ func (t *Template) GetAllAWSAppSyncFunctionConfigurationResources() map[string]* // GetAWSAppSyncFunctionConfigurationWithName retrieves all AWSAppSyncFunctionConfiguration items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppSyncFunctionConfigurationWithName(name string) (*AWSAppSyncFunctionConfiguration, error) { +func (t *Template) GetAWSAppSyncFunctionConfigurationWithName(name string) (*resources.AWSAppSyncFunctionConfiguration, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAppSyncFunctionConfiguration: + case *resources.AWSAppSyncFunctionConfiguration: return resource, nil } } @@ -1363,11 +1364,11 @@ func (t *Template) GetAWSAppSyncFunctionConfigurationWithName(name string) (*AWS } // GetAllAWSAppSyncGraphQLApiResources retrieves all AWSAppSyncGraphQLApi items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppSyncGraphQLApiResources() map[string]*AWSAppSyncGraphQLApi { - results := map[string]*AWSAppSyncGraphQLApi{} +func (t *Template) GetAllAWSAppSyncGraphQLApiResources() map[string]*resources.AWSAppSyncGraphQLApi { + results := map[string]*resources.AWSAppSyncGraphQLApi{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAppSyncGraphQLApi: + case *resources.AWSAppSyncGraphQLApi: results[name] = resource } } @@ -1376,10 +1377,10 @@ func (t *Template) GetAllAWSAppSyncGraphQLApiResources() map[string]*AWSAppSyncG // GetAWSAppSyncGraphQLApiWithName retrieves all AWSAppSyncGraphQLApi items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppSyncGraphQLApiWithName(name string) (*AWSAppSyncGraphQLApi, error) { +func (t *Template) GetAWSAppSyncGraphQLApiWithName(name string) (*resources.AWSAppSyncGraphQLApi, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAppSyncGraphQLApi: + case *resources.AWSAppSyncGraphQLApi: return resource, nil } } @@ -1387,11 +1388,11 @@ func (t *Template) GetAWSAppSyncGraphQLApiWithName(name string) (*AWSAppSyncGrap } // GetAllAWSAppSyncGraphQLSchemaResources retrieves all AWSAppSyncGraphQLSchema items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppSyncGraphQLSchemaResources() map[string]*AWSAppSyncGraphQLSchema { - results := map[string]*AWSAppSyncGraphQLSchema{} +func (t *Template) GetAllAWSAppSyncGraphQLSchemaResources() map[string]*resources.AWSAppSyncGraphQLSchema { + results := map[string]*resources.AWSAppSyncGraphQLSchema{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAppSyncGraphQLSchema: + case *resources.AWSAppSyncGraphQLSchema: results[name] = resource } } @@ -1400,10 +1401,10 @@ func (t *Template) GetAllAWSAppSyncGraphQLSchemaResources() map[string]*AWSAppSy // GetAWSAppSyncGraphQLSchemaWithName retrieves all AWSAppSyncGraphQLSchema items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppSyncGraphQLSchemaWithName(name string) (*AWSAppSyncGraphQLSchema, error) { +func (t *Template) GetAWSAppSyncGraphQLSchemaWithName(name string) (*resources.AWSAppSyncGraphQLSchema, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAppSyncGraphQLSchema: + case *resources.AWSAppSyncGraphQLSchema: return resource, nil } } @@ -1411,11 +1412,11 @@ func (t *Template) GetAWSAppSyncGraphQLSchemaWithName(name string) (*AWSAppSyncG } // GetAllAWSAppSyncResolverResources retrieves all AWSAppSyncResolver items from an AWS CloudFormation template -func (t *Template) GetAllAWSAppSyncResolverResources() map[string]*AWSAppSyncResolver { - results := map[string]*AWSAppSyncResolver{} +func (t *Template) GetAllAWSAppSyncResolverResources() map[string]*resources.AWSAppSyncResolver { + results := map[string]*resources.AWSAppSyncResolver{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAppSyncResolver: + case *resources.AWSAppSyncResolver: results[name] = resource } } @@ -1424,10 +1425,10 @@ func (t *Template) GetAllAWSAppSyncResolverResources() map[string]*AWSAppSyncRes // GetAWSAppSyncResolverWithName retrieves all AWSAppSyncResolver items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAppSyncResolverWithName(name string) (*AWSAppSyncResolver, error) { +func (t *Template) GetAWSAppSyncResolverWithName(name string) (*resources.AWSAppSyncResolver, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAppSyncResolver: + case *resources.AWSAppSyncResolver: return resource, nil } } @@ -1435,11 +1436,11 @@ func (t *Template) GetAWSAppSyncResolverWithName(name string) (*AWSAppSyncResolv } // GetAllAWSApplicationAutoScalingScalableTargetResources retrieves all AWSApplicationAutoScalingScalableTarget items from an AWS CloudFormation template -func (t *Template) GetAllAWSApplicationAutoScalingScalableTargetResources() map[string]*AWSApplicationAutoScalingScalableTarget { - results := map[string]*AWSApplicationAutoScalingScalableTarget{} +func (t *Template) GetAllAWSApplicationAutoScalingScalableTargetResources() map[string]*resources.AWSApplicationAutoScalingScalableTarget { + results := map[string]*resources.AWSApplicationAutoScalingScalableTarget{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApplicationAutoScalingScalableTarget: + case *resources.AWSApplicationAutoScalingScalableTarget: results[name] = resource } } @@ -1448,10 +1449,10 @@ func (t *Template) GetAllAWSApplicationAutoScalingScalableTargetResources() map[ // GetAWSApplicationAutoScalingScalableTargetWithName retrieves all AWSApplicationAutoScalingScalableTarget items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApplicationAutoScalingScalableTargetWithName(name string) (*AWSApplicationAutoScalingScalableTarget, error) { +func (t *Template) GetAWSApplicationAutoScalingScalableTargetWithName(name string) (*resources.AWSApplicationAutoScalingScalableTarget, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApplicationAutoScalingScalableTarget: + case *resources.AWSApplicationAutoScalingScalableTarget: return resource, nil } } @@ -1459,11 +1460,11 @@ func (t *Template) GetAWSApplicationAutoScalingScalableTargetWithName(name strin } // GetAllAWSApplicationAutoScalingScalingPolicyResources retrieves all AWSApplicationAutoScalingScalingPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSApplicationAutoScalingScalingPolicyResources() map[string]*AWSApplicationAutoScalingScalingPolicy { - results := map[string]*AWSApplicationAutoScalingScalingPolicy{} +func (t *Template) GetAllAWSApplicationAutoScalingScalingPolicyResources() map[string]*resources.AWSApplicationAutoScalingScalingPolicy { + results := map[string]*resources.AWSApplicationAutoScalingScalingPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSApplicationAutoScalingScalingPolicy: + case *resources.AWSApplicationAutoScalingScalingPolicy: results[name] = resource } } @@ -1472,10 +1473,10 @@ func (t *Template) GetAllAWSApplicationAutoScalingScalingPolicyResources() map[s // GetAWSApplicationAutoScalingScalingPolicyWithName retrieves all AWSApplicationAutoScalingScalingPolicy items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSApplicationAutoScalingScalingPolicyWithName(name string) (*AWSApplicationAutoScalingScalingPolicy, error) { +func (t *Template) GetAWSApplicationAutoScalingScalingPolicyWithName(name string) (*resources.AWSApplicationAutoScalingScalingPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSApplicationAutoScalingScalingPolicy: + case *resources.AWSApplicationAutoScalingScalingPolicy: return resource, nil } } @@ -1483,11 +1484,11 @@ func (t *Template) GetAWSApplicationAutoScalingScalingPolicyWithName(name string } // GetAllAWSAthenaNamedQueryResources retrieves all AWSAthenaNamedQuery items from an AWS CloudFormation template -func (t *Template) GetAllAWSAthenaNamedQueryResources() map[string]*AWSAthenaNamedQuery { - results := map[string]*AWSAthenaNamedQuery{} +func (t *Template) GetAllAWSAthenaNamedQueryResources() map[string]*resources.AWSAthenaNamedQuery { + results := map[string]*resources.AWSAthenaNamedQuery{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAthenaNamedQuery: + case *resources.AWSAthenaNamedQuery: results[name] = resource } } @@ -1496,10 +1497,10 @@ func (t *Template) GetAllAWSAthenaNamedQueryResources() map[string]*AWSAthenaNam // GetAWSAthenaNamedQueryWithName retrieves all AWSAthenaNamedQuery items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAthenaNamedQueryWithName(name string) (*AWSAthenaNamedQuery, error) { +func (t *Template) GetAWSAthenaNamedQueryWithName(name string) (*resources.AWSAthenaNamedQuery, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAthenaNamedQuery: + case *resources.AWSAthenaNamedQuery: return resource, nil } } @@ -1507,11 +1508,11 @@ func (t *Template) GetAWSAthenaNamedQueryWithName(name string) (*AWSAthenaNamedQ } // GetAllAWSAutoScalingAutoScalingGroupResources retrieves all AWSAutoScalingAutoScalingGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSAutoScalingAutoScalingGroupResources() map[string]*AWSAutoScalingAutoScalingGroup { - results := map[string]*AWSAutoScalingAutoScalingGroup{} +func (t *Template) GetAllAWSAutoScalingAutoScalingGroupResources() map[string]*resources.AWSAutoScalingAutoScalingGroup { + results := map[string]*resources.AWSAutoScalingAutoScalingGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAutoScalingAutoScalingGroup: + case *resources.AWSAutoScalingAutoScalingGroup: results[name] = resource } } @@ -1520,10 +1521,10 @@ func (t *Template) GetAllAWSAutoScalingAutoScalingGroupResources() map[string]*A // GetAWSAutoScalingAutoScalingGroupWithName retrieves all AWSAutoScalingAutoScalingGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAutoScalingAutoScalingGroupWithName(name string) (*AWSAutoScalingAutoScalingGroup, error) { +func (t *Template) GetAWSAutoScalingAutoScalingGroupWithName(name string) (*resources.AWSAutoScalingAutoScalingGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAutoScalingAutoScalingGroup: + case *resources.AWSAutoScalingAutoScalingGroup: return resource, nil } } @@ -1531,11 +1532,11 @@ func (t *Template) GetAWSAutoScalingAutoScalingGroupWithName(name string) (*AWSA } // GetAllAWSAutoScalingLaunchConfigurationResources retrieves all AWSAutoScalingLaunchConfiguration items from an AWS CloudFormation template -func (t *Template) GetAllAWSAutoScalingLaunchConfigurationResources() map[string]*AWSAutoScalingLaunchConfiguration { - results := map[string]*AWSAutoScalingLaunchConfiguration{} +func (t *Template) GetAllAWSAutoScalingLaunchConfigurationResources() map[string]*resources.AWSAutoScalingLaunchConfiguration { + results := map[string]*resources.AWSAutoScalingLaunchConfiguration{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAutoScalingLaunchConfiguration: + case *resources.AWSAutoScalingLaunchConfiguration: results[name] = resource } } @@ -1544,10 +1545,10 @@ func (t *Template) GetAllAWSAutoScalingLaunchConfigurationResources() map[string // GetAWSAutoScalingLaunchConfigurationWithName retrieves all AWSAutoScalingLaunchConfiguration items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAutoScalingLaunchConfigurationWithName(name string) (*AWSAutoScalingLaunchConfiguration, error) { +func (t *Template) GetAWSAutoScalingLaunchConfigurationWithName(name string) (*resources.AWSAutoScalingLaunchConfiguration, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAutoScalingLaunchConfiguration: + case *resources.AWSAutoScalingLaunchConfiguration: return resource, nil } } @@ -1555,11 +1556,11 @@ func (t *Template) GetAWSAutoScalingLaunchConfigurationWithName(name string) (*A } // GetAllAWSAutoScalingLifecycleHookResources retrieves all AWSAutoScalingLifecycleHook items from an AWS CloudFormation template -func (t *Template) GetAllAWSAutoScalingLifecycleHookResources() map[string]*AWSAutoScalingLifecycleHook { - results := map[string]*AWSAutoScalingLifecycleHook{} +func (t *Template) GetAllAWSAutoScalingLifecycleHookResources() map[string]*resources.AWSAutoScalingLifecycleHook { + results := map[string]*resources.AWSAutoScalingLifecycleHook{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAutoScalingLifecycleHook: + case *resources.AWSAutoScalingLifecycleHook: results[name] = resource } } @@ -1568,10 +1569,10 @@ func (t *Template) GetAllAWSAutoScalingLifecycleHookResources() map[string]*AWSA // GetAWSAutoScalingLifecycleHookWithName retrieves all AWSAutoScalingLifecycleHook items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAutoScalingLifecycleHookWithName(name string) (*AWSAutoScalingLifecycleHook, error) { +func (t *Template) GetAWSAutoScalingLifecycleHookWithName(name string) (*resources.AWSAutoScalingLifecycleHook, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAutoScalingLifecycleHook: + case *resources.AWSAutoScalingLifecycleHook: return resource, nil } } @@ -1579,11 +1580,11 @@ func (t *Template) GetAWSAutoScalingLifecycleHookWithName(name string) (*AWSAuto } // GetAllAWSAutoScalingScalingPolicyResources retrieves all AWSAutoScalingScalingPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSAutoScalingScalingPolicyResources() map[string]*AWSAutoScalingScalingPolicy { - results := map[string]*AWSAutoScalingScalingPolicy{} +func (t *Template) GetAllAWSAutoScalingScalingPolicyResources() map[string]*resources.AWSAutoScalingScalingPolicy { + results := map[string]*resources.AWSAutoScalingScalingPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAutoScalingScalingPolicy: + case *resources.AWSAutoScalingScalingPolicy: results[name] = resource } } @@ -1592,10 +1593,10 @@ func (t *Template) GetAllAWSAutoScalingScalingPolicyResources() map[string]*AWSA // GetAWSAutoScalingScalingPolicyWithName retrieves all AWSAutoScalingScalingPolicy items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAutoScalingScalingPolicyWithName(name string) (*AWSAutoScalingScalingPolicy, error) { +func (t *Template) GetAWSAutoScalingScalingPolicyWithName(name string) (*resources.AWSAutoScalingScalingPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAutoScalingScalingPolicy: + case *resources.AWSAutoScalingScalingPolicy: return resource, nil } } @@ -1603,11 +1604,11 @@ func (t *Template) GetAWSAutoScalingScalingPolicyWithName(name string) (*AWSAuto } // GetAllAWSAutoScalingScheduledActionResources retrieves all AWSAutoScalingScheduledAction items from an AWS CloudFormation template -func (t *Template) GetAllAWSAutoScalingScheduledActionResources() map[string]*AWSAutoScalingScheduledAction { - results := map[string]*AWSAutoScalingScheduledAction{} +func (t *Template) GetAllAWSAutoScalingScheduledActionResources() map[string]*resources.AWSAutoScalingScheduledAction { + results := map[string]*resources.AWSAutoScalingScheduledAction{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAutoScalingScheduledAction: + case *resources.AWSAutoScalingScheduledAction: results[name] = resource } } @@ -1616,10 +1617,10 @@ func (t *Template) GetAllAWSAutoScalingScheduledActionResources() map[string]*AW // GetAWSAutoScalingScheduledActionWithName retrieves all AWSAutoScalingScheduledAction items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAutoScalingScheduledActionWithName(name string) (*AWSAutoScalingScheduledAction, error) { +func (t *Template) GetAWSAutoScalingScheduledActionWithName(name string) (*resources.AWSAutoScalingScheduledAction, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAutoScalingScheduledAction: + case *resources.AWSAutoScalingScheduledAction: return resource, nil } } @@ -1627,11 +1628,11 @@ func (t *Template) GetAWSAutoScalingScheduledActionWithName(name string) (*AWSAu } // GetAllAWSAutoScalingPlansScalingPlanResources retrieves all AWSAutoScalingPlansScalingPlan items from an AWS CloudFormation template -func (t *Template) GetAllAWSAutoScalingPlansScalingPlanResources() map[string]*AWSAutoScalingPlansScalingPlan { - results := map[string]*AWSAutoScalingPlansScalingPlan{} +func (t *Template) GetAllAWSAutoScalingPlansScalingPlanResources() map[string]*resources.AWSAutoScalingPlansScalingPlan { + results := map[string]*resources.AWSAutoScalingPlansScalingPlan{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSAutoScalingPlansScalingPlan: + case *resources.AWSAutoScalingPlansScalingPlan: results[name] = resource } } @@ -1640,10 +1641,10 @@ func (t *Template) GetAllAWSAutoScalingPlansScalingPlanResources() map[string]*A // GetAWSAutoScalingPlansScalingPlanWithName retrieves all AWSAutoScalingPlansScalingPlan items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSAutoScalingPlansScalingPlanWithName(name string) (*AWSAutoScalingPlansScalingPlan, error) { +func (t *Template) GetAWSAutoScalingPlansScalingPlanWithName(name string) (*resources.AWSAutoScalingPlansScalingPlan, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSAutoScalingPlansScalingPlan: + case *resources.AWSAutoScalingPlansScalingPlan: return resource, nil } } @@ -1651,11 +1652,11 @@ func (t *Template) GetAWSAutoScalingPlansScalingPlanWithName(name string) (*AWSA } // GetAllAWSBatchComputeEnvironmentResources retrieves all AWSBatchComputeEnvironment items from an AWS CloudFormation template -func (t *Template) GetAllAWSBatchComputeEnvironmentResources() map[string]*AWSBatchComputeEnvironment { - results := map[string]*AWSBatchComputeEnvironment{} +func (t *Template) GetAllAWSBatchComputeEnvironmentResources() map[string]*resources.AWSBatchComputeEnvironment { + results := map[string]*resources.AWSBatchComputeEnvironment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSBatchComputeEnvironment: + case *resources.AWSBatchComputeEnvironment: results[name] = resource } } @@ -1664,10 +1665,10 @@ func (t *Template) GetAllAWSBatchComputeEnvironmentResources() map[string]*AWSBa // GetAWSBatchComputeEnvironmentWithName retrieves all AWSBatchComputeEnvironment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSBatchComputeEnvironmentWithName(name string) (*AWSBatchComputeEnvironment, error) { +func (t *Template) GetAWSBatchComputeEnvironmentWithName(name string) (*resources.AWSBatchComputeEnvironment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSBatchComputeEnvironment: + case *resources.AWSBatchComputeEnvironment: return resource, nil } } @@ -1675,11 +1676,11 @@ func (t *Template) GetAWSBatchComputeEnvironmentWithName(name string) (*AWSBatch } // GetAllAWSBatchJobDefinitionResources retrieves all AWSBatchJobDefinition items from an AWS CloudFormation template -func (t *Template) GetAllAWSBatchJobDefinitionResources() map[string]*AWSBatchJobDefinition { - results := map[string]*AWSBatchJobDefinition{} +func (t *Template) GetAllAWSBatchJobDefinitionResources() map[string]*resources.AWSBatchJobDefinition { + results := map[string]*resources.AWSBatchJobDefinition{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSBatchJobDefinition: + case *resources.AWSBatchJobDefinition: results[name] = resource } } @@ -1688,10 +1689,10 @@ func (t *Template) GetAllAWSBatchJobDefinitionResources() map[string]*AWSBatchJo // GetAWSBatchJobDefinitionWithName retrieves all AWSBatchJobDefinition items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSBatchJobDefinitionWithName(name string) (*AWSBatchJobDefinition, error) { +func (t *Template) GetAWSBatchJobDefinitionWithName(name string) (*resources.AWSBatchJobDefinition, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSBatchJobDefinition: + case *resources.AWSBatchJobDefinition: return resource, nil } } @@ -1699,11 +1700,11 @@ func (t *Template) GetAWSBatchJobDefinitionWithName(name string) (*AWSBatchJobDe } // GetAllAWSBatchJobQueueResources retrieves all AWSBatchJobQueue items from an AWS CloudFormation template -func (t *Template) GetAllAWSBatchJobQueueResources() map[string]*AWSBatchJobQueue { - results := map[string]*AWSBatchJobQueue{} +func (t *Template) GetAllAWSBatchJobQueueResources() map[string]*resources.AWSBatchJobQueue { + results := map[string]*resources.AWSBatchJobQueue{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSBatchJobQueue: + case *resources.AWSBatchJobQueue: results[name] = resource } } @@ -1712,10 +1713,10 @@ func (t *Template) GetAllAWSBatchJobQueueResources() map[string]*AWSBatchJobQueu // GetAWSBatchJobQueueWithName retrieves all AWSBatchJobQueue items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSBatchJobQueueWithName(name string) (*AWSBatchJobQueue, error) { +func (t *Template) GetAWSBatchJobQueueWithName(name string) (*resources.AWSBatchJobQueue, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSBatchJobQueue: + case *resources.AWSBatchJobQueue: return resource, nil } } @@ -1723,11 +1724,11 @@ func (t *Template) GetAWSBatchJobQueueWithName(name string) (*AWSBatchJobQueue, } // GetAllAWSBudgetsBudgetResources retrieves all AWSBudgetsBudget items from an AWS CloudFormation template -func (t *Template) GetAllAWSBudgetsBudgetResources() map[string]*AWSBudgetsBudget { - results := map[string]*AWSBudgetsBudget{} +func (t *Template) GetAllAWSBudgetsBudgetResources() map[string]*resources.AWSBudgetsBudget { + results := map[string]*resources.AWSBudgetsBudget{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSBudgetsBudget: + case *resources.AWSBudgetsBudget: results[name] = resource } } @@ -1736,10 +1737,10 @@ func (t *Template) GetAllAWSBudgetsBudgetResources() map[string]*AWSBudgetsBudge // GetAWSBudgetsBudgetWithName retrieves all AWSBudgetsBudget items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSBudgetsBudgetWithName(name string) (*AWSBudgetsBudget, error) { +func (t *Template) GetAWSBudgetsBudgetWithName(name string) (*resources.AWSBudgetsBudget, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSBudgetsBudget: + case *resources.AWSBudgetsBudget: return resource, nil } } @@ -1747,11 +1748,11 @@ func (t *Template) GetAWSBudgetsBudgetWithName(name string) (*AWSBudgetsBudget, } // GetAllAWSCertificateManagerCertificateResources retrieves all AWSCertificateManagerCertificate items from an AWS CloudFormation template -func (t *Template) GetAllAWSCertificateManagerCertificateResources() map[string]*AWSCertificateManagerCertificate { - results := map[string]*AWSCertificateManagerCertificate{} +func (t *Template) GetAllAWSCertificateManagerCertificateResources() map[string]*resources.AWSCertificateManagerCertificate { + results := map[string]*resources.AWSCertificateManagerCertificate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCertificateManagerCertificate: + case *resources.AWSCertificateManagerCertificate: results[name] = resource } } @@ -1760,10 +1761,10 @@ func (t *Template) GetAllAWSCertificateManagerCertificateResources() map[string] // GetAWSCertificateManagerCertificateWithName retrieves all AWSCertificateManagerCertificate items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCertificateManagerCertificateWithName(name string) (*AWSCertificateManagerCertificate, error) { +func (t *Template) GetAWSCertificateManagerCertificateWithName(name string) (*resources.AWSCertificateManagerCertificate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCertificateManagerCertificate: + case *resources.AWSCertificateManagerCertificate: return resource, nil } } @@ -1771,11 +1772,11 @@ func (t *Template) GetAWSCertificateManagerCertificateWithName(name string) (*AW } // GetAllAWSCloud9EnvironmentEC2Resources retrieves all AWSCloud9EnvironmentEC2 items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloud9EnvironmentEC2Resources() map[string]*AWSCloud9EnvironmentEC2 { - results := map[string]*AWSCloud9EnvironmentEC2{} +func (t *Template) GetAllAWSCloud9EnvironmentEC2Resources() map[string]*resources.AWSCloud9EnvironmentEC2 { + results := map[string]*resources.AWSCloud9EnvironmentEC2{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCloud9EnvironmentEC2: + case *resources.AWSCloud9EnvironmentEC2: results[name] = resource } } @@ -1784,10 +1785,10 @@ func (t *Template) GetAllAWSCloud9EnvironmentEC2Resources() map[string]*AWSCloud // GetAWSCloud9EnvironmentEC2WithName retrieves all AWSCloud9EnvironmentEC2 items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloud9EnvironmentEC2WithName(name string) (*AWSCloud9EnvironmentEC2, error) { +func (t *Template) GetAWSCloud9EnvironmentEC2WithName(name string) (*resources.AWSCloud9EnvironmentEC2, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCloud9EnvironmentEC2: + case *resources.AWSCloud9EnvironmentEC2: return resource, nil } } @@ -1795,11 +1796,11 @@ func (t *Template) GetAWSCloud9EnvironmentEC2WithName(name string) (*AWSCloud9En } // GetAllAWSCloudFormationCustomResourceResources retrieves all AWSCloudFormationCustomResource items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFormationCustomResourceResources() map[string]*AWSCloudFormationCustomResource { - results := map[string]*AWSCloudFormationCustomResource{} +func (t *Template) GetAllAWSCloudFormationCustomResourceResources() map[string]*resources.AWSCloudFormationCustomResource { + results := map[string]*resources.AWSCloudFormationCustomResource{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCloudFormationCustomResource: + case *resources.AWSCloudFormationCustomResource: results[name] = resource } } @@ -1808,10 +1809,10 @@ func (t *Template) GetAllAWSCloudFormationCustomResourceResources() map[string]* // GetAWSCloudFormationCustomResourceWithName retrieves all AWSCloudFormationCustomResource items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFormationCustomResourceWithName(name string) (*AWSCloudFormationCustomResource, error) { +func (t *Template) GetAWSCloudFormationCustomResourceWithName(name string) (*resources.AWSCloudFormationCustomResource, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCloudFormationCustomResource: + case *resources.AWSCloudFormationCustomResource: return resource, nil } } @@ -1819,11 +1820,11 @@ func (t *Template) GetAWSCloudFormationCustomResourceWithName(name string) (*AWS } // GetAllAWSCloudFormationMacroResources retrieves all AWSCloudFormationMacro items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFormationMacroResources() map[string]*AWSCloudFormationMacro { - results := map[string]*AWSCloudFormationMacro{} +func (t *Template) GetAllAWSCloudFormationMacroResources() map[string]*resources.AWSCloudFormationMacro { + results := map[string]*resources.AWSCloudFormationMacro{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCloudFormationMacro: + case *resources.AWSCloudFormationMacro: results[name] = resource } } @@ -1832,10 +1833,10 @@ func (t *Template) GetAllAWSCloudFormationMacroResources() map[string]*AWSCloudF // GetAWSCloudFormationMacroWithName retrieves all AWSCloudFormationMacro items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFormationMacroWithName(name string) (*AWSCloudFormationMacro, error) { +func (t *Template) GetAWSCloudFormationMacroWithName(name string) (*resources.AWSCloudFormationMacro, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCloudFormationMacro: + case *resources.AWSCloudFormationMacro: return resource, nil } } @@ -1843,11 +1844,11 @@ func (t *Template) GetAWSCloudFormationMacroWithName(name string) (*AWSCloudForm } // GetAllAWSCloudFormationStackResources retrieves all AWSCloudFormationStack items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFormationStackResources() map[string]*AWSCloudFormationStack { - results := map[string]*AWSCloudFormationStack{} +func (t *Template) GetAllAWSCloudFormationStackResources() map[string]*resources.AWSCloudFormationStack { + results := map[string]*resources.AWSCloudFormationStack{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCloudFormationStack: + case *resources.AWSCloudFormationStack: results[name] = resource } } @@ -1856,10 +1857,10 @@ func (t *Template) GetAllAWSCloudFormationStackResources() map[string]*AWSCloudF // GetAWSCloudFormationStackWithName retrieves all AWSCloudFormationStack items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFormationStackWithName(name string) (*AWSCloudFormationStack, error) { +func (t *Template) GetAWSCloudFormationStackWithName(name string) (*resources.AWSCloudFormationStack, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCloudFormationStack: + case *resources.AWSCloudFormationStack: return resource, nil } } @@ -1867,11 +1868,11 @@ func (t *Template) GetAWSCloudFormationStackWithName(name string) (*AWSCloudForm } // GetAllAWSCloudFormationWaitConditionResources retrieves all AWSCloudFormationWaitCondition items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFormationWaitConditionResources() map[string]*AWSCloudFormationWaitCondition { - results := map[string]*AWSCloudFormationWaitCondition{} +func (t *Template) GetAllAWSCloudFormationWaitConditionResources() map[string]*resources.AWSCloudFormationWaitCondition { + results := map[string]*resources.AWSCloudFormationWaitCondition{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCloudFormationWaitCondition: + case *resources.AWSCloudFormationWaitCondition: results[name] = resource } } @@ -1880,10 +1881,10 @@ func (t *Template) GetAllAWSCloudFormationWaitConditionResources() map[string]*A // GetAWSCloudFormationWaitConditionWithName retrieves all AWSCloudFormationWaitCondition items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFormationWaitConditionWithName(name string) (*AWSCloudFormationWaitCondition, error) { +func (t *Template) GetAWSCloudFormationWaitConditionWithName(name string) (*resources.AWSCloudFormationWaitCondition, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCloudFormationWaitCondition: + case *resources.AWSCloudFormationWaitCondition: return resource, nil } } @@ -1891,11 +1892,11 @@ func (t *Template) GetAWSCloudFormationWaitConditionWithName(name string) (*AWSC } // GetAllAWSCloudFormationWaitConditionHandleResources retrieves all AWSCloudFormationWaitConditionHandle items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFormationWaitConditionHandleResources() map[string]*AWSCloudFormationWaitConditionHandle { - results := map[string]*AWSCloudFormationWaitConditionHandle{} +func (t *Template) GetAllAWSCloudFormationWaitConditionHandleResources() map[string]*resources.AWSCloudFormationWaitConditionHandle { + results := map[string]*resources.AWSCloudFormationWaitConditionHandle{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCloudFormationWaitConditionHandle: + case *resources.AWSCloudFormationWaitConditionHandle: results[name] = resource } } @@ -1904,10 +1905,10 @@ func (t *Template) GetAllAWSCloudFormationWaitConditionHandleResources() map[str // GetAWSCloudFormationWaitConditionHandleWithName retrieves all AWSCloudFormationWaitConditionHandle items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFormationWaitConditionHandleWithName(name string) (*AWSCloudFormationWaitConditionHandle, error) { +func (t *Template) GetAWSCloudFormationWaitConditionHandleWithName(name string) (*resources.AWSCloudFormationWaitConditionHandle, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCloudFormationWaitConditionHandle: + case *resources.AWSCloudFormationWaitConditionHandle: return resource, nil } } @@ -1915,11 +1916,11 @@ func (t *Template) GetAWSCloudFormationWaitConditionHandleWithName(name string) } // GetAllAWSCloudFrontCloudFrontOriginAccessIdentityResources retrieves all AWSCloudFrontCloudFrontOriginAccessIdentity items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFrontCloudFrontOriginAccessIdentityResources() map[string]*AWSCloudFrontCloudFrontOriginAccessIdentity { - results := map[string]*AWSCloudFrontCloudFrontOriginAccessIdentity{} +func (t *Template) GetAllAWSCloudFrontCloudFrontOriginAccessIdentityResources() map[string]*resources.AWSCloudFrontCloudFrontOriginAccessIdentity { + results := map[string]*resources.AWSCloudFrontCloudFrontOriginAccessIdentity{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCloudFrontCloudFrontOriginAccessIdentity: + case *resources.AWSCloudFrontCloudFrontOriginAccessIdentity: results[name] = resource } } @@ -1928,10 +1929,10 @@ func (t *Template) GetAllAWSCloudFrontCloudFrontOriginAccessIdentityResources() // GetAWSCloudFrontCloudFrontOriginAccessIdentityWithName retrieves all AWSCloudFrontCloudFrontOriginAccessIdentity items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFrontCloudFrontOriginAccessIdentityWithName(name string) (*AWSCloudFrontCloudFrontOriginAccessIdentity, error) { +func (t *Template) GetAWSCloudFrontCloudFrontOriginAccessIdentityWithName(name string) (*resources.AWSCloudFrontCloudFrontOriginAccessIdentity, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCloudFrontCloudFrontOriginAccessIdentity: + case *resources.AWSCloudFrontCloudFrontOriginAccessIdentity: return resource, nil } } @@ -1939,11 +1940,11 @@ func (t *Template) GetAWSCloudFrontCloudFrontOriginAccessIdentityWithName(name s } // GetAllAWSCloudFrontDistributionResources retrieves all AWSCloudFrontDistribution items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFrontDistributionResources() map[string]*AWSCloudFrontDistribution { - results := map[string]*AWSCloudFrontDistribution{} +func (t *Template) GetAllAWSCloudFrontDistributionResources() map[string]*resources.AWSCloudFrontDistribution { + results := map[string]*resources.AWSCloudFrontDistribution{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCloudFrontDistribution: + case *resources.AWSCloudFrontDistribution: results[name] = resource } } @@ -1952,10 +1953,10 @@ func (t *Template) GetAllAWSCloudFrontDistributionResources() map[string]*AWSClo // GetAWSCloudFrontDistributionWithName retrieves all AWSCloudFrontDistribution items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFrontDistributionWithName(name string) (*AWSCloudFrontDistribution, error) { +func (t *Template) GetAWSCloudFrontDistributionWithName(name string) (*resources.AWSCloudFrontDistribution, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCloudFrontDistribution: + case *resources.AWSCloudFrontDistribution: return resource, nil } } @@ -1963,11 +1964,11 @@ func (t *Template) GetAWSCloudFrontDistributionWithName(name string) (*AWSCloudF } // GetAllAWSCloudFrontStreamingDistributionResources retrieves all AWSCloudFrontStreamingDistribution items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudFrontStreamingDistributionResources() map[string]*AWSCloudFrontStreamingDistribution { - results := map[string]*AWSCloudFrontStreamingDistribution{} +func (t *Template) GetAllAWSCloudFrontStreamingDistributionResources() map[string]*resources.AWSCloudFrontStreamingDistribution { + results := map[string]*resources.AWSCloudFrontStreamingDistribution{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCloudFrontStreamingDistribution: + case *resources.AWSCloudFrontStreamingDistribution: results[name] = resource } } @@ -1976,10 +1977,10 @@ func (t *Template) GetAllAWSCloudFrontStreamingDistributionResources() map[strin // GetAWSCloudFrontStreamingDistributionWithName retrieves all AWSCloudFrontStreamingDistribution items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudFrontStreamingDistributionWithName(name string) (*AWSCloudFrontStreamingDistribution, error) { +func (t *Template) GetAWSCloudFrontStreamingDistributionWithName(name string) (*resources.AWSCloudFrontStreamingDistribution, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCloudFrontStreamingDistribution: + case *resources.AWSCloudFrontStreamingDistribution: return resource, nil } } @@ -1987,11 +1988,11 @@ func (t *Template) GetAWSCloudFrontStreamingDistributionWithName(name string) (* } // GetAllAWSCloudTrailTrailResources retrieves all AWSCloudTrailTrail items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudTrailTrailResources() map[string]*AWSCloudTrailTrail { - results := map[string]*AWSCloudTrailTrail{} +func (t *Template) GetAllAWSCloudTrailTrailResources() map[string]*resources.AWSCloudTrailTrail { + results := map[string]*resources.AWSCloudTrailTrail{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCloudTrailTrail: + case *resources.AWSCloudTrailTrail: results[name] = resource } } @@ -2000,10 +2001,10 @@ func (t *Template) GetAllAWSCloudTrailTrailResources() map[string]*AWSCloudTrail // GetAWSCloudTrailTrailWithName retrieves all AWSCloudTrailTrail items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudTrailTrailWithName(name string) (*AWSCloudTrailTrail, error) { +func (t *Template) GetAWSCloudTrailTrailWithName(name string) (*resources.AWSCloudTrailTrail, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCloudTrailTrail: + case *resources.AWSCloudTrailTrail: return resource, nil } } @@ -2011,11 +2012,11 @@ func (t *Template) GetAWSCloudTrailTrailWithName(name string) (*AWSCloudTrailTra } // GetAllAWSCloudWatchAlarmResources retrieves all AWSCloudWatchAlarm items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudWatchAlarmResources() map[string]*AWSCloudWatchAlarm { - results := map[string]*AWSCloudWatchAlarm{} +func (t *Template) GetAllAWSCloudWatchAlarmResources() map[string]*resources.AWSCloudWatchAlarm { + results := map[string]*resources.AWSCloudWatchAlarm{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCloudWatchAlarm: + case *resources.AWSCloudWatchAlarm: results[name] = resource } } @@ -2024,10 +2025,10 @@ func (t *Template) GetAllAWSCloudWatchAlarmResources() map[string]*AWSCloudWatch // GetAWSCloudWatchAlarmWithName retrieves all AWSCloudWatchAlarm items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudWatchAlarmWithName(name string) (*AWSCloudWatchAlarm, error) { +func (t *Template) GetAWSCloudWatchAlarmWithName(name string) (*resources.AWSCloudWatchAlarm, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCloudWatchAlarm: + case *resources.AWSCloudWatchAlarm: return resource, nil } } @@ -2035,11 +2036,11 @@ func (t *Template) GetAWSCloudWatchAlarmWithName(name string) (*AWSCloudWatchAla } // GetAllAWSCloudWatchDashboardResources retrieves all AWSCloudWatchDashboard items from an AWS CloudFormation template -func (t *Template) GetAllAWSCloudWatchDashboardResources() map[string]*AWSCloudWatchDashboard { - results := map[string]*AWSCloudWatchDashboard{} +func (t *Template) GetAllAWSCloudWatchDashboardResources() map[string]*resources.AWSCloudWatchDashboard { + results := map[string]*resources.AWSCloudWatchDashboard{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCloudWatchDashboard: + case *resources.AWSCloudWatchDashboard: results[name] = resource } } @@ -2048,10 +2049,10 @@ func (t *Template) GetAllAWSCloudWatchDashboardResources() map[string]*AWSCloudW // GetAWSCloudWatchDashboardWithName retrieves all AWSCloudWatchDashboard items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCloudWatchDashboardWithName(name string) (*AWSCloudWatchDashboard, error) { +func (t *Template) GetAWSCloudWatchDashboardWithName(name string) (*resources.AWSCloudWatchDashboard, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCloudWatchDashboard: + case *resources.AWSCloudWatchDashboard: return resource, nil } } @@ -2059,11 +2060,11 @@ func (t *Template) GetAWSCloudWatchDashboardWithName(name string) (*AWSCloudWatc } // GetAllAWSCodeBuildProjectResources retrieves all AWSCodeBuildProject items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodeBuildProjectResources() map[string]*AWSCodeBuildProject { - results := map[string]*AWSCodeBuildProject{} +func (t *Template) GetAllAWSCodeBuildProjectResources() map[string]*resources.AWSCodeBuildProject { + results := map[string]*resources.AWSCodeBuildProject{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCodeBuildProject: + case *resources.AWSCodeBuildProject: results[name] = resource } } @@ -2072,10 +2073,10 @@ func (t *Template) GetAllAWSCodeBuildProjectResources() map[string]*AWSCodeBuild // GetAWSCodeBuildProjectWithName retrieves all AWSCodeBuildProject items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodeBuildProjectWithName(name string) (*AWSCodeBuildProject, error) { +func (t *Template) GetAWSCodeBuildProjectWithName(name string) (*resources.AWSCodeBuildProject, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCodeBuildProject: + case *resources.AWSCodeBuildProject: return resource, nil } } @@ -2083,11 +2084,11 @@ func (t *Template) GetAWSCodeBuildProjectWithName(name string) (*AWSCodeBuildPro } // GetAllAWSCodeCommitRepositoryResources retrieves all AWSCodeCommitRepository items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodeCommitRepositoryResources() map[string]*AWSCodeCommitRepository { - results := map[string]*AWSCodeCommitRepository{} +func (t *Template) GetAllAWSCodeCommitRepositoryResources() map[string]*resources.AWSCodeCommitRepository { + results := map[string]*resources.AWSCodeCommitRepository{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCodeCommitRepository: + case *resources.AWSCodeCommitRepository: results[name] = resource } } @@ -2096,10 +2097,10 @@ func (t *Template) GetAllAWSCodeCommitRepositoryResources() map[string]*AWSCodeC // GetAWSCodeCommitRepositoryWithName retrieves all AWSCodeCommitRepository items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodeCommitRepositoryWithName(name string) (*AWSCodeCommitRepository, error) { +func (t *Template) GetAWSCodeCommitRepositoryWithName(name string) (*resources.AWSCodeCommitRepository, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCodeCommitRepository: + case *resources.AWSCodeCommitRepository: return resource, nil } } @@ -2107,11 +2108,11 @@ func (t *Template) GetAWSCodeCommitRepositoryWithName(name string) (*AWSCodeComm } // GetAllAWSCodeDeployApplicationResources retrieves all AWSCodeDeployApplication items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodeDeployApplicationResources() map[string]*AWSCodeDeployApplication { - results := map[string]*AWSCodeDeployApplication{} +func (t *Template) GetAllAWSCodeDeployApplicationResources() map[string]*resources.AWSCodeDeployApplication { + results := map[string]*resources.AWSCodeDeployApplication{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCodeDeployApplication: + case *resources.AWSCodeDeployApplication: results[name] = resource } } @@ -2120,10 +2121,10 @@ func (t *Template) GetAllAWSCodeDeployApplicationResources() map[string]*AWSCode // GetAWSCodeDeployApplicationWithName retrieves all AWSCodeDeployApplication items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodeDeployApplicationWithName(name string) (*AWSCodeDeployApplication, error) { +func (t *Template) GetAWSCodeDeployApplicationWithName(name string) (*resources.AWSCodeDeployApplication, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCodeDeployApplication: + case *resources.AWSCodeDeployApplication: return resource, nil } } @@ -2131,11 +2132,11 @@ func (t *Template) GetAWSCodeDeployApplicationWithName(name string) (*AWSCodeDep } // GetAllAWSCodeDeployDeploymentConfigResources retrieves all AWSCodeDeployDeploymentConfig items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodeDeployDeploymentConfigResources() map[string]*AWSCodeDeployDeploymentConfig { - results := map[string]*AWSCodeDeployDeploymentConfig{} +func (t *Template) GetAllAWSCodeDeployDeploymentConfigResources() map[string]*resources.AWSCodeDeployDeploymentConfig { + results := map[string]*resources.AWSCodeDeployDeploymentConfig{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCodeDeployDeploymentConfig: + case *resources.AWSCodeDeployDeploymentConfig: results[name] = resource } } @@ -2144,10 +2145,10 @@ func (t *Template) GetAllAWSCodeDeployDeploymentConfigResources() map[string]*AW // GetAWSCodeDeployDeploymentConfigWithName retrieves all AWSCodeDeployDeploymentConfig items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodeDeployDeploymentConfigWithName(name string) (*AWSCodeDeployDeploymentConfig, error) { +func (t *Template) GetAWSCodeDeployDeploymentConfigWithName(name string) (*resources.AWSCodeDeployDeploymentConfig, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCodeDeployDeploymentConfig: + case *resources.AWSCodeDeployDeploymentConfig: return resource, nil } } @@ -2155,11 +2156,11 @@ func (t *Template) GetAWSCodeDeployDeploymentConfigWithName(name string) (*AWSCo } // GetAllAWSCodeDeployDeploymentGroupResources retrieves all AWSCodeDeployDeploymentGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodeDeployDeploymentGroupResources() map[string]*AWSCodeDeployDeploymentGroup { - results := map[string]*AWSCodeDeployDeploymentGroup{} +func (t *Template) GetAllAWSCodeDeployDeploymentGroupResources() map[string]*resources.AWSCodeDeployDeploymentGroup { + results := map[string]*resources.AWSCodeDeployDeploymentGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCodeDeployDeploymentGroup: + case *resources.AWSCodeDeployDeploymentGroup: results[name] = resource } } @@ -2168,10 +2169,10 @@ func (t *Template) GetAllAWSCodeDeployDeploymentGroupResources() map[string]*AWS // GetAWSCodeDeployDeploymentGroupWithName retrieves all AWSCodeDeployDeploymentGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodeDeployDeploymentGroupWithName(name string) (*AWSCodeDeployDeploymentGroup, error) { +func (t *Template) GetAWSCodeDeployDeploymentGroupWithName(name string) (*resources.AWSCodeDeployDeploymentGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCodeDeployDeploymentGroup: + case *resources.AWSCodeDeployDeploymentGroup: return resource, nil } } @@ -2179,11 +2180,11 @@ func (t *Template) GetAWSCodeDeployDeploymentGroupWithName(name string) (*AWSCod } // GetAllAWSCodePipelineCustomActionTypeResources retrieves all AWSCodePipelineCustomActionType items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodePipelineCustomActionTypeResources() map[string]*AWSCodePipelineCustomActionType { - results := map[string]*AWSCodePipelineCustomActionType{} +func (t *Template) GetAllAWSCodePipelineCustomActionTypeResources() map[string]*resources.AWSCodePipelineCustomActionType { + results := map[string]*resources.AWSCodePipelineCustomActionType{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCodePipelineCustomActionType: + case *resources.AWSCodePipelineCustomActionType: results[name] = resource } } @@ -2192,10 +2193,10 @@ func (t *Template) GetAllAWSCodePipelineCustomActionTypeResources() map[string]* // GetAWSCodePipelineCustomActionTypeWithName retrieves all AWSCodePipelineCustomActionType items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodePipelineCustomActionTypeWithName(name string) (*AWSCodePipelineCustomActionType, error) { +func (t *Template) GetAWSCodePipelineCustomActionTypeWithName(name string) (*resources.AWSCodePipelineCustomActionType, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCodePipelineCustomActionType: + case *resources.AWSCodePipelineCustomActionType: return resource, nil } } @@ -2203,11 +2204,11 @@ func (t *Template) GetAWSCodePipelineCustomActionTypeWithName(name string) (*AWS } // GetAllAWSCodePipelinePipelineResources retrieves all AWSCodePipelinePipeline items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodePipelinePipelineResources() map[string]*AWSCodePipelinePipeline { - results := map[string]*AWSCodePipelinePipeline{} +func (t *Template) GetAllAWSCodePipelinePipelineResources() map[string]*resources.AWSCodePipelinePipeline { + results := map[string]*resources.AWSCodePipelinePipeline{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCodePipelinePipeline: + case *resources.AWSCodePipelinePipeline: results[name] = resource } } @@ -2216,10 +2217,10 @@ func (t *Template) GetAllAWSCodePipelinePipelineResources() map[string]*AWSCodeP // GetAWSCodePipelinePipelineWithName retrieves all AWSCodePipelinePipeline items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodePipelinePipelineWithName(name string) (*AWSCodePipelinePipeline, error) { +func (t *Template) GetAWSCodePipelinePipelineWithName(name string) (*resources.AWSCodePipelinePipeline, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCodePipelinePipeline: + case *resources.AWSCodePipelinePipeline: return resource, nil } } @@ -2227,11 +2228,11 @@ func (t *Template) GetAWSCodePipelinePipelineWithName(name string) (*AWSCodePipe } // GetAllAWSCodePipelineWebhookResources retrieves all AWSCodePipelineWebhook items from an AWS CloudFormation template -func (t *Template) GetAllAWSCodePipelineWebhookResources() map[string]*AWSCodePipelineWebhook { - results := map[string]*AWSCodePipelineWebhook{} +func (t *Template) GetAllAWSCodePipelineWebhookResources() map[string]*resources.AWSCodePipelineWebhook { + results := map[string]*resources.AWSCodePipelineWebhook{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCodePipelineWebhook: + case *resources.AWSCodePipelineWebhook: results[name] = resource } } @@ -2240,10 +2241,10 @@ func (t *Template) GetAllAWSCodePipelineWebhookResources() map[string]*AWSCodePi // GetAWSCodePipelineWebhookWithName retrieves all AWSCodePipelineWebhook items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCodePipelineWebhookWithName(name string) (*AWSCodePipelineWebhook, error) { +func (t *Template) GetAWSCodePipelineWebhookWithName(name string) (*resources.AWSCodePipelineWebhook, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCodePipelineWebhook: + case *resources.AWSCodePipelineWebhook: return resource, nil } } @@ -2251,11 +2252,11 @@ func (t *Template) GetAWSCodePipelineWebhookWithName(name string) (*AWSCodePipel } // GetAllAWSCognitoIdentityPoolResources retrieves all AWSCognitoIdentityPool items from an AWS CloudFormation template -func (t *Template) GetAllAWSCognitoIdentityPoolResources() map[string]*AWSCognitoIdentityPool { - results := map[string]*AWSCognitoIdentityPool{} +func (t *Template) GetAllAWSCognitoIdentityPoolResources() map[string]*resources.AWSCognitoIdentityPool { + results := map[string]*resources.AWSCognitoIdentityPool{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCognitoIdentityPool: + case *resources.AWSCognitoIdentityPool: results[name] = resource } } @@ -2264,10 +2265,10 @@ func (t *Template) GetAllAWSCognitoIdentityPoolResources() map[string]*AWSCognit // GetAWSCognitoIdentityPoolWithName retrieves all AWSCognitoIdentityPool items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCognitoIdentityPoolWithName(name string) (*AWSCognitoIdentityPool, error) { +func (t *Template) GetAWSCognitoIdentityPoolWithName(name string) (*resources.AWSCognitoIdentityPool, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCognitoIdentityPool: + case *resources.AWSCognitoIdentityPool: return resource, nil } } @@ -2275,11 +2276,11 @@ func (t *Template) GetAWSCognitoIdentityPoolWithName(name string) (*AWSCognitoId } // GetAllAWSCognitoIdentityPoolRoleAttachmentResources retrieves all AWSCognitoIdentityPoolRoleAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSCognitoIdentityPoolRoleAttachmentResources() map[string]*AWSCognitoIdentityPoolRoleAttachment { - results := map[string]*AWSCognitoIdentityPoolRoleAttachment{} +func (t *Template) GetAllAWSCognitoIdentityPoolRoleAttachmentResources() map[string]*resources.AWSCognitoIdentityPoolRoleAttachment { + results := map[string]*resources.AWSCognitoIdentityPoolRoleAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCognitoIdentityPoolRoleAttachment: + case *resources.AWSCognitoIdentityPoolRoleAttachment: results[name] = resource } } @@ -2288,10 +2289,10 @@ func (t *Template) GetAllAWSCognitoIdentityPoolRoleAttachmentResources() map[str // GetAWSCognitoIdentityPoolRoleAttachmentWithName retrieves all AWSCognitoIdentityPoolRoleAttachment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCognitoIdentityPoolRoleAttachmentWithName(name string) (*AWSCognitoIdentityPoolRoleAttachment, error) { +func (t *Template) GetAWSCognitoIdentityPoolRoleAttachmentWithName(name string) (*resources.AWSCognitoIdentityPoolRoleAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCognitoIdentityPoolRoleAttachment: + case *resources.AWSCognitoIdentityPoolRoleAttachment: return resource, nil } } @@ -2299,11 +2300,11 @@ func (t *Template) GetAWSCognitoIdentityPoolRoleAttachmentWithName(name string) } // GetAllAWSCognitoUserPoolResources retrieves all AWSCognitoUserPool items from an AWS CloudFormation template -func (t *Template) GetAllAWSCognitoUserPoolResources() map[string]*AWSCognitoUserPool { - results := map[string]*AWSCognitoUserPool{} +func (t *Template) GetAllAWSCognitoUserPoolResources() map[string]*resources.AWSCognitoUserPool { + results := map[string]*resources.AWSCognitoUserPool{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCognitoUserPool: + case *resources.AWSCognitoUserPool: results[name] = resource } } @@ -2312,10 +2313,10 @@ func (t *Template) GetAllAWSCognitoUserPoolResources() map[string]*AWSCognitoUse // GetAWSCognitoUserPoolWithName retrieves all AWSCognitoUserPool items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCognitoUserPoolWithName(name string) (*AWSCognitoUserPool, error) { +func (t *Template) GetAWSCognitoUserPoolWithName(name string) (*resources.AWSCognitoUserPool, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCognitoUserPool: + case *resources.AWSCognitoUserPool: return resource, nil } } @@ -2323,11 +2324,11 @@ func (t *Template) GetAWSCognitoUserPoolWithName(name string) (*AWSCognitoUserPo } // GetAllAWSCognitoUserPoolClientResources retrieves all AWSCognitoUserPoolClient items from an AWS CloudFormation template -func (t *Template) GetAllAWSCognitoUserPoolClientResources() map[string]*AWSCognitoUserPoolClient { - results := map[string]*AWSCognitoUserPoolClient{} +func (t *Template) GetAllAWSCognitoUserPoolClientResources() map[string]*resources.AWSCognitoUserPoolClient { + results := map[string]*resources.AWSCognitoUserPoolClient{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCognitoUserPoolClient: + case *resources.AWSCognitoUserPoolClient: results[name] = resource } } @@ -2336,10 +2337,10 @@ func (t *Template) GetAllAWSCognitoUserPoolClientResources() map[string]*AWSCogn // GetAWSCognitoUserPoolClientWithName retrieves all AWSCognitoUserPoolClient items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCognitoUserPoolClientWithName(name string) (*AWSCognitoUserPoolClient, error) { +func (t *Template) GetAWSCognitoUserPoolClientWithName(name string) (*resources.AWSCognitoUserPoolClient, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCognitoUserPoolClient: + case *resources.AWSCognitoUserPoolClient: return resource, nil } } @@ -2347,11 +2348,11 @@ func (t *Template) GetAWSCognitoUserPoolClientWithName(name string) (*AWSCognito } // GetAllAWSCognitoUserPoolGroupResources retrieves all AWSCognitoUserPoolGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSCognitoUserPoolGroupResources() map[string]*AWSCognitoUserPoolGroup { - results := map[string]*AWSCognitoUserPoolGroup{} +func (t *Template) GetAllAWSCognitoUserPoolGroupResources() map[string]*resources.AWSCognitoUserPoolGroup { + results := map[string]*resources.AWSCognitoUserPoolGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCognitoUserPoolGroup: + case *resources.AWSCognitoUserPoolGroup: results[name] = resource } } @@ -2360,10 +2361,10 @@ func (t *Template) GetAllAWSCognitoUserPoolGroupResources() map[string]*AWSCogni // GetAWSCognitoUserPoolGroupWithName retrieves all AWSCognitoUserPoolGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCognitoUserPoolGroupWithName(name string) (*AWSCognitoUserPoolGroup, error) { +func (t *Template) GetAWSCognitoUserPoolGroupWithName(name string) (*resources.AWSCognitoUserPoolGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCognitoUserPoolGroup: + case *resources.AWSCognitoUserPoolGroup: return resource, nil } } @@ -2371,11 +2372,11 @@ func (t *Template) GetAWSCognitoUserPoolGroupWithName(name string) (*AWSCognitoU } // GetAllAWSCognitoUserPoolUserResources retrieves all AWSCognitoUserPoolUser items from an AWS CloudFormation template -func (t *Template) GetAllAWSCognitoUserPoolUserResources() map[string]*AWSCognitoUserPoolUser { - results := map[string]*AWSCognitoUserPoolUser{} +func (t *Template) GetAllAWSCognitoUserPoolUserResources() map[string]*resources.AWSCognitoUserPoolUser { + results := map[string]*resources.AWSCognitoUserPoolUser{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCognitoUserPoolUser: + case *resources.AWSCognitoUserPoolUser: results[name] = resource } } @@ -2384,10 +2385,10 @@ func (t *Template) GetAllAWSCognitoUserPoolUserResources() map[string]*AWSCognit // GetAWSCognitoUserPoolUserWithName retrieves all AWSCognitoUserPoolUser items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCognitoUserPoolUserWithName(name string) (*AWSCognitoUserPoolUser, error) { +func (t *Template) GetAWSCognitoUserPoolUserWithName(name string) (*resources.AWSCognitoUserPoolUser, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCognitoUserPoolUser: + case *resources.AWSCognitoUserPoolUser: return resource, nil } } @@ -2395,11 +2396,11 @@ func (t *Template) GetAWSCognitoUserPoolUserWithName(name string) (*AWSCognitoUs } // GetAllAWSCognitoUserPoolUserToGroupAttachmentResources retrieves all AWSCognitoUserPoolUserToGroupAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSCognitoUserPoolUserToGroupAttachmentResources() map[string]*AWSCognitoUserPoolUserToGroupAttachment { - results := map[string]*AWSCognitoUserPoolUserToGroupAttachment{} +func (t *Template) GetAllAWSCognitoUserPoolUserToGroupAttachmentResources() map[string]*resources.AWSCognitoUserPoolUserToGroupAttachment { + results := map[string]*resources.AWSCognitoUserPoolUserToGroupAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSCognitoUserPoolUserToGroupAttachment: + case *resources.AWSCognitoUserPoolUserToGroupAttachment: results[name] = resource } } @@ -2408,10 +2409,10 @@ func (t *Template) GetAllAWSCognitoUserPoolUserToGroupAttachmentResources() map[ // GetAWSCognitoUserPoolUserToGroupAttachmentWithName retrieves all AWSCognitoUserPoolUserToGroupAttachment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSCognitoUserPoolUserToGroupAttachmentWithName(name string) (*AWSCognitoUserPoolUserToGroupAttachment, error) { +func (t *Template) GetAWSCognitoUserPoolUserToGroupAttachmentWithName(name string) (*resources.AWSCognitoUserPoolUserToGroupAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSCognitoUserPoolUserToGroupAttachment: + case *resources.AWSCognitoUserPoolUserToGroupAttachment: return resource, nil } } @@ -2419,11 +2420,11 @@ func (t *Template) GetAWSCognitoUserPoolUserToGroupAttachmentWithName(name strin } // GetAllAWSConfigAggregationAuthorizationResources retrieves all AWSConfigAggregationAuthorization items from an AWS CloudFormation template -func (t *Template) GetAllAWSConfigAggregationAuthorizationResources() map[string]*AWSConfigAggregationAuthorization { - results := map[string]*AWSConfigAggregationAuthorization{} +func (t *Template) GetAllAWSConfigAggregationAuthorizationResources() map[string]*resources.AWSConfigAggregationAuthorization { + results := map[string]*resources.AWSConfigAggregationAuthorization{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSConfigAggregationAuthorization: + case *resources.AWSConfigAggregationAuthorization: results[name] = resource } } @@ -2432,10 +2433,10 @@ func (t *Template) GetAllAWSConfigAggregationAuthorizationResources() map[string // GetAWSConfigAggregationAuthorizationWithName retrieves all AWSConfigAggregationAuthorization items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSConfigAggregationAuthorizationWithName(name string) (*AWSConfigAggregationAuthorization, error) { +func (t *Template) GetAWSConfigAggregationAuthorizationWithName(name string) (*resources.AWSConfigAggregationAuthorization, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSConfigAggregationAuthorization: + case *resources.AWSConfigAggregationAuthorization: return resource, nil } } @@ -2443,11 +2444,11 @@ func (t *Template) GetAWSConfigAggregationAuthorizationWithName(name string) (*A } // GetAllAWSConfigConfigRuleResources retrieves all AWSConfigConfigRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSConfigConfigRuleResources() map[string]*AWSConfigConfigRule { - results := map[string]*AWSConfigConfigRule{} +func (t *Template) GetAllAWSConfigConfigRuleResources() map[string]*resources.AWSConfigConfigRule { + results := map[string]*resources.AWSConfigConfigRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSConfigConfigRule: + case *resources.AWSConfigConfigRule: results[name] = resource } } @@ -2456,10 +2457,10 @@ func (t *Template) GetAllAWSConfigConfigRuleResources() map[string]*AWSConfigCon // GetAWSConfigConfigRuleWithName retrieves all AWSConfigConfigRule items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSConfigConfigRuleWithName(name string) (*AWSConfigConfigRule, error) { +func (t *Template) GetAWSConfigConfigRuleWithName(name string) (*resources.AWSConfigConfigRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSConfigConfigRule: + case *resources.AWSConfigConfigRule: return resource, nil } } @@ -2467,11 +2468,11 @@ func (t *Template) GetAWSConfigConfigRuleWithName(name string) (*AWSConfigConfig } // GetAllAWSConfigConfigurationAggregatorResources retrieves all AWSConfigConfigurationAggregator items from an AWS CloudFormation template -func (t *Template) GetAllAWSConfigConfigurationAggregatorResources() map[string]*AWSConfigConfigurationAggregator { - results := map[string]*AWSConfigConfigurationAggregator{} +func (t *Template) GetAllAWSConfigConfigurationAggregatorResources() map[string]*resources.AWSConfigConfigurationAggregator { + results := map[string]*resources.AWSConfigConfigurationAggregator{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSConfigConfigurationAggregator: + case *resources.AWSConfigConfigurationAggregator: results[name] = resource } } @@ -2480,10 +2481,10 @@ func (t *Template) GetAllAWSConfigConfigurationAggregatorResources() map[string] // GetAWSConfigConfigurationAggregatorWithName retrieves all AWSConfigConfigurationAggregator items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSConfigConfigurationAggregatorWithName(name string) (*AWSConfigConfigurationAggregator, error) { +func (t *Template) GetAWSConfigConfigurationAggregatorWithName(name string) (*resources.AWSConfigConfigurationAggregator, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSConfigConfigurationAggregator: + case *resources.AWSConfigConfigurationAggregator: return resource, nil } } @@ -2491,11 +2492,11 @@ func (t *Template) GetAWSConfigConfigurationAggregatorWithName(name string) (*AW } // GetAllAWSConfigConfigurationRecorderResources retrieves all AWSConfigConfigurationRecorder items from an AWS CloudFormation template -func (t *Template) GetAllAWSConfigConfigurationRecorderResources() map[string]*AWSConfigConfigurationRecorder { - results := map[string]*AWSConfigConfigurationRecorder{} +func (t *Template) GetAllAWSConfigConfigurationRecorderResources() map[string]*resources.AWSConfigConfigurationRecorder { + results := map[string]*resources.AWSConfigConfigurationRecorder{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSConfigConfigurationRecorder: + case *resources.AWSConfigConfigurationRecorder: results[name] = resource } } @@ -2504,10 +2505,10 @@ func (t *Template) GetAllAWSConfigConfigurationRecorderResources() map[string]*A // GetAWSConfigConfigurationRecorderWithName retrieves all AWSConfigConfigurationRecorder items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSConfigConfigurationRecorderWithName(name string) (*AWSConfigConfigurationRecorder, error) { +func (t *Template) GetAWSConfigConfigurationRecorderWithName(name string) (*resources.AWSConfigConfigurationRecorder, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSConfigConfigurationRecorder: + case *resources.AWSConfigConfigurationRecorder: return resource, nil } } @@ -2515,11 +2516,11 @@ func (t *Template) GetAWSConfigConfigurationRecorderWithName(name string) (*AWSC } // GetAllAWSConfigDeliveryChannelResources retrieves all AWSConfigDeliveryChannel items from an AWS CloudFormation template -func (t *Template) GetAllAWSConfigDeliveryChannelResources() map[string]*AWSConfigDeliveryChannel { - results := map[string]*AWSConfigDeliveryChannel{} +func (t *Template) GetAllAWSConfigDeliveryChannelResources() map[string]*resources.AWSConfigDeliveryChannel { + results := map[string]*resources.AWSConfigDeliveryChannel{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSConfigDeliveryChannel: + case *resources.AWSConfigDeliveryChannel: results[name] = resource } } @@ -2528,10 +2529,10 @@ func (t *Template) GetAllAWSConfigDeliveryChannelResources() map[string]*AWSConf // GetAWSConfigDeliveryChannelWithName retrieves all AWSConfigDeliveryChannel items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSConfigDeliveryChannelWithName(name string) (*AWSConfigDeliveryChannel, error) { +func (t *Template) GetAWSConfigDeliveryChannelWithName(name string) (*resources.AWSConfigDeliveryChannel, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSConfigDeliveryChannel: + case *resources.AWSConfigDeliveryChannel: return resource, nil } } @@ -2539,11 +2540,11 @@ func (t *Template) GetAWSConfigDeliveryChannelWithName(name string) (*AWSConfigD } // GetAllAWSDAXClusterResources retrieves all AWSDAXCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSDAXClusterResources() map[string]*AWSDAXCluster { - results := map[string]*AWSDAXCluster{} +func (t *Template) GetAllAWSDAXClusterResources() map[string]*resources.AWSDAXCluster { + results := map[string]*resources.AWSDAXCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSDAXCluster: + case *resources.AWSDAXCluster: results[name] = resource } } @@ -2552,10 +2553,10 @@ func (t *Template) GetAllAWSDAXClusterResources() map[string]*AWSDAXCluster { // GetAWSDAXClusterWithName retrieves all AWSDAXCluster items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDAXClusterWithName(name string) (*AWSDAXCluster, error) { +func (t *Template) GetAWSDAXClusterWithName(name string) (*resources.AWSDAXCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSDAXCluster: + case *resources.AWSDAXCluster: return resource, nil } } @@ -2563,11 +2564,11 @@ func (t *Template) GetAWSDAXClusterWithName(name string) (*AWSDAXCluster, error) } // GetAllAWSDAXParameterGroupResources retrieves all AWSDAXParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSDAXParameterGroupResources() map[string]*AWSDAXParameterGroup { - results := map[string]*AWSDAXParameterGroup{} +func (t *Template) GetAllAWSDAXParameterGroupResources() map[string]*resources.AWSDAXParameterGroup { + results := map[string]*resources.AWSDAXParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSDAXParameterGroup: + case *resources.AWSDAXParameterGroup: results[name] = resource } } @@ -2576,10 +2577,10 @@ func (t *Template) GetAllAWSDAXParameterGroupResources() map[string]*AWSDAXParam // GetAWSDAXParameterGroupWithName retrieves all AWSDAXParameterGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDAXParameterGroupWithName(name string) (*AWSDAXParameterGroup, error) { +func (t *Template) GetAWSDAXParameterGroupWithName(name string) (*resources.AWSDAXParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSDAXParameterGroup: + case *resources.AWSDAXParameterGroup: return resource, nil } } @@ -2587,11 +2588,11 @@ func (t *Template) GetAWSDAXParameterGroupWithName(name string) (*AWSDAXParamete } // GetAllAWSDAXSubnetGroupResources retrieves all AWSDAXSubnetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSDAXSubnetGroupResources() map[string]*AWSDAXSubnetGroup { - results := map[string]*AWSDAXSubnetGroup{} +func (t *Template) GetAllAWSDAXSubnetGroupResources() map[string]*resources.AWSDAXSubnetGroup { + results := map[string]*resources.AWSDAXSubnetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSDAXSubnetGroup: + case *resources.AWSDAXSubnetGroup: results[name] = resource } } @@ -2600,10 +2601,10 @@ func (t *Template) GetAllAWSDAXSubnetGroupResources() map[string]*AWSDAXSubnetGr // GetAWSDAXSubnetGroupWithName retrieves all AWSDAXSubnetGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDAXSubnetGroupWithName(name string) (*AWSDAXSubnetGroup, error) { +func (t *Template) GetAWSDAXSubnetGroupWithName(name string) (*resources.AWSDAXSubnetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSDAXSubnetGroup: + case *resources.AWSDAXSubnetGroup: return resource, nil } } @@ -2611,11 +2612,11 @@ func (t *Template) GetAWSDAXSubnetGroupWithName(name string) (*AWSDAXSubnetGroup } // GetAllAWSDLMLifecyclePolicyResources retrieves all AWSDLMLifecyclePolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSDLMLifecyclePolicyResources() map[string]*AWSDLMLifecyclePolicy { - results := map[string]*AWSDLMLifecyclePolicy{} +func (t *Template) GetAllAWSDLMLifecyclePolicyResources() map[string]*resources.AWSDLMLifecyclePolicy { + results := map[string]*resources.AWSDLMLifecyclePolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSDLMLifecyclePolicy: + case *resources.AWSDLMLifecyclePolicy: results[name] = resource } } @@ -2624,10 +2625,10 @@ func (t *Template) GetAllAWSDLMLifecyclePolicyResources() map[string]*AWSDLMLife // GetAWSDLMLifecyclePolicyWithName retrieves all AWSDLMLifecyclePolicy items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDLMLifecyclePolicyWithName(name string) (*AWSDLMLifecyclePolicy, error) { +func (t *Template) GetAWSDLMLifecyclePolicyWithName(name string) (*resources.AWSDLMLifecyclePolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSDLMLifecyclePolicy: + case *resources.AWSDLMLifecyclePolicy: return resource, nil } } @@ -2635,11 +2636,11 @@ func (t *Template) GetAWSDLMLifecyclePolicyWithName(name string) (*AWSDLMLifecyc } // GetAllAWSDMSCertificateResources retrieves all AWSDMSCertificate items from an AWS CloudFormation template -func (t *Template) GetAllAWSDMSCertificateResources() map[string]*AWSDMSCertificate { - results := map[string]*AWSDMSCertificate{} +func (t *Template) GetAllAWSDMSCertificateResources() map[string]*resources.AWSDMSCertificate { + results := map[string]*resources.AWSDMSCertificate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSDMSCertificate: + case *resources.AWSDMSCertificate: results[name] = resource } } @@ -2648,10 +2649,10 @@ func (t *Template) GetAllAWSDMSCertificateResources() map[string]*AWSDMSCertific // GetAWSDMSCertificateWithName retrieves all AWSDMSCertificate items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDMSCertificateWithName(name string) (*AWSDMSCertificate, error) { +func (t *Template) GetAWSDMSCertificateWithName(name string) (*resources.AWSDMSCertificate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSDMSCertificate: + case *resources.AWSDMSCertificate: return resource, nil } } @@ -2659,11 +2660,11 @@ func (t *Template) GetAWSDMSCertificateWithName(name string) (*AWSDMSCertificate } // GetAllAWSDMSEndpointResources retrieves all AWSDMSEndpoint items from an AWS CloudFormation template -func (t *Template) GetAllAWSDMSEndpointResources() map[string]*AWSDMSEndpoint { - results := map[string]*AWSDMSEndpoint{} +func (t *Template) GetAllAWSDMSEndpointResources() map[string]*resources.AWSDMSEndpoint { + results := map[string]*resources.AWSDMSEndpoint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSDMSEndpoint: + case *resources.AWSDMSEndpoint: results[name] = resource } } @@ -2672,10 +2673,10 @@ func (t *Template) GetAllAWSDMSEndpointResources() map[string]*AWSDMSEndpoint { // GetAWSDMSEndpointWithName retrieves all AWSDMSEndpoint items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDMSEndpointWithName(name string) (*AWSDMSEndpoint, error) { +func (t *Template) GetAWSDMSEndpointWithName(name string) (*resources.AWSDMSEndpoint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSDMSEndpoint: + case *resources.AWSDMSEndpoint: return resource, nil } } @@ -2683,11 +2684,11 @@ func (t *Template) GetAWSDMSEndpointWithName(name string) (*AWSDMSEndpoint, erro } // GetAllAWSDMSEventSubscriptionResources retrieves all AWSDMSEventSubscription items from an AWS CloudFormation template -func (t *Template) GetAllAWSDMSEventSubscriptionResources() map[string]*AWSDMSEventSubscription { - results := map[string]*AWSDMSEventSubscription{} +func (t *Template) GetAllAWSDMSEventSubscriptionResources() map[string]*resources.AWSDMSEventSubscription { + results := map[string]*resources.AWSDMSEventSubscription{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSDMSEventSubscription: + case *resources.AWSDMSEventSubscription: results[name] = resource } } @@ -2696,10 +2697,10 @@ func (t *Template) GetAllAWSDMSEventSubscriptionResources() map[string]*AWSDMSEv // GetAWSDMSEventSubscriptionWithName retrieves all AWSDMSEventSubscription items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDMSEventSubscriptionWithName(name string) (*AWSDMSEventSubscription, error) { +func (t *Template) GetAWSDMSEventSubscriptionWithName(name string) (*resources.AWSDMSEventSubscription, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSDMSEventSubscription: + case *resources.AWSDMSEventSubscription: return resource, nil } } @@ -2707,11 +2708,11 @@ func (t *Template) GetAWSDMSEventSubscriptionWithName(name string) (*AWSDMSEvent } // GetAllAWSDMSReplicationInstanceResources retrieves all AWSDMSReplicationInstance items from an AWS CloudFormation template -func (t *Template) GetAllAWSDMSReplicationInstanceResources() map[string]*AWSDMSReplicationInstance { - results := map[string]*AWSDMSReplicationInstance{} +func (t *Template) GetAllAWSDMSReplicationInstanceResources() map[string]*resources.AWSDMSReplicationInstance { + results := map[string]*resources.AWSDMSReplicationInstance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSDMSReplicationInstance: + case *resources.AWSDMSReplicationInstance: results[name] = resource } } @@ -2720,10 +2721,10 @@ func (t *Template) GetAllAWSDMSReplicationInstanceResources() map[string]*AWSDMS // GetAWSDMSReplicationInstanceWithName retrieves all AWSDMSReplicationInstance items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDMSReplicationInstanceWithName(name string) (*AWSDMSReplicationInstance, error) { +func (t *Template) GetAWSDMSReplicationInstanceWithName(name string) (*resources.AWSDMSReplicationInstance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSDMSReplicationInstance: + case *resources.AWSDMSReplicationInstance: return resource, nil } } @@ -2731,11 +2732,11 @@ func (t *Template) GetAWSDMSReplicationInstanceWithName(name string) (*AWSDMSRep } // GetAllAWSDMSReplicationSubnetGroupResources retrieves all AWSDMSReplicationSubnetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSDMSReplicationSubnetGroupResources() map[string]*AWSDMSReplicationSubnetGroup { - results := map[string]*AWSDMSReplicationSubnetGroup{} +func (t *Template) GetAllAWSDMSReplicationSubnetGroupResources() map[string]*resources.AWSDMSReplicationSubnetGroup { + results := map[string]*resources.AWSDMSReplicationSubnetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSDMSReplicationSubnetGroup: + case *resources.AWSDMSReplicationSubnetGroup: results[name] = resource } } @@ -2744,10 +2745,10 @@ func (t *Template) GetAllAWSDMSReplicationSubnetGroupResources() map[string]*AWS // GetAWSDMSReplicationSubnetGroupWithName retrieves all AWSDMSReplicationSubnetGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDMSReplicationSubnetGroupWithName(name string) (*AWSDMSReplicationSubnetGroup, error) { +func (t *Template) GetAWSDMSReplicationSubnetGroupWithName(name string) (*resources.AWSDMSReplicationSubnetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSDMSReplicationSubnetGroup: + case *resources.AWSDMSReplicationSubnetGroup: return resource, nil } } @@ -2755,11 +2756,11 @@ func (t *Template) GetAWSDMSReplicationSubnetGroupWithName(name string) (*AWSDMS } // GetAllAWSDMSReplicationTaskResources retrieves all AWSDMSReplicationTask items from an AWS CloudFormation template -func (t *Template) GetAllAWSDMSReplicationTaskResources() map[string]*AWSDMSReplicationTask { - results := map[string]*AWSDMSReplicationTask{} +func (t *Template) GetAllAWSDMSReplicationTaskResources() map[string]*resources.AWSDMSReplicationTask { + results := map[string]*resources.AWSDMSReplicationTask{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSDMSReplicationTask: + case *resources.AWSDMSReplicationTask: results[name] = resource } } @@ -2768,10 +2769,10 @@ func (t *Template) GetAllAWSDMSReplicationTaskResources() map[string]*AWSDMSRepl // GetAWSDMSReplicationTaskWithName retrieves all AWSDMSReplicationTask items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDMSReplicationTaskWithName(name string) (*AWSDMSReplicationTask, error) { +func (t *Template) GetAWSDMSReplicationTaskWithName(name string) (*resources.AWSDMSReplicationTask, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSDMSReplicationTask: + case *resources.AWSDMSReplicationTask: return resource, nil } } @@ -2779,11 +2780,11 @@ func (t *Template) GetAWSDMSReplicationTaskWithName(name string) (*AWSDMSReplica } // GetAllAWSDataPipelinePipelineResources retrieves all AWSDataPipelinePipeline items from an AWS CloudFormation template -func (t *Template) GetAllAWSDataPipelinePipelineResources() map[string]*AWSDataPipelinePipeline { - results := map[string]*AWSDataPipelinePipeline{} +func (t *Template) GetAllAWSDataPipelinePipelineResources() map[string]*resources.AWSDataPipelinePipeline { + results := map[string]*resources.AWSDataPipelinePipeline{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSDataPipelinePipeline: + case *resources.AWSDataPipelinePipeline: results[name] = resource } } @@ -2792,10 +2793,10 @@ func (t *Template) GetAllAWSDataPipelinePipelineResources() map[string]*AWSDataP // GetAWSDataPipelinePipelineWithName retrieves all AWSDataPipelinePipeline items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDataPipelinePipelineWithName(name string) (*AWSDataPipelinePipeline, error) { +func (t *Template) GetAWSDataPipelinePipelineWithName(name string) (*resources.AWSDataPipelinePipeline, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSDataPipelinePipeline: + case *resources.AWSDataPipelinePipeline: return resource, nil } } @@ -2803,11 +2804,11 @@ func (t *Template) GetAWSDataPipelinePipelineWithName(name string) (*AWSDataPipe } // GetAllAWSDirectoryServiceMicrosoftADResources retrieves all AWSDirectoryServiceMicrosoftAD items from an AWS CloudFormation template -func (t *Template) GetAllAWSDirectoryServiceMicrosoftADResources() map[string]*AWSDirectoryServiceMicrosoftAD { - results := map[string]*AWSDirectoryServiceMicrosoftAD{} +func (t *Template) GetAllAWSDirectoryServiceMicrosoftADResources() map[string]*resources.AWSDirectoryServiceMicrosoftAD { + results := map[string]*resources.AWSDirectoryServiceMicrosoftAD{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSDirectoryServiceMicrosoftAD: + case *resources.AWSDirectoryServiceMicrosoftAD: results[name] = resource } } @@ -2816,10 +2817,10 @@ func (t *Template) GetAllAWSDirectoryServiceMicrosoftADResources() map[string]*A // GetAWSDirectoryServiceMicrosoftADWithName retrieves all AWSDirectoryServiceMicrosoftAD items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDirectoryServiceMicrosoftADWithName(name string) (*AWSDirectoryServiceMicrosoftAD, error) { +func (t *Template) GetAWSDirectoryServiceMicrosoftADWithName(name string) (*resources.AWSDirectoryServiceMicrosoftAD, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSDirectoryServiceMicrosoftAD: + case *resources.AWSDirectoryServiceMicrosoftAD: return resource, nil } } @@ -2827,11 +2828,11 @@ func (t *Template) GetAWSDirectoryServiceMicrosoftADWithName(name string) (*AWSD } // GetAllAWSDirectoryServiceSimpleADResources retrieves all AWSDirectoryServiceSimpleAD items from an AWS CloudFormation template -func (t *Template) GetAllAWSDirectoryServiceSimpleADResources() map[string]*AWSDirectoryServiceSimpleAD { - results := map[string]*AWSDirectoryServiceSimpleAD{} +func (t *Template) GetAllAWSDirectoryServiceSimpleADResources() map[string]*resources.AWSDirectoryServiceSimpleAD { + results := map[string]*resources.AWSDirectoryServiceSimpleAD{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSDirectoryServiceSimpleAD: + case *resources.AWSDirectoryServiceSimpleAD: results[name] = resource } } @@ -2840,10 +2841,10 @@ func (t *Template) GetAllAWSDirectoryServiceSimpleADResources() map[string]*AWSD // GetAWSDirectoryServiceSimpleADWithName retrieves all AWSDirectoryServiceSimpleAD items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDirectoryServiceSimpleADWithName(name string) (*AWSDirectoryServiceSimpleAD, error) { +func (t *Template) GetAWSDirectoryServiceSimpleADWithName(name string) (*resources.AWSDirectoryServiceSimpleAD, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSDirectoryServiceSimpleAD: + case *resources.AWSDirectoryServiceSimpleAD: return resource, nil } } @@ -2851,11 +2852,11 @@ func (t *Template) GetAWSDirectoryServiceSimpleADWithName(name string) (*AWSDire } // GetAllAWSDocDBDBClusterResources retrieves all AWSDocDBDBCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSDocDBDBClusterResources() map[string]*AWSDocDBDBCluster { - results := map[string]*AWSDocDBDBCluster{} +func (t *Template) GetAllAWSDocDBDBClusterResources() map[string]*resources.AWSDocDBDBCluster { + results := map[string]*resources.AWSDocDBDBCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSDocDBDBCluster: + case *resources.AWSDocDBDBCluster: results[name] = resource } } @@ -2864,10 +2865,10 @@ func (t *Template) GetAllAWSDocDBDBClusterResources() map[string]*AWSDocDBDBClus // GetAWSDocDBDBClusterWithName retrieves all AWSDocDBDBCluster items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDocDBDBClusterWithName(name string) (*AWSDocDBDBCluster, error) { +func (t *Template) GetAWSDocDBDBClusterWithName(name string) (*resources.AWSDocDBDBCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSDocDBDBCluster: + case *resources.AWSDocDBDBCluster: return resource, nil } } @@ -2875,11 +2876,11 @@ func (t *Template) GetAWSDocDBDBClusterWithName(name string) (*AWSDocDBDBCluster } // GetAllAWSDocDBDBClusterParameterGroupResources retrieves all AWSDocDBDBClusterParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSDocDBDBClusterParameterGroupResources() map[string]*AWSDocDBDBClusterParameterGroup { - results := map[string]*AWSDocDBDBClusterParameterGroup{} +func (t *Template) GetAllAWSDocDBDBClusterParameterGroupResources() map[string]*resources.AWSDocDBDBClusterParameterGroup { + results := map[string]*resources.AWSDocDBDBClusterParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSDocDBDBClusterParameterGroup: + case *resources.AWSDocDBDBClusterParameterGroup: results[name] = resource } } @@ -2888,10 +2889,10 @@ func (t *Template) GetAllAWSDocDBDBClusterParameterGroupResources() map[string]* // GetAWSDocDBDBClusterParameterGroupWithName retrieves all AWSDocDBDBClusterParameterGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDocDBDBClusterParameterGroupWithName(name string) (*AWSDocDBDBClusterParameterGroup, error) { +func (t *Template) GetAWSDocDBDBClusterParameterGroupWithName(name string) (*resources.AWSDocDBDBClusterParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSDocDBDBClusterParameterGroup: + case *resources.AWSDocDBDBClusterParameterGroup: return resource, nil } } @@ -2899,11 +2900,11 @@ func (t *Template) GetAWSDocDBDBClusterParameterGroupWithName(name string) (*AWS } // GetAllAWSDocDBDBInstanceResources retrieves all AWSDocDBDBInstance items from an AWS CloudFormation template -func (t *Template) GetAllAWSDocDBDBInstanceResources() map[string]*AWSDocDBDBInstance { - results := map[string]*AWSDocDBDBInstance{} +func (t *Template) GetAllAWSDocDBDBInstanceResources() map[string]*resources.AWSDocDBDBInstance { + results := map[string]*resources.AWSDocDBDBInstance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSDocDBDBInstance: + case *resources.AWSDocDBDBInstance: results[name] = resource } } @@ -2912,10 +2913,10 @@ func (t *Template) GetAllAWSDocDBDBInstanceResources() map[string]*AWSDocDBDBIns // GetAWSDocDBDBInstanceWithName retrieves all AWSDocDBDBInstance items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDocDBDBInstanceWithName(name string) (*AWSDocDBDBInstance, error) { +func (t *Template) GetAWSDocDBDBInstanceWithName(name string) (*resources.AWSDocDBDBInstance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSDocDBDBInstance: + case *resources.AWSDocDBDBInstance: return resource, nil } } @@ -2923,11 +2924,11 @@ func (t *Template) GetAWSDocDBDBInstanceWithName(name string) (*AWSDocDBDBInstan } // GetAllAWSDocDBDBSubnetGroupResources retrieves all AWSDocDBDBSubnetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSDocDBDBSubnetGroupResources() map[string]*AWSDocDBDBSubnetGroup { - results := map[string]*AWSDocDBDBSubnetGroup{} +func (t *Template) GetAllAWSDocDBDBSubnetGroupResources() map[string]*resources.AWSDocDBDBSubnetGroup { + results := map[string]*resources.AWSDocDBDBSubnetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSDocDBDBSubnetGroup: + case *resources.AWSDocDBDBSubnetGroup: results[name] = resource } } @@ -2936,10 +2937,10 @@ func (t *Template) GetAllAWSDocDBDBSubnetGroupResources() map[string]*AWSDocDBDB // GetAWSDocDBDBSubnetGroupWithName retrieves all AWSDocDBDBSubnetGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDocDBDBSubnetGroupWithName(name string) (*AWSDocDBDBSubnetGroup, error) { +func (t *Template) GetAWSDocDBDBSubnetGroupWithName(name string) (*resources.AWSDocDBDBSubnetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSDocDBDBSubnetGroup: + case *resources.AWSDocDBDBSubnetGroup: return resource, nil } } @@ -2947,11 +2948,11 @@ func (t *Template) GetAWSDocDBDBSubnetGroupWithName(name string) (*AWSDocDBDBSub } // GetAllAWSDynamoDBTableResources retrieves all AWSDynamoDBTable items from an AWS CloudFormation template -func (t *Template) GetAllAWSDynamoDBTableResources() map[string]*AWSDynamoDBTable { - results := map[string]*AWSDynamoDBTable{} +func (t *Template) GetAllAWSDynamoDBTableResources() map[string]*resources.AWSDynamoDBTable { + results := map[string]*resources.AWSDynamoDBTable{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSDynamoDBTable: + case *resources.AWSDynamoDBTable: results[name] = resource } } @@ -2960,10 +2961,10 @@ func (t *Template) GetAllAWSDynamoDBTableResources() map[string]*AWSDynamoDBTabl // GetAWSDynamoDBTableWithName retrieves all AWSDynamoDBTable items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSDynamoDBTableWithName(name string) (*AWSDynamoDBTable, error) { +func (t *Template) GetAWSDynamoDBTableWithName(name string) (*resources.AWSDynamoDBTable, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSDynamoDBTable: + case *resources.AWSDynamoDBTable: return resource, nil } } @@ -2971,11 +2972,11 @@ func (t *Template) GetAWSDynamoDBTableWithName(name string) (*AWSDynamoDBTable, } // GetAllAWSEC2CustomerGatewayResources retrieves all AWSEC2CustomerGateway items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2CustomerGatewayResources() map[string]*AWSEC2CustomerGateway { - results := map[string]*AWSEC2CustomerGateway{} +func (t *Template) GetAllAWSEC2CustomerGatewayResources() map[string]*resources.AWSEC2CustomerGateway { + results := map[string]*resources.AWSEC2CustomerGateway{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2CustomerGateway: + case *resources.AWSEC2CustomerGateway: results[name] = resource } } @@ -2984,10 +2985,10 @@ func (t *Template) GetAllAWSEC2CustomerGatewayResources() map[string]*AWSEC2Cust // GetAWSEC2CustomerGatewayWithName retrieves all AWSEC2CustomerGateway items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2CustomerGatewayWithName(name string) (*AWSEC2CustomerGateway, error) { +func (t *Template) GetAWSEC2CustomerGatewayWithName(name string) (*resources.AWSEC2CustomerGateway, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2CustomerGateway: + case *resources.AWSEC2CustomerGateway: return resource, nil } } @@ -2995,11 +2996,11 @@ func (t *Template) GetAWSEC2CustomerGatewayWithName(name string) (*AWSEC2Custome } // GetAllAWSEC2DHCPOptionsResources retrieves all AWSEC2DHCPOptions items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2DHCPOptionsResources() map[string]*AWSEC2DHCPOptions { - results := map[string]*AWSEC2DHCPOptions{} +func (t *Template) GetAllAWSEC2DHCPOptionsResources() map[string]*resources.AWSEC2DHCPOptions { + results := map[string]*resources.AWSEC2DHCPOptions{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2DHCPOptions: + case *resources.AWSEC2DHCPOptions: results[name] = resource } } @@ -3008,10 +3009,10 @@ func (t *Template) GetAllAWSEC2DHCPOptionsResources() map[string]*AWSEC2DHCPOpti // GetAWSEC2DHCPOptionsWithName retrieves all AWSEC2DHCPOptions items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2DHCPOptionsWithName(name string) (*AWSEC2DHCPOptions, error) { +func (t *Template) GetAWSEC2DHCPOptionsWithName(name string) (*resources.AWSEC2DHCPOptions, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2DHCPOptions: + case *resources.AWSEC2DHCPOptions: return resource, nil } } @@ -3019,11 +3020,11 @@ func (t *Template) GetAWSEC2DHCPOptionsWithName(name string) (*AWSEC2DHCPOptions } // GetAllAWSEC2EC2FleetResources retrieves all AWSEC2EC2Fleet items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2EC2FleetResources() map[string]*AWSEC2EC2Fleet { - results := map[string]*AWSEC2EC2Fleet{} +func (t *Template) GetAllAWSEC2EC2FleetResources() map[string]*resources.AWSEC2EC2Fleet { + results := map[string]*resources.AWSEC2EC2Fleet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2EC2Fleet: + case *resources.AWSEC2EC2Fleet: results[name] = resource } } @@ -3032,10 +3033,10 @@ func (t *Template) GetAllAWSEC2EC2FleetResources() map[string]*AWSEC2EC2Fleet { // GetAWSEC2EC2FleetWithName retrieves all AWSEC2EC2Fleet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2EC2FleetWithName(name string) (*AWSEC2EC2Fleet, error) { +func (t *Template) GetAWSEC2EC2FleetWithName(name string) (*resources.AWSEC2EC2Fleet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2EC2Fleet: + case *resources.AWSEC2EC2Fleet: return resource, nil } } @@ -3043,11 +3044,11 @@ func (t *Template) GetAWSEC2EC2FleetWithName(name string) (*AWSEC2EC2Fleet, erro } // GetAllAWSEC2EIPResources retrieves all AWSEC2EIP items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2EIPResources() map[string]*AWSEC2EIP { - results := map[string]*AWSEC2EIP{} +func (t *Template) GetAllAWSEC2EIPResources() map[string]*resources.AWSEC2EIP { + results := map[string]*resources.AWSEC2EIP{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2EIP: + case *resources.AWSEC2EIP: results[name] = resource } } @@ -3056,10 +3057,10 @@ func (t *Template) GetAllAWSEC2EIPResources() map[string]*AWSEC2EIP { // GetAWSEC2EIPWithName retrieves all AWSEC2EIP items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2EIPWithName(name string) (*AWSEC2EIP, error) { +func (t *Template) GetAWSEC2EIPWithName(name string) (*resources.AWSEC2EIP, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2EIP: + case *resources.AWSEC2EIP: return resource, nil } } @@ -3067,11 +3068,11 @@ func (t *Template) GetAWSEC2EIPWithName(name string) (*AWSEC2EIP, error) { } // GetAllAWSEC2EIPAssociationResources retrieves all AWSEC2EIPAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2EIPAssociationResources() map[string]*AWSEC2EIPAssociation { - results := map[string]*AWSEC2EIPAssociation{} +func (t *Template) GetAllAWSEC2EIPAssociationResources() map[string]*resources.AWSEC2EIPAssociation { + results := map[string]*resources.AWSEC2EIPAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2EIPAssociation: + case *resources.AWSEC2EIPAssociation: results[name] = resource } } @@ -3080,10 +3081,10 @@ func (t *Template) GetAllAWSEC2EIPAssociationResources() map[string]*AWSEC2EIPAs // GetAWSEC2EIPAssociationWithName retrieves all AWSEC2EIPAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2EIPAssociationWithName(name string) (*AWSEC2EIPAssociation, error) { +func (t *Template) GetAWSEC2EIPAssociationWithName(name string) (*resources.AWSEC2EIPAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2EIPAssociation: + case *resources.AWSEC2EIPAssociation: return resource, nil } } @@ -3091,11 +3092,11 @@ func (t *Template) GetAWSEC2EIPAssociationWithName(name string) (*AWSEC2EIPAssoc } // GetAllAWSEC2EgressOnlyInternetGatewayResources retrieves all AWSEC2EgressOnlyInternetGateway items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2EgressOnlyInternetGatewayResources() map[string]*AWSEC2EgressOnlyInternetGateway { - results := map[string]*AWSEC2EgressOnlyInternetGateway{} +func (t *Template) GetAllAWSEC2EgressOnlyInternetGatewayResources() map[string]*resources.AWSEC2EgressOnlyInternetGateway { + results := map[string]*resources.AWSEC2EgressOnlyInternetGateway{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2EgressOnlyInternetGateway: + case *resources.AWSEC2EgressOnlyInternetGateway: results[name] = resource } } @@ -3104,10 +3105,10 @@ func (t *Template) GetAllAWSEC2EgressOnlyInternetGatewayResources() map[string]* // GetAWSEC2EgressOnlyInternetGatewayWithName retrieves all AWSEC2EgressOnlyInternetGateway items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2EgressOnlyInternetGatewayWithName(name string) (*AWSEC2EgressOnlyInternetGateway, error) { +func (t *Template) GetAWSEC2EgressOnlyInternetGatewayWithName(name string) (*resources.AWSEC2EgressOnlyInternetGateway, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2EgressOnlyInternetGateway: + case *resources.AWSEC2EgressOnlyInternetGateway: return resource, nil } } @@ -3115,11 +3116,11 @@ func (t *Template) GetAWSEC2EgressOnlyInternetGatewayWithName(name string) (*AWS } // GetAllAWSEC2FlowLogResources retrieves all AWSEC2FlowLog items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2FlowLogResources() map[string]*AWSEC2FlowLog { - results := map[string]*AWSEC2FlowLog{} +func (t *Template) GetAllAWSEC2FlowLogResources() map[string]*resources.AWSEC2FlowLog { + results := map[string]*resources.AWSEC2FlowLog{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2FlowLog: + case *resources.AWSEC2FlowLog: results[name] = resource } } @@ -3128,10 +3129,10 @@ func (t *Template) GetAllAWSEC2FlowLogResources() map[string]*AWSEC2FlowLog { // GetAWSEC2FlowLogWithName retrieves all AWSEC2FlowLog items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2FlowLogWithName(name string) (*AWSEC2FlowLog, error) { +func (t *Template) GetAWSEC2FlowLogWithName(name string) (*resources.AWSEC2FlowLog, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2FlowLog: + case *resources.AWSEC2FlowLog: return resource, nil } } @@ -3139,11 +3140,11 @@ func (t *Template) GetAWSEC2FlowLogWithName(name string) (*AWSEC2FlowLog, error) } // GetAllAWSEC2HostResources retrieves all AWSEC2Host items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2HostResources() map[string]*AWSEC2Host { - results := map[string]*AWSEC2Host{} +func (t *Template) GetAllAWSEC2HostResources() map[string]*resources.AWSEC2Host { + results := map[string]*resources.AWSEC2Host{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2Host: + case *resources.AWSEC2Host: results[name] = resource } } @@ -3152,10 +3153,10 @@ func (t *Template) GetAllAWSEC2HostResources() map[string]*AWSEC2Host { // GetAWSEC2HostWithName retrieves all AWSEC2Host items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2HostWithName(name string) (*AWSEC2Host, error) { +func (t *Template) GetAWSEC2HostWithName(name string) (*resources.AWSEC2Host, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2Host: + case *resources.AWSEC2Host: return resource, nil } } @@ -3163,11 +3164,11 @@ func (t *Template) GetAWSEC2HostWithName(name string) (*AWSEC2Host, error) { } // GetAllAWSEC2InstanceResources retrieves all AWSEC2Instance items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2InstanceResources() map[string]*AWSEC2Instance { - results := map[string]*AWSEC2Instance{} +func (t *Template) GetAllAWSEC2InstanceResources() map[string]*resources.AWSEC2Instance { + results := map[string]*resources.AWSEC2Instance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2Instance: + case *resources.AWSEC2Instance: results[name] = resource } } @@ -3176,10 +3177,10 @@ func (t *Template) GetAllAWSEC2InstanceResources() map[string]*AWSEC2Instance { // GetAWSEC2InstanceWithName retrieves all AWSEC2Instance items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2InstanceWithName(name string) (*AWSEC2Instance, error) { +func (t *Template) GetAWSEC2InstanceWithName(name string) (*resources.AWSEC2Instance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2Instance: + case *resources.AWSEC2Instance: return resource, nil } } @@ -3187,11 +3188,11 @@ func (t *Template) GetAWSEC2InstanceWithName(name string) (*AWSEC2Instance, erro } // GetAllAWSEC2InternetGatewayResources retrieves all AWSEC2InternetGateway items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2InternetGatewayResources() map[string]*AWSEC2InternetGateway { - results := map[string]*AWSEC2InternetGateway{} +func (t *Template) GetAllAWSEC2InternetGatewayResources() map[string]*resources.AWSEC2InternetGateway { + results := map[string]*resources.AWSEC2InternetGateway{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2InternetGateway: + case *resources.AWSEC2InternetGateway: results[name] = resource } } @@ -3200,10 +3201,10 @@ func (t *Template) GetAllAWSEC2InternetGatewayResources() map[string]*AWSEC2Inte // GetAWSEC2InternetGatewayWithName retrieves all AWSEC2InternetGateway items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2InternetGatewayWithName(name string) (*AWSEC2InternetGateway, error) { +func (t *Template) GetAWSEC2InternetGatewayWithName(name string) (*resources.AWSEC2InternetGateway, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2InternetGateway: + case *resources.AWSEC2InternetGateway: return resource, nil } } @@ -3211,11 +3212,11 @@ func (t *Template) GetAWSEC2InternetGatewayWithName(name string) (*AWSEC2Interne } // GetAllAWSEC2LaunchTemplateResources retrieves all AWSEC2LaunchTemplate items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2LaunchTemplateResources() map[string]*AWSEC2LaunchTemplate { - results := map[string]*AWSEC2LaunchTemplate{} +func (t *Template) GetAllAWSEC2LaunchTemplateResources() map[string]*resources.AWSEC2LaunchTemplate { + results := map[string]*resources.AWSEC2LaunchTemplate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2LaunchTemplate: + case *resources.AWSEC2LaunchTemplate: results[name] = resource } } @@ -3224,10 +3225,10 @@ func (t *Template) GetAllAWSEC2LaunchTemplateResources() map[string]*AWSEC2Launc // GetAWSEC2LaunchTemplateWithName retrieves all AWSEC2LaunchTemplate items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2LaunchTemplateWithName(name string) (*AWSEC2LaunchTemplate, error) { +func (t *Template) GetAWSEC2LaunchTemplateWithName(name string) (*resources.AWSEC2LaunchTemplate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2LaunchTemplate: + case *resources.AWSEC2LaunchTemplate: return resource, nil } } @@ -3235,11 +3236,11 @@ func (t *Template) GetAWSEC2LaunchTemplateWithName(name string) (*AWSEC2LaunchTe } // GetAllAWSEC2NatGatewayResources retrieves all AWSEC2NatGateway items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2NatGatewayResources() map[string]*AWSEC2NatGateway { - results := map[string]*AWSEC2NatGateway{} +func (t *Template) GetAllAWSEC2NatGatewayResources() map[string]*resources.AWSEC2NatGateway { + results := map[string]*resources.AWSEC2NatGateway{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2NatGateway: + case *resources.AWSEC2NatGateway: results[name] = resource } } @@ -3248,10 +3249,10 @@ func (t *Template) GetAllAWSEC2NatGatewayResources() map[string]*AWSEC2NatGatewa // GetAWSEC2NatGatewayWithName retrieves all AWSEC2NatGateway items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2NatGatewayWithName(name string) (*AWSEC2NatGateway, error) { +func (t *Template) GetAWSEC2NatGatewayWithName(name string) (*resources.AWSEC2NatGateway, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2NatGateway: + case *resources.AWSEC2NatGateway: return resource, nil } } @@ -3259,11 +3260,11 @@ func (t *Template) GetAWSEC2NatGatewayWithName(name string) (*AWSEC2NatGateway, } // GetAllAWSEC2NetworkAclResources retrieves all AWSEC2NetworkAcl items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2NetworkAclResources() map[string]*AWSEC2NetworkAcl { - results := map[string]*AWSEC2NetworkAcl{} +func (t *Template) GetAllAWSEC2NetworkAclResources() map[string]*resources.AWSEC2NetworkAcl { + results := map[string]*resources.AWSEC2NetworkAcl{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2NetworkAcl: + case *resources.AWSEC2NetworkAcl: results[name] = resource } } @@ -3272,10 +3273,10 @@ func (t *Template) GetAllAWSEC2NetworkAclResources() map[string]*AWSEC2NetworkAc // GetAWSEC2NetworkAclWithName retrieves all AWSEC2NetworkAcl items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2NetworkAclWithName(name string) (*AWSEC2NetworkAcl, error) { +func (t *Template) GetAWSEC2NetworkAclWithName(name string) (*resources.AWSEC2NetworkAcl, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2NetworkAcl: + case *resources.AWSEC2NetworkAcl: return resource, nil } } @@ -3283,11 +3284,11 @@ func (t *Template) GetAWSEC2NetworkAclWithName(name string) (*AWSEC2NetworkAcl, } // GetAllAWSEC2NetworkAclEntryResources retrieves all AWSEC2NetworkAclEntry items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2NetworkAclEntryResources() map[string]*AWSEC2NetworkAclEntry { - results := map[string]*AWSEC2NetworkAclEntry{} +func (t *Template) GetAllAWSEC2NetworkAclEntryResources() map[string]*resources.AWSEC2NetworkAclEntry { + results := map[string]*resources.AWSEC2NetworkAclEntry{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2NetworkAclEntry: + case *resources.AWSEC2NetworkAclEntry: results[name] = resource } } @@ -3296,10 +3297,10 @@ func (t *Template) GetAllAWSEC2NetworkAclEntryResources() map[string]*AWSEC2Netw // GetAWSEC2NetworkAclEntryWithName retrieves all AWSEC2NetworkAclEntry items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2NetworkAclEntryWithName(name string) (*AWSEC2NetworkAclEntry, error) { +func (t *Template) GetAWSEC2NetworkAclEntryWithName(name string) (*resources.AWSEC2NetworkAclEntry, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2NetworkAclEntry: + case *resources.AWSEC2NetworkAclEntry: return resource, nil } } @@ -3307,11 +3308,11 @@ func (t *Template) GetAWSEC2NetworkAclEntryWithName(name string) (*AWSEC2Network } // GetAllAWSEC2NetworkInterfaceResources retrieves all AWSEC2NetworkInterface items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2NetworkInterfaceResources() map[string]*AWSEC2NetworkInterface { - results := map[string]*AWSEC2NetworkInterface{} +func (t *Template) GetAllAWSEC2NetworkInterfaceResources() map[string]*resources.AWSEC2NetworkInterface { + results := map[string]*resources.AWSEC2NetworkInterface{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2NetworkInterface: + case *resources.AWSEC2NetworkInterface: results[name] = resource } } @@ -3320,10 +3321,10 @@ func (t *Template) GetAllAWSEC2NetworkInterfaceResources() map[string]*AWSEC2Net // GetAWSEC2NetworkInterfaceWithName retrieves all AWSEC2NetworkInterface items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2NetworkInterfaceWithName(name string) (*AWSEC2NetworkInterface, error) { +func (t *Template) GetAWSEC2NetworkInterfaceWithName(name string) (*resources.AWSEC2NetworkInterface, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2NetworkInterface: + case *resources.AWSEC2NetworkInterface: return resource, nil } } @@ -3331,11 +3332,11 @@ func (t *Template) GetAWSEC2NetworkInterfaceWithName(name string) (*AWSEC2Networ } // GetAllAWSEC2NetworkInterfaceAttachmentResources retrieves all AWSEC2NetworkInterfaceAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2NetworkInterfaceAttachmentResources() map[string]*AWSEC2NetworkInterfaceAttachment { - results := map[string]*AWSEC2NetworkInterfaceAttachment{} +func (t *Template) GetAllAWSEC2NetworkInterfaceAttachmentResources() map[string]*resources.AWSEC2NetworkInterfaceAttachment { + results := map[string]*resources.AWSEC2NetworkInterfaceAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2NetworkInterfaceAttachment: + case *resources.AWSEC2NetworkInterfaceAttachment: results[name] = resource } } @@ -3344,10 +3345,10 @@ func (t *Template) GetAllAWSEC2NetworkInterfaceAttachmentResources() map[string] // GetAWSEC2NetworkInterfaceAttachmentWithName retrieves all AWSEC2NetworkInterfaceAttachment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2NetworkInterfaceAttachmentWithName(name string) (*AWSEC2NetworkInterfaceAttachment, error) { +func (t *Template) GetAWSEC2NetworkInterfaceAttachmentWithName(name string) (*resources.AWSEC2NetworkInterfaceAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2NetworkInterfaceAttachment: + case *resources.AWSEC2NetworkInterfaceAttachment: return resource, nil } } @@ -3355,11 +3356,11 @@ func (t *Template) GetAWSEC2NetworkInterfaceAttachmentWithName(name string) (*AW } // GetAllAWSEC2NetworkInterfacePermissionResources retrieves all AWSEC2NetworkInterfacePermission items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2NetworkInterfacePermissionResources() map[string]*AWSEC2NetworkInterfacePermission { - results := map[string]*AWSEC2NetworkInterfacePermission{} +func (t *Template) GetAllAWSEC2NetworkInterfacePermissionResources() map[string]*resources.AWSEC2NetworkInterfacePermission { + results := map[string]*resources.AWSEC2NetworkInterfacePermission{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2NetworkInterfacePermission: + case *resources.AWSEC2NetworkInterfacePermission: results[name] = resource } } @@ -3368,10 +3369,10 @@ func (t *Template) GetAllAWSEC2NetworkInterfacePermissionResources() map[string] // GetAWSEC2NetworkInterfacePermissionWithName retrieves all AWSEC2NetworkInterfacePermission items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2NetworkInterfacePermissionWithName(name string) (*AWSEC2NetworkInterfacePermission, error) { +func (t *Template) GetAWSEC2NetworkInterfacePermissionWithName(name string) (*resources.AWSEC2NetworkInterfacePermission, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2NetworkInterfacePermission: + case *resources.AWSEC2NetworkInterfacePermission: return resource, nil } } @@ -3379,11 +3380,11 @@ func (t *Template) GetAWSEC2NetworkInterfacePermissionWithName(name string) (*AW } // GetAllAWSEC2PlacementGroupResources retrieves all AWSEC2PlacementGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2PlacementGroupResources() map[string]*AWSEC2PlacementGroup { - results := map[string]*AWSEC2PlacementGroup{} +func (t *Template) GetAllAWSEC2PlacementGroupResources() map[string]*resources.AWSEC2PlacementGroup { + results := map[string]*resources.AWSEC2PlacementGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2PlacementGroup: + case *resources.AWSEC2PlacementGroup: results[name] = resource } } @@ -3392,10 +3393,10 @@ func (t *Template) GetAllAWSEC2PlacementGroupResources() map[string]*AWSEC2Place // GetAWSEC2PlacementGroupWithName retrieves all AWSEC2PlacementGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2PlacementGroupWithName(name string) (*AWSEC2PlacementGroup, error) { +func (t *Template) GetAWSEC2PlacementGroupWithName(name string) (*resources.AWSEC2PlacementGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2PlacementGroup: + case *resources.AWSEC2PlacementGroup: return resource, nil } } @@ -3403,11 +3404,11 @@ func (t *Template) GetAWSEC2PlacementGroupWithName(name string) (*AWSEC2Placemen } // GetAllAWSEC2RouteResources retrieves all AWSEC2Route items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2RouteResources() map[string]*AWSEC2Route { - results := map[string]*AWSEC2Route{} +func (t *Template) GetAllAWSEC2RouteResources() map[string]*resources.AWSEC2Route { + results := map[string]*resources.AWSEC2Route{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2Route: + case *resources.AWSEC2Route: results[name] = resource } } @@ -3416,10 +3417,10 @@ func (t *Template) GetAllAWSEC2RouteResources() map[string]*AWSEC2Route { // GetAWSEC2RouteWithName retrieves all AWSEC2Route items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2RouteWithName(name string) (*AWSEC2Route, error) { +func (t *Template) GetAWSEC2RouteWithName(name string) (*resources.AWSEC2Route, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2Route: + case *resources.AWSEC2Route: return resource, nil } } @@ -3427,11 +3428,11 @@ func (t *Template) GetAWSEC2RouteWithName(name string) (*AWSEC2Route, error) { } // GetAllAWSEC2RouteTableResources retrieves all AWSEC2RouteTable items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2RouteTableResources() map[string]*AWSEC2RouteTable { - results := map[string]*AWSEC2RouteTable{} +func (t *Template) GetAllAWSEC2RouteTableResources() map[string]*resources.AWSEC2RouteTable { + results := map[string]*resources.AWSEC2RouteTable{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2RouteTable: + case *resources.AWSEC2RouteTable: results[name] = resource } } @@ -3440,10 +3441,10 @@ func (t *Template) GetAllAWSEC2RouteTableResources() map[string]*AWSEC2RouteTabl // GetAWSEC2RouteTableWithName retrieves all AWSEC2RouteTable items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2RouteTableWithName(name string) (*AWSEC2RouteTable, error) { +func (t *Template) GetAWSEC2RouteTableWithName(name string) (*resources.AWSEC2RouteTable, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2RouteTable: + case *resources.AWSEC2RouteTable: return resource, nil } } @@ -3451,11 +3452,11 @@ func (t *Template) GetAWSEC2RouteTableWithName(name string) (*AWSEC2RouteTable, } // GetAllAWSEC2SecurityGroupResources retrieves all AWSEC2SecurityGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SecurityGroupResources() map[string]*AWSEC2SecurityGroup { - results := map[string]*AWSEC2SecurityGroup{} +func (t *Template) GetAllAWSEC2SecurityGroupResources() map[string]*resources.AWSEC2SecurityGroup { + results := map[string]*resources.AWSEC2SecurityGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2SecurityGroup: + case *resources.AWSEC2SecurityGroup: results[name] = resource } } @@ -3464,10 +3465,10 @@ func (t *Template) GetAllAWSEC2SecurityGroupResources() map[string]*AWSEC2Securi // GetAWSEC2SecurityGroupWithName retrieves all AWSEC2SecurityGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SecurityGroupWithName(name string) (*AWSEC2SecurityGroup, error) { +func (t *Template) GetAWSEC2SecurityGroupWithName(name string) (*resources.AWSEC2SecurityGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2SecurityGroup: + case *resources.AWSEC2SecurityGroup: return resource, nil } } @@ -3475,11 +3476,11 @@ func (t *Template) GetAWSEC2SecurityGroupWithName(name string) (*AWSEC2SecurityG } // GetAllAWSEC2SecurityGroupEgressResources retrieves all AWSEC2SecurityGroupEgress items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SecurityGroupEgressResources() map[string]*AWSEC2SecurityGroupEgress { - results := map[string]*AWSEC2SecurityGroupEgress{} +func (t *Template) GetAllAWSEC2SecurityGroupEgressResources() map[string]*resources.AWSEC2SecurityGroupEgress { + results := map[string]*resources.AWSEC2SecurityGroupEgress{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2SecurityGroupEgress: + case *resources.AWSEC2SecurityGroupEgress: results[name] = resource } } @@ -3488,10 +3489,10 @@ func (t *Template) GetAllAWSEC2SecurityGroupEgressResources() map[string]*AWSEC2 // GetAWSEC2SecurityGroupEgressWithName retrieves all AWSEC2SecurityGroupEgress items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SecurityGroupEgressWithName(name string) (*AWSEC2SecurityGroupEgress, error) { +func (t *Template) GetAWSEC2SecurityGroupEgressWithName(name string) (*resources.AWSEC2SecurityGroupEgress, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2SecurityGroupEgress: + case *resources.AWSEC2SecurityGroupEgress: return resource, nil } } @@ -3499,11 +3500,11 @@ func (t *Template) GetAWSEC2SecurityGroupEgressWithName(name string) (*AWSEC2Sec } // GetAllAWSEC2SecurityGroupIngressResources retrieves all AWSEC2SecurityGroupIngress items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SecurityGroupIngressResources() map[string]*AWSEC2SecurityGroupIngress { - results := map[string]*AWSEC2SecurityGroupIngress{} +func (t *Template) GetAllAWSEC2SecurityGroupIngressResources() map[string]*resources.AWSEC2SecurityGroupIngress { + results := map[string]*resources.AWSEC2SecurityGroupIngress{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2SecurityGroupIngress: + case *resources.AWSEC2SecurityGroupIngress: results[name] = resource } } @@ -3512,10 +3513,10 @@ func (t *Template) GetAllAWSEC2SecurityGroupIngressResources() map[string]*AWSEC // GetAWSEC2SecurityGroupIngressWithName retrieves all AWSEC2SecurityGroupIngress items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SecurityGroupIngressWithName(name string) (*AWSEC2SecurityGroupIngress, error) { +func (t *Template) GetAWSEC2SecurityGroupIngressWithName(name string) (*resources.AWSEC2SecurityGroupIngress, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2SecurityGroupIngress: + case *resources.AWSEC2SecurityGroupIngress: return resource, nil } } @@ -3523,11 +3524,11 @@ func (t *Template) GetAWSEC2SecurityGroupIngressWithName(name string) (*AWSEC2Se } // GetAllAWSEC2SpotFleetResources retrieves all AWSEC2SpotFleet items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SpotFleetResources() map[string]*AWSEC2SpotFleet { - results := map[string]*AWSEC2SpotFleet{} +func (t *Template) GetAllAWSEC2SpotFleetResources() map[string]*resources.AWSEC2SpotFleet { + results := map[string]*resources.AWSEC2SpotFleet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2SpotFleet: + case *resources.AWSEC2SpotFleet: results[name] = resource } } @@ -3536,10 +3537,10 @@ func (t *Template) GetAllAWSEC2SpotFleetResources() map[string]*AWSEC2SpotFleet // GetAWSEC2SpotFleetWithName retrieves all AWSEC2SpotFleet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SpotFleetWithName(name string) (*AWSEC2SpotFleet, error) { +func (t *Template) GetAWSEC2SpotFleetWithName(name string) (*resources.AWSEC2SpotFleet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2SpotFleet: + case *resources.AWSEC2SpotFleet: return resource, nil } } @@ -3547,11 +3548,11 @@ func (t *Template) GetAWSEC2SpotFleetWithName(name string) (*AWSEC2SpotFleet, er } // GetAllAWSEC2SubnetResources retrieves all AWSEC2Subnet items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SubnetResources() map[string]*AWSEC2Subnet { - results := map[string]*AWSEC2Subnet{} +func (t *Template) GetAllAWSEC2SubnetResources() map[string]*resources.AWSEC2Subnet { + results := map[string]*resources.AWSEC2Subnet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2Subnet: + case *resources.AWSEC2Subnet: results[name] = resource } } @@ -3560,10 +3561,10 @@ func (t *Template) GetAllAWSEC2SubnetResources() map[string]*AWSEC2Subnet { // GetAWSEC2SubnetWithName retrieves all AWSEC2Subnet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SubnetWithName(name string) (*AWSEC2Subnet, error) { +func (t *Template) GetAWSEC2SubnetWithName(name string) (*resources.AWSEC2Subnet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2Subnet: + case *resources.AWSEC2Subnet: return resource, nil } } @@ -3571,11 +3572,11 @@ func (t *Template) GetAWSEC2SubnetWithName(name string) (*AWSEC2Subnet, error) { } // GetAllAWSEC2SubnetCidrBlockResources retrieves all AWSEC2SubnetCidrBlock items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SubnetCidrBlockResources() map[string]*AWSEC2SubnetCidrBlock { - results := map[string]*AWSEC2SubnetCidrBlock{} +func (t *Template) GetAllAWSEC2SubnetCidrBlockResources() map[string]*resources.AWSEC2SubnetCidrBlock { + results := map[string]*resources.AWSEC2SubnetCidrBlock{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2SubnetCidrBlock: + case *resources.AWSEC2SubnetCidrBlock: results[name] = resource } } @@ -3584,10 +3585,10 @@ func (t *Template) GetAllAWSEC2SubnetCidrBlockResources() map[string]*AWSEC2Subn // GetAWSEC2SubnetCidrBlockWithName retrieves all AWSEC2SubnetCidrBlock items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SubnetCidrBlockWithName(name string) (*AWSEC2SubnetCidrBlock, error) { +func (t *Template) GetAWSEC2SubnetCidrBlockWithName(name string) (*resources.AWSEC2SubnetCidrBlock, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2SubnetCidrBlock: + case *resources.AWSEC2SubnetCidrBlock: return resource, nil } } @@ -3595,11 +3596,11 @@ func (t *Template) GetAWSEC2SubnetCidrBlockWithName(name string) (*AWSEC2SubnetC } // GetAllAWSEC2SubnetNetworkAclAssociationResources retrieves all AWSEC2SubnetNetworkAclAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SubnetNetworkAclAssociationResources() map[string]*AWSEC2SubnetNetworkAclAssociation { - results := map[string]*AWSEC2SubnetNetworkAclAssociation{} +func (t *Template) GetAllAWSEC2SubnetNetworkAclAssociationResources() map[string]*resources.AWSEC2SubnetNetworkAclAssociation { + results := map[string]*resources.AWSEC2SubnetNetworkAclAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2SubnetNetworkAclAssociation: + case *resources.AWSEC2SubnetNetworkAclAssociation: results[name] = resource } } @@ -3608,10 +3609,10 @@ func (t *Template) GetAllAWSEC2SubnetNetworkAclAssociationResources() map[string // GetAWSEC2SubnetNetworkAclAssociationWithName retrieves all AWSEC2SubnetNetworkAclAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SubnetNetworkAclAssociationWithName(name string) (*AWSEC2SubnetNetworkAclAssociation, error) { +func (t *Template) GetAWSEC2SubnetNetworkAclAssociationWithName(name string) (*resources.AWSEC2SubnetNetworkAclAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2SubnetNetworkAclAssociation: + case *resources.AWSEC2SubnetNetworkAclAssociation: return resource, nil } } @@ -3619,11 +3620,11 @@ func (t *Template) GetAWSEC2SubnetNetworkAclAssociationWithName(name string) (*A } // GetAllAWSEC2SubnetRouteTableAssociationResources retrieves all AWSEC2SubnetRouteTableAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2SubnetRouteTableAssociationResources() map[string]*AWSEC2SubnetRouteTableAssociation { - results := map[string]*AWSEC2SubnetRouteTableAssociation{} +func (t *Template) GetAllAWSEC2SubnetRouteTableAssociationResources() map[string]*resources.AWSEC2SubnetRouteTableAssociation { + results := map[string]*resources.AWSEC2SubnetRouteTableAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2SubnetRouteTableAssociation: + case *resources.AWSEC2SubnetRouteTableAssociation: results[name] = resource } } @@ -3632,10 +3633,10 @@ func (t *Template) GetAllAWSEC2SubnetRouteTableAssociationResources() map[string // GetAWSEC2SubnetRouteTableAssociationWithName retrieves all AWSEC2SubnetRouteTableAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2SubnetRouteTableAssociationWithName(name string) (*AWSEC2SubnetRouteTableAssociation, error) { +func (t *Template) GetAWSEC2SubnetRouteTableAssociationWithName(name string) (*resources.AWSEC2SubnetRouteTableAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2SubnetRouteTableAssociation: + case *resources.AWSEC2SubnetRouteTableAssociation: return resource, nil } } @@ -3643,11 +3644,11 @@ func (t *Template) GetAWSEC2SubnetRouteTableAssociationWithName(name string) (*A } // GetAllAWSEC2TransitGatewayResources retrieves all AWSEC2TransitGateway items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2TransitGatewayResources() map[string]*AWSEC2TransitGateway { - results := map[string]*AWSEC2TransitGateway{} +func (t *Template) GetAllAWSEC2TransitGatewayResources() map[string]*resources.AWSEC2TransitGateway { + results := map[string]*resources.AWSEC2TransitGateway{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2TransitGateway: + case *resources.AWSEC2TransitGateway: results[name] = resource } } @@ -3656,10 +3657,10 @@ func (t *Template) GetAllAWSEC2TransitGatewayResources() map[string]*AWSEC2Trans // GetAWSEC2TransitGatewayWithName retrieves all AWSEC2TransitGateway items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2TransitGatewayWithName(name string) (*AWSEC2TransitGateway, error) { +func (t *Template) GetAWSEC2TransitGatewayWithName(name string) (*resources.AWSEC2TransitGateway, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2TransitGateway: + case *resources.AWSEC2TransitGateway: return resource, nil } } @@ -3667,11 +3668,11 @@ func (t *Template) GetAWSEC2TransitGatewayWithName(name string) (*AWSEC2TransitG } // GetAllAWSEC2TransitGatewayAttachmentResources retrieves all AWSEC2TransitGatewayAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2TransitGatewayAttachmentResources() map[string]*AWSEC2TransitGatewayAttachment { - results := map[string]*AWSEC2TransitGatewayAttachment{} +func (t *Template) GetAllAWSEC2TransitGatewayAttachmentResources() map[string]*resources.AWSEC2TransitGatewayAttachment { + results := map[string]*resources.AWSEC2TransitGatewayAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2TransitGatewayAttachment: + case *resources.AWSEC2TransitGatewayAttachment: results[name] = resource } } @@ -3680,10 +3681,10 @@ func (t *Template) GetAllAWSEC2TransitGatewayAttachmentResources() map[string]*A // GetAWSEC2TransitGatewayAttachmentWithName retrieves all AWSEC2TransitGatewayAttachment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2TransitGatewayAttachmentWithName(name string) (*AWSEC2TransitGatewayAttachment, error) { +func (t *Template) GetAWSEC2TransitGatewayAttachmentWithName(name string) (*resources.AWSEC2TransitGatewayAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2TransitGatewayAttachment: + case *resources.AWSEC2TransitGatewayAttachment: return resource, nil } } @@ -3691,11 +3692,11 @@ func (t *Template) GetAWSEC2TransitGatewayAttachmentWithName(name string) (*AWSE } // GetAllAWSEC2TransitGatewayRouteResources retrieves all AWSEC2TransitGatewayRoute items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2TransitGatewayRouteResources() map[string]*AWSEC2TransitGatewayRoute { - results := map[string]*AWSEC2TransitGatewayRoute{} +func (t *Template) GetAllAWSEC2TransitGatewayRouteResources() map[string]*resources.AWSEC2TransitGatewayRoute { + results := map[string]*resources.AWSEC2TransitGatewayRoute{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2TransitGatewayRoute: + case *resources.AWSEC2TransitGatewayRoute: results[name] = resource } } @@ -3704,10 +3705,10 @@ func (t *Template) GetAllAWSEC2TransitGatewayRouteResources() map[string]*AWSEC2 // GetAWSEC2TransitGatewayRouteWithName retrieves all AWSEC2TransitGatewayRoute items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2TransitGatewayRouteWithName(name string) (*AWSEC2TransitGatewayRoute, error) { +func (t *Template) GetAWSEC2TransitGatewayRouteWithName(name string) (*resources.AWSEC2TransitGatewayRoute, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2TransitGatewayRoute: + case *resources.AWSEC2TransitGatewayRoute: return resource, nil } } @@ -3715,11 +3716,11 @@ func (t *Template) GetAWSEC2TransitGatewayRouteWithName(name string) (*AWSEC2Tra } // GetAllAWSEC2TransitGatewayRouteTableResources retrieves all AWSEC2TransitGatewayRouteTable items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2TransitGatewayRouteTableResources() map[string]*AWSEC2TransitGatewayRouteTable { - results := map[string]*AWSEC2TransitGatewayRouteTable{} +func (t *Template) GetAllAWSEC2TransitGatewayRouteTableResources() map[string]*resources.AWSEC2TransitGatewayRouteTable { + results := map[string]*resources.AWSEC2TransitGatewayRouteTable{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2TransitGatewayRouteTable: + case *resources.AWSEC2TransitGatewayRouteTable: results[name] = resource } } @@ -3728,10 +3729,10 @@ func (t *Template) GetAllAWSEC2TransitGatewayRouteTableResources() map[string]*A // GetAWSEC2TransitGatewayRouteTableWithName retrieves all AWSEC2TransitGatewayRouteTable items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2TransitGatewayRouteTableWithName(name string) (*AWSEC2TransitGatewayRouteTable, error) { +func (t *Template) GetAWSEC2TransitGatewayRouteTableWithName(name string) (*resources.AWSEC2TransitGatewayRouteTable, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2TransitGatewayRouteTable: + case *resources.AWSEC2TransitGatewayRouteTable: return resource, nil } } @@ -3739,11 +3740,11 @@ func (t *Template) GetAWSEC2TransitGatewayRouteTableWithName(name string) (*AWSE } // GetAllAWSEC2TransitGatewayRouteTableAssociationResources retrieves all AWSEC2TransitGatewayRouteTableAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2TransitGatewayRouteTableAssociationResources() map[string]*AWSEC2TransitGatewayRouteTableAssociation { - results := map[string]*AWSEC2TransitGatewayRouteTableAssociation{} +func (t *Template) GetAllAWSEC2TransitGatewayRouteTableAssociationResources() map[string]*resources.AWSEC2TransitGatewayRouteTableAssociation { + results := map[string]*resources.AWSEC2TransitGatewayRouteTableAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2TransitGatewayRouteTableAssociation: + case *resources.AWSEC2TransitGatewayRouteTableAssociation: results[name] = resource } } @@ -3752,10 +3753,10 @@ func (t *Template) GetAllAWSEC2TransitGatewayRouteTableAssociationResources() ma // GetAWSEC2TransitGatewayRouteTableAssociationWithName retrieves all AWSEC2TransitGatewayRouteTableAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2TransitGatewayRouteTableAssociationWithName(name string) (*AWSEC2TransitGatewayRouteTableAssociation, error) { +func (t *Template) GetAWSEC2TransitGatewayRouteTableAssociationWithName(name string) (*resources.AWSEC2TransitGatewayRouteTableAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2TransitGatewayRouteTableAssociation: + case *resources.AWSEC2TransitGatewayRouteTableAssociation: return resource, nil } } @@ -3763,11 +3764,11 @@ func (t *Template) GetAWSEC2TransitGatewayRouteTableAssociationWithName(name str } // GetAllAWSEC2TransitGatewayRouteTablePropagationResources retrieves all AWSEC2TransitGatewayRouteTablePropagation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2TransitGatewayRouteTablePropagationResources() map[string]*AWSEC2TransitGatewayRouteTablePropagation { - results := map[string]*AWSEC2TransitGatewayRouteTablePropagation{} +func (t *Template) GetAllAWSEC2TransitGatewayRouteTablePropagationResources() map[string]*resources.AWSEC2TransitGatewayRouteTablePropagation { + results := map[string]*resources.AWSEC2TransitGatewayRouteTablePropagation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2TransitGatewayRouteTablePropagation: + case *resources.AWSEC2TransitGatewayRouteTablePropagation: results[name] = resource } } @@ -3776,10 +3777,10 @@ func (t *Template) GetAllAWSEC2TransitGatewayRouteTablePropagationResources() ma // GetAWSEC2TransitGatewayRouteTablePropagationWithName retrieves all AWSEC2TransitGatewayRouteTablePropagation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2TransitGatewayRouteTablePropagationWithName(name string) (*AWSEC2TransitGatewayRouteTablePropagation, error) { +func (t *Template) GetAWSEC2TransitGatewayRouteTablePropagationWithName(name string) (*resources.AWSEC2TransitGatewayRouteTablePropagation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2TransitGatewayRouteTablePropagation: + case *resources.AWSEC2TransitGatewayRouteTablePropagation: return resource, nil } } @@ -3787,11 +3788,11 @@ func (t *Template) GetAWSEC2TransitGatewayRouteTablePropagationWithName(name str } // GetAllAWSEC2TrunkInterfaceAssociationResources retrieves all AWSEC2TrunkInterfaceAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2TrunkInterfaceAssociationResources() map[string]*AWSEC2TrunkInterfaceAssociation { - results := map[string]*AWSEC2TrunkInterfaceAssociation{} +func (t *Template) GetAllAWSEC2TrunkInterfaceAssociationResources() map[string]*resources.AWSEC2TrunkInterfaceAssociation { + results := map[string]*resources.AWSEC2TrunkInterfaceAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2TrunkInterfaceAssociation: + case *resources.AWSEC2TrunkInterfaceAssociation: results[name] = resource } } @@ -3800,10 +3801,10 @@ func (t *Template) GetAllAWSEC2TrunkInterfaceAssociationResources() map[string]* // GetAWSEC2TrunkInterfaceAssociationWithName retrieves all AWSEC2TrunkInterfaceAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2TrunkInterfaceAssociationWithName(name string) (*AWSEC2TrunkInterfaceAssociation, error) { +func (t *Template) GetAWSEC2TrunkInterfaceAssociationWithName(name string) (*resources.AWSEC2TrunkInterfaceAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2TrunkInterfaceAssociation: + case *resources.AWSEC2TrunkInterfaceAssociation: return resource, nil } } @@ -3811,11 +3812,11 @@ func (t *Template) GetAWSEC2TrunkInterfaceAssociationWithName(name string) (*AWS } // GetAllAWSEC2VPCResources retrieves all AWSEC2VPC items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCResources() map[string]*AWSEC2VPC { - results := map[string]*AWSEC2VPC{} +func (t *Template) GetAllAWSEC2VPCResources() map[string]*resources.AWSEC2VPC { + results := map[string]*resources.AWSEC2VPC{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2VPC: + case *resources.AWSEC2VPC: results[name] = resource } } @@ -3824,10 +3825,10 @@ func (t *Template) GetAllAWSEC2VPCResources() map[string]*AWSEC2VPC { // GetAWSEC2VPCWithName retrieves all AWSEC2VPC items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCWithName(name string) (*AWSEC2VPC, error) { +func (t *Template) GetAWSEC2VPCWithName(name string) (*resources.AWSEC2VPC, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2VPC: + case *resources.AWSEC2VPC: return resource, nil } } @@ -3835,11 +3836,11 @@ func (t *Template) GetAWSEC2VPCWithName(name string) (*AWSEC2VPC, error) { } // GetAllAWSEC2VPCCidrBlockResources retrieves all AWSEC2VPCCidrBlock items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCCidrBlockResources() map[string]*AWSEC2VPCCidrBlock { - results := map[string]*AWSEC2VPCCidrBlock{} +func (t *Template) GetAllAWSEC2VPCCidrBlockResources() map[string]*resources.AWSEC2VPCCidrBlock { + results := map[string]*resources.AWSEC2VPCCidrBlock{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2VPCCidrBlock: + case *resources.AWSEC2VPCCidrBlock: results[name] = resource } } @@ -3848,10 +3849,10 @@ func (t *Template) GetAllAWSEC2VPCCidrBlockResources() map[string]*AWSEC2VPCCidr // GetAWSEC2VPCCidrBlockWithName retrieves all AWSEC2VPCCidrBlock items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCCidrBlockWithName(name string) (*AWSEC2VPCCidrBlock, error) { +func (t *Template) GetAWSEC2VPCCidrBlockWithName(name string) (*resources.AWSEC2VPCCidrBlock, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2VPCCidrBlock: + case *resources.AWSEC2VPCCidrBlock: return resource, nil } } @@ -3859,11 +3860,11 @@ func (t *Template) GetAWSEC2VPCCidrBlockWithName(name string) (*AWSEC2VPCCidrBlo } // GetAllAWSEC2VPCDHCPOptionsAssociationResources retrieves all AWSEC2VPCDHCPOptionsAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCDHCPOptionsAssociationResources() map[string]*AWSEC2VPCDHCPOptionsAssociation { - results := map[string]*AWSEC2VPCDHCPOptionsAssociation{} +func (t *Template) GetAllAWSEC2VPCDHCPOptionsAssociationResources() map[string]*resources.AWSEC2VPCDHCPOptionsAssociation { + results := map[string]*resources.AWSEC2VPCDHCPOptionsAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2VPCDHCPOptionsAssociation: + case *resources.AWSEC2VPCDHCPOptionsAssociation: results[name] = resource } } @@ -3872,10 +3873,10 @@ func (t *Template) GetAllAWSEC2VPCDHCPOptionsAssociationResources() map[string]* // GetAWSEC2VPCDHCPOptionsAssociationWithName retrieves all AWSEC2VPCDHCPOptionsAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCDHCPOptionsAssociationWithName(name string) (*AWSEC2VPCDHCPOptionsAssociation, error) { +func (t *Template) GetAWSEC2VPCDHCPOptionsAssociationWithName(name string) (*resources.AWSEC2VPCDHCPOptionsAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2VPCDHCPOptionsAssociation: + case *resources.AWSEC2VPCDHCPOptionsAssociation: return resource, nil } } @@ -3883,11 +3884,11 @@ func (t *Template) GetAWSEC2VPCDHCPOptionsAssociationWithName(name string) (*AWS } // GetAllAWSEC2VPCEndpointResources retrieves all AWSEC2VPCEndpoint items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCEndpointResources() map[string]*AWSEC2VPCEndpoint { - results := map[string]*AWSEC2VPCEndpoint{} +func (t *Template) GetAllAWSEC2VPCEndpointResources() map[string]*resources.AWSEC2VPCEndpoint { + results := map[string]*resources.AWSEC2VPCEndpoint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2VPCEndpoint: + case *resources.AWSEC2VPCEndpoint: results[name] = resource } } @@ -3896,10 +3897,10 @@ func (t *Template) GetAllAWSEC2VPCEndpointResources() map[string]*AWSEC2VPCEndpo // GetAWSEC2VPCEndpointWithName retrieves all AWSEC2VPCEndpoint items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCEndpointWithName(name string) (*AWSEC2VPCEndpoint, error) { +func (t *Template) GetAWSEC2VPCEndpointWithName(name string) (*resources.AWSEC2VPCEndpoint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2VPCEndpoint: + case *resources.AWSEC2VPCEndpoint: return resource, nil } } @@ -3907,11 +3908,11 @@ func (t *Template) GetAWSEC2VPCEndpointWithName(name string) (*AWSEC2VPCEndpoint } // GetAllAWSEC2VPCEndpointConnectionNotificationResources retrieves all AWSEC2VPCEndpointConnectionNotification items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCEndpointConnectionNotificationResources() map[string]*AWSEC2VPCEndpointConnectionNotification { - results := map[string]*AWSEC2VPCEndpointConnectionNotification{} +func (t *Template) GetAllAWSEC2VPCEndpointConnectionNotificationResources() map[string]*resources.AWSEC2VPCEndpointConnectionNotification { + results := map[string]*resources.AWSEC2VPCEndpointConnectionNotification{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2VPCEndpointConnectionNotification: + case *resources.AWSEC2VPCEndpointConnectionNotification: results[name] = resource } } @@ -3920,10 +3921,10 @@ func (t *Template) GetAllAWSEC2VPCEndpointConnectionNotificationResources() map[ // GetAWSEC2VPCEndpointConnectionNotificationWithName retrieves all AWSEC2VPCEndpointConnectionNotification items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCEndpointConnectionNotificationWithName(name string) (*AWSEC2VPCEndpointConnectionNotification, error) { +func (t *Template) GetAWSEC2VPCEndpointConnectionNotificationWithName(name string) (*resources.AWSEC2VPCEndpointConnectionNotification, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2VPCEndpointConnectionNotification: + case *resources.AWSEC2VPCEndpointConnectionNotification: return resource, nil } } @@ -3931,11 +3932,11 @@ func (t *Template) GetAWSEC2VPCEndpointConnectionNotificationWithName(name strin } // GetAllAWSEC2VPCEndpointServicePermissionsResources retrieves all AWSEC2VPCEndpointServicePermissions items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCEndpointServicePermissionsResources() map[string]*AWSEC2VPCEndpointServicePermissions { - results := map[string]*AWSEC2VPCEndpointServicePermissions{} +func (t *Template) GetAllAWSEC2VPCEndpointServicePermissionsResources() map[string]*resources.AWSEC2VPCEndpointServicePermissions { + results := map[string]*resources.AWSEC2VPCEndpointServicePermissions{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2VPCEndpointServicePermissions: + case *resources.AWSEC2VPCEndpointServicePermissions: results[name] = resource } } @@ -3944,10 +3945,10 @@ func (t *Template) GetAllAWSEC2VPCEndpointServicePermissionsResources() map[stri // GetAWSEC2VPCEndpointServicePermissionsWithName retrieves all AWSEC2VPCEndpointServicePermissions items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCEndpointServicePermissionsWithName(name string) (*AWSEC2VPCEndpointServicePermissions, error) { +func (t *Template) GetAWSEC2VPCEndpointServicePermissionsWithName(name string) (*resources.AWSEC2VPCEndpointServicePermissions, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2VPCEndpointServicePermissions: + case *resources.AWSEC2VPCEndpointServicePermissions: return resource, nil } } @@ -3955,11 +3956,11 @@ func (t *Template) GetAWSEC2VPCEndpointServicePermissionsWithName(name string) ( } // GetAllAWSEC2VPCGatewayAttachmentResources retrieves all AWSEC2VPCGatewayAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCGatewayAttachmentResources() map[string]*AWSEC2VPCGatewayAttachment { - results := map[string]*AWSEC2VPCGatewayAttachment{} +func (t *Template) GetAllAWSEC2VPCGatewayAttachmentResources() map[string]*resources.AWSEC2VPCGatewayAttachment { + results := map[string]*resources.AWSEC2VPCGatewayAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2VPCGatewayAttachment: + case *resources.AWSEC2VPCGatewayAttachment: results[name] = resource } } @@ -3968,10 +3969,10 @@ func (t *Template) GetAllAWSEC2VPCGatewayAttachmentResources() map[string]*AWSEC // GetAWSEC2VPCGatewayAttachmentWithName retrieves all AWSEC2VPCGatewayAttachment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCGatewayAttachmentWithName(name string) (*AWSEC2VPCGatewayAttachment, error) { +func (t *Template) GetAWSEC2VPCGatewayAttachmentWithName(name string) (*resources.AWSEC2VPCGatewayAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2VPCGatewayAttachment: + case *resources.AWSEC2VPCGatewayAttachment: return resource, nil } } @@ -3979,11 +3980,11 @@ func (t *Template) GetAWSEC2VPCGatewayAttachmentWithName(name string) (*AWSEC2VP } // GetAllAWSEC2VPCPeeringConnectionResources retrieves all AWSEC2VPCPeeringConnection items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPCPeeringConnectionResources() map[string]*AWSEC2VPCPeeringConnection { - results := map[string]*AWSEC2VPCPeeringConnection{} +func (t *Template) GetAllAWSEC2VPCPeeringConnectionResources() map[string]*resources.AWSEC2VPCPeeringConnection { + results := map[string]*resources.AWSEC2VPCPeeringConnection{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2VPCPeeringConnection: + case *resources.AWSEC2VPCPeeringConnection: results[name] = resource } } @@ -3992,10 +3993,10 @@ func (t *Template) GetAllAWSEC2VPCPeeringConnectionResources() map[string]*AWSEC // GetAWSEC2VPCPeeringConnectionWithName retrieves all AWSEC2VPCPeeringConnection items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPCPeeringConnectionWithName(name string) (*AWSEC2VPCPeeringConnection, error) { +func (t *Template) GetAWSEC2VPCPeeringConnectionWithName(name string) (*resources.AWSEC2VPCPeeringConnection, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2VPCPeeringConnection: + case *resources.AWSEC2VPCPeeringConnection: return resource, nil } } @@ -4003,11 +4004,11 @@ func (t *Template) GetAWSEC2VPCPeeringConnectionWithName(name string) (*AWSEC2VP } // GetAllAWSEC2VPNConnectionResources retrieves all AWSEC2VPNConnection items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPNConnectionResources() map[string]*AWSEC2VPNConnection { - results := map[string]*AWSEC2VPNConnection{} +func (t *Template) GetAllAWSEC2VPNConnectionResources() map[string]*resources.AWSEC2VPNConnection { + results := map[string]*resources.AWSEC2VPNConnection{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2VPNConnection: + case *resources.AWSEC2VPNConnection: results[name] = resource } } @@ -4016,10 +4017,10 @@ func (t *Template) GetAllAWSEC2VPNConnectionResources() map[string]*AWSEC2VPNCon // GetAWSEC2VPNConnectionWithName retrieves all AWSEC2VPNConnection items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPNConnectionWithName(name string) (*AWSEC2VPNConnection, error) { +func (t *Template) GetAWSEC2VPNConnectionWithName(name string) (*resources.AWSEC2VPNConnection, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2VPNConnection: + case *resources.AWSEC2VPNConnection: return resource, nil } } @@ -4027,11 +4028,11 @@ func (t *Template) GetAWSEC2VPNConnectionWithName(name string) (*AWSEC2VPNConnec } // GetAllAWSEC2VPNConnectionRouteResources retrieves all AWSEC2VPNConnectionRoute items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPNConnectionRouteResources() map[string]*AWSEC2VPNConnectionRoute { - results := map[string]*AWSEC2VPNConnectionRoute{} +func (t *Template) GetAllAWSEC2VPNConnectionRouteResources() map[string]*resources.AWSEC2VPNConnectionRoute { + results := map[string]*resources.AWSEC2VPNConnectionRoute{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2VPNConnectionRoute: + case *resources.AWSEC2VPNConnectionRoute: results[name] = resource } } @@ -4040,10 +4041,10 @@ func (t *Template) GetAllAWSEC2VPNConnectionRouteResources() map[string]*AWSEC2V // GetAWSEC2VPNConnectionRouteWithName retrieves all AWSEC2VPNConnectionRoute items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPNConnectionRouteWithName(name string) (*AWSEC2VPNConnectionRoute, error) { +func (t *Template) GetAWSEC2VPNConnectionRouteWithName(name string) (*resources.AWSEC2VPNConnectionRoute, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2VPNConnectionRoute: + case *resources.AWSEC2VPNConnectionRoute: return resource, nil } } @@ -4051,11 +4052,11 @@ func (t *Template) GetAWSEC2VPNConnectionRouteWithName(name string) (*AWSEC2VPNC } // GetAllAWSEC2VPNGatewayResources retrieves all AWSEC2VPNGateway items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPNGatewayResources() map[string]*AWSEC2VPNGateway { - results := map[string]*AWSEC2VPNGateway{} +func (t *Template) GetAllAWSEC2VPNGatewayResources() map[string]*resources.AWSEC2VPNGateway { + results := map[string]*resources.AWSEC2VPNGateway{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2VPNGateway: + case *resources.AWSEC2VPNGateway: results[name] = resource } } @@ -4064,10 +4065,10 @@ func (t *Template) GetAllAWSEC2VPNGatewayResources() map[string]*AWSEC2VPNGatewa // GetAWSEC2VPNGatewayWithName retrieves all AWSEC2VPNGateway items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPNGatewayWithName(name string) (*AWSEC2VPNGateway, error) { +func (t *Template) GetAWSEC2VPNGatewayWithName(name string) (*resources.AWSEC2VPNGateway, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2VPNGateway: + case *resources.AWSEC2VPNGateway: return resource, nil } } @@ -4075,11 +4076,11 @@ func (t *Template) GetAWSEC2VPNGatewayWithName(name string) (*AWSEC2VPNGateway, } // GetAllAWSEC2VPNGatewayRoutePropagationResources retrieves all AWSEC2VPNGatewayRoutePropagation items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VPNGatewayRoutePropagationResources() map[string]*AWSEC2VPNGatewayRoutePropagation { - results := map[string]*AWSEC2VPNGatewayRoutePropagation{} +func (t *Template) GetAllAWSEC2VPNGatewayRoutePropagationResources() map[string]*resources.AWSEC2VPNGatewayRoutePropagation { + results := map[string]*resources.AWSEC2VPNGatewayRoutePropagation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2VPNGatewayRoutePropagation: + case *resources.AWSEC2VPNGatewayRoutePropagation: results[name] = resource } } @@ -4088,10 +4089,10 @@ func (t *Template) GetAllAWSEC2VPNGatewayRoutePropagationResources() map[string] // GetAWSEC2VPNGatewayRoutePropagationWithName retrieves all AWSEC2VPNGatewayRoutePropagation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VPNGatewayRoutePropagationWithName(name string) (*AWSEC2VPNGatewayRoutePropagation, error) { +func (t *Template) GetAWSEC2VPNGatewayRoutePropagationWithName(name string) (*resources.AWSEC2VPNGatewayRoutePropagation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2VPNGatewayRoutePropagation: + case *resources.AWSEC2VPNGatewayRoutePropagation: return resource, nil } } @@ -4099,11 +4100,11 @@ func (t *Template) GetAWSEC2VPNGatewayRoutePropagationWithName(name string) (*AW } // GetAllAWSEC2VolumeResources retrieves all AWSEC2Volume items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VolumeResources() map[string]*AWSEC2Volume { - results := map[string]*AWSEC2Volume{} +func (t *Template) GetAllAWSEC2VolumeResources() map[string]*resources.AWSEC2Volume { + results := map[string]*resources.AWSEC2Volume{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2Volume: + case *resources.AWSEC2Volume: results[name] = resource } } @@ -4112,10 +4113,10 @@ func (t *Template) GetAllAWSEC2VolumeResources() map[string]*AWSEC2Volume { // GetAWSEC2VolumeWithName retrieves all AWSEC2Volume items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VolumeWithName(name string) (*AWSEC2Volume, error) { +func (t *Template) GetAWSEC2VolumeWithName(name string) (*resources.AWSEC2Volume, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2Volume: + case *resources.AWSEC2Volume: return resource, nil } } @@ -4123,11 +4124,11 @@ func (t *Template) GetAWSEC2VolumeWithName(name string) (*AWSEC2Volume, error) { } // GetAllAWSEC2VolumeAttachmentResources retrieves all AWSEC2VolumeAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSEC2VolumeAttachmentResources() map[string]*AWSEC2VolumeAttachment { - results := map[string]*AWSEC2VolumeAttachment{} +func (t *Template) GetAllAWSEC2VolumeAttachmentResources() map[string]*resources.AWSEC2VolumeAttachment { + results := map[string]*resources.AWSEC2VolumeAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEC2VolumeAttachment: + case *resources.AWSEC2VolumeAttachment: results[name] = resource } } @@ -4136,10 +4137,10 @@ func (t *Template) GetAllAWSEC2VolumeAttachmentResources() map[string]*AWSEC2Vol // GetAWSEC2VolumeAttachmentWithName retrieves all AWSEC2VolumeAttachment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEC2VolumeAttachmentWithName(name string) (*AWSEC2VolumeAttachment, error) { +func (t *Template) GetAWSEC2VolumeAttachmentWithName(name string) (*resources.AWSEC2VolumeAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEC2VolumeAttachment: + case *resources.AWSEC2VolumeAttachment: return resource, nil } } @@ -4147,11 +4148,11 @@ func (t *Template) GetAWSEC2VolumeAttachmentWithName(name string) (*AWSEC2Volume } // GetAllAWSECRRepositoryResources retrieves all AWSECRRepository items from an AWS CloudFormation template -func (t *Template) GetAllAWSECRRepositoryResources() map[string]*AWSECRRepository { - results := map[string]*AWSECRRepository{} +func (t *Template) GetAllAWSECRRepositoryResources() map[string]*resources.AWSECRRepository { + results := map[string]*resources.AWSECRRepository{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSECRRepository: + case *resources.AWSECRRepository: results[name] = resource } } @@ -4160,10 +4161,10 @@ func (t *Template) GetAllAWSECRRepositoryResources() map[string]*AWSECRRepositor // GetAWSECRRepositoryWithName retrieves all AWSECRRepository items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSECRRepositoryWithName(name string) (*AWSECRRepository, error) { +func (t *Template) GetAWSECRRepositoryWithName(name string) (*resources.AWSECRRepository, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSECRRepository: + case *resources.AWSECRRepository: return resource, nil } } @@ -4171,11 +4172,11 @@ func (t *Template) GetAWSECRRepositoryWithName(name string) (*AWSECRRepository, } // GetAllAWSECSClusterResources retrieves all AWSECSCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSECSClusterResources() map[string]*AWSECSCluster { - results := map[string]*AWSECSCluster{} +func (t *Template) GetAllAWSECSClusterResources() map[string]*resources.AWSECSCluster { + results := map[string]*resources.AWSECSCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSECSCluster: + case *resources.AWSECSCluster: results[name] = resource } } @@ -4184,10 +4185,10 @@ func (t *Template) GetAllAWSECSClusterResources() map[string]*AWSECSCluster { // GetAWSECSClusterWithName retrieves all AWSECSCluster items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSECSClusterWithName(name string) (*AWSECSCluster, error) { +func (t *Template) GetAWSECSClusterWithName(name string) (*resources.AWSECSCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSECSCluster: + case *resources.AWSECSCluster: return resource, nil } } @@ -4195,11 +4196,11 @@ func (t *Template) GetAWSECSClusterWithName(name string) (*AWSECSCluster, error) } // GetAllAWSECSServiceResources retrieves all AWSECSService items from an AWS CloudFormation template -func (t *Template) GetAllAWSECSServiceResources() map[string]*AWSECSService { - results := map[string]*AWSECSService{} +func (t *Template) GetAllAWSECSServiceResources() map[string]*resources.AWSECSService { + results := map[string]*resources.AWSECSService{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSECSService: + case *resources.AWSECSService: results[name] = resource } } @@ -4208,10 +4209,10 @@ func (t *Template) GetAllAWSECSServiceResources() map[string]*AWSECSService { // GetAWSECSServiceWithName retrieves all AWSECSService items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSECSServiceWithName(name string) (*AWSECSService, error) { +func (t *Template) GetAWSECSServiceWithName(name string) (*resources.AWSECSService, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSECSService: + case *resources.AWSECSService: return resource, nil } } @@ -4219,11 +4220,11 @@ func (t *Template) GetAWSECSServiceWithName(name string) (*AWSECSService, error) } // GetAllAWSECSTaskDefinitionResources retrieves all AWSECSTaskDefinition items from an AWS CloudFormation template -func (t *Template) GetAllAWSECSTaskDefinitionResources() map[string]*AWSECSTaskDefinition { - results := map[string]*AWSECSTaskDefinition{} +func (t *Template) GetAllAWSECSTaskDefinitionResources() map[string]*resources.AWSECSTaskDefinition { + results := map[string]*resources.AWSECSTaskDefinition{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSECSTaskDefinition: + case *resources.AWSECSTaskDefinition: results[name] = resource } } @@ -4232,10 +4233,10 @@ func (t *Template) GetAllAWSECSTaskDefinitionResources() map[string]*AWSECSTaskD // GetAWSECSTaskDefinitionWithName retrieves all AWSECSTaskDefinition items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSECSTaskDefinitionWithName(name string) (*AWSECSTaskDefinition, error) { +func (t *Template) GetAWSECSTaskDefinitionWithName(name string) (*resources.AWSECSTaskDefinition, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSECSTaskDefinition: + case *resources.AWSECSTaskDefinition: return resource, nil } } @@ -4243,11 +4244,11 @@ func (t *Template) GetAWSECSTaskDefinitionWithName(name string) (*AWSECSTaskDefi } // GetAllAWSEFSFileSystemResources retrieves all AWSEFSFileSystem items from an AWS CloudFormation template -func (t *Template) GetAllAWSEFSFileSystemResources() map[string]*AWSEFSFileSystem { - results := map[string]*AWSEFSFileSystem{} +func (t *Template) GetAllAWSEFSFileSystemResources() map[string]*resources.AWSEFSFileSystem { + results := map[string]*resources.AWSEFSFileSystem{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEFSFileSystem: + case *resources.AWSEFSFileSystem: results[name] = resource } } @@ -4256,10 +4257,10 @@ func (t *Template) GetAllAWSEFSFileSystemResources() map[string]*AWSEFSFileSyste // GetAWSEFSFileSystemWithName retrieves all AWSEFSFileSystem items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEFSFileSystemWithName(name string) (*AWSEFSFileSystem, error) { +func (t *Template) GetAWSEFSFileSystemWithName(name string) (*resources.AWSEFSFileSystem, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEFSFileSystem: + case *resources.AWSEFSFileSystem: return resource, nil } } @@ -4267,11 +4268,11 @@ func (t *Template) GetAWSEFSFileSystemWithName(name string) (*AWSEFSFileSystem, } // GetAllAWSEFSMountTargetResources retrieves all AWSEFSMountTarget items from an AWS CloudFormation template -func (t *Template) GetAllAWSEFSMountTargetResources() map[string]*AWSEFSMountTarget { - results := map[string]*AWSEFSMountTarget{} +func (t *Template) GetAllAWSEFSMountTargetResources() map[string]*resources.AWSEFSMountTarget { + results := map[string]*resources.AWSEFSMountTarget{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEFSMountTarget: + case *resources.AWSEFSMountTarget: results[name] = resource } } @@ -4280,10 +4281,10 @@ func (t *Template) GetAllAWSEFSMountTargetResources() map[string]*AWSEFSMountTar // GetAWSEFSMountTargetWithName retrieves all AWSEFSMountTarget items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEFSMountTargetWithName(name string) (*AWSEFSMountTarget, error) { +func (t *Template) GetAWSEFSMountTargetWithName(name string) (*resources.AWSEFSMountTarget, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEFSMountTarget: + case *resources.AWSEFSMountTarget: return resource, nil } } @@ -4291,11 +4292,11 @@ func (t *Template) GetAWSEFSMountTargetWithName(name string) (*AWSEFSMountTarget } // GetAllAWSEKSClusterResources retrieves all AWSEKSCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSEKSClusterResources() map[string]*AWSEKSCluster { - results := map[string]*AWSEKSCluster{} +func (t *Template) GetAllAWSEKSClusterResources() map[string]*resources.AWSEKSCluster { + results := map[string]*resources.AWSEKSCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEKSCluster: + case *resources.AWSEKSCluster: results[name] = resource } } @@ -4304,10 +4305,10 @@ func (t *Template) GetAllAWSEKSClusterResources() map[string]*AWSEKSCluster { // GetAWSEKSClusterWithName retrieves all AWSEKSCluster items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEKSClusterWithName(name string) (*AWSEKSCluster, error) { +func (t *Template) GetAWSEKSClusterWithName(name string) (*resources.AWSEKSCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEKSCluster: + case *resources.AWSEKSCluster: return resource, nil } } @@ -4315,11 +4316,11 @@ func (t *Template) GetAWSEKSClusterWithName(name string) (*AWSEKSCluster, error) } // GetAllAWSEMRClusterResources retrieves all AWSEMRCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSEMRClusterResources() map[string]*AWSEMRCluster { - results := map[string]*AWSEMRCluster{} +func (t *Template) GetAllAWSEMRClusterResources() map[string]*resources.AWSEMRCluster { + results := map[string]*resources.AWSEMRCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEMRCluster: + case *resources.AWSEMRCluster: results[name] = resource } } @@ -4328,10 +4329,10 @@ func (t *Template) GetAllAWSEMRClusterResources() map[string]*AWSEMRCluster { // GetAWSEMRClusterWithName retrieves all AWSEMRCluster items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEMRClusterWithName(name string) (*AWSEMRCluster, error) { +func (t *Template) GetAWSEMRClusterWithName(name string) (*resources.AWSEMRCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEMRCluster: + case *resources.AWSEMRCluster: return resource, nil } } @@ -4339,11 +4340,11 @@ func (t *Template) GetAWSEMRClusterWithName(name string) (*AWSEMRCluster, error) } // GetAllAWSEMRInstanceFleetConfigResources retrieves all AWSEMRInstanceFleetConfig items from an AWS CloudFormation template -func (t *Template) GetAllAWSEMRInstanceFleetConfigResources() map[string]*AWSEMRInstanceFleetConfig { - results := map[string]*AWSEMRInstanceFleetConfig{} +func (t *Template) GetAllAWSEMRInstanceFleetConfigResources() map[string]*resources.AWSEMRInstanceFleetConfig { + results := map[string]*resources.AWSEMRInstanceFleetConfig{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEMRInstanceFleetConfig: + case *resources.AWSEMRInstanceFleetConfig: results[name] = resource } } @@ -4352,10 +4353,10 @@ func (t *Template) GetAllAWSEMRInstanceFleetConfigResources() map[string]*AWSEMR // GetAWSEMRInstanceFleetConfigWithName retrieves all AWSEMRInstanceFleetConfig items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEMRInstanceFleetConfigWithName(name string) (*AWSEMRInstanceFleetConfig, error) { +func (t *Template) GetAWSEMRInstanceFleetConfigWithName(name string) (*resources.AWSEMRInstanceFleetConfig, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEMRInstanceFleetConfig: + case *resources.AWSEMRInstanceFleetConfig: return resource, nil } } @@ -4363,11 +4364,11 @@ func (t *Template) GetAWSEMRInstanceFleetConfigWithName(name string) (*AWSEMRIns } // GetAllAWSEMRInstanceGroupConfigResources retrieves all AWSEMRInstanceGroupConfig items from an AWS CloudFormation template -func (t *Template) GetAllAWSEMRInstanceGroupConfigResources() map[string]*AWSEMRInstanceGroupConfig { - results := map[string]*AWSEMRInstanceGroupConfig{} +func (t *Template) GetAllAWSEMRInstanceGroupConfigResources() map[string]*resources.AWSEMRInstanceGroupConfig { + results := map[string]*resources.AWSEMRInstanceGroupConfig{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEMRInstanceGroupConfig: + case *resources.AWSEMRInstanceGroupConfig: results[name] = resource } } @@ -4376,10 +4377,10 @@ func (t *Template) GetAllAWSEMRInstanceGroupConfigResources() map[string]*AWSEMR // GetAWSEMRInstanceGroupConfigWithName retrieves all AWSEMRInstanceGroupConfig items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEMRInstanceGroupConfigWithName(name string) (*AWSEMRInstanceGroupConfig, error) { +func (t *Template) GetAWSEMRInstanceGroupConfigWithName(name string) (*resources.AWSEMRInstanceGroupConfig, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEMRInstanceGroupConfig: + case *resources.AWSEMRInstanceGroupConfig: return resource, nil } } @@ -4387,11 +4388,11 @@ func (t *Template) GetAWSEMRInstanceGroupConfigWithName(name string) (*AWSEMRIns } // GetAllAWSEMRSecurityConfigurationResources retrieves all AWSEMRSecurityConfiguration items from an AWS CloudFormation template -func (t *Template) GetAllAWSEMRSecurityConfigurationResources() map[string]*AWSEMRSecurityConfiguration { - results := map[string]*AWSEMRSecurityConfiguration{} +func (t *Template) GetAllAWSEMRSecurityConfigurationResources() map[string]*resources.AWSEMRSecurityConfiguration { + results := map[string]*resources.AWSEMRSecurityConfiguration{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEMRSecurityConfiguration: + case *resources.AWSEMRSecurityConfiguration: results[name] = resource } } @@ -4400,10 +4401,10 @@ func (t *Template) GetAllAWSEMRSecurityConfigurationResources() map[string]*AWSE // GetAWSEMRSecurityConfigurationWithName retrieves all AWSEMRSecurityConfiguration items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEMRSecurityConfigurationWithName(name string) (*AWSEMRSecurityConfiguration, error) { +func (t *Template) GetAWSEMRSecurityConfigurationWithName(name string) (*resources.AWSEMRSecurityConfiguration, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEMRSecurityConfiguration: + case *resources.AWSEMRSecurityConfiguration: return resource, nil } } @@ -4411,11 +4412,11 @@ func (t *Template) GetAWSEMRSecurityConfigurationWithName(name string) (*AWSEMRS } // GetAllAWSEMRStepResources retrieves all AWSEMRStep items from an AWS CloudFormation template -func (t *Template) GetAllAWSEMRStepResources() map[string]*AWSEMRStep { - results := map[string]*AWSEMRStep{} +func (t *Template) GetAllAWSEMRStepResources() map[string]*resources.AWSEMRStep { + results := map[string]*resources.AWSEMRStep{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEMRStep: + case *resources.AWSEMRStep: results[name] = resource } } @@ -4424,10 +4425,10 @@ func (t *Template) GetAllAWSEMRStepResources() map[string]*AWSEMRStep { // GetAWSEMRStepWithName retrieves all AWSEMRStep items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEMRStepWithName(name string) (*AWSEMRStep, error) { +func (t *Template) GetAWSEMRStepWithName(name string) (*resources.AWSEMRStep, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEMRStep: + case *resources.AWSEMRStep: return resource, nil } } @@ -4435,11 +4436,11 @@ func (t *Template) GetAWSEMRStepWithName(name string) (*AWSEMRStep, error) { } // GetAllAWSElastiCacheCacheClusterResources retrieves all AWSElastiCacheCacheCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSElastiCacheCacheClusterResources() map[string]*AWSElastiCacheCacheCluster { - results := map[string]*AWSElastiCacheCacheCluster{} +func (t *Template) GetAllAWSElastiCacheCacheClusterResources() map[string]*resources.AWSElastiCacheCacheCluster { + results := map[string]*resources.AWSElastiCacheCacheCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSElastiCacheCacheCluster: + case *resources.AWSElastiCacheCacheCluster: results[name] = resource } } @@ -4448,10 +4449,10 @@ func (t *Template) GetAllAWSElastiCacheCacheClusterResources() map[string]*AWSEl // GetAWSElastiCacheCacheClusterWithName retrieves all AWSElastiCacheCacheCluster items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElastiCacheCacheClusterWithName(name string) (*AWSElastiCacheCacheCluster, error) { +func (t *Template) GetAWSElastiCacheCacheClusterWithName(name string) (*resources.AWSElastiCacheCacheCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSElastiCacheCacheCluster: + case *resources.AWSElastiCacheCacheCluster: return resource, nil } } @@ -4459,11 +4460,11 @@ func (t *Template) GetAWSElastiCacheCacheClusterWithName(name string) (*AWSElast } // GetAllAWSElastiCacheParameterGroupResources retrieves all AWSElastiCacheParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSElastiCacheParameterGroupResources() map[string]*AWSElastiCacheParameterGroup { - results := map[string]*AWSElastiCacheParameterGroup{} +func (t *Template) GetAllAWSElastiCacheParameterGroupResources() map[string]*resources.AWSElastiCacheParameterGroup { + results := map[string]*resources.AWSElastiCacheParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSElastiCacheParameterGroup: + case *resources.AWSElastiCacheParameterGroup: results[name] = resource } } @@ -4472,10 +4473,10 @@ func (t *Template) GetAllAWSElastiCacheParameterGroupResources() map[string]*AWS // GetAWSElastiCacheParameterGroupWithName retrieves all AWSElastiCacheParameterGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElastiCacheParameterGroupWithName(name string) (*AWSElastiCacheParameterGroup, error) { +func (t *Template) GetAWSElastiCacheParameterGroupWithName(name string) (*resources.AWSElastiCacheParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSElastiCacheParameterGroup: + case *resources.AWSElastiCacheParameterGroup: return resource, nil } } @@ -4483,11 +4484,11 @@ func (t *Template) GetAWSElastiCacheParameterGroupWithName(name string) (*AWSEla } // GetAllAWSElastiCacheReplicationGroupResources retrieves all AWSElastiCacheReplicationGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSElastiCacheReplicationGroupResources() map[string]*AWSElastiCacheReplicationGroup { - results := map[string]*AWSElastiCacheReplicationGroup{} +func (t *Template) GetAllAWSElastiCacheReplicationGroupResources() map[string]*resources.AWSElastiCacheReplicationGroup { + results := map[string]*resources.AWSElastiCacheReplicationGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSElastiCacheReplicationGroup: + case *resources.AWSElastiCacheReplicationGroup: results[name] = resource } } @@ -4496,10 +4497,10 @@ func (t *Template) GetAllAWSElastiCacheReplicationGroupResources() map[string]*A // GetAWSElastiCacheReplicationGroupWithName retrieves all AWSElastiCacheReplicationGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElastiCacheReplicationGroupWithName(name string) (*AWSElastiCacheReplicationGroup, error) { +func (t *Template) GetAWSElastiCacheReplicationGroupWithName(name string) (*resources.AWSElastiCacheReplicationGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSElastiCacheReplicationGroup: + case *resources.AWSElastiCacheReplicationGroup: return resource, nil } } @@ -4507,11 +4508,11 @@ func (t *Template) GetAWSElastiCacheReplicationGroupWithName(name string) (*AWSE } // GetAllAWSElastiCacheSecurityGroupResources retrieves all AWSElastiCacheSecurityGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSElastiCacheSecurityGroupResources() map[string]*AWSElastiCacheSecurityGroup { - results := map[string]*AWSElastiCacheSecurityGroup{} +func (t *Template) GetAllAWSElastiCacheSecurityGroupResources() map[string]*resources.AWSElastiCacheSecurityGroup { + results := map[string]*resources.AWSElastiCacheSecurityGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSElastiCacheSecurityGroup: + case *resources.AWSElastiCacheSecurityGroup: results[name] = resource } } @@ -4520,10 +4521,10 @@ func (t *Template) GetAllAWSElastiCacheSecurityGroupResources() map[string]*AWSE // GetAWSElastiCacheSecurityGroupWithName retrieves all AWSElastiCacheSecurityGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElastiCacheSecurityGroupWithName(name string) (*AWSElastiCacheSecurityGroup, error) { +func (t *Template) GetAWSElastiCacheSecurityGroupWithName(name string) (*resources.AWSElastiCacheSecurityGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSElastiCacheSecurityGroup: + case *resources.AWSElastiCacheSecurityGroup: return resource, nil } } @@ -4531,11 +4532,11 @@ func (t *Template) GetAWSElastiCacheSecurityGroupWithName(name string) (*AWSElas } // GetAllAWSElastiCacheSecurityGroupIngressResources retrieves all AWSElastiCacheSecurityGroupIngress items from an AWS CloudFormation template -func (t *Template) GetAllAWSElastiCacheSecurityGroupIngressResources() map[string]*AWSElastiCacheSecurityGroupIngress { - results := map[string]*AWSElastiCacheSecurityGroupIngress{} +func (t *Template) GetAllAWSElastiCacheSecurityGroupIngressResources() map[string]*resources.AWSElastiCacheSecurityGroupIngress { + results := map[string]*resources.AWSElastiCacheSecurityGroupIngress{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSElastiCacheSecurityGroupIngress: + case *resources.AWSElastiCacheSecurityGroupIngress: results[name] = resource } } @@ -4544,10 +4545,10 @@ func (t *Template) GetAllAWSElastiCacheSecurityGroupIngressResources() map[strin // GetAWSElastiCacheSecurityGroupIngressWithName retrieves all AWSElastiCacheSecurityGroupIngress items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElastiCacheSecurityGroupIngressWithName(name string) (*AWSElastiCacheSecurityGroupIngress, error) { +func (t *Template) GetAWSElastiCacheSecurityGroupIngressWithName(name string) (*resources.AWSElastiCacheSecurityGroupIngress, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSElastiCacheSecurityGroupIngress: + case *resources.AWSElastiCacheSecurityGroupIngress: return resource, nil } } @@ -4555,11 +4556,11 @@ func (t *Template) GetAWSElastiCacheSecurityGroupIngressWithName(name string) (* } // GetAllAWSElastiCacheSubnetGroupResources retrieves all AWSElastiCacheSubnetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSElastiCacheSubnetGroupResources() map[string]*AWSElastiCacheSubnetGroup { - results := map[string]*AWSElastiCacheSubnetGroup{} +func (t *Template) GetAllAWSElastiCacheSubnetGroupResources() map[string]*resources.AWSElastiCacheSubnetGroup { + results := map[string]*resources.AWSElastiCacheSubnetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSElastiCacheSubnetGroup: + case *resources.AWSElastiCacheSubnetGroup: results[name] = resource } } @@ -4568,10 +4569,10 @@ func (t *Template) GetAllAWSElastiCacheSubnetGroupResources() map[string]*AWSEla // GetAWSElastiCacheSubnetGroupWithName retrieves all AWSElastiCacheSubnetGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElastiCacheSubnetGroupWithName(name string) (*AWSElastiCacheSubnetGroup, error) { +func (t *Template) GetAWSElastiCacheSubnetGroupWithName(name string) (*resources.AWSElastiCacheSubnetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSElastiCacheSubnetGroup: + case *resources.AWSElastiCacheSubnetGroup: return resource, nil } } @@ -4579,11 +4580,11 @@ func (t *Template) GetAWSElastiCacheSubnetGroupWithName(name string) (*AWSElasti } // GetAllAWSElasticBeanstalkApplicationResources retrieves all AWSElasticBeanstalkApplication items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticBeanstalkApplicationResources() map[string]*AWSElasticBeanstalkApplication { - results := map[string]*AWSElasticBeanstalkApplication{} +func (t *Template) GetAllAWSElasticBeanstalkApplicationResources() map[string]*resources.AWSElasticBeanstalkApplication { + results := map[string]*resources.AWSElasticBeanstalkApplication{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSElasticBeanstalkApplication: + case *resources.AWSElasticBeanstalkApplication: results[name] = resource } } @@ -4592,10 +4593,10 @@ func (t *Template) GetAllAWSElasticBeanstalkApplicationResources() map[string]*A // GetAWSElasticBeanstalkApplicationWithName retrieves all AWSElasticBeanstalkApplication items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticBeanstalkApplicationWithName(name string) (*AWSElasticBeanstalkApplication, error) { +func (t *Template) GetAWSElasticBeanstalkApplicationWithName(name string) (*resources.AWSElasticBeanstalkApplication, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSElasticBeanstalkApplication: + case *resources.AWSElasticBeanstalkApplication: return resource, nil } } @@ -4603,11 +4604,11 @@ func (t *Template) GetAWSElasticBeanstalkApplicationWithName(name string) (*AWSE } // GetAllAWSElasticBeanstalkApplicationVersionResources retrieves all AWSElasticBeanstalkApplicationVersion items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticBeanstalkApplicationVersionResources() map[string]*AWSElasticBeanstalkApplicationVersion { - results := map[string]*AWSElasticBeanstalkApplicationVersion{} +func (t *Template) GetAllAWSElasticBeanstalkApplicationVersionResources() map[string]*resources.AWSElasticBeanstalkApplicationVersion { + results := map[string]*resources.AWSElasticBeanstalkApplicationVersion{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSElasticBeanstalkApplicationVersion: + case *resources.AWSElasticBeanstalkApplicationVersion: results[name] = resource } } @@ -4616,10 +4617,10 @@ func (t *Template) GetAllAWSElasticBeanstalkApplicationVersionResources() map[st // GetAWSElasticBeanstalkApplicationVersionWithName retrieves all AWSElasticBeanstalkApplicationVersion items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticBeanstalkApplicationVersionWithName(name string) (*AWSElasticBeanstalkApplicationVersion, error) { +func (t *Template) GetAWSElasticBeanstalkApplicationVersionWithName(name string) (*resources.AWSElasticBeanstalkApplicationVersion, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSElasticBeanstalkApplicationVersion: + case *resources.AWSElasticBeanstalkApplicationVersion: return resource, nil } } @@ -4627,11 +4628,11 @@ func (t *Template) GetAWSElasticBeanstalkApplicationVersionWithName(name string) } // GetAllAWSElasticBeanstalkConfigurationTemplateResources retrieves all AWSElasticBeanstalkConfigurationTemplate items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticBeanstalkConfigurationTemplateResources() map[string]*AWSElasticBeanstalkConfigurationTemplate { - results := map[string]*AWSElasticBeanstalkConfigurationTemplate{} +func (t *Template) GetAllAWSElasticBeanstalkConfigurationTemplateResources() map[string]*resources.AWSElasticBeanstalkConfigurationTemplate { + results := map[string]*resources.AWSElasticBeanstalkConfigurationTemplate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSElasticBeanstalkConfigurationTemplate: + case *resources.AWSElasticBeanstalkConfigurationTemplate: results[name] = resource } } @@ -4640,10 +4641,10 @@ func (t *Template) GetAllAWSElasticBeanstalkConfigurationTemplateResources() map // GetAWSElasticBeanstalkConfigurationTemplateWithName retrieves all AWSElasticBeanstalkConfigurationTemplate items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticBeanstalkConfigurationTemplateWithName(name string) (*AWSElasticBeanstalkConfigurationTemplate, error) { +func (t *Template) GetAWSElasticBeanstalkConfigurationTemplateWithName(name string) (*resources.AWSElasticBeanstalkConfigurationTemplate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSElasticBeanstalkConfigurationTemplate: + case *resources.AWSElasticBeanstalkConfigurationTemplate: return resource, nil } } @@ -4651,11 +4652,11 @@ func (t *Template) GetAWSElasticBeanstalkConfigurationTemplateWithName(name stri } // GetAllAWSElasticBeanstalkEnvironmentResources retrieves all AWSElasticBeanstalkEnvironment items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticBeanstalkEnvironmentResources() map[string]*AWSElasticBeanstalkEnvironment { - results := map[string]*AWSElasticBeanstalkEnvironment{} +func (t *Template) GetAllAWSElasticBeanstalkEnvironmentResources() map[string]*resources.AWSElasticBeanstalkEnvironment { + results := map[string]*resources.AWSElasticBeanstalkEnvironment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSElasticBeanstalkEnvironment: + case *resources.AWSElasticBeanstalkEnvironment: results[name] = resource } } @@ -4664,10 +4665,10 @@ func (t *Template) GetAllAWSElasticBeanstalkEnvironmentResources() map[string]*A // GetAWSElasticBeanstalkEnvironmentWithName retrieves all AWSElasticBeanstalkEnvironment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticBeanstalkEnvironmentWithName(name string) (*AWSElasticBeanstalkEnvironment, error) { +func (t *Template) GetAWSElasticBeanstalkEnvironmentWithName(name string) (*resources.AWSElasticBeanstalkEnvironment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSElasticBeanstalkEnvironment: + case *resources.AWSElasticBeanstalkEnvironment: return resource, nil } } @@ -4675,11 +4676,11 @@ func (t *Template) GetAWSElasticBeanstalkEnvironmentWithName(name string) (*AWSE } // GetAllAWSElasticLoadBalancingLoadBalancerResources retrieves all AWSElasticLoadBalancingLoadBalancer items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticLoadBalancingLoadBalancerResources() map[string]*AWSElasticLoadBalancingLoadBalancer { - results := map[string]*AWSElasticLoadBalancingLoadBalancer{} +func (t *Template) GetAllAWSElasticLoadBalancingLoadBalancerResources() map[string]*resources.AWSElasticLoadBalancingLoadBalancer { + results := map[string]*resources.AWSElasticLoadBalancingLoadBalancer{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSElasticLoadBalancingLoadBalancer: + case *resources.AWSElasticLoadBalancingLoadBalancer: results[name] = resource } } @@ -4688,10 +4689,10 @@ func (t *Template) GetAllAWSElasticLoadBalancingLoadBalancerResources() map[stri // GetAWSElasticLoadBalancingLoadBalancerWithName retrieves all AWSElasticLoadBalancingLoadBalancer items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticLoadBalancingLoadBalancerWithName(name string) (*AWSElasticLoadBalancingLoadBalancer, error) { +func (t *Template) GetAWSElasticLoadBalancingLoadBalancerWithName(name string) (*resources.AWSElasticLoadBalancingLoadBalancer, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSElasticLoadBalancingLoadBalancer: + case *resources.AWSElasticLoadBalancingLoadBalancer: return resource, nil } } @@ -4699,11 +4700,11 @@ func (t *Template) GetAWSElasticLoadBalancingLoadBalancerWithName(name string) ( } // GetAllAWSElasticLoadBalancingV2ListenerResources retrieves all AWSElasticLoadBalancingV2Listener items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerResources() map[string]*AWSElasticLoadBalancingV2Listener { - results := map[string]*AWSElasticLoadBalancingV2Listener{} +func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerResources() map[string]*resources.AWSElasticLoadBalancingV2Listener { + results := map[string]*resources.AWSElasticLoadBalancingV2Listener{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSElasticLoadBalancingV2Listener: + case *resources.AWSElasticLoadBalancingV2Listener: results[name] = resource } } @@ -4712,10 +4713,10 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerResources() map[string // GetAWSElasticLoadBalancingV2ListenerWithName retrieves all AWSElasticLoadBalancingV2Listener items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticLoadBalancingV2ListenerWithName(name string) (*AWSElasticLoadBalancingV2Listener, error) { +func (t *Template) GetAWSElasticLoadBalancingV2ListenerWithName(name string) (*resources.AWSElasticLoadBalancingV2Listener, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSElasticLoadBalancingV2Listener: + case *resources.AWSElasticLoadBalancingV2Listener: return resource, nil } } @@ -4723,11 +4724,11 @@ func (t *Template) GetAWSElasticLoadBalancingV2ListenerWithName(name string) (*A } // GetAllAWSElasticLoadBalancingV2ListenerCertificateResources retrieves all AWSElasticLoadBalancingV2ListenerCertificate items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerCertificateResources() map[string]*AWSElasticLoadBalancingV2ListenerCertificate { - results := map[string]*AWSElasticLoadBalancingV2ListenerCertificate{} +func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerCertificateResources() map[string]*resources.AWSElasticLoadBalancingV2ListenerCertificate { + results := map[string]*resources.AWSElasticLoadBalancingV2ListenerCertificate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSElasticLoadBalancingV2ListenerCertificate: + case *resources.AWSElasticLoadBalancingV2ListenerCertificate: results[name] = resource } } @@ -4736,10 +4737,10 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerCertificateResources() // GetAWSElasticLoadBalancingV2ListenerCertificateWithName retrieves all AWSElasticLoadBalancingV2ListenerCertificate items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticLoadBalancingV2ListenerCertificateWithName(name string) (*AWSElasticLoadBalancingV2ListenerCertificate, error) { +func (t *Template) GetAWSElasticLoadBalancingV2ListenerCertificateWithName(name string) (*resources.AWSElasticLoadBalancingV2ListenerCertificate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSElasticLoadBalancingV2ListenerCertificate: + case *resources.AWSElasticLoadBalancingV2ListenerCertificate: return resource, nil } } @@ -4747,11 +4748,11 @@ func (t *Template) GetAWSElasticLoadBalancingV2ListenerCertificateWithName(name } // GetAllAWSElasticLoadBalancingV2ListenerRuleResources retrieves all AWSElasticLoadBalancingV2ListenerRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerRuleResources() map[string]*AWSElasticLoadBalancingV2ListenerRule { - results := map[string]*AWSElasticLoadBalancingV2ListenerRule{} +func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerRuleResources() map[string]*resources.AWSElasticLoadBalancingV2ListenerRule { + results := map[string]*resources.AWSElasticLoadBalancingV2ListenerRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSElasticLoadBalancingV2ListenerRule: + case *resources.AWSElasticLoadBalancingV2ListenerRule: results[name] = resource } } @@ -4760,10 +4761,10 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2ListenerRuleResources() map[st // GetAWSElasticLoadBalancingV2ListenerRuleWithName retrieves all AWSElasticLoadBalancingV2ListenerRule items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticLoadBalancingV2ListenerRuleWithName(name string) (*AWSElasticLoadBalancingV2ListenerRule, error) { +func (t *Template) GetAWSElasticLoadBalancingV2ListenerRuleWithName(name string) (*resources.AWSElasticLoadBalancingV2ListenerRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSElasticLoadBalancingV2ListenerRule: + case *resources.AWSElasticLoadBalancingV2ListenerRule: return resource, nil } } @@ -4771,11 +4772,11 @@ func (t *Template) GetAWSElasticLoadBalancingV2ListenerRuleWithName(name string) } // GetAllAWSElasticLoadBalancingV2LoadBalancerResources retrieves all AWSElasticLoadBalancingV2LoadBalancer items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticLoadBalancingV2LoadBalancerResources() map[string]*AWSElasticLoadBalancingV2LoadBalancer { - results := map[string]*AWSElasticLoadBalancingV2LoadBalancer{} +func (t *Template) GetAllAWSElasticLoadBalancingV2LoadBalancerResources() map[string]*resources.AWSElasticLoadBalancingV2LoadBalancer { + results := map[string]*resources.AWSElasticLoadBalancingV2LoadBalancer{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSElasticLoadBalancingV2LoadBalancer: + case *resources.AWSElasticLoadBalancingV2LoadBalancer: results[name] = resource } } @@ -4784,10 +4785,10 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2LoadBalancerResources() map[st // GetAWSElasticLoadBalancingV2LoadBalancerWithName retrieves all AWSElasticLoadBalancingV2LoadBalancer items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticLoadBalancingV2LoadBalancerWithName(name string) (*AWSElasticLoadBalancingV2LoadBalancer, error) { +func (t *Template) GetAWSElasticLoadBalancingV2LoadBalancerWithName(name string) (*resources.AWSElasticLoadBalancingV2LoadBalancer, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSElasticLoadBalancingV2LoadBalancer: + case *resources.AWSElasticLoadBalancingV2LoadBalancer: return resource, nil } } @@ -4795,11 +4796,11 @@ func (t *Template) GetAWSElasticLoadBalancingV2LoadBalancerWithName(name string) } // GetAllAWSElasticLoadBalancingV2TargetGroupResources retrieves all AWSElasticLoadBalancingV2TargetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticLoadBalancingV2TargetGroupResources() map[string]*AWSElasticLoadBalancingV2TargetGroup { - results := map[string]*AWSElasticLoadBalancingV2TargetGroup{} +func (t *Template) GetAllAWSElasticLoadBalancingV2TargetGroupResources() map[string]*resources.AWSElasticLoadBalancingV2TargetGroup { + results := map[string]*resources.AWSElasticLoadBalancingV2TargetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSElasticLoadBalancingV2TargetGroup: + case *resources.AWSElasticLoadBalancingV2TargetGroup: results[name] = resource } } @@ -4808,10 +4809,10 @@ func (t *Template) GetAllAWSElasticLoadBalancingV2TargetGroupResources() map[str // GetAWSElasticLoadBalancingV2TargetGroupWithName retrieves all AWSElasticLoadBalancingV2TargetGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticLoadBalancingV2TargetGroupWithName(name string) (*AWSElasticLoadBalancingV2TargetGroup, error) { +func (t *Template) GetAWSElasticLoadBalancingV2TargetGroupWithName(name string) (*resources.AWSElasticLoadBalancingV2TargetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSElasticLoadBalancingV2TargetGroup: + case *resources.AWSElasticLoadBalancingV2TargetGroup: return resource, nil } } @@ -4819,11 +4820,11 @@ func (t *Template) GetAWSElasticLoadBalancingV2TargetGroupWithName(name string) } // GetAllAWSElasticsearchDomainResources retrieves all AWSElasticsearchDomain items from an AWS CloudFormation template -func (t *Template) GetAllAWSElasticsearchDomainResources() map[string]*AWSElasticsearchDomain { - results := map[string]*AWSElasticsearchDomain{} +func (t *Template) GetAllAWSElasticsearchDomainResources() map[string]*resources.AWSElasticsearchDomain { + results := map[string]*resources.AWSElasticsearchDomain{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSElasticsearchDomain: + case *resources.AWSElasticsearchDomain: results[name] = resource } } @@ -4832,10 +4833,10 @@ func (t *Template) GetAllAWSElasticsearchDomainResources() map[string]*AWSElasti // GetAWSElasticsearchDomainWithName retrieves all AWSElasticsearchDomain items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSElasticsearchDomainWithName(name string) (*AWSElasticsearchDomain, error) { +func (t *Template) GetAWSElasticsearchDomainWithName(name string) (*resources.AWSElasticsearchDomain, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSElasticsearchDomain: + case *resources.AWSElasticsearchDomain: return resource, nil } } @@ -4843,11 +4844,11 @@ func (t *Template) GetAWSElasticsearchDomainWithName(name string) (*AWSElasticse } // GetAllAWSEventsEventBusPolicyResources retrieves all AWSEventsEventBusPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSEventsEventBusPolicyResources() map[string]*AWSEventsEventBusPolicy { - results := map[string]*AWSEventsEventBusPolicy{} +func (t *Template) GetAllAWSEventsEventBusPolicyResources() map[string]*resources.AWSEventsEventBusPolicy { + results := map[string]*resources.AWSEventsEventBusPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEventsEventBusPolicy: + case *resources.AWSEventsEventBusPolicy: results[name] = resource } } @@ -4856,10 +4857,10 @@ func (t *Template) GetAllAWSEventsEventBusPolicyResources() map[string]*AWSEvent // GetAWSEventsEventBusPolicyWithName retrieves all AWSEventsEventBusPolicy items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEventsEventBusPolicyWithName(name string) (*AWSEventsEventBusPolicy, error) { +func (t *Template) GetAWSEventsEventBusPolicyWithName(name string) (*resources.AWSEventsEventBusPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEventsEventBusPolicy: + case *resources.AWSEventsEventBusPolicy: return resource, nil } } @@ -4867,11 +4868,11 @@ func (t *Template) GetAWSEventsEventBusPolicyWithName(name string) (*AWSEventsEv } // GetAllAWSEventsRuleResources retrieves all AWSEventsRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSEventsRuleResources() map[string]*AWSEventsRule { - results := map[string]*AWSEventsRule{} +func (t *Template) GetAllAWSEventsRuleResources() map[string]*resources.AWSEventsRule { + results := map[string]*resources.AWSEventsRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSEventsRule: + case *resources.AWSEventsRule: results[name] = resource } } @@ -4880,10 +4881,10 @@ func (t *Template) GetAllAWSEventsRuleResources() map[string]*AWSEventsRule { // GetAWSEventsRuleWithName retrieves all AWSEventsRule items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSEventsRuleWithName(name string) (*AWSEventsRule, error) { +func (t *Template) GetAWSEventsRuleWithName(name string) (*resources.AWSEventsRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSEventsRule: + case *resources.AWSEventsRule: return resource, nil } } @@ -4891,11 +4892,11 @@ func (t *Template) GetAWSEventsRuleWithName(name string) (*AWSEventsRule, error) } // GetAllAWSFSxFileSystemResources retrieves all AWSFSxFileSystem items from an AWS CloudFormation template -func (t *Template) GetAllAWSFSxFileSystemResources() map[string]*AWSFSxFileSystem { - results := map[string]*AWSFSxFileSystem{} +func (t *Template) GetAllAWSFSxFileSystemResources() map[string]*resources.AWSFSxFileSystem { + results := map[string]*resources.AWSFSxFileSystem{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSFSxFileSystem: + case *resources.AWSFSxFileSystem: results[name] = resource } } @@ -4904,10 +4905,10 @@ func (t *Template) GetAllAWSFSxFileSystemResources() map[string]*AWSFSxFileSyste // GetAWSFSxFileSystemWithName retrieves all AWSFSxFileSystem items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSFSxFileSystemWithName(name string) (*AWSFSxFileSystem, error) { +func (t *Template) GetAWSFSxFileSystemWithName(name string) (*resources.AWSFSxFileSystem, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSFSxFileSystem: + case *resources.AWSFSxFileSystem: return resource, nil } } @@ -4915,11 +4916,11 @@ func (t *Template) GetAWSFSxFileSystemWithName(name string) (*AWSFSxFileSystem, } // GetAllAWSGameLiftAliasResources retrieves all AWSGameLiftAlias items from an AWS CloudFormation template -func (t *Template) GetAllAWSGameLiftAliasResources() map[string]*AWSGameLiftAlias { - results := map[string]*AWSGameLiftAlias{} +func (t *Template) GetAllAWSGameLiftAliasResources() map[string]*resources.AWSGameLiftAlias { + results := map[string]*resources.AWSGameLiftAlias{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSGameLiftAlias: + case *resources.AWSGameLiftAlias: results[name] = resource } } @@ -4928,10 +4929,10 @@ func (t *Template) GetAllAWSGameLiftAliasResources() map[string]*AWSGameLiftAlia // GetAWSGameLiftAliasWithName retrieves all AWSGameLiftAlias items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGameLiftAliasWithName(name string) (*AWSGameLiftAlias, error) { +func (t *Template) GetAWSGameLiftAliasWithName(name string) (*resources.AWSGameLiftAlias, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSGameLiftAlias: + case *resources.AWSGameLiftAlias: return resource, nil } } @@ -4939,11 +4940,11 @@ func (t *Template) GetAWSGameLiftAliasWithName(name string) (*AWSGameLiftAlias, } // GetAllAWSGameLiftBuildResources retrieves all AWSGameLiftBuild items from an AWS CloudFormation template -func (t *Template) GetAllAWSGameLiftBuildResources() map[string]*AWSGameLiftBuild { - results := map[string]*AWSGameLiftBuild{} +func (t *Template) GetAllAWSGameLiftBuildResources() map[string]*resources.AWSGameLiftBuild { + results := map[string]*resources.AWSGameLiftBuild{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSGameLiftBuild: + case *resources.AWSGameLiftBuild: results[name] = resource } } @@ -4952,10 +4953,10 @@ func (t *Template) GetAllAWSGameLiftBuildResources() map[string]*AWSGameLiftBuil // GetAWSGameLiftBuildWithName retrieves all AWSGameLiftBuild items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGameLiftBuildWithName(name string) (*AWSGameLiftBuild, error) { +func (t *Template) GetAWSGameLiftBuildWithName(name string) (*resources.AWSGameLiftBuild, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSGameLiftBuild: + case *resources.AWSGameLiftBuild: return resource, nil } } @@ -4963,11 +4964,11 @@ func (t *Template) GetAWSGameLiftBuildWithName(name string) (*AWSGameLiftBuild, } // GetAllAWSGameLiftFleetResources retrieves all AWSGameLiftFleet items from an AWS CloudFormation template -func (t *Template) GetAllAWSGameLiftFleetResources() map[string]*AWSGameLiftFleet { - results := map[string]*AWSGameLiftFleet{} +func (t *Template) GetAllAWSGameLiftFleetResources() map[string]*resources.AWSGameLiftFleet { + results := map[string]*resources.AWSGameLiftFleet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSGameLiftFleet: + case *resources.AWSGameLiftFleet: results[name] = resource } } @@ -4976,10 +4977,10 @@ func (t *Template) GetAllAWSGameLiftFleetResources() map[string]*AWSGameLiftFlee // GetAWSGameLiftFleetWithName retrieves all AWSGameLiftFleet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGameLiftFleetWithName(name string) (*AWSGameLiftFleet, error) { +func (t *Template) GetAWSGameLiftFleetWithName(name string) (*resources.AWSGameLiftFleet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSGameLiftFleet: + case *resources.AWSGameLiftFleet: return resource, nil } } @@ -4987,11 +4988,11 @@ func (t *Template) GetAWSGameLiftFleetWithName(name string) (*AWSGameLiftFleet, } // GetAllAWSGlueClassifierResources retrieves all AWSGlueClassifier items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueClassifierResources() map[string]*AWSGlueClassifier { - results := map[string]*AWSGlueClassifier{} +func (t *Template) GetAllAWSGlueClassifierResources() map[string]*resources.AWSGlueClassifier { + results := map[string]*resources.AWSGlueClassifier{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSGlueClassifier: + case *resources.AWSGlueClassifier: results[name] = resource } } @@ -5000,10 +5001,10 @@ func (t *Template) GetAllAWSGlueClassifierResources() map[string]*AWSGlueClassif // GetAWSGlueClassifierWithName retrieves all AWSGlueClassifier items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueClassifierWithName(name string) (*AWSGlueClassifier, error) { +func (t *Template) GetAWSGlueClassifierWithName(name string) (*resources.AWSGlueClassifier, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSGlueClassifier: + case *resources.AWSGlueClassifier: return resource, nil } } @@ -5011,11 +5012,11 @@ func (t *Template) GetAWSGlueClassifierWithName(name string) (*AWSGlueClassifier } // GetAllAWSGlueConnectionResources retrieves all AWSGlueConnection items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueConnectionResources() map[string]*AWSGlueConnection { - results := map[string]*AWSGlueConnection{} +func (t *Template) GetAllAWSGlueConnectionResources() map[string]*resources.AWSGlueConnection { + results := map[string]*resources.AWSGlueConnection{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSGlueConnection: + case *resources.AWSGlueConnection: results[name] = resource } } @@ -5024,10 +5025,10 @@ func (t *Template) GetAllAWSGlueConnectionResources() map[string]*AWSGlueConnect // GetAWSGlueConnectionWithName retrieves all AWSGlueConnection items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueConnectionWithName(name string) (*AWSGlueConnection, error) { +func (t *Template) GetAWSGlueConnectionWithName(name string) (*resources.AWSGlueConnection, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSGlueConnection: + case *resources.AWSGlueConnection: return resource, nil } } @@ -5035,11 +5036,11 @@ func (t *Template) GetAWSGlueConnectionWithName(name string) (*AWSGlueConnection } // GetAllAWSGlueCrawlerResources retrieves all AWSGlueCrawler items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueCrawlerResources() map[string]*AWSGlueCrawler { - results := map[string]*AWSGlueCrawler{} +func (t *Template) GetAllAWSGlueCrawlerResources() map[string]*resources.AWSGlueCrawler { + results := map[string]*resources.AWSGlueCrawler{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSGlueCrawler: + case *resources.AWSGlueCrawler: results[name] = resource } } @@ -5048,10 +5049,10 @@ func (t *Template) GetAllAWSGlueCrawlerResources() map[string]*AWSGlueCrawler { // GetAWSGlueCrawlerWithName retrieves all AWSGlueCrawler items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueCrawlerWithName(name string) (*AWSGlueCrawler, error) { +func (t *Template) GetAWSGlueCrawlerWithName(name string) (*resources.AWSGlueCrawler, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSGlueCrawler: + case *resources.AWSGlueCrawler: return resource, nil } } @@ -5059,11 +5060,11 @@ func (t *Template) GetAWSGlueCrawlerWithName(name string) (*AWSGlueCrawler, erro } // GetAllAWSGlueDatabaseResources retrieves all AWSGlueDatabase items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueDatabaseResources() map[string]*AWSGlueDatabase { - results := map[string]*AWSGlueDatabase{} +func (t *Template) GetAllAWSGlueDatabaseResources() map[string]*resources.AWSGlueDatabase { + results := map[string]*resources.AWSGlueDatabase{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSGlueDatabase: + case *resources.AWSGlueDatabase: results[name] = resource } } @@ -5072,10 +5073,10 @@ func (t *Template) GetAllAWSGlueDatabaseResources() map[string]*AWSGlueDatabase // GetAWSGlueDatabaseWithName retrieves all AWSGlueDatabase items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueDatabaseWithName(name string) (*AWSGlueDatabase, error) { +func (t *Template) GetAWSGlueDatabaseWithName(name string) (*resources.AWSGlueDatabase, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSGlueDatabase: + case *resources.AWSGlueDatabase: return resource, nil } } @@ -5083,11 +5084,11 @@ func (t *Template) GetAWSGlueDatabaseWithName(name string) (*AWSGlueDatabase, er } // GetAllAWSGlueDevEndpointResources retrieves all AWSGlueDevEndpoint items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueDevEndpointResources() map[string]*AWSGlueDevEndpoint { - results := map[string]*AWSGlueDevEndpoint{} +func (t *Template) GetAllAWSGlueDevEndpointResources() map[string]*resources.AWSGlueDevEndpoint { + results := map[string]*resources.AWSGlueDevEndpoint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSGlueDevEndpoint: + case *resources.AWSGlueDevEndpoint: results[name] = resource } } @@ -5096,10 +5097,10 @@ func (t *Template) GetAllAWSGlueDevEndpointResources() map[string]*AWSGlueDevEnd // GetAWSGlueDevEndpointWithName retrieves all AWSGlueDevEndpoint items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueDevEndpointWithName(name string) (*AWSGlueDevEndpoint, error) { +func (t *Template) GetAWSGlueDevEndpointWithName(name string) (*resources.AWSGlueDevEndpoint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSGlueDevEndpoint: + case *resources.AWSGlueDevEndpoint: return resource, nil } } @@ -5107,11 +5108,11 @@ func (t *Template) GetAWSGlueDevEndpointWithName(name string) (*AWSGlueDevEndpoi } // GetAllAWSGlueJobResources retrieves all AWSGlueJob items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueJobResources() map[string]*AWSGlueJob { - results := map[string]*AWSGlueJob{} +func (t *Template) GetAllAWSGlueJobResources() map[string]*resources.AWSGlueJob { + results := map[string]*resources.AWSGlueJob{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSGlueJob: + case *resources.AWSGlueJob: results[name] = resource } } @@ -5120,10 +5121,10 @@ func (t *Template) GetAllAWSGlueJobResources() map[string]*AWSGlueJob { // GetAWSGlueJobWithName retrieves all AWSGlueJob items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueJobWithName(name string) (*AWSGlueJob, error) { +func (t *Template) GetAWSGlueJobWithName(name string) (*resources.AWSGlueJob, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSGlueJob: + case *resources.AWSGlueJob: return resource, nil } } @@ -5131,11 +5132,11 @@ func (t *Template) GetAWSGlueJobWithName(name string) (*AWSGlueJob, error) { } // GetAllAWSGluePartitionResources retrieves all AWSGluePartition items from an AWS CloudFormation template -func (t *Template) GetAllAWSGluePartitionResources() map[string]*AWSGluePartition { - results := map[string]*AWSGluePartition{} +func (t *Template) GetAllAWSGluePartitionResources() map[string]*resources.AWSGluePartition { + results := map[string]*resources.AWSGluePartition{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSGluePartition: + case *resources.AWSGluePartition: results[name] = resource } } @@ -5144,10 +5145,10 @@ func (t *Template) GetAllAWSGluePartitionResources() map[string]*AWSGluePartitio // GetAWSGluePartitionWithName retrieves all AWSGluePartition items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGluePartitionWithName(name string) (*AWSGluePartition, error) { +func (t *Template) GetAWSGluePartitionWithName(name string) (*resources.AWSGluePartition, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSGluePartition: + case *resources.AWSGluePartition: return resource, nil } } @@ -5155,11 +5156,11 @@ func (t *Template) GetAWSGluePartitionWithName(name string) (*AWSGluePartition, } // GetAllAWSGlueTableResources retrieves all AWSGlueTable items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueTableResources() map[string]*AWSGlueTable { - results := map[string]*AWSGlueTable{} +func (t *Template) GetAllAWSGlueTableResources() map[string]*resources.AWSGlueTable { + results := map[string]*resources.AWSGlueTable{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSGlueTable: + case *resources.AWSGlueTable: results[name] = resource } } @@ -5168,10 +5169,10 @@ func (t *Template) GetAllAWSGlueTableResources() map[string]*AWSGlueTable { // GetAWSGlueTableWithName retrieves all AWSGlueTable items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueTableWithName(name string) (*AWSGlueTable, error) { +func (t *Template) GetAWSGlueTableWithName(name string) (*resources.AWSGlueTable, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSGlueTable: + case *resources.AWSGlueTable: return resource, nil } } @@ -5179,11 +5180,11 @@ func (t *Template) GetAWSGlueTableWithName(name string) (*AWSGlueTable, error) { } // GetAllAWSGlueTriggerResources retrieves all AWSGlueTrigger items from an AWS CloudFormation template -func (t *Template) GetAllAWSGlueTriggerResources() map[string]*AWSGlueTrigger { - results := map[string]*AWSGlueTrigger{} +func (t *Template) GetAllAWSGlueTriggerResources() map[string]*resources.AWSGlueTrigger { + results := map[string]*resources.AWSGlueTrigger{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSGlueTrigger: + case *resources.AWSGlueTrigger: results[name] = resource } } @@ -5192,10 +5193,10 @@ func (t *Template) GetAllAWSGlueTriggerResources() map[string]*AWSGlueTrigger { // GetAWSGlueTriggerWithName retrieves all AWSGlueTrigger items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGlueTriggerWithName(name string) (*AWSGlueTrigger, error) { +func (t *Template) GetAWSGlueTriggerWithName(name string) (*resources.AWSGlueTrigger, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSGlueTrigger: + case *resources.AWSGlueTrigger: return resource, nil } } @@ -5203,11 +5204,11 @@ func (t *Template) GetAWSGlueTriggerWithName(name string) (*AWSGlueTrigger, erro } // GetAllAWSGuardDutyDetectorResources retrieves all AWSGuardDutyDetector items from an AWS CloudFormation template -func (t *Template) GetAllAWSGuardDutyDetectorResources() map[string]*AWSGuardDutyDetector { - results := map[string]*AWSGuardDutyDetector{} +func (t *Template) GetAllAWSGuardDutyDetectorResources() map[string]*resources.AWSGuardDutyDetector { + results := map[string]*resources.AWSGuardDutyDetector{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSGuardDutyDetector: + case *resources.AWSGuardDutyDetector: results[name] = resource } } @@ -5216,10 +5217,10 @@ func (t *Template) GetAllAWSGuardDutyDetectorResources() map[string]*AWSGuardDut // GetAWSGuardDutyDetectorWithName retrieves all AWSGuardDutyDetector items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGuardDutyDetectorWithName(name string) (*AWSGuardDutyDetector, error) { +func (t *Template) GetAWSGuardDutyDetectorWithName(name string) (*resources.AWSGuardDutyDetector, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSGuardDutyDetector: + case *resources.AWSGuardDutyDetector: return resource, nil } } @@ -5227,11 +5228,11 @@ func (t *Template) GetAWSGuardDutyDetectorWithName(name string) (*AWSGuardDutyDe } // GetAllAWSGuardDutyFilterResources retrieves all AWSGuardDutyFilter items from an AWS CloudFormation template -func (t *Template) GetAllAWSGuardDutyFilterResources() map[string]*AWSGuardDutyFilter { - results := map[string]*AWSGuardDutyFilter{} +func (t *Template) GetAllAWSGuardDutyFilterResources() map[string]*resources.AWSGuardDutyFilter { + results := map[string]*resources.AWSGuardDutyFilter{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSGuardDutyFilter: + case *resources.AWSGuardDutyFilter: results[name] = resource } } @@ -5240,10 +5241,10 @@ func (t *Template) GetAllAWSGuardDutyFilterResources() map[string]*AWSGuardDutyF // GetAWSGuardDutyFilterWithName retrieves all AWSGuardDutyFilter items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGuardDutyFilterWithName(name string) (*AWSGuardDutyFilter, error) { +func (t *Template) GetAWSGuardDutyFilterWithName(name string) (*resources.AWSGuardDutyFilter, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSGuardDutyFilter: + case *resources.AWSGuardDutyFilter: return resource, nil } } @@ -5251,11 +5252,11 @@ func (t *Template) GetAWSGuardDutyFilterWithName(name string) (*AWSGuardDutyFilt } // GetAllAWSGuardDutyIPSetResources retrieves all AWSGuardDutyIPSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSGuardDutyIPSetResources() map[string]*AWSGuardDutyIPSet { - results := map[string]*AWSGuardDutyIPSet{} +func (t *Template) GetAllAWSGuardDutyIPSetResources() map[string]*resources.AWSGuardDutyIPSet { + results := map[string]*resources.AWSGuardDutyIPSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSGuardDutyIPSet: + case *resources.AWSGuardDutyIPSet: results[name] = resource } } @@ -5264,10 +5265,10 @@ func (t *Template) GetAllAWSGuardDutyIPSetResources() map[string]*AWSGuardDutyIP // GetAWSGuardDutyIPSetWithName retrieves all AWSGuardDutyIPSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGuardDutyIPSetWithName(name string) (*AWSGuardDutyIPSet, error) { +func (t *Template) GetAWSGuardDutyIPSetWithName(name string) (*resources.AWSGuardDutyIPSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSGuardDutyIPSet: + case *resources.AWSGuardDutyIPSet: return resource, nil } } @@ -5275,11 +5276,11 @@ func (t *Template) GetAWSGuardDutyIPSetWithName(name string) (*AWSGuardDutyIPSet } // GetAllAWSGuardDutyMasterResources retrieves all AWSGuardDutyMaster items from an AWS CloudFormation template -func (t *Template) GetAllAWSGuardDutyMasterResources() map[string]*AWSGuardDutyMaster { - results := map[string]*AWSGuardDutyMaster{} +func (t *Template) GetAllAWSGuardDutyMasterResources() map[string]*resources.AWSGuardDutyMaster { + results := map[string]*resources.AWSGuardDutyMaster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSGuardDutyMaster: + case *resources.AWSGuardDutyMaster: results[name] = resource } } @@ -5288,10 +5289,10 @@ func (t *Template) GetAllAWSGuardDutyMasterResources() map[string]*AWSGuardDutyM // GetAWSGuardDutyMasterWithName retrieves all AWSGuardDutyMaster items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGuardDutyMasterWithName(name string) (*AWSGuardDutyMaster, error) { +func (t *Template) GetAWSGuardDutyMasterWithName(name string) (*resources.AWSGuardDutyMaster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSGuardDutyMaster: + case *resources.AWSGuardDutyMaster: return resource, nil } } @@ -5299,11 +5300,11 @@ func (t *Template) GetAWSGuardDutyMasterWithName(name string) (*AWSGuardDutyMast } // GetAllAWSGuardDutyMemberResources retrieves all AWSGuardDutyMember items from an AWS CloudFormation template -func (t *Template) GetAllAWSGuardDutyMemberResources() map[string]*AWSGuardDutyMember { - results := map[string]*AWSGuardDutyMember{} +func (t *Template) GetAllAWSGuardDutyMemberResources() map[string]*resources.AWSGuardDutyMember { + results := map[string]*resources.AWSGuardDutyMember{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSGuardDutyMember: + case *resources.AWSGuardDutyMember: results[name] = resource } } @@ -5312,10 +5313,10 @@ func (t *Template) GetAllAWSGuardDutyMemberResources() map[string]*AWSGuardDutyM // GetAWSGuardDutyMemberWithName retrieves all AWSGuardDutyMember items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGuardDutyMemberWithName(name string) (*AWSGuardDutyMember, error) { +func (t *Template) GetAWSGuardDutyMemberWithName(name string) (*resources.AWSGuardDutyMember, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSGuardDutyMember: + case *resources.AWSGuardDutyMember: return resource, nil } } @@ -5323,11 +5324,11 @@ func (t *Template) GetAWSGuardDutyMemberWithName(name string) (*AWSGuardDutyMemb } // GetAllAWSGuardDutyThreatIntelSetResources retrieves all AWSGuardDutyThreatIntelSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSGuardDutyThreatIntelSetResources() map[string]*AWSGuardDutyThreatIntelSet { - results := map[string]*AWSGuardDutyThreatIntelSet{} +func (t *Template) GetAllAWSGuardDutyThreatIntelSetResources() map[string]*resources.AWSGuardDutyThreatIntelSet { + results := map[string]*resources.AWSGuardDutyThreatIntelSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSGuardDutyThreatIntelSet: + case *resources.AWSGuardDutyThreatIntelSet: results[name] = resource } } @@ -5336,10 +5337,10 @@ func (t *Template) GetAllAWSGuardDutyThreatIntelSetResources() map[string]*AWSGu // GetAWSGuardDutyThreatIntelSetWithName retrieves all AWSGuardDutyThreatIntelSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSGuardDutyThreatIntelSetWithName(name string) (*AWSGuardDutyThreatIntelSet, error) { +func (t *Template) GetAWSGuardDutyThreatIntelSetWithName(name string) (*resources.AWSGuardDutyThreatIntelSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSGuardDutyThreatIntelSet: + case *resources.AWSGuardDutyThreatIntelSet: return resource, nil } } @@ -5347,11 +5348,11 @@ func (t *Template) GetAWSGuardDutyThreatIntelSetWithName(name string) (*AWSGuard } // GetAllAWSIAMAccessKeyResources retrieves all AWSIAMAccessKey items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMAccessKeyResources() map[string]*AWSIAMAccessKey { - results := map[string]*AWSIAMAccessKey{} +func (t *Template) GetAllAWSIAMAccessKeyResources() map[string]*resources.AWSIAMAccessKey { + results := map[string]*resources.AWSIAMAccessKey{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSIAMAccessKey: + case *resources.AWSIAMAccessKey: results[name] = resource } } @@ -5360,10 +5361,10 @@ func (t *Template) GetAllAWSIAMAccessKeyResources() map[string]*AWSIAMAccessKey // GetAWSIAMAccessKeyWithName retrieves all AWSIAMAccessKey items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMAccessKeyWithName(name string) (*AWSIAMAccessKey, error) { +func (t *Template) GetAWSIAMAccessKeyWithName(name string) (*resources.AWSIAMAccessKey, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSIAMAccessKey: + case *resources.AWSIAMAccessKey: return resource, nil } } @@ -5371,11 +5372,11 @@ func (t *Template) GetAWSIAMAccessKeyWithName(name string) (*AWSIAMAccessKey, er } // GetAllAWSIAMGroupResources retrieves all AWSIAMGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMGroupResources() map[string]*AWSIAMGroup { - results := map[string]*AWSIAMGroup{} +func (t *Template) GetAllAWSIAMGroupResources() map[string]*resources.AWSIAMGroup { + results := map[string]*resources.AWSIAMGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSIAMGroup: + case *resources.AWSIAMGroup: results[name] = resource } } @@ -5384,10 +5385,10 @@ func (t *Template) GetAllAWSIAMGroupResources() map[string]*AWSIAMGroup { // GetAWSIAMGroupWithName retrieves all AWSIAMGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMGroupWithName(name string) (*AWSIAMGroup, error) { +func (t *Template) GetAWSIAMGroupWithName(name string) (*resources.AWSIAMGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSIAMGroup: + case *resources.AWSIAMGroup: return resource, nil } } @@ -5395,11 +5396,11 @@ func (t *Template) GetAWSIAMGroupWithName(name string) (*AWSIAMGroup, error) { } // GetAllAWSIAMInstanceProfileResources retrieves all AWSIAMInstanceProfile items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMInstanceProfileResources() map[string]*AWSIAMInstanceProfile { - results := map[string]*AWSIAMInstanceProfile{} +func (t *Template) GetAllAWSIAMInstanceProfileResources() map[string]*resources.AWSIAMInstanceProfile { + results := map[string]*resources.AWSIAMInstanceProfile{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSIAMInstanceProfile: + case *resources.AWSIAMInstanceProfile: results[name] = resource } } @@ -5408,10 +5409,10 @@ func (t *Template) GetAllAWSIAMInstanceProfileResources() map[string]*AWSIAMInst // GetAWSIAMInstanceProfileWithName retrieves all AWSIAMInstanceProfile items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMInstanceProfileWithName(name string) (*AWSIAMInstanceProfile, error) { +func (t *Template) GetAWSIAMInstanceProfileWithName(name string) (*resources.AWSIAMInstanceProfile, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSIAMInstanceProfile: + case *resources.AWSIAMInstanceProfile: return resource, nil } } @@ -5419,11 +5420,11 @@ func (t *Template) GetAWSIAMInstanceProfileWithName(name string) (*AWSIAMInstanc } // GetAllAWSIAMManagedPolicyResources retrieves all AWSIAMManagedPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMManagedPolicyResources() map[string]*AWSIAMManagedPolicy { - results := map[string]*AWSIAMManagedPolicy{} +func (t *Template) GetAllAWSIAMManagedPolicyResources() map[string]*resources.AWSIAMManagedPolicy { + results := map[string]*resources.AWSIAMManagedPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSIAMManagedPolicy: + case *resources.AWSIAMManagedPolicy: results[name] = resource } } @@ -5432,10 +5433,10 @@ func (t *Template) GetAllAWSIAMManagedPolicyResources() map[string]*AWSIAMManage // GetAWSIAMManagedPolicyWithName retrieves all AWSIAMManagedPolicy items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMManagedPolicyWithName(name string) (*AWSIAMManagedPolicy, error) { +func (t *Template) GetAWSIAMManagedPolicyWithName(name string) (*resources.AWSIAMManagedPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSIAMManagedPolicy: + case *resources.AWSIAMManagedPolicy: return resource, nil } } @@ -5443,11 +5444,11 @@ func (t *Template) GetAWSIAMManagedPolicyWithName(name string) (*AWSIAMManagedPo } // GetAllAWSIAMPolicyResources retrieves all AWSIAMPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMPolicyResources() map[string]*AWSIAMPolicy { - results := map[string]*AWSIAMPolicy{} +func (t *Template) GetAllAWSIAMPolicyResources() map[string]*resources.AWSIAMPolicy { + results := map[string]*resources.AWSIAMPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSIAMPolicy: + case *resources.AWSIAMPolicy: results[name] = resource } } @@ -5456,10 +5457,10 @@ func (t *Template) GetAllAWSIAMPolicyResources() map[string]*AWSIAMPolicy { // GetAWSIAMPolicyWithName retrieves all AWSIAMPolicy items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMPolicyWithName(name string) (*AWSIAMPolicy, error) { +func (t *Template) GetAWSIAMPolicyWithName(name string) (*resources.AWSIAMPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSIAMPolicy: + case *resources.AWSIAMPolicy: return resource, nil } } @@ -5467,11 +5468,11 @@ func (t *Template) GetAWSIAMPolicyWithName(name string) (*AWSIAMPolicy, error) { } // GetAllAWSIAMRoleResources retrieves all AWSIAMRole items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMRoleResources() map[string]*AWSIAMRole { - results := map[string]*AWSIAMRole{} +func (t *Template) GetAllAWSIAMRoleResources() map[string]*resources.AWSIAMRole { + results := map[string]*resources.AWSIAMRole{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSIAMRole: + case *resources.AWSIAMRole: results[name] = resource } } @@ -5480,10 +5481,10 @@ func (t *Template) GetAllAWSIAMRoleResources() map[string]*AWSIAMRole { // GetAWSIAMRoleWithName retrieves all AWSIAMRole items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMRoleWithName(name string) (*AWSIAMRole, error) { +func (t *Template) GetAWSIAMRoleWithName(name string) (*resources.AWSIAMRole, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSIAMRole: + case *resources.AWSIAMRole: return resource, nil } } @@ -5491,11 +5492,11 @@ func (t *Template) GetAWSIAMRoleWithName(name string) (*AWSIAMRole, error) { } // GetAllAWSIAMServiceLinkedRoleResources retrieves all AWSIAMServiceLinkedRole items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMServiceLinkedRoleResources() map[string]*AWSIAMServiceLinkedRole { - results := map[string]*AWSIAMServiceLinkedRole{} +func (t *Template) GetAllAWSIAMServiceLinkedRoleResources() map[string]*resources.AWSIAMServiceLinkedRole { + results := map[string]*resources.AWSIAMServiceLinkedRole{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSIAMServiceLinkedRole: + case *resources.AWSIAMServiceLinkedRole: results[name] = resource } } @@ -5504,10 +5505,10 @@ func (t *Template) GetAllAWSIAMServiceLinkedRoleResources() map[string]*AWSIAMSe // GetAWSIAMServiceLinkedRoleWithName retrieves all AWSIAMServiceLinkedRole items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMServiceLinkedRoleWithName(name string) (*AWSIAMServiceLinkedRole, error) { +func (t *Template) GetAWSIAMServiceLinkedRoleWithName(name string) (*resources.AWSIAMServiceLinkedRole, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSIAMServiceLinkedRole: + case *resources.AWSIAMServiceLinkedRole: return resource, nil } } @@ -5515,11 +5516,11 @@ func (t *Template) GetAWSIAMServiceLinkedRoleWithName(name string) (*AWSIAMServi } // GetAllAWSIAMUserResources retrieves all AWSIAMUser items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMUserResources() map[string]*AWSIAMUser { - results := map[string]*AWSIAMUser{} +func (t *Template) GetAllAWSIAMUserResources() map[string]*resources.AWSIAMUser { + results := map[string]*resources.AWSIAMUser{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSIAMUser: + case *resources.AWSIAMUser: results[name] = resource } } @@ -5528,10 +5529,10 @@ func (t *Template) GetAllAWSIAMUserResources() map[string]*AWSIAMUser { // GetAWSIAMUserWithName retrieves all AWSIAMUser items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMUserWithName(name string) (*AWSIAMUser, error) { +func (t *Template) GetAWSIAMUserWithName(name string) (*resources.AWSIAMUser, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSIAMUser: + case *resources.AWSIAMUser: return resource, nil } } @@ -5539,11 +5540,11 @@ func (t *Template) GetAWSIAMUserWithName(name string) (*AWSIAMUser, error) { } // GetAllAWSIAMUserToGroupAdditionResources retrieves all AWSIAMUserToGroupAddition items from an AWS CloudFormation template -func (t *Template) GetAllAWSIAMUserToGroupAdditionResources() map[string]*AWSIAMUserToGroupAddition { - results := map[string]*AWSIAMUserToGroupAddition{} +func (t *Template) GetAllAWSIAMUserToGroupAdditionResources() map[string]*resources.AWSIAMUserToGroupAddition { + results := map[string]*resources.AWSIAMUserToGroupAddition{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSIAMUserToGroupAddition: + case *resources.AWSIAMUserToGroupAddition: results[name] = resource } } @@ -5552,10 +5553,10 @@ func (t *Template) GetAllAWSIAMUserToGroupAdditionResources() map[string]*AWSIAM // GetAWSIAMUserToGroupAdditionWithName retrieves all AWSIAMUserToGroupAddition items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIAMUserToGroupAdditionWithName(name string) (*AWSIAMUserToGroupAddition, error) { +func (t *Template) GetAWSIAMUserToGroupAdditionWithName(name string) (*resources.AWSIAMUserToGroupAddition, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSIAMUserToGroupAddition: + case *resources.AWSIAMUserToGroupAddition: return resource, nil } } @@ -5563,11 +5564,11 @@ func (t *Template) GetAWSIAMUserToGroupAdditionWithName(name string) (*AWSIAMUse } // GetAllAWSInspectorAssessmentTargetResources retrieves all AWSInspectorAssessmentTarget items from an AWS CloudFormation template -func (t *Template) GetAllAWSInspectorAssessmentTargetResources() map[string]*AWSInspectorAssessmentTarget { - results := map[string]*AWSInspectorAssessmentTarget{} +func (t *Template) GetAllAWSInspectorAssessmentTargetResources() map[string]*resources.AWSInspectorAssessmentTarget { + results := map[string]*resources.AWSInspectorAssessmentTarget{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSInspectorAssessmentTarget: + case *resources.AWSInspectorAssessmentTarget: results[name] = resource } } @@ -5576,10 +5577,10 @@ func (t *Template) GetAllAWSInspectorAssessmentTargetResources() map[string]*AWS // GetAWSInspectorAssessmentTargetWithName retrieves all AWSInspectorAssessmentTarget items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSInspectorAssessmentTargetWithName(name string) (*AWSInspectorAssessmentTarget, error) { +func (t *Template) GetAWSInspectorAssessmentTargetWithName(name string) (*resources.AWSInspectorAssessmentTarget, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSInspectorAssessmentTarget: + case *resources.AWSInspectorAssessmentTarget: return resource, nil } } @@ -5587,11 +5588,11 @@ func (t *Template) GetAWSInspectorAssessmentTargetWithName(name string) (*AWSIns } // GetAllAWSInspectorAssessmentTemplateResources retrieves all AWSInspectorAssessmentTemplate items from an AWS CloudFormation template -func (t *Template) GetAllAWSInspectorAssessmentTemplateResources() map[string]*AWSInspectorAssessmentTemplate { - results := map[string]*AWSInspectorAssessmentTemplate{} +func (t *Template) GetAllAWSInspectorAssessmentTemplateResources() map[string]*resources.AWSInspectorAssessmentTemplate { + results := map[string]*resources.AWSInspectorAssessmentTemplate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSInspectorAssessmentTemplate: + case *resources.AWSInspectorAssessmentTemplate: results[name] = resource } } @@ -5600,10 +5601,10 @@ func (t *Template) GetAllAWSInspectorAssessmentTemplateResources() map[string]*A // GetAWSInspectorAssessmentTemplateWithName retrieves all AWSInspectorAssessmentTemplate items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSInspectorAssessmentTemplateWithName(name string) (*AWSInspectorAssessmentTemplate, error) { +func (t *Template) GetAWSInspectorAssessmentTemplateWithName(name string) (*resources.AWSInspectorAssessmentTemplate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSInspectorAssessmentTemplate: + case *resources.AWSInspectorAssessmentTemplate: return resource, nil } } @@ -5611,11 +5612,11 @@ func (t *Template) GetAWSInspectorAssessmentTemplateWithName(name string) (*AWSI } // GetAllAWSInspectorResourceGroupResources retrieves all AWSInspectorResourceGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSInspectorResourceGroupResources() map[string]*AWSInspectorResourceGroup { - results := map[string]*AWSInspectorResourceGroup{} +func (t *Template) GetAllAWSInspectorResourceGroupResources() map[string]*resources.AWSInspectorResourceGroup { + results := map[string]*resources.AWSInspectorResourceGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSInspectorResourceGroup: + case *resources.AWSInspectorResourceGroup: results[name] = resource } } @@ -5624,10 +5625,10 @@ func (t *Template) GetAllAWSInspectorResourceGroupResources() map[string]*AWSIns // GetAWSInspectorResourceGroupWithName retrieves all AWSInspectorResourceGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSInspectorResourceGroupWithName(name string) (*AWSInspectorResourceGroup, error) { +func (t *Template) GetAWSInspectorResourceGroupWithName(name string) (*resources.AWSInspectorResourceGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSInspectorResourceGroup: + case *resources.AWSInspectorResourceGroup: return resource, nil } } @@ -5635,11 +5636,11 @@ func (t *Template) GetAWSInspectorResourceGroupWithName(name string) (*AWSInspec } // GetAllAWSIoT1ClickDeviceResources retrieves all AWSIoT1ClickDevice items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoT1ClickDeviceResources() map[string]*AWSIoT1ClickDevice { - results := map[string]*AWSIoT1ClickDevice{} +func (t *Template) GetAllAWSIoT1ClickDeviceResources() map[string]*resources.AWSIoT1ClickDevice { + results := map[string]*resources.AWSIoT1ClickDevice{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSIoT1ClickDevice: + case *resources.AWSIoT1ClickDevice: results[name] = resource } } @@ -5648,10 +5649,10 @@ func (t *Template) GetAllAWSIoT1ClickDeviceResources() map[string]*AWSIoT1ClickD // GetAWSIoT1ClickDeviceWithName retrieves all AWSIoT1ClickDevice items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoT1ClickDeviceWithName(name string) (*AWSIoT1ClickDevice, error) { +func (t *Template) GetAWSIoT1ClickDeviceWithName(name string) (*resources.AWSIoT1ClickDevice, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSIoT1ClickDevice: + case *resources.AWSIoT1ClickDevice: return resource, nil } } @@ -5659,11 +5660,11 @@ func (t *Template) GetAWSIoT1ClickDeviceWithName(name string) (*AWSIoT1ClickDevi } // GetAllAWSIoT1ClickPlacementResources retrieves all AWSIoT1ClickPlacement items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoT1ClickPlacementResources() map[string]*AWSIoT1ClickPlacement { - results := map[string]*AWSIoT1ClickPlacement{} +func (t *Template) GetAllAWSIoT1ClickPlacementResources() map[string]*resources.AWSIoT1ClickPlacement { + results := map[string]*resources.AWSIoT1ClickPlacement{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSIoT1ClickPlacement: + case *resources.AWSIoT1ClickPlacement: results[name] = resource } } @@ -5672,10 +5673,10 @@ func (t *Template) GetAllAWSIoT1ClickPlacementResources() map[string]*AWSIoT1Cli // GetAWSIoT1ClickPlacementWithName retrieves all AWSIoT1ClickPlacement items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoT1ClickPlacementWithName(name string) (*AWSIoT1ClickPlacement, error) { +func (t *Template) GetAWSIoT1ClickPlacementWithName(name string) (*resources.AWSIoT1ClickPlacement, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSIoT1ClickPlacement: + case *resources.AWSIoT1ClickPlacement: return resource, nil } } @@ -5683,11 +5684,11 @@ func (t *Template) GetAWSIoT1ClickPlacementWithName(name string) (*AWSIoT1ClickP } // GetAllAWSIoT1ClickProjectResources retrieves all AWSIoT1ClickProject items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoT1ClickProjectResources() map[string]*AWSIoT1ClickProject { - results := map[string]*AWSIoT1ClickProject{} +func (t *Template) GetAllAWSIoT1ClickProjectResources() map[string]*resources.AWSIoT1ClickProject { + results := map[string]*resources.AWSIoT1ClickProject{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSIoT1ClickProject: + case *resources.AWSIoT1ClickProject: results[name] = resource } } @@ -5696,10 +5697,10 @@ func (t *Template) GetAllAWSIoT1ClickProjectResources() map[string]*AWSIoT1Click // GetAWSIoT1ClickProjectWithName retrieves all AWSIoT1ClickProject items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoT1ClickProjectWithName(name string) (*AWSIoT1ClickProject, error) { +func (t *Template) GetAWSIoT1ClickProjectWithName(name string) (*resources.AWSIoT1ClickProject, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSIoT1ClickProject: + case *resources.AWSIoT1ClickProject: return resource, nil } } @@ -5707,11 +5708,11 @@ func (t *Template) GetAWSIoT1ClickProjectWithName(name string) (*AWSIoT1ClickPro } // GetAllAWSIoTCertificateResources retrieves all AWSIoTCertificate items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTCertificateResources() map[string]*AWSIoTCertificate { - results := map[string]*AWSIoTCertificate{} +func (t *Template) GetAllAWSIoTCertificateResources() map[string]*resources.AWSIoTCertificate { + results := map[string]*resources.AWSIoTCertificate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSIoTCertificate: + case *resources.AWSIoTCertificate: results[name] = resource } } @@ -5720,10 +5721,10 @@ func (t *Template) GetAllAWSIoTCertificateResources() map[string]*AWSIoTCertific // GetAWSIoTCertificateWithName retrieves all AWSIoTCertificate items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTCertificateWithName(name string) (*AWSIoTCertificate, error) { +func (t *Template) GetAWSIoTCertificateWithName(name string) (*resources.AWSIoTCertificate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSIoTCertificate: + case *resources.AWSIoTCertificate: return resource, nil } } @@ -5731,11 +5732,11 @@ func (t *Template) GetAWSIoTCertificateWithName(name string) (*AWSIoTCertificate } // GetAllAWSIoTPolicyResources retrieves all AWSIoTPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTPolicyResources() map[string]*AWSIoTPolicy { - results := map[string]*AWSIoTPolicy{} +func (t *Template) GetAllAWSIoTPolicyResources() map[string]*resources.AWSIoTPolicy { + results := map[string]*resources.AWSIoTPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSIoTPolicy: + case *resources.AWSIoTPolicy: results[name] = resource } } @@ -5744,10 +5745,10 @@ func (t *Template) GetAllAWSIoTPolicyResources() map[string]*AWSIoTPolicy { // GetAWSIoTPolicyWithName retrieves all AWSIoTPolicy items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTPolicyWithName(name string) (*AWSIoTPolicy, error) { +func (t *Template) GetAWSIoTPolicyWithName(name string) (*resources.AWSIoTPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSIoTPolicy: + case *resources.AWSIoTPolicy: return resource, nil } } @@ -5755,11 +5756,11 @@ func (t *Template) GetAWSIoTPolicyWithName(name string) (*AWSIoTPolicy, error) { } // GetAllAWSIoTPolicyPrincipalAttachmentResources retrieves all AWSIoTPolicyPrincipalAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTPolicyPrincipalAttachmentResources() map[string]*AWSIoTPolicyPrincipalAttachment { - results := map[string]*AWSIoTPolicyPrincipalAttachment{} +func (t *Template) GetAllAWSIoTPolicyPrincipalAttachmentResources() map[string]*resources.AWSIoTPolicyPrincipalAttachment { + results := map[string]*resources.AWSIoTPolicyPrincipalAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSIoTPolicyPrincipalAttachment: + case *resources.AWSIoTPolicyPrincipalAttachment: results[name] = resource } } @@ -5768,10 +5769,10 @@ func (t *Template) GetAllAWSIoTPolicyPrincipalAttachmentResources() map[string]* // GetAWSIoTPolicyPrincipalAttachmentWithName retrieves all AWSIoTPolicyPrincipalAttachment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTPolicyPrincipalAttachmentWithName(name string) (*AWSIoTPolicyPrincipalAttachment, error) { +func (t *Template) GetAWSIoTPolicyPrincipalAttachmentWithName(name string) (*resources.AWSIoTPolicyPrincipalAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSIoTPolicyPrincipalAttachment: + case *resources.AWSIoTPolicyPrincipalAttachment: return resource, nil } } @@ -5779,11 +5780,11 @@ func (t *Template) GetAWSIoTPolicyPrincipalAttachmentWithName(name string) (*AWS } // GetAllAWSIoTThingResources retrieves all AWSIoTThing items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTThingResources() map[string]*AWSIoTThing { - results := map[string]*AWSIoTThing{} +func (t *Template) GetAllAWSIoTThingResources() map[string]*resources.AWSIoTThing { + results := map[string]*resources.AWSIoTThing{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSIoTThing: + case *resources.AWSIoTThing: results[name] = resource } } @@ -5792,10 +5793,10 @@ func (t *Template) GetAllAWSIoTThingResources() map[string]*AWSIoTThing { // GetAWSIoTThingWithName retrieves all AWSIoTThing items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTThingWithName(name string) (*AWSIoTThing, error) { +func (t *Template) GetAWSIoTThingWithName(name string) (*resources.AWSIoTThing, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSIoTThing: + case *resources.AWSIoTThing: return resource, nil } } @@ -5803,11 +5804,11 @@ func (t *Template) GetAWSIoTThingWithName(name string) (*AWSIoTThing, error) { } // GetAllAWSIoTThingPrincipalAttachmentResources retrieves all AWSIoTThingPrincipalAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTThingPrincipalAttachmentResources() map[string]*AWSIoTThingPrincipalAttachment { - results := map[string]*AWSIoTThingPrincipalAttachment{} +func (t *Template) GetAllAWSIoTThingPrincipalAttachmentResources() map[string]*resources.AWSIoTThingPrincipalAttachment { + results := map[string]*resources.AWSIoTThingPrincipalAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSIoTThingPrincipalAttachment: + case *resources.AWSIoTThingPrincipalAttachment: results[name] = resource } } @@ -5816,10 +5817,10 @@ func (t *Template) GetAllAWSIoTThingPrincipalAttachmentResources() map[string]*A // GetAWSIoTThingPrincipalAttachmentWithName retrieves all AWSIoTThingPrincipalAttachment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTThingPrincipalAttachmentWithName(name string) (*AWSIoTThingPrincipalAttachment, error) { +func (t *Template) GetAWSIoTThingPrincipalAttachmentWithName(name string) (*resources.AWSIoTThingPrincipalAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSIoTThingPrincipalAttachment: + case *resources.AWSIoTThingPrincipalAttachment: return resource, nil } } @@ -5827,11 +5828,11 @@ func (t *Template) GetAWSIoTThingPrincipalAttachmentWithName(name string) (*AWSI } // GetAllAWSIoTTopicRuleResources retrieves all AWSIoTTopicRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTTopicRuleResources() map[string]*AWSIoTTopicRule { - results := map[string]*AWSIoTTopicRule{} +func (t *Template) GetAllAWSIoTTopicRuleResources() map[string]*resources.AWSIoTTopicRule { + results := map[string]*resources.AWSIoTTopicRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSIoTTopicRule: + case *resources.AWSIoTTopicRule: results[name] = resource } } @@ -5840,10 +5841,10 @@ func (t *Template) GetAllAWSIoTTopicRuleResources() map[string]*AWSIoTTopicRule // GetAWSIoTTopicRuleWithName retrieves all AWSIoTTopicRule items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTTopicRuleWithName(name string) (*AWSIoTTopicRule, error) { +func (t *Template) GetAWSIoTTopicRuleWithName(name string) (*resources.AWSIoTTopicRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSIoTTopicRule: + case *resources.AWSIoTTopicRule: return resource, nil } } @@ -5851,11 +5852,11 @@ func (t *Template) GetAWSIoTTopicRuleWithName(name string) (*AWSIoTTopicRule, er } // GetAllAWSIoTAnalyticsChannelResources retrieves all AWSIoTAnalyticsChannel items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTAnalyticsChannelResources() map[string]*AWSIoTAnalyticsChannel { - results := map[string]*AWSIoTAnalyticsChannel{} +func (t *Template) GetAllAWSIoTAnalyticsChannelResources() map[string]*resources.AWSIoTAnalyticsChannel { + results := map[string]*resources.AWSIoTAnalyticsChannel{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSIoTAnalyticsChannel: + case *resources.AWSIoTAnalyticsChannel: results[name] = resource } } @@ -5864,10 +5865,10 @@ func (t *Template) GetAllAWSIoTAnalyticsChannelResources() map[string]*AWSIoTAna // GetAWSIoTAnalyticsChannelWithName retrieves all AWSIoTAnalyticsChannel items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTAnalyticsChannelWithName(name string) (*AWSIoTAnalyticsChannel, error) { +func (t *Template) GetAWSIoTAnalyticsChannelWithName(name string) (*resources.AWSIoTAnalyticsChannel, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSIoTAnalyticsChannel: + case *resources.AWSIoTAnalyticsChannel: return resource, nil } } @@ -5875,11 +5876,11 @@ func (t *Template) GetAWSIoTAnalyticsChannelWithName(name string) (*AWSIoTAnalyt } // GetAllAWSIoTAnalyticsDatasetResources retrieves all AWSIoTAnalyticsDataset items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTAnalyticsDatasetResources() map[string]*AWSIoTAnalyticsDataset { - results := map[string]*AWSIoTAnalyticsDataset{} +func (t *Template) GetAllAWSIoTAnalyticsDatasetResources() map[string]*resources.AWSIoTAnalyticsDataset { + results := map[string]*resources.AWSIoTAnalyticsDataset{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSIoTAnalyticsDataset: + case *resources.AWSIoTAnalyticsDataset: results[name] = resource } } @@ -5888,10 +5889,10 @@ func (t *Template) GetAllAWSIoTAnalyticsDatasetResources() map[string]*AWSIoTAna // GetAWSIoTAnalyticsDatasetWithName retrieves all AWSIoTAnalyticsDataset items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTAnalyticsDatasetWithName(name string) (*AWSIoTAnalyticsDataset, error) { +func (t *Template) GetAWSIoTAnalyticsDatasetWithName(name string) (*resources.AWSIoTAnalyticsDataset, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSIoTAnalyticsDataset: + case *resources.AWSIoTAnalyticsDataset: return resource, nil } } @@ -5899,11 +5900,11 @@ func (t *Template) GetAWSIoTAnalyticsDatasetWithName(name string) (*AWSIoTAnalyt } // GetAllAWSIoTAnalyticsDatastoreResources retrieves all AWSIoTAnalyticsDatastore items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTAnalyticsDatastoreResources() map[string]*AWSIoTAnalyticsDatastore { - results := map[string]*AWSIoTAnalyticsDatastore{} +func (t *Template) GetAllAWSIoTAnalyticsDatastoreResources() map[string]*resources.AWSIoTAnalyticsDatastore { + results := map[string]*resources.AWSIoTAnalyticsDatastore{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSIoTAnalyticsDatastore: + case *resources.AWSIoTAnalyticsDatastore: results[name] = resource } } @@ -5912,10 +5913,10 @@ func (t *Template) GetAllAWSIoTAnalyticsDatastoreResources() map[string]*AWSIoTA // GetAWSIoTAnalyticsDatastoreWithName retrieves all AWSIoTAnalyticsDatastore items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTAnalyticsDatastoreWithName(name string) (*AWSIoTAnalyticsDatastore, error) { +func (t *Template) GetAWSIoTAnalyticsDatastoreWithName(name string) (*resources.AWSIoTAnalyticsDatastore, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSIoTAnalyticsDatastore: + case *resources.AWSIoTAnalyticsDatastore: return resource, nil } } @@ -5923,11 +5924,11 @@ func (t *Template) GetAWSIoTAnalyticsDatastoreWithName(name string) (*AWSIoTAnal } // GetAllAWSIoTAnalyticsPipelineResources retrieves all AWSIoTAnalyticsPipeline items from an AWS CloudFormation template -func (t *Template) GetAllAWSIoTAnalyticsPipelineResources() map[string]*AWSIoTAnalyticsPipeline { - results := map[string]*AWSIoTAnalyticsPipeline{} +func (t *Template) GetAllAWSIoTAnalyticsPipelineResources() map[string]*resources.AWSIoTAnalyticsPipeline { + results := map[string]*resources.AWSIoTAnalyticsPipeline{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSIoTAnalyticsPipeline: + case *resources.AWSIoTAnalyticsPipeline: results[name] = resource } } @@ -5936,10 +5937,10 @@ func (t *Template) GetAllAWSIoTAnalyticsPipelineResources() map[string]*AWSIoTAn // GetAWSIoTAnalyticsPipelineWithName retrieves all AWSIoTAnalyticsPipeline items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSIoTAnalyticsPipelineWithName(name string) (*AWSIoTAnalyticsPipeline, error) { +func (t *Template) GetAWSIoTAnalyticsPipelineWithName(name string) (*resources.AWSIoTAnalyticsPipeline, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSIoTAnalyticsPipeline: + case *resources.AWSIoTAnalyticsPipeline: return resource, nil } } @@ -5947,11 +5948,11 @@ func (t *Template) GetAWSIoTAnalyticsPipelineWithName(name string) (*AWSIoTAnaly } // GetAllAWSKMSAliasResources retrieves all AWSKMSAlias items from an AWS CloudFormation template -func (t *Template) GetAllAWSKMSAliasResources() map[string]*AWSKMSAlias { - results := map[string]*AWSKMSAlias{} +func (t *Template) GetAllAWSKMSAliasResources() map[string]*resources.AWSKMSAlias { + results := map[string]*resources.AWSKMSAlias{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSKMSAlias: + case *resources.AWSKMSAlias: results[name] = resource } } @@ -5960,10 +5961,10 @@ func (t *Template) GetAllAWSKMSAliasResources() map[string]*AWSKMSAlias { // GetAWSKMSAliasWithName retrieves all AWSKMSAlias items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKMSAliasWithName(name string) (*AWSKMSAlias, error) { +func (t *Template) GetAWSKMSAliasWithName(name string) (*resources.AWSKMSAlias, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSKMSAlias: + case *resources.AWSKMSAlias: return resource, nil } } @@ -5971,11 +5972,11 @@ func (t *Template) GetAWSKMSAliasWithName(name string) (*AWSKMSAlias, error) { } // GetAllAWSKMSKeyResources retrieves all AWSKMSKey items from an AWS CloudFormation template -func (t *Template) GetAllAWSKMSKeyResources() map[string]*AWSKMSKey { - results := map[string]*AWSKMSKey{} +func (t *Template) GetAllAWSKMSKeyResources() map[string]*resources.AWSKMSKey { + results := map[string]*resources.AWSKMSKey{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSKMSKey: + case *resources.AWSKMSKey: results[name] = resource } } @@ -5984,10 +5985,10 @@ func (t *Template) GetAllAWSKMSKeyResources() map[string]*AWSKMSKey { // GetAWSKMSKeyWithName retrieves all AWSKMSKey items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKMSKeyWithName(name string) (*AWSKMSKey, error) { +func (t *Template) GetAWSKMSKeyWithName(name string) (*resources.AWSKMSKey, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSKMSKey: + case *resources.AWSKMSKey: return resource, nil } } @@ -5995,11 +5996,11 @@ func (t *Template) GetAWSKMSKeyWithName(name string) (*AWSKMSKey, error) { } // GetAllAWSKinesisStreamResources retrieves all AWSKinesisStream items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisStreamResources() map[string]*AWSKinesisStream { - results := map[string]*AWSKinesisStream{} +func (t *Template) GetAllAWSKinesisStreamResources() map[string]*resources.AWSKinesisStream { + results := map[string]*resources.AWSKinesisStream{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSKinesisStream: + case *resources.AWSKinesisStream: results[name] = resource } } @@ -6008,10 +6009,10 @@ func (t *Template) GetAllAWSKinesisStreamResources() map[string]*AWSKinesisStrea // GetAWSKinesisStreamWithName retrieves all AWSKinesisStream items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisStreamWithName(name string) (*AWSKinesisStream, error) { +func (t *Template) GetAWSKinesisStreamWithName(name string) (*resources.AWSKinesisStream, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSKinesisStream: + case *resources.AWSKinesisStream: return resource, nil } } @@ -6019,11 +6020,11 @@ func (t *Template) GetAWSKinesisStreamWithName(name string) (*AWSKinesisStream, } // GetAllAWSKinesisStreamConsumerResources retrieves all AWSKinesisStreamConsumer items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisStreamConsumerResources() map[string]*AWSKinesisStreamConsumer { - results := map[string]*AWSKinesisStreamConsumer{} +func (t *Template) GetAllAWSKinesisStreamConsumerResources() map[string]*resources.AWSKinesisStreamConsumer { + results := map[string]*resources.AWSKinesisStreamConsumer{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSKinesisStreamConsumer: + case *resources.AWSKinesisStreamConsumer: results[name] = resource } } @@ -6032,10 +6033,10 @@ func (t *Template) GetAllAWSKinesisStreamConsumerResources() map[string]*AWSKine // GetAWSKinesisStreamConsumerWithName retrieves all AWSKinesisStreamConsumer items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisStreamConsumerWithName(name string) (*AWSKinesisStreamConsumer, error) { +func (t *Template) GetAWSKinesisStreamConsumerWithName(name string) (*resources.AWSKinesisStreamConsumer, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSKinesisStreamConsumer: + case *resources.AWSKinesisStreamConsumer: return resource, nil } } @@ -6043,11 +6044,11 @@ func (t *Template) GetAWSKinesisStreamConsumerWithName(name string) (*AWSKinesis } // GetAllAWSKinesisAnalyticsApplicationResources retrieves all AWSKinesisAnalyticsApplication items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisAnalyticsApplicationResources() map[string]*AWSKinesisAnalyticsApplication { - results := map[string]*AWSKinesisAnalyticsApplication{} +func (t *Template) GetAllAWSKinesisAnalyticsApplicationResources() map[string]*resources.AWSKinesisAnalyticsApplication { + results := map[string]*resources.AWSKinesisAnalyticsApplication{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSKinesisAnalyticsApplication: + case *resources.AWSKinesisAnalyticsApplication: results[name] = resource } } @@ -6056,10 +6057,10 @@ func (t *Template) GetAllAWSKinesisAnalyticsApplicationResources() map[string]*A // GetAWSKinesisAnalyticsApplicationWithName retrieves all AWSKinesisAnalyticsApplication items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisAnalyticsApplicationWithName(name string) (*AWSKinesisAnalyticsApplication, error) { +func (t *Template) GetAWSKinesisAnalyticsApplicationWithName(name string) (*resources.AWSKinesisAnalyticsApplication, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSKinesisAnalyticsApplication: + case *resources.AWSKinesisAnalyticsApplication: return resource, nil } } @@ -6067,11 +6068,11 @@ func (t *Template) GetAWSKinesisAnalyticsApplicationWithName(name string) (*AWSK } // GetAllAWSKinesisAnalyticsApplicationOutputResources retrieves all AWSKinesisAnalyticsApplicationOutput items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisAnalyticsApplicationOutputResources() map[string]*AWSKinesisAnalyticsApplicationOutput { - results := map[string]*AWSKinesisAnalyticsApplicationOutput{} +func (t *Template) GetAllAWSKinesisAnalyticsApplicationOutputResources() map[string]*resources.AWSKinesisAnalyticsApplicationOutput { + results := map[string]*resources.AWSKinesisAnalyticsApplicationOutput{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSKinesisAnalyticsApplicationOutput: + case *resources.AWSKinesisAnalyticsApplicationOutput: results[name] = resource } } @@ -6080,10 +6081,10 @@ func (t *Template) GetAllAWSKinesisAnalyticsApplicationOutputResources() map[str // GetAWSKinesisAnalyticsApplicationOutputWithName retrieves all AWSKinesisAnalyticsApplicationOutput items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisAnalyticsApplicationOutputWithName(name string) (*AWSKinesisAnalyticsApplicationOutput, error) { +func (t *Template) GetAWSKinesisAnalyticsApplicationOutputWithName(name string) (*resources.AWSKinesisAnalyticsApplicationOutput, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSKinesisAnalyticsApplicationOutput: + case *resources.AWSKinesisAnalyticsApplicationOutput: return resource, nil } } @@ -6091,11 +6092,11 @@ func (t *Template) GetAWSKinesisAnalyticsApplicationOutputWithName(name string) } // GetAllAWSKinesisAnalyticsApplicationReferenceDataSourceResources retrieves all AWSKinesisAnalyticsApplicationReferenceDataSource items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisAnalyticsApplicationReferenceDataSourceResources() map[string]*AWSKinesisAnalyticsApplicationReferenceDataSource { - results := map[string]*AWSKinesisAnalyticsApplicationReferenceDataSource{} +func (t *Template) GetAllAWSKinesisAnalyticsApplicationReferenceDataSourceResources() map[string]*resources.AWSKinesisAnalyticsApplicationReferenceDataSource { + results := map[string]*resources.AWSKinesisAnalyticsApplicationReferenceDataSource{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSKinesisAnalyticsApplicationReferenceDataSource: + case *resources.AWSKinesisAnalyticsApplicationReferenceDataSource: results[name] = resource } } @@ -6104,10 +6105,10 @@ func (t *Template) GetAllAWSKinesisAnalyticsApplicationReferenceDataSourceResour // GetAWSKinesisAnalyticsApplicationReferenceDataSourceWithName retrieves all AWSKinesisAnalyticsApplicationReferenceDataSource items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisAnalyticsApplicationReferenceDataSourceWithName(name string) (*AWSKinesisAnalyticsApplicationReferenceDataSource, error) { +func (t *Template) GetAWSKinesisAnalyticsApplicationReferenceDataSourceWithName(name string) (*resources.AWSKinesisAnalyticsApplicationReferenceDataSource, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSKinesisAnalyticsApplicationReferenceDataSource: + case *resources.AWSKinesisAnalyticsApplicationReferenceDataSource: return resource, nil } } @@ -6115,11 +6116,11 @@ func (t *Template) GetAWSKinesisAnalyticsApplicationReferenceDataSourceWithName( } // GetAllAWSKinesisAnalyticsV2ApplicationResources retrieves all AWSKinesisAnalyticsV2Application items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationResources() map[string]*AWSKinesisAnalyticsV2Application { - results := map[string]*AWSKinesisAnalyticsV2Application{} +func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationResources() map[string]*resources.AWSKinesisAnalyticsV2Application { + results := map[string]*resources.AWSKinesisAnalyticsV2Application{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSKinesisAnalyticsV2Application: + case *resources.AWSKinesisAnalyticsV2Application: results[name] = resource } } @@ -6128,10 +6129,10 @@ func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationResources() map[string] // GetAWSKinesisAnalyticsV2ApplicationWithName retrieves all AWSKinesisAnalyticsV2Application items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisAnalyticsV2ApplicationWithName(name string) (*AWSKinesisAnalyticsV2Application, error) { +func (t *Template) GetAWSKinesisAnalyticsV2ApplicationWithName(name string) (*resources.AWSKinesisAnalyticsV2Application, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSKinesisAnalyticsV2Application: + case *resources.AWSKinesisAnalyticsV2Application: return resource, nil } } @@ -6139,11 +6140,11 @@ func (t *Template) GetAWSKinesisAnalyticsV2ApplicationWithName(name string) (*AW } // GetAllAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionResources retrieves all AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionResources() map[string]*AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption { - results := map[string]*AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption{} +func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionResources() map[string]*resources.AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption { + results := map[string]*resources.AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption: + case *resources.AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption: results[name] = resource } } @@ -6152,10 +6153,10 @@ func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption // GetAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionWithName retrieves all AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionWithName(name string) (*AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption, error) { +func (t *Template) GetAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionWithName(name string) (*resources.AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption: + case *resources.AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption: return resource, nil } } @@ -6163,11 +6164,11 @@ func (t *Template) GetAWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionWit } // GetAllAWSKinesisAnalyticsV2ApplicationOutputResources retrieves all AWSKinesisAnalyticsV2ApplicationOutput items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationOutputResources() map[string]*AWSKinesisAnalyticsV2ApplicationOutput { - results := map[string]*AWSKinesisAnalyticsV2ApplicationOutput{} +func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationOutputResources() map[string]*resources.AWSKinesisAnalyticsV2ApplicationOutput { + results := map[string]*resources.AWSKinesisAnalyticsV2ApplicationOutput{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSKinesisAnalyticsV2ApplicationOutput: + case *resources.AWSKinesisAnalyticsV2ApplicationOutput: results[name] = resource } } @@ -6176,10 +6177,10 @@ func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationOutputResources() map[s // GetAWSKinesisAnalyticsV2ApplicationOutputWithName retrieves all AWSKinesisAnalyticsV2ApplicationOutput items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisAnalyticsV2ApplicationOutputWithName(name string) (*AWSKinesisAnalyticsV2ApplicationOutput, error) { +func (t *Template) GetAWSKinesisAnalyticsV2ApplicationOutputWithName(name string) (*resources.AWSKinesisAnalyticsV2ApplicationOutput, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSKinesisAnalyticsV2ApplicationOutput: + case *resources.AWSKinesisAnalyticsV2ApplicationOutput: return resource, nil } } @@ -6187,11 +6188,11 @@ func (t *Template) GetAWSKinesisAnalyticsV2ApplicationOutputWithName(name string } // GetAllAWSKinesisAnalyticsV2ApplicationReferenceDataSourceResources retrieves all AWSKinesisAnalyticsV2ApplicationReferenceDataSource items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationReferenceDataSourceResources() map[string]*AWSKinesisAnalyticsV2ApplicationReferenceDataSource { - results := map[string]*AWSKinesisAnalyticsV2ApplicationReferenceDataSource{} +func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationReferenceDataSourceResources() map[string]*resources.AWSKinesisAnalyticsV2ApplicationReferenceDataSource { + results := map[string]*resources.AWSKinesisAnalyticsV2ApplicationReferenceDataSource{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSKinesisAnalyticsV2ApplicationReferenceDataSource: + case *resources.AWSKinesisAnalyticsV2ApplicationReferenceDataSource: results[name] = resource } } @@ -6200,10 +6201,10 @@ func (t *Template) GetAllAWSKinesisAnalyticsV2ApplicationReferenceDataSourceReso // GetAWSKinesisAnalyticsV2ApplicationReferenceDataSourceWithName retrieves all AWSKinesisAnalyticsV2ApplicationReferenceDataSource items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisAnalyticsV2ApplicationReferenceDataSourceWithName(name string) (*AWSKinesisAnalyticsV2ApplicationReferenceDataSource, error) { +func (t *Template) GetAWSKinesisAnalyticsV2ApplicationReferenceDataSourceWithName(name string) (*resources.AWSKinesisAnalyticsV2ApplicationReferenceDataSource, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSKinesisAnalyticsV2ApplicationReferenceDataSource: + case *resources.AWSKinesisAnalyticsV2ApplicationReferenceDataSource: return resource, nil } } @@ -6211,11 +6212,11 @@ func (t *Template) GetAWSKinesisAnalyticsV2ApplicationReferenceDataSourceWithNam } // GetAllAWSKinesisFirehoseDeliveryStreamResources retrieves all AWSKinesisFirehoseDeliveryStream items from an AWS CloudFormation template -func (t *Template) GetAllAWSKinesisFirehoseDeliveryStreamResources() map[string]*AWSKinesisFirehoseDeliveryStream { - results := map[string]*AWSKinesisFirehoseDeliveryStream{} +func (t *Template) GetAllAWSKinesisFirehoseDeliveryStreamResources() map[string]*resources.AWSKinesisFirehoseDeliveryStream { + results := map[string]*resources.AWSKinesisFirehoseDeliveryStream{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSKinesisFirehoseDeliveryStream: + case *resources.AWSKinesisFirehoseDeliveryStream: results[name] = resource } } @@ -6224,10 +6225,10 @@ func (t *Template) GetAllAWSKinesisFirehoseDeliveryStreamResources() map[string] // GetAWSKinesisFirehoseDeliveryStreamWithName retrieves all AWSKinesisFirehoseDeliveryStream items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSKinesisFirehoseDeliveryStreamWithName(name string) (*AWSKinesisFirehoseDeliveryStream, error) { +func (t *Template) GetAWSKinesisFirehoseDeliveryStreamWithName(name string) (*resources.AWSKinesisFirehoseDeliveryStream, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSKinesisFirehoseDeliveryStream: + case *resources.AWSKinesisFirehoseDeliveryStream: return resource, nil } } @@ -6235,11 +6236,11 @@ func (t *Template) GetAWSKinesisFirehoseDeliveryStreamWithName(name string) (*AW } // GetAllAWSLambdaAliasResources retrieves all AWSLambdaAlias items from an AWS CloudFormation template -func (t *Template) GetAllAWSLambdaAliasResources() map[string]*AWSLambdaAlias { - results := map[string]*AWSLambdaAlias{} +func (t *Template) GetAllAWSLambdaAliasResources() map[string]*resources.AWSLambdaAlias { + results := map[string]*resources.AWSLambdaAlias{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSLambdaAlias: + case *resources.AWSLambdaAlias: results[name] = resource } } @@ -6248,10 +6249,10 @@ func (t *Template) GetAllAWSLambdaAliasResources() map[string]*AWSLambdaAlias { // GetAWSLambdaAliasWithName retrieves all AWSLambdaAlias items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLambdaAliasWithName(name string) (*AWSLambdaAlias, error) { +func (t *Template) GetAWSLambdaAliasWithName(name string) (*resources.AWSLambdaAlias, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSLambdaAlias: + case *resources.AWSLambdaAlias: return resource, nil } } @@ -6259,11 +6260,11 @@ func (t *Template) GetAWSLambdaAliasWithName(name string) (*AWSLambdaAlias, erro } // GetAllAWSLambdaEventSourceMappingResources retrieves all AWSLambdaEventSourceMapping items from an AWS CloudFormation template -func (t *Template) GetAllAWSLambdaEventSourceMappingResources() map[string]*AWSLambdaEventSourceMapping { - results := map[string]*AWSLambdaEventSourceMapping{} +func (t *Template) GetAllAWSLambdaEventSourceMappingResources() map[string]*resources.AWSLambdaEventSourceMapping { + results := map[string]*resources.AWSLambdaEventSourceMapping{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSLambdaEventSourceMapping: + case *resources.AWSLambdaEventSourceMapping: results[name] = resource } } @@ -6272,10 +6273,10 @@ func (t *Template) GetAllAWSLambdaEventSourceMappingResources() map[string]*AWSL // GetAWSLambdaEventSourceMappingWithName retrieves all AWSLambdaEventSourceMapping items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLambdaEventSourceMappingWithName(name string) (*AWSLambdaEventSourceMapping, error) { +func (t *Template) GetAWSLambdaEventSourceMappingWithName(name string) (*resources.AWSLambdaEventSourceMapping, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSLambdaEventSourceMapping: + case *resources.AWSLambdaEventSourceMapping: return resource, nil } } @@ -6283,11 +6284,11 @@ func (t *Template) GetAWSLambdaEventSourceMappingWithName(name string) (*AWSLamb } // GetAllAWSLambdaFunctionResources retrieves all AWSLambdaFunction items from an AWS CloudFormation template -func (t *Template) GetAllAWSLambdaFunctionResources() map[string]*AWSLambdaFunction { - results := map[string]*AWSLambdaFunction{} +func (t *Template) GetAllAWSLambdaFunctionResources() map[string]*resources.AWSLambdaFunction { + results := map[string]*resources.AWSLambdaFunction{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSLambdaFunction: + case *resources.AWSLambdaFunction: results[name] = resource } } @@ -6296,10 +6297,10 @@ func (t *Template) GetAllAWSLambdaFunctionResources() map[string]*AWSLambdaFunct // GetAWSLambdaFunctionWithName retrieves all AWSLambdaFunction items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLambdaFunctionWithName(name string) (*AWSLambdaFunction, error) { +func (t *Template) GetAWSLambdaFunctionWithName(name string) (*resources.AWSLambdaFunction, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSLambdaFunction: + case *resources.AWSLambdaFunction: return resource, nil } } @@ -6307,11 +6308,11 @@ func (t *Template) GetAWSLambdaFunctionWithName(name string) (*AWSLambdaFunction } // GetAllAWSLambdaLayerVersionResources retrieves all AWSLambdaLayerVersion items from an AWS CloudFormation template -func (t *Template) GetAllAWSLambdaLayerVersionResources() map[string]*AWSLambdaLayerVersion { - results := map[string]*AWSLambdaLayerVersion{} +func (t *Template) GetAllAWSLambdaLayerVersionResources() map[string]*resources.AWSLambdaLayerVersion { + results := map[string]*resources.AWSLambdaLayerVersion{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSLambdaLayerVersion: + case *resources.AWSLambdaLayerVersion: results[name] = resource } } @@ -6320,10 +6321,10 @@ func (t *Template) GetAllAWSLambdaLayerVersionResources() map[string]*AWSLambdaL // GetAWSLambdaLayerVersionWithName retrieves all AWSLambdaLayerVersion items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLambdaLayerVersionWithName(name string) (*AWSLambdaLayerVersion, error) { +func (t *Template) GetAWSLambdaLayerVersionWithName(name string) (*resources.AWSLambdaLayerVersion, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSLambdaLayerVersion: + case *resources.AWSLambdaLayerVersion: return resource, nil } } @@ -6331,11 +6332,11 @@ func (t *Template) GetAWSLambdaLayerVersionWithName(name string) (*AWSLambdaLaye } // GetAllAWSLambdaLayerVersionPermissionResources retrieves all AWSLambdaLayerVersionPermission items from an AWS CloudFormation template -func (t *Template) GetAllAWSLambdaLayerVersionPermissionResources() map[string]*AWSLambdaLayerVersionPermission { - results := map[string]*AWSLambdaLayerVersionPermission{} +func (t *Template) GetAllAWSLambdaLayerVersionPermissionResources() map[string]*resources.AWSLambdaLayerVersionPermission { + results := map[string]*resources.AWSLambdaLayerVersionPermission{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSLambdaLayerVersionPermission: + case *resources.AWSLambdaLayerVersionPermission: results[name] = resource } } @@ -6344,10 +6345,10 @@ func (t *Template) GetAllAWSLambdaLayerVersionPermissionResources() map[string]* // GetAWSLambdaLayerVersionPermissionWithName retrieves all AWSLambdaLayerVersionPermission items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLambdaLayerVersionPermissionWithName(name string) (*AWSLambdaLayerVersionPermission, error) { +func (t *Template) GetAWSLambdaLayerVersionPermissionWithName(name string) (*resources.AWSLambdaLayerVersionPermission, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSLambdaLayerVersionPermission: + case *resources.AWSLambdaLayerVersionPermission: return resource, nil } } @@ -6355,11 +6356,11 @@ func (t *Template) GetAWSLambdaLayerVersionPermissionWithName(name string) (*AWS } // GetAllAWSLambdaPermissionResources retrieves all AWSLambdaPermission items from an AWS CloudFormation template -func (t *Template) GetAllAWSLambdaPermissionResources() map[string]*AWSLambdaPermission { - results := map[string]*AWSLambdaPermission{} +func (t *Template) GetAllAWSLambdaPermissionResources() map[string]*resources.AWSLambdaPermission { + results := map[string]*resources.AWSLambdaPermission{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSLambdaPermission: + case *resources.AWSLambdaPermission: results[name] = resource } } @@ -6368,10 +6369,10 @@ func (t *Template) GetAllAWSLambdaPermissionResources() map[string]*AWSLambdaPer // GetAWSLambdaPermissionWithName retrieves all AWSLambdaPermission items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLambdaPermissionWithName(name string) (*AWSLambdaPermission, error) { +func (t *Template) GetAWSLambdaPermissionWithName(name string) (*resources.AWSLambdaPermission, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSLambdaPermission: + case *resources.AWSLambdaPermission: return resource, nil } } @@ -6379,11 +6380,11 @@ func (t *Template) GetAWSLambdaPermissionWithName(name string) (*AWSLambdaPermis } // GetAllAWSLambdaVersionResources retrieves all AWSLambdaVersion items from an AWS CloudFormation template -func (t *Template) GetAllAWSLambdaVersionResources() map[string]*AWSLambdaVersion { - results := map[string]*AWSLambdaVersion{} +func (t *Template) GetAllAWSLambdaVersionResources() map[string]*resources.AWSLambdaVersion { + results := map[string]*resources.AWSLambdaVersion{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSLambdaVersion: + case *resources.AWSLambdaVersion: results[name] = resource } } @@ -6392,10 +6393,10 @@ func (t *Template) GetAllAWSLambdaVersionResources() map[string]*AWSLambdaVersio // GetAWSLambdaVersionWithName retrieves all AWSLambdaVersion items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLambdaVersionWithName(name string) (*AWSLambdaVersion, error) { +func (t *Template) GetAWSLambdaVersionWithName(name string) (*resources.AWSLambdaVersion, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSLambdaVersion: + case *resources.AWSLambdaVersion: return resource, nil } } @@ -6403,11 +6404,11 @@ func (t *Template) GetAWSLambdaVersionWithName(name string) (*AWSLambdaVersion, } // GetAllAWSLogsDestinationResources retrieves all AWSLogsDestination items from an AWS CloudFormation template -func (t *Template) GetAllAWSLogsDestinationResources() map[string]*AWSLogsDestination { - results := map[string]*AWSLogsDestination{} +func (t *Template) GetAllAWSLogsDestinationResources() map[string]*resources.AWSLogsDestination { + results := map[string]*resources.AWSLogsDestination{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSLogsDestination: + case *resources.AWSLogsDestination: results[name] = resource } } @@ -6416,10 +6417,10 @@ func (t *Template) GetAllAWSLogsDestinationResources() map[string]*AWSLogsDestin // GetAWSLogsDestinationWithName retrieves all AWSLogsDestination items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLogsDestinationWithName(name string) (*AWSLogsDestination, error) { +func (t *Template) GetAWSLogsDestinationWithName(name string) (*resources.AWSLogsDestination, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSLogsDestination: + case *resources.AWSLogsDestination: return resource, nil } } @@ -6427,11 +6428,11 @@ func (t *Template) GetAWSLogsDestinationWithName(name string) (*AWSLogsDestinati } // GetAllAWSLogsLogGroupResources retrieves all AWSLogsLogGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSLogsLogGroupResources() map[string]*AWSLogsLogGroup { - results := map[string]*AWSLogsLogGroup{} +func (t *Template) GetAllAWSLogsLogGroupResources() map[string]*resources.AWSLogsLogGroup { + results := map[string]*resources.AWSLogsLogGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSLogsLogGroup: + case *resources.AWSLogsLogGroup: results[name] = resource } } @@ -6440,10 +6441,10 @@ func (t *Template) GetAllAWSLogsLogGroupResources() map[string]*AWSLogsLogGroup // GetAWSLogsLogGroupWithName retrieves all AWSLogsLogGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLogsLogGroupWithName(name string) (*AWSLogsLogGroup, error) { +func (t *Template) GetAWSLogsLogGroupWithName(name string) (*resources.AWSLogsLogGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSLogsLogGroup: + case *resources.AWSLogsLogGroup: return resource, nil } } @@ -6451,11 +6452,11 @@ func (t *Template) GetAWSLogsLogGroupWithName(name string) (*AWSLogsLogGroup, er } // GetAllAWSLogsLogStreamResources retrieves all AWSLogsLogStream items from an AWS CloudFormation template -func (t *Template) GetAllAWSLogsLogStreamResources() map[string]*AWSLogsLogStream { - results := map[string]*AWSLogsLogStream{} +func (t *Template) GetAllAWSLogsLogStreamResources() map[string]*resources.AWSLogsLogStream { + results := map[string]*resources.AWSLogsLogStream{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSLogsLogStream: + case *resources.AWSLogsLogStream: results[name] = resource } } @@ -6464,10 +6465,10 @@ func (t *Template) GetAllAWSLogsLogStreamResources() map[string]*AWSLogsLogStrea // GetAWSLogsLogStreamWithName retrieves all AWSLogsLogStream items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLogsLogStreamWithName(name string) (*AWSLogsLogStream, error) { +func (t *Template) GetAWSLogsLogStreamWithName(name string) (*resources.AWSLogsLogStream, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSLogsLogStream: + case *resources.AWSLogsLogStream: return resource, nil } } @@ -6475,11 +6476,11 @@ func (t *Template) GetAWSLogsLogStreamWithName(name string) (*AWSLogsLogStream, } // GetAllAWSLogsMetricFilterResources retrieves all AWSLogsMetricFilter items from an AWS CloudFormation template -func (t *Template) GetAllAWSLogsMetricFilterResources() map[string]*AWSLogsMetricFilter { - results := map[string]*AWSLogsMetricFilter{} +func (t *Template) GetAllAWSLogsMetricFilterResources() map[string]*resources.AWSLogsMetricFilter { + results := map[string]*resources.AWSLogsMetricFilter{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSLogsMetricFilter: + case *resources.AWSLogsMetricFilter: results[name] = resource } } @@ -6488,10 +6489,10 @@ func (t *Template) GetAllAWSLogsMetricFilterResources() map[string]*AWSLogsMetri // GetAWSLogsMetricFilterWithName retrieves all AWSLogsMetricFilter items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLogsMetricFilterWithName(name string) (*AWSLogsMetricFilter, error) { +func (t *Template) GetAWSLogsMetricFilterWithName(name string) (*resources.AWSLogsMetricFilter, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSLogsMetricFilter: + case *resources.AWSLogsMetricFilter: return resource, nil } } @@ -6499,11 +6500,11 @@ func (t *Template) GetAWSLogsMetricFilterWithName(name string) (*AWSLogsMetricFi } // GetAllAWSLogsSubscriptionFilterResources retrieves all AWSLogsSubscriptionFilter items from an AWS CloudFormation template -func (t *Template) GetAllAWSLogsSubscriptionFilterResources() map[string]*AWSLogsSubscriptionFilter { - results := map[string]*AWSLogsSubscriptionFilter{} +func (t *Template) GetAllAWSLogsSubscriptionFilterResources() map[string]*resources.AWSLogsSubscriptionFilter { + results := map[string]*resources.AWSLogsSubscriptionFilter{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSLogsSubscriptionFilter: + case *resources.AWSLogsSubscriptionFilter: results[name] = resource } } @@ -6512,10 +6513,10 @@ func (t *Template) GetAllAWSLogsSubscriptionFilterResources() map[string]*AWSLog // GetAWSLogsSubscriptionFilterWithName retrieves all AWSLogsSubscriptionFilter items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSLogsSubscriptionFilterWithName(name string) (*AWSLogsSubscriptionFilter, error) { +func (t *Template) GetAWSLogsSubscriptionFilterWithName(name string) (*resources.AWSLogsSubscriptionFilter, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSLogsSubscriptionFilter: + case *resources.AWSLogsSubscriptionFilter: return resource, nil } } @@ -6523,11 +6524,11 @@ func (t *Template) GetAWSLogsSubscriptionFilterWithName(name string) (*AWSLogsSu } // GetAllAWSNeptuneDBClusterResources retrieves all AWSNeptuneDBCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSNeptuneDBClusterResources() map[string]*AWSNeptuneDBCluster { - results := map[string]*AWSNeptuneDBCluster{} +func (t *Template) GetAllAWSNeptuneDBClusterResources() map[string]*resources.AWSNeptuneDBCluster { + results := map[string]*resources.AWSNeptuneDBCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSNeptuneDBCluster: + case *resources.AWSNeptuneDBCluster: results[name] = resource } } @@ -6536,10 +6537,10 @@ func (t *Template) GetAllAWSNeptuneDBClusterResources() map[string]*AWSNeptuneDB // GetAWSNeptuneDBClusterWithName retrieves all AWSNeptuneDBCluster items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSNeptuneDBClusterWithName(name string) (*AWSNeptuneDBCluster, error) { +func (t *Template) GetAWSNeptuneDBClusterWithName(name string) (*resources.AWSNeptuneDBCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSNeptuneDBCluster: + case *resources.AWSNeptuneDBCluster: return resource, nil } } @@ -6547,11 +6548,11 @@ func (t *Template) GetAWSNeptuneDBClusterWithName(name string) (*AWSNeptuneDBClu } // GetAllAWSNeptuneDBClusterParameterGroupResources retrieves all AWSNeptuneDBClusterParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSNeptuneDBClusterParameterGroupResources() map[string]*AWSNeptuneDBClusterParameterGroup { - results := map[string]*AWSNeptuneDBClusterParameterGroup{} +func (t *Template) GetAllAWSNeptuneDBClusterParameterGroupResources() map[string]*resources.AWSNeptuneDBClusterParameterGroup { + results := map[string]*resources.AWSNeptuneDBClusterParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSNeptuneDBClusterParameterGroup: + case *resources.AWSNeptuneDBClusterParameterGroup: results[name] = resource } } @@ -6560,10 +6561,10 @@ func (t *Template) GetAllAWSNeptuneDBClusterParameterGroupResources() map[string // GetAWSNeptuneDBClusterParameterGroupWithName retrieves all AWSNeptuneDBClusterParameterGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSNeptuneDBClusterParameterGroupWithName(name string) (*AWSNeptuneDBClusterParameterGroup, error) { +func (t *Template) GetAWSNeptuneDBClusterParameterGroupWithName(name string) (*resources.AWSNeptuneDBClusterParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSNeptuneDBClusterParameterGroup: + case *resources.AWSNeptuneDBClusterParameterGroup: return resource, nil } } @@ -6571,11 +6572,11 @@ func (t *Template) GetAWSNeptuneDBClusterParameterGroupWithName(name string) (*A } // GetAllAWSNeptuneDBInstanceResources retrieves all AWSNeptuneDBInstance items from an AWS CloudFormation template -func (t *Template) GetAllAWSNeptuneDBInstanceResources() map[string]*AWSNeptuneDBInstance { - results := map[string]*AWSNeptuneDBInstance{} +func (t *Template) GetAllAWSNeptuneDBInstanceResources() map[string]*resources.AWSNeptuneDBInstance { + results := map[string]*resources.AWSNeptuneDBInstance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSNeptuneDBInstance: + case *resources.AWSNeptuneDBInstance: results[name] = resource } } @@ -6584,10 +6585,10 @@ func (t *Template) GetAllAWSNeptuneDBInstanceResources() map[string]*AWSNeptuneD // GetAWSNeptuneDBInstanceWithName retrieves all AWSNeptuneDBInstance items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSNeptuneDBInstanceWithName(name string) (*AWSNeptuneDBInstance, error) { +func (t *Template) GetAWSNeptuneDBInstanceWithName(name string) (*resources.AWSNeptuneDBInstance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSNeptuneDBInstance: + case *resources.AWSNeptuneDBInstance: return resource, nil } } @@ -6595,11 +6596,11 @@ func (t *Template) GetAWSNeptuneDBInstanceWithName(name string) (*AWSNeptuneDBIn } // GetAllAWSNeptuneDBParameterGroupResources retrieves all AWSNeptuneDBParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSNeptuneDBParameterGroupResources() map[string]*AWSNeptuneDBParameterGroup { - results := map[string]*AWSNeptuneDBParameterGroup{} +func (t *Template) GetAllAWSNeptuneDBParameterGroupResources() map[string]*resources.AWSNeptuneDBParameterGroup { + results := map[string]*resources.AWSNeptuneDBParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSNeptuneDBParameterGroup: + case *resources.AWSNeptuneDBParameterGroup: results[name] = resource } } @@ -6608,10 +6609,10 @@ func (t *Template) GetAllAWSNeptuneDBParameterGroupResources() map[string]*AWSNe // GetAWSNeptuneDBParameterGroupWithName retrieves all AWSNeptuneDBParameterGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSNeptuneDBParameterGroupWithName(name string) (*AWSNeptuneDBParameterGroup, error) { +func (t *Template) GetAWSNeptuneDBParameterGroupWithName(name string) (*resources.AWSNeptuneDBParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSNeptuneDBParameterGroup: + case *resources.AWSNeptuneDBParameterGroup: return resource, nil } } @@ -6619,11 +6620,11 @@ func (t *Template) GetAWSNeptuneDBParameterGroupWithName(name string) (*AWSNeptu } // GetAllAWSNeptuneDBSubnetGroupResources retrieves all AWSNeptuneDBSubnetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSNeptuneDBSubnetGroupResources() map[string]*AWSNeptuneDBSubnetGroup { - results := map[string]*AWSNeptuneDBSubnetGroup{} +func (t *Template) GetAllAWSNeptuneDBSubnetGroupResources() map[string]*resources.AWSNeptuneDBSubnetGroup { + results := map[string]*resources.AWSNeptuneDBSubnetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSNeptuneDBSubnetGroup: + case *resources.AWSNeptuneDBSubnetGroup: results[name] = resource } } @@ -6632,10 +6633,10 @@ func (t *Template) GetAllAWSNeptuneDBSubnetGroupResources() map[string]*AWSNeptu // GetAWSNeptuneDBSubnetGroupWithName retrieves all AWSNeptuneDBSubnetGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSNeptuneDBSubnetGroupWithName(name string) (*AWSNeptuneDBSubnetGroup, error) { +func (t *Template) GetAWSNeptuneDBSubnetGroupWithName(name string) (*resources.AWSNeptuneDBSubnetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSNeptuneDBSubnetGroup: + case *resources.AWSNeptuneDBSubnetGroup: return resource, nil } } @@ -6643,11 +6644,11 @@ func (t *Template) GetAWSNeptuneDBSubnetGroupWithName(name string) (*AWSNeptuneD } // GetAllAWSOpsWorksAppResources retrieves all AWSOpsWorksApp items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksAppResources() map[string]*AWSOpsWorksApp { - results := map[string]*AWSOpsWorksApp{} +func (t *Template) GetAllAWSOpsWorksAppResources() map[string]*resources.AWSOpsWorksApp { + results := map[string]*resources.AWSOpsWorksApp{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSOpsWorksApp: + case *resources.AWSOpsWorksApp: results[name] = resource } } @@ -6656,10 +6657,10 @@ func (t *Template) GetAllAWSOpsWorksAppResources() map[string]*AWSOpsWorksApp { // GetAWSOpsWorksAppWithName retrieves all AWSOpsWorksApp items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksAppWithName(name string) (*AWSOpsWorksApp, error) { +func (t *Template) GetAWSOpsWorksAppWithName(name string) (*resources.AWSOpsWorksApp, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSOpsWorksApp: + case *resources.AWSOpsWorksApp: return resource, nil } } @@ -6667,11 +6668,11 @@ func (t *Template) GetAWSOpsWorksAppWithName(name string) (*AWSOpsWorksApp, erro } // GetAllAWSOpsWorksElasticLoadBalancerAttachmentResources retrieves all AWSOpsWorksElasticLoadBalancerAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksElasticLoadBalancerAttachmentResources() map[string]*AWSOpsWorksElasticLoadBalancerAttachment { - results := map[string]*AWSOpsWorksElasticLoadBalancerAttachment{} +func (t *Template) GetAllAWSOpsWorksElasticLoadBalancerAttachmentResources() map[string]*resources.AWSOpsWorksElasticLoadBalancerAttachment { + results := map[string]*resources.AWSOpsWorksElasticLoadBalancerAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSOpsWorksElasticLoadBalancerAttachment: + case *resources.AWSOpsWorksElasticLoadBalancerAttachment: results[name] = resource } } @@ -6680,10 +6681,10 @@ func (t *Template) GetAllAWSOpsWorksElasticLoadBalancerAttachmentResources() map // GetAWSOpsWorksElasticLoadBalancerAttachmentWithName retrieves all AWSOpsWorksElasticLoadBalancerAttachment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksElasticLoadBalancerAttachmentWithName(name string) (*AWSOpsWorksElasticLoadBalancerAttachment, error) { +func (t *Template) GetAWSOpsWorksElasticLoadBalancerAttachmentWithName(name string) (*resources.AWSOpsWorksElasticLoadBalancerAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSOpsWorksElasticLoadBalancerAttachment: + case *resources.AWSOpsWorksElasticLoadBalancerAttachment: return resource, nil } } @@ -6691,11 +6692,11 @@ func (t *Template) GetAWSOpsWorksElasticLoadBalancerAttachmentWithName(name stri } // GetAllAWSOpsWorksInstanceResources retrieves all AWSOpsWorksInstance items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksInstanceResources() map[string]*AWSOpsWorksInstance { - results := map[string]*AWSOpsWorksInstance{} +func (t *Template) GetAllAWSOpsWorksInstanceResources() map[string]*resources.AWSOpsWorksInstance { + results := map[string]*resources.AWSOpsWorksInstance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSOpsWorksInstance: + case *resources.AWSOpsWorksInstance: results[name] = resource } } @@ -6704,10 +6705,10 @@ func (t *Template) GetAllAWSOpsWorksInstanceResources() map[string]*AWSOpsWorksI // GetAWSOpsWorksInstanceWithName retrieves all AWSOpsWorksInstance items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksInstanceWithName(name string) (*AWSOpsWorksInstance, error) { +func (t *Template) GetAWSOpsWorksInstanceWithName(name string) (*resources.AWSOpsWorksInstance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSOpsWorksInstance: + case *resources.AWSOpsWorksInstance: return resource, nil } } @@ -6715,11 +6716,11 @@ func (t *Template) GetAWSOpsWorksInstanceWithName(name string) (*AWSOpsWorksInst } // GetAllAWSOpsWorksLayerResources retrieves all AWSOpsWorksLayer items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksLayerResources() map[string]*AWSOpsWorksLayer { - results := map[string]*AWSOpsWorksLayer{} +func (t *Template) GetAllAWSOpsWorksLayerResources() map[string]*resources.AWSOpsWorksLayer { + results := map[string]*resources.AWSOpsWorksLayer{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSOpsWorksLayer: + case *resources.AWSOpsWorksLayer: results[name] = resource } } @@ -6728,10 +6729,10 @@ func (t *Template) GetAllAWSOpsWorksLayerResources() map[string]*AWSOpsWorksLaye // GetAWSOpsWorksLayerWithName retrieves all AWSOpsWorksLayer items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksLayerWithName(name string) (*AWSOpsWorksLayer, error) { +func (t *Template) GetAWSOpsWorksLayerWithName(name string) (*resources.AWSOpsWorksLayer, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSOpsWorksLayer: + case *resources.AWSOpsWorksLayer: return resource, nil } } @@ -6739,11 +6740,11 @@ func (t *Template) GetAWSOpsWorksLayerWithName(name string) (*AWSOpsWorksLayer, } // GetAllAWSOpsWorksStackResources retrieves all AWSOpsWorksStack items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksStackResources() map[string]*AWSOpsWorksStack { - results := map[string]*AWSOpsWorksStack{} +func (t *Template) GetAllAWSOpsWorksStackResources() map[string]*resources.AWSOpsWorksStack { + results := map[string]*resources.AWSOpsWorksStack{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSOpsWorksStack: + case *resources.AWSOpsWorksStack: results[name] = resource } } @@ -6752,10 +6753,10 @@ func (t *Template) GetAllAWSOpsWorksStackResources() map[string]*AWSOpsWorksStac // GetAWSOpsWorksStackWithName retrieves all AWSOpsWorksStack items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksStackWithName(name string) (*AWSOpsWorksStack, error) { +func (t *Template) GetAWSOpsWorksStackWithName(name string) (*resources.AWSOpsWorksStack, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSOpsWorksStack: + case *resources.AWSOpsWorksStack: return resource, nil } } @@ -6763,11 +6764,11 @@ func (t *Template) GetAWSOpsWorksStackWithName(name string) (*AWSOpsWorksStack, } // GetAllAWSOpsWorksUserProfileResources retrieves all AWSOpsWorksUserProfile items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksUserProfileResources() map[string]*AWSOpsWorksUserProfile { - results := map[string]*AWSOpsWorksUserProfile{} +func (t *Template) GetAllAWSOpsWorksUserProfileResources() map[string]*resources.AWSOpsWorksUserProfile { + results := map[string]*resources.AWSOpsWorksUserProfile{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSOpsWorksUserProfile: + case *resources.AWSOpsWorksUserProfile: results[name] = resource } } @@ -6776,10 +6777,10 @@ func (t *Template) GetAllAWSOpsWorksUserProfileResources() map[string]*AWSOpsWor // GetAWSOpsWorksUserProfileWithName retrieves all AWSOpsWorksUserProfile items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksUserProfileWithName(name string) (*AWSOpsWorksUserProfile, error) { +func (t *Template) GetAWSOpsWorksUserProfileWithName(name string) (*resources.AWSOpsWorksUserProfile, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSOpsWorksUserProfile: + case *resources.AWSOpsWorksUserProfile: return resource, nil } } @@ -6787,11 +6788,11 @@ func (t *Template) GetAWSOpsWorksUserProfileWithName(name string) (*AWSOpsWorksU } // GetAllAWSOpsWorksVolumeResources retrieves all AWSOpsWorksVolume items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksVolumeResources() map[string]*AWSOpsWorksVolume { - results := map[string]*AWSOpsWorksVolume{} +func (t *Template) GetAllAWSOpsWorksVolumeResources() map[string]*resources.AWSOpsWorksVolume { + results := map[string]*resources.AWSOpsWorksVolume{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSOpsWorksVolume: + case *resources.AWSOpsWorksVolume: results[name] = resource } } @@ -6800,10 +6801,10 @@ func (t *Template) GetAllAWSOpsWorksVolumeResources() map[string]*AWSOpsWorksVol // GetAWSOpsWorksVolumeWithName retrieves all AWSOpsWorksVolume items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksVolumeWithName(name string) (*AWSOpsWorksVolume, error) { +func (t *Template) GetAWSOpsWorksVolumeWithName(name string) (*resources.AWSOpsWorksVolume, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSOpsWorksVolume: + case *resources.AWSOpsWorksVolume: return resource, nil } } @@ -6811,11 +6812,11 @@ func (t *Template) GetAWSOpsWorksVolumeWithName(name string) (*AWSOpsWorksVolume } // GetAllAWSOpsWorksCMServerResources retrieves all AWSOpsWorksCMServer items from an AWS CloudFormation template -func (t *Template) GetAllAWSOpsWorksCMServerResources() map[string]*AWSOpsWorksCMServer { - results := map[string]*AWSOpsWorksCMServer{} +func (t *Template) GetAllAWSOpsWorksCMServerResources() map[string]*resources.AWSOpsWorksCMServer { + results := map[string]*resources.AWSOpsWorksCMServer{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSOpsWorksCMServer: + case *resources.AWSOpsWorksCMServer: results[name] = resource } } @@ -6824,10 +6825,10 @@ func (t *Template) GetAllAWSOpsWorksCMServerResources() map[string]*AWSOpsWorksC // GetAWSOpsWorksCMServerWithName retrieves all AWSOpsWorksCMServer items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSOpsWorksCMServerWithName(name string) (*AWSOpsWorksCMServer, error) { +func (t *Template) GetAWSOpsWorksCMServerWithName(name string) (*resources.AWSOpsWorksCMServer, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSOpsWorksCMServer: + case *resources.AWSOpsWorksCMServer: return resource, nil } } @@ -6835,11 +6836,11 @@ func (t *Template) GetAWSOpsWorksCMServerWithName(name string) (*AWSOpsWorksCMSe } // GetAllAWSRAMResourceShareResources retrieves all AWSRAMResourceShare items from an AWS CloudFormation template -func (t *Template) GetAllAWSRAMResourceShareResources() map[string]*AWSRAMResourceShare { - results := map[string]*AWSRAMResourceShare{} +func (t *Template) GetAllAWSRAMResourceShareResources() map[string]*resources.AWSRAMResourceShare { + results := map[string]*resources.AWSRAMResourceShare{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRAMResourceShare: + case *resources.AWSRAMResourceShare: results[name] = resource } } @@ -6848,10 +6849,10 @@ func (t *Template) GetAllAWSRAMResourceShareResources() map[string]*AWSRAMResour // GetAWSRAMResourceShareWithName retrieves all AWSRAMResourceShare items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRAMResourceShareWithName(name string) (*AWSRAMResourceShare, error) { +func (t *Template) GetAWSRAMResourceShareWithName(name string) (*resources.AWSRAMResourceShare, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRAMResourceShare: + case *resources.AWSRAMResourceShare: return resource, nil } } @@ -6859,11 +6860,11 @@ func (t *Template) GetAWSRAMResourceShareWithName(name string) (*AWSRAMResourceS } // GetAllAWSRDSDBClusterResources retrieves all AWSRDSDBCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSDBClusterResources() map[string]*AWSRDSDBCluster { - results := map[string]*AWSRDSDBCluster{} +func (t *Template) GetAllAWSRDSDBClusterResources() map[string]*resources.AWSRDSDBCluster { + results := map[string]*resources.AWSRDSDBCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRDSDBCluster: + case *resources.AWSRDSDBCluster: results[name] = resource } } @@ -6872,10 +6873,10 @@ func (t *Template) GetAllAWSRDSDBClusterResources() map[string]*AWSRDSDBCluster // GetAWSRDSDBClusterWithName retrieves all AWSRDSDBCluster items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSDBClusterWithName(name string) (*AWSRDSDBCluster, error) { +func (t *Template) GetAWSRDSDBClusterWithName(name string) (*resources.AWSRDSDBCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRDSDBCluster: + case *resources.AWSRDSDBCluster: return resource, nil } } @@ -6883,11 +6884,11 @@ func (t *Template) GetAWSRDSDBClusterWithName(name string) (*AWSRDSDBCluster, er } // GetAllAWSRDSDBClusterParameterGroupResources retrieves all AWSRDSDBClusterParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSDBClusterParameterGroupResources() map[string]*AWSRDSDBClusterParameterGroup { - results := map[string]*AWSRDSDBClusterParameterGroup{} +func (t *Template) GetAllAWSRDSDBClusterParameterGroupResources() map[string]*resources.AWSRDSDBClusterParameterGroup { + results := map[string]*resources.AWSRDSDBClusterParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRDSDBClusterParameterGroup: + case *resources.AWSRDSDBClusterParameterGroup: results[name] = resource } } @@ -6896,10 +6897,10 @@ func (t *Template) GetAllAWSRDSDBClusterParameterGroupResources() map[string]*AW // GetAWSRDSDBClusterParameterGroupWithName retrieves all AWSRDSDBClusterParameterGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSDBClusterParameterGroupWithName(name string) (*AWSRDSDBClusterParameterGroup, error) { +func (t *Template) GetAWSRDSDBClusterParameterGroupWithName(name string) (*resources.AWSRDSDBClusterParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRDSDBClusterParameterGroup: + case *resources.AWSRDSDBClusterParameterGroup: return resource, nil } } @@ -6907,11 +6908,11 @@ func (t *Template) GetAWSRDSDBClusterParameterGroupWithName(name string) (*AWSRD } // GetAllAWSRDSDBInstanceResources retrieves all AWSRDSDBInstance items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSDBInstanceResources() map[string]*AWSRDSDBInstance { - results := map[string]*AWSRDSDBInstance{} +func (t *Template) GetAllAWSRDSDBInstanceResources() map[string]*resources.AWSRDSDBInstance { + results := map[string]*resources.AWSRDSDBInstance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRDSDBInstance: + case *resources.AWSRDSDBInstance: results[name] = resource } } @@ -6920,10 +6921,10 @@ func (t *Template) GetAllAWSRDSDBInstanceResources() map[string]*AWSRDSDBInstanc // GetAWSRDSDBInstanceWithName retrieves all AWSRDSDBInstance items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSDBInstanceWithName(name string) (*AWSRDSDBInstance, error) { +func (t *Template) GetAWSRDSDBInstanceWithName(name string) (*resources.AWSRDSDBInstance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRDSDBInstance: + case *resources.AWSRDSDBInstance: return resource, nil } } @@ -6931,11 +6932,11 @@ func (t *Template) GetAWSRDSDBInstanceWithName(name string) (*AWSRDSDBInstance, } // GetAllAWSRDSDBParameterGroupResources retrieves all AWSRDSDBParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSDBParameterGroupResources() map[string]*AWSRDSDBParameterGroup { - results := map[string]*AWSRDSDBParameterGroup{} +func (t *Template) GetAllAWSRDSDBParameterGroupResources() map[string]*resources.AWSRDSDBParameterGroup { + results := map[string]*resources.AWSRDSDBParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRDSDBParameterGroup: + case *resources.AWSRDSDBParameterGroup: results[name] = resource } } @@ -6944,10 +6945,10 @@ func (t *Template) GetAllAWSRDSDBParameterGroupResources() map[string]*AWSRDSDBP // GetAWSRDSDBParameterGroupWithName retrieves all AWSRDSDBParameterGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSDBParameterGroupWithName(name string) (*AWSRDSDBParameterGroup, error) { +func (t *Template) GetAWSRDSDBParameterGroupWithName(name string) (*resources.AWSRDSDBParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRDSDBParameterGroup: + case *resources.AWSRDSDBParameterGroup: return resource, nil } } @@ -6955,11 +6956,11 @@ func (t *Template) GetAWSRDSDBParameterGroupWithName(name string) (*AWSRDSDBPara } // GetAllAWSRDSDBSecurityGroupResources retrieves all AWSRDSDBSecurityGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSDBSecurityGroupResources() map[string]*AWSRDSDBSecurityGroup { - results := map[string]*AWSRDSDBSecurityGroup{} +func (t *Template) GetAllAWSRDSDBSecurityGroupResources() map[string]*resources.AWSRDSDBSecurityGroup { + results := map[string]*resources.AWSRDSDBSecurityGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRDSDBSecurityGroup: + case *resources.AWSRDSDBSecurityGroup: results[name] = resource } } @@ -6968,10 +6969,10 @@ func (t *Template) GetAllAWSRDSDBSecurityGroupResources() map[string]*AWSRDSDBSe // GetAWSRDSDBSecurityGroupWithName retrieves all AWSRDSDBSecurityGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSDBSecurityGroupWithName(name string) (*AWSRDSDBSecurityGroup, error) { +func (t *Template) GetAWSRDSDBSecurityGroupWithName(name string) (*resources.AWSRDSDBSecurityGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRDSDBSecurityGroup: + case *resources.AWSRDSDBSecurityGroup: return resource, nil } } @@ -6979,11 +6980,11 @@ func (t *Template) GetAWSRDSDBSecurityGroupWithName(name string) (*AWSRDSDBSecur } // GetAllAWSRDSDBSecurityGroupIngressResources retrieves all AWSRDSDBSecurityGroupIngress items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSDBSecurityGroupIngressResources() map[string]*AWSRDSDBSecurityGroupIngress { - results := map[string]*AWSRDSDBSecurityGroupIngress{} +func (t *Template) GetAllAWSRDSDBSecurityGroupIngressResources() map[string]*resources.AWSRDSDBSecurityGroupIngress { + results := map[string]*resources.AWSRDSDBSecurityGroupIngress{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRDSDBSecurityGroupIngress: + case *resources.AWSRDSDBSecurityGroupIngress: results[name] = resource } } @@ -6992,10 +6993,10 @@ func (t *Template) GetAllAWSRDSDBSecurityGroupIngressResources() map[string]*AWS // GetAWSRDSDBSecurityGroupIngressWithName retrieves all AWSRDSDBSecurityGroupIngress items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSDBSecurityGroupIngressWithName(name string) (*AWSRDSDBSecurityGroupIngress, error) { +func (t *Template) GetAWSRDSDBSecurityGroupIngressWithName(name string) (*resources.AWSRDSDBSecurityGroupIngress, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRDSDBSecurityGroupIngress: + case *resources.AWSRDSDBSecurityGroupIngress: return resource, nil } } @@ -7003,11 +7004,11 @@ func (t *Template) GetAWSRDSDBSecurityGroupIngressWithName(name string) (*AWSRDS } // GetAllAWSRDSDBSubnetGroupResources retrieves all AWSRDSDBSubnetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSDBSubnetGroupResources() map[string]*AWSRDSDBSubnetGroup { - results := map[string]*AWSRDSDBSubnetGroup{} +func (t *Template) GetAllAWSRDSDBSubnetGroupResources() map[string]*resources.AWSRDSDBSubnetGroup { + results := map[string]*resources.AWSRDSDBSubnetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRDSDBSubnetGroup: + case *resources.AWSRDSDBSubnetGroup: results[name] = resource } } @@ -7016,10 +7017,10 @@ func (t *Template) GetAllAWSRDSDBSubnetGroupResources() map[string]*AWSRDSDBSubn // GetAWSRDSDBSubnetGroupWithName retrieves all AWSRDSDBSubnetGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSDBSubnetGroupWithName(name string) (*AWSRDSDBSubnetGroup, error) { +func (t *Template) GetAWSRDSDBSubnetGroupWithName(name string) (*resources.AWSRDSDBSubnetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRDSDBSubnetGroup: + case *resources.AWSRDSDBSubnetGroup: return resource, nil } } @@ -7027,11 +7028,11 @@ func (t *Template) GetAWSRDSDBSubnetGroupWithName(name string) (*AWSRDSDBSubnetG } // GetAllAWSRDSEventSubscriptionResources retrieves all AWSRDSEventSubscription items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSEventSubscriptionResources() map[string]*AWSRDSEventSubscription { - results := map[string]*AWSRDSEventSubscription{} +func (t *Template) GetAllAWSRDSEventSubscriptionResources() map[string]*resources.AWSRDSEventSubscription { + results := map[string]*resources.AWSRDSEventSubscription{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRDSEventSubscription: + case *resources.AWSRDSEventSubscription: results[name] = resource } } @@ -7040,10 +7041,10 @@ func (t *Template) GetAllAWSRDSEventSubscriptionResources() map[string]*AWSRDSEv // GetAWSRDSEventSubscriptionWithName retrieves all AWSRDSEventSubscription items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSEventSubscriptionWithName(name string) (*AWSRDSEventSubscription, error) { +func (t *Template) GetAWSRDSEventSubscriptionWithName(name string) (*resources.AWSRDSEventSubscription, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRDSEventSubscription: + case *resources.AWSRDSEventSubscription: return resource, nil } } @@ -7051,11 +7052,11 @@ func (t *Template) GetAWSRDSEventSubscriptionWithName(name string) (*AWSRDSEvent } // GetAllAWSRDSOptionGroupResources retrieves all AWSRDSOptionGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRDSOptionGroupResources() map[string]*AWSRDSOptionGroup { - results := map[string]*AWSRDSOptionGroup{} +func (t *Template) GetAllAWSRDSOptionGroupResources() map[string]*resources.AWSRDSOptionGroup { + results := map[string]*resources.AWSRDSOptionGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRDSOptionGroup: + case *resources.AWSRDSOptionGroup: results[name] = resource } } @@ -7064,10 +7065,10 @@ func (t *Template) GetAllAWSRDSOptionGroupResources() map[string]*AWSRDSOptionGr // GetAWSRDSOptionGroupWithName retrieves all AWSRDSOptionGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRDSOptionGroupWithName(name string) (*AWSRDSOptionGroup, error) { +func (t *Template) GetAWSRDSOptionGroupWithName(name string) (*resources.AWSRDSOptionGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRDSOptionGroup: + case *resources.AWSRDSOptionGroup: return resource, nil } } @@ -7075,11 +7076,11 @@ func (t *Template) GetAWSRDSOptionGroupWithName(name string) (*AWSRDSOptionGroup } // GetAllAWSRedshiftClusterResources retrieves all AWSRedshiftCluster items from an AWS CloudFormation template -func (t *Template) GetAllAWSRedshiftClusterResources() map[string]*AWSRedshiftCluster { - results := map[string]*AWSRedshiftCluster{} +func (t *Template) GetAllAWSRedshiftClusterResources() map[string]*resources.AWSRedshiftCluster { + results := map[string]*resources.AWSRedshiftCluster{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRedshiftCluster: + case *resources.AWSRedshiftCluster: results[name] = resource } } @@ -7088,10 +7089,10 @@ func (t *Template) GetAllAWSRedshiftClusterResources() map[string]*AWSRedshiftCl // GetAWSRedshiftClusterWithName retrieves all AWSRedshiftCluster items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRedshiftClusterWithName(name string) (*AWSRedshiftCluster, error) { +func (t *Template) GetAWSRedshiftClusterWithName(name string) (*resources.AWSRedshiftCluster, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRedshiftCluster: + case *resources.AWSRedshiftCluster: return resource, nil } } @@ -7099,11 +7100,11 @@ func (t *Template) GetAWSRedshiftClusterWithName(name string) (*AWSRedshiftClust } // GetAllAWSRedshiftClusterParameterGroupResources retrieves all AWSRedshiftClusterParameterGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRedshiftClusterParameterGroupResources() map[string]*AWSRedshiftClusterParameterGroup { - results := map[string]*AWSRedshiftClusterParameterGroup{} +func (t *Template) GetAllAWSRedshiftClusterParameterGroupResources() map[string]*resources.AWSRedshiftClusterParameterGroup { + results := map[string]*resources.AWSRedshiftClusterParameterGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRedshiftClusterParameterGroup: + case *resources.AWSRedshiftClusterParameterGroup: results[name] = resource } } @@ -7112,10 +7113,10 @@ func (t *Template) GetAllAWSRedshiftClusterParameterGroupResources() map[string] // GetAWSRedshiftClusterParameterGroupWithName retrieves all AWSRedshiftClusterParameterGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRedshiftClusterParameterGroupWithName(name string) (*AWSRedshiftClusterParameterGroup, error) { +func (t *Template) GetAWSRedshiftClusterParameterGroupWithName(name string) (*resources.AWSRedshiftClusterParameterGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRedshiftClusterParameterGroup: + case *resources.AWSRedshiftClusterParameterGroup: return resource, nil } } @@ -7123,11 +7124,11 @@ func (t *Template) GetAWSRedshiftClusterParameterGroupWithName(name string) (*AW } // GetAllAWSRedshiftClusterSecurityGroupResources retrieves all AWSRedshiftClusterSecurityGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRedshiftClusterSecurityGroupResources() map[string]*AWSRedshiftClusterSecurityGroup { - results := map[string]*AWSRedshiftClusterSecurityGroup{} +func (t *Template) GetAllAWSRedshiftClusterSecurityGroupResources() map[string]*resources.AWSRedshiftClusterSecurityGroup { + results := map[string]*resources.AWSRedshiftClusterSecurityGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRedshiftClusterSecurityGroup: + case *resources.AWSRedshiftClusterSecurityGroup: results[name] = resource } } @@ -7136,10 +7137,10 @@ func (t *Template) GetAllAWSRedshiftClusterSecurityGroupResources() map[string]* // GetAWSRedshiftClusterSecurityGroupWithName retrieves all AWSRedshiftClusterSecurityGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRedshiftClusterSecurityGroupWithName(name string) (*AWSRedshiftClusterSecurityGroup, error) { +func (t *Template) GetAWSRedshiftClusterSecurityGroupWithName(name string) (*resources.AWSRedshiftClusterSecurityGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRedshiftClusterSecurityGroup: + case *resources.AWSRedshiftClusterSecurityGroup: return resource, nil } } @@ -7147,11 +7148,11 @@ func (t *Template) GetAWSRedshiftClusterSecurityGroupWithName(name string) (*AWS } // GetAllAWSRedshiftClusterSecurityGroupIngressResources retrieves all AWSRedshiftClusterSecurityGroupIngress items from an AWS CloudFormation template -func (t *Template) GetAllAWSRedshiftClusterSecurityGroupIngressResources() map[string]*AWSRedshiftClusterSecurityGroupIngress { - results := map[string]*AWSRedshiftClusterSecurityGroupIngress{} +func (t *Template) GetAllAWSRedshiftClusterSecurityGroupIngressResources() map[string]*resources.AWSRedshiftClusterSecurityGroupIngress { + results := map[string]*resources.AWSRedshiftClusterSecurityGroupIngress{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRedshiftClusterSecurityGroupIngress: + case *resources.AWSRedshiftClusterSecurityGroupIngress: results[name] = resource } } @@ -7160,10 +7161,10 @@ func (t *Template) GetAllAWSRedshiftClusterSecurityGroupIngressResources() map[s // GetAWSRedshiftClusterSecurityGroupIngressWithName retrieves all AWSRedshiftClusterSecurityGroupIngress items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRedshiftClusterSecurityGroupIngressWithName(name string) (*AWSRedshiftClusterSecurityGroupIngress, error) { +func (t *Template) GetAWSRedshiftClusterSecurityGroupIngressWithName(name string) (*resources.AWSRedshiftClusterSecurityGroupIngress, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRedshiftClusterSecurityGroupIngress: + case *resources.AWSRedshiftClusterSecurityGroupIngress: return resource, nil } } @@ -7171,11 +7172,11 @@ func (t *Template) GetAWSRedshiftClusterSecurityGroupIngressWithName(name string } // GetAllAWSRedshiftClusterSubnetGroupResources retrieves all AWSRedshiftClusterSubnetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRedshiftClusterSubnetGroupResources() map[string]*AWSRedshiftClusterSubnetGroup { - results := map[string]*AWSRedshiftClusterSubnetGroup{} +func (t *Template) GetAllAWSRedshiftClusterSubnetGroupResources() map[string]*resources.AWSRedshiftClusterSubnetGroup { + results := map[string]*resources.AWSRedshiftClusterSubnetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRedshiftClusterSubnetGroup: + case *resources.AWSRedshiftClusterSubnetGroup: results[name] = resource } } @@ -7184,10 +7185,10 @@ func (t *Template) GetAllAWSRedshiftClusterSubnetGroupResources() map[string]*AW // GetAWSRedshiftClusterSubnetGroupWithName retrieves all AWSRedshiftClusterSubnetGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRedshiftClusterSubnetGroupWithName(name string) (*AWSRedshiftClusterSubnetGroup, error) { +func (t *Template) GetAWSRedshiftClusterSubnetGroupWithName(name string) (*resources.AWSRedshiftClusterSubnetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRedshiftClusterSubnetGroup: + case *resources.AWSRedshiftClusterSubnetGroup: return resource, nil } } @@ -7195,11 +7196,11 @@ func (t *Template) GetAWSRedshiftClusterSubnetGroupWithName(name string) (*AWSRe } // GetAllAWSRoboMakerFleetResources retrieves all AWSRoboMakerFleet items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoboMakerFleetResources() map[string]*AWSRoboMakerFleet { - results := map[string]*AWSRoboMakerFleet{} +func (t *Template) GetAllAWSRoboMakerFleetResources() map[string]*resources.AWSRoboMakerFleet { + results := map[string]*resources.AWSRoboMakerFleet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRoboMakerFleet: + case *resources.AWSRoboMakerFleet: results[name] = resource } } @@ -7208,10 +7209,10 @@ func (t *Template) GetAllAWSRoboMakerFleetResources() map[string]*AWSRoboMakerFl // GetAWSRoboMakerFleetWithName retrieves all AWSRoboMakerFleet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoboMakerFleetWithName(name string) (*AWSRoboMakerFleet, error) { +func (t *Template) GetAWSRoboMakerFleetWithName(name string) (*resources.AWSRoboMakerFleet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRoboMakerFleet: + case *resources.AWSRoboMakerFleet: return resource, nil } } @@ -7219,11 +7220,11 @@ func (t *Template) GetAWSRoboMakerFleetWithName(name string) (*AWSRoboMakerFleet } // GetAllAWSRoboMakerRobotResources retrieves all AWSRoboMakerRobot items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoboMakerRobotResources() map[string]*AWSRoboMakerRobot { - results := map[string]*AWSRoboMakerRobot{} +func (t *Template) GetAllAWSRoboMakerRobotResources() map[string]*resources.AWSRoboMakerRobot { + results := map[string]*resources.AWSRoboMakerRobot{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRoboMakerRobot: + case *resources.AWSRoboMakerRobot: results[name] = resource } } @@ -7232,10 +7233,10 @@ func (t *Template) GetAllAWSRoboMakerRobotResources() map[string]*AWSRoboMakerRo // GetAWSRoboMakerRobotWithName retrieves all AWSRoboMakerRobot items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoboMakerRobotWithName(name string) (*AWSRoboMakerRobot, error) { +func (t *Template) GetAWSRoboMakerRobotWithName(name string) (*resources.AWSRoboMakerRobot, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRoboMakerRobot: + case *resources.AWSRoboMakerRobot: return resource, nil } } @@ -7243,11 +7244,11 @@ func (t *Template) GetAWSRoboMakerRobotWithName(name string) (*AWSRoboMakerRobot } // GetAllAWSRoboMakerRobotApplicationResources retrieves all AWSRoboMakerRobotApplication items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoboMakerRobotApplicationResources() map[string]*AWSRoboMakerRobotApplication { - results := map[string]*AWSRoboMakerRobotApplication{} +func (t *Template) GetAllAWSRoboMakerRobotApplicationResources() map[string]*resources.AWSRoboMakerRobotApplication { + results := map[string]*resources.AWSRoboMakerRobotApplication{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRoboMakerRobotApplication: + case *resources.AWSRoboMakerRobotApplication: results[name] = resource } } @@ -7256,10 +7257,10 @@ func (t *Template) GetAllAWSRoboMakerRobotApplicationResources() map[string]*AWS // GetAWSRoboMakerRobotApplicationWithName retrieves all AWSRoboMakerRobotApplication items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoboMakerRobotApplicationWithName(name string) (*AWSRoboMakerRobotApplication, error) { +func (t *Template) GetAWSRoboMakerRobotApplicationWithName(name string) (*resources.AWSRoboMakerRobotApplication, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRoboMakerRobotApplication: + case *resources.AWSRoboMakerRobotApplication: return resource, nil } } @@ -7267,11 +7268,11 @@ func (t *Template) GetAWSRoboMakerRobotApplicationWithName(name string) (*AWSRob } // GetAllAWSRoboMakerRobotApplicationVersionResources retrieves all AWSRoboMakerRobotApplicationVersion items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoboMakerRobotApplicationVersionResources() map[string]*AWSRoboMakerRobotApplicationVersion { - results := map[string]*AWSRoboMakerRobotApplicationVersion{} +func (t *Template) GetAllAWSRoboMakerRobotApplicationVersionResources() map[string]*resources.AWSRoboMakerRobotApplicationVersion { + results := map[string]*resources.AWSRoboMakerRobotApplicationVersion{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRoboMakerRobotApplicationVersion: + case *resources.AWSRoboMakerRobotApplicationVersion: results[name] = resource } } @@ -7280,10 +7281,10 @@ func (t *Template) GetAllAWSRoboMakerRobotApplicationVersionResources() map[stri // GetAWSRoboMakerRobotApplicationVersionWithName retrieves all AWSRoboMakerRobotApplicationVersion items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoboMakerRobotApplicationVersionWithName(name string) (*AWSRoboMakerRobotApplicationVersion, error) { +func (t *Template) GetAWSRoboMakerRobotApplicationVersionWithName(name string) (*resources.AWSRoboMakerRobotApplicationVersion, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRoboMakerRobotApplicationVersion: + case *resources.AWSRoboMakerRobotApplicationVersion: return resource, nil } } @@ -7291,11 +7292,11 @@ func (t *Template) GetAWSRoboMakerRobotApplicationVersionWithName(name string) ( } // GetAllAWSRoboMakerSimulationApplicationResources retrieves all AWSRoboMakerSimulationApplication items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoboMakerSimulationApplicationResources() map[string]*AWSRoboMakerSimulationApplication { - results := map[string]*AWSRoboMakerSimulationApplication{} +func (t *Template) GetAllAWSRoboMakerSimulationApplicationResources() map[string]*resources.AWSRoboMakerSimulationApplication { + results := map[string]*resources.AWSRoboMakerSimulationApplication{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRoboMakerSimulationApplication: + case *resources.AWSRoboMakerSimulationApplication: results[name] = resource } } @@ -7304,10 +7305,10 @@ func (t *Template) GetAllAWSRoboMakerSimulationApplicationResources() map[string // GetAWSRoboMakerSimulationApplicationWithName retrieves all AWSRoboMakerSimulationApplication items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoboMakerSimulationApplicationWithName(name string) (*AWSRoboMakerSimulationApplication, error) { +func (t *Template) GetAWSRoboMakerSimulationApplicationWithName(name string) (*resources.AWSRoboMakerSimulationApplication, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRoboMakerSimulationApplication: + case *resources.AWSRoboMakerSimulationApplication: return resource, nil } } @@ -7315,11 +7316,11 @@ func (t *Template) GetAWSRoboMakerSimulationApplicationWithName(name string) (*A } // GetAllAWSRoboMakerSimulationApplicationVersionResources retrieves all AWSRoboMakerSimulationApplicationVersion items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoboMakerSimulationApplicationVersionResources() map[string]*AWSRoboMakerSimulationApplicationVersion { - results := map[string]*AWSRoboMakerSimulationApplicationVersion{} +func (t *Template) GetAllAWSRoboMakerSimulationApplicationVersionResources() map[string]*resources.AWSRoboMakerSimulationApplicationVersion { + results := map[string]*resources.AWSRoboMakerSimulationApplicationVersion{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRoboMakerSimulationApplicationVersion: + case *resources.AWSRoboMakerSimulationApplicationVersion: results[name] = resource } } @@ -7328,10 +7329,10 @@ func (t *Template) GetAllAWSRoboMakerSimulationApplicationVersionResources() map // GetAWSRoboMakerSimulationApplicationVersionWithName retrieves all AWSRoboMakerSimulationApplicationVersion items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoboMakerSimulationApplicationVersionWithName(name string) (*AWSRoboMakerSimulationApplicationVersion, error) { +func (t *Template) GetAWSRoboMakerSimulationApplicationVersionWithName(name string) (*resources.AWSRoboMakerSimulationApplicationVersion, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRoboMakerSimulationApplicationVersion: + case *resources.AWSRoboMakerSimulationApplicationVersion: return resource, nil } } @@ -7339,11 +7340,11 @@ func (t *Template) GetAWSRoboMakerSimulationApplicationVersionWithName(name stri } // GetAllAWSRoute53HealthCheckResources retrieves all AWSRoute53HealthCheck items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoute53HealthCheckResources() map[string]*AWSRoute53HealthCheck { - results := map[string]*AWSRoute53HealthCheck{} +func (t *Template) GetAllAWSRoute53HealthCheckResources() map[string]*resources.AWSRoute53HealthCheck { + results := map[string]*resources.AWSRoute53HealthCheck{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRoute53HealthCheck: + case *resources.AWSRoute53HealthCheck: results[name] = resource } } @@ -7352,10 +7353,10 @@ func (t *Template) GetAllAWSRoute53HealthCheckResources() map[string]*AWSRoute53 // GetAWSRoute53HealthCheckWithName retrieves all AWSRoute53HealthCheck items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoute53HealthCheckWithName(name string) (*AWSRoute53HealthCheck, error) { +func (t *Template) GetAWSRoute53HealthCheckWithName(name string) (*resources.AWSRoute53HealthCheck, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRoute53HealthCheck: + case *resources.AWSRoute53HealthCheck: return resource, nil } } @@ -7363,11 +7364,11 @@ func (t *Template) GetAWSRoute53HealthCheckWithName(name string) (*AWSRoute53Hea } // GetAllAWSRoute53HostedZoneResources retrieves all AWSRoute53HostedZone items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoute53HostedZoneResources() map[string]*AWSRoute53HostedZone { - results := map[string]*AWSRoute53HostedZone{} +func (t *Template) GetAllAWSRoute53HostedZoneResources() map[string]*resources.AWSRoute53HostedZone { + results := map[string]*resources.AWSRoute53HostedZone{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRoute53HostedZone: + case *resources.AWSRoute53HostedZone: results[name] = resource } } @@ -7376,10 +7377,10 @@ func (t *Template) GetAllAWSRoute53HostedZoneResources() map[string]*AWSRoute53H // GetAWSRoute53HostedZoneWithName retrieves all AWSRoute53HostedZone items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoute53HostedZoneWithName(name string) (*AWSRoute53HostedZone, error) { +func (t *Template) GetAWSRoute53HostedZoneWithName(name string) (*resources.AWSRoute53HostedZone, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRoute53HostedZone: + case *resources.AWSRoute53HostedZone: return resource, nil } } @@ -7387,11 +7388,11 @@ func (t *Template) GetAWSRoute53HostedZoneWithName(name string) (*AWSRoute53Host } // GetAllAWSRoute53RecordSetResources retrieves all AWSRoute53RecordSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoute53RecordSetResources() map[string]*AWSRoute53RecordSet { - results := map[string]*AWSRoute53RecordSet{} +func (t *Template) GetAllAWSRoute53RecordSetResources() map[string]*resources.AWSRoute53RecordSet { + results := map[string]*resources.AWSRoute53RecordSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRoute53RecordSet: + case *resources.AWSRoute53RecordSet: results[name] = resource } } @@ -7400,10 +7401,10 @@ func (t *Template) GetAllAWSRoute53RecordSetResources() map[string]*AWSRoute53Re // GetAWSRoute53RecordSetWithName retrieves all AWSRoute53RecordSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoute53RecordSetWithName(name string) (*AWSRoute53RecordSet, error) { +func (t *Template) GetAWSRoute53RecordSetWithName(name string) (*resources.AWSRoute53RecordSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRoute53RecordSet: + case *resources.AWSRoute53RecordSet: return resource, nil } } @@ -7411,11 +7412,11 @@ func (t *Template) GetAWSRoute53RecordSetWithName(name string) (*AWSRoute53Recor } // GetAllAWSRoute53RecordSetGroupResources retrieves all AWSRoute53RecordSetGroup items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoute53RecordSetGroupResources() map[string]*AWSRoute53RecordSetGroup { - results := map[string]*AWSRoute53RecordSetGroup{} +func (t *Template) GetAllAWSRoute53RecordSetGroupResources() map[string]*resources.AWSRoute53RecordSetGroup { + results := map[string]*resources.AWSRoute53RecordSetGroup{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRoute53RecordSetGroup: + case *resources.AWSRoute53RecordSetGroup: results[name] = resource } } @@ -7424,10 +7425,10 @@ func (t *Template) GetAllAWSRoute53RecordSetGroupResources() map[string]*AWSRout // GetAWSRoute53RecordSetGroupWithName retrieves all AWSRoute53RecordSetGroup items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoute53RecordSetGroupWithName(name string) (*AWSRoute53RecordSetGroup, error) { +func (t *Template) GetAWSRoute53RecordSetGroupWithName(name string) (*resources.AWSRoute53RecordSetGroup, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRoute53RecordSetGroup: + case *resources.AWSRoute53RecordSetGroup: return resource, nil } } @@ -7435,11 +7436,11 @@ func (t *Template) GetAWSRoute53RecordSetGroupWithName(name string) (*AWSRoute53 } // GetAllAWSRoute53ResolverResolverEndpointResources retrieves all AWSRoute53ResolverResolverEndpoint items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoute53ResolverResolverEndpointResources() map[string]*AWSRoute53ResolverResolverEndpoint { - results := map[string]*AWSRoute53ResolverResolverEndpoint{} +func (t *Template) GetAllAWSRoute53ResolverResolverEndpointResources() map[string]*resources.AWSRoute53ResolverResolverEndpoint { + results := map[string]*resources.AWSRoute53ResolverResolverEndpoint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRoute53ResolverResolverEndpoint: + case *resources.AWSRoute53ResolverResolverEndpoint: results[name] = resource } } @@ -7448,10 +7449,10 @@ func (t *Template) GetAllAWSRoute53ResolverResolverEndpointResources() map[strin // GetAWSRoute53ResolverResolverEndpointWithName retrieves all AWSRoute53ResolverResolverEndpoint items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoute53ResolverResolverEndpointWithName(name string) (*AWSRoute53ResolverResolverEndpoint, error) { +func (t *Template) GetAWSRoute53ResolverResolverEndpointWithName(name string) (*resources.AWSRoute53ResolverResolverEndpoint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRoute53ResolverResolverEndpoint: + case *resources.AWSRoute53ResolverResolverEndpoint: return resource, nil } } @@ -7459,11 +7460,11 @@ func (t *Template) GetAWSRoute53ResolverResolverEndpointWithName(name string) (* } // GetAllAWSRoute53ResolverResolverRuleResources retrieves all AWSRoute53ResolverResolverRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoute53ResolverResolverRuleResources() map[string]*AWSRoute53ResolverResolverRule { - results := map[string]*AWSRoute53ResolverResolverRule{} +func (t *Template) GetAllAWSRoute53ResolverResolverRuleResources() map[string]*resources.AWSRoute53ResolverResolverRule { + results := map[string]*resources.AWSRoute53ResolverResolverRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRoute53ResolverResolverRule: + case *resources.AWSRoute53ResolverResolverRule: results[name] = resource } } @@ -7472,10 +7473,10 @@ func (t *Template) GetAllAWSRoute53ResolverResolverRuleResources() map[string]*A // GetAWSRoute53ResolverResolverRuleWithName retrieves all AWSRoute53ResolverResolverRule items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoute53ResolverResolverRuleWithName(name string) (*AWSRoute53ResolverResolverRule, error) { +func (t *Template) GetAWSRoute53ResolverResolverRuleWithName(name string) (*resources.AWSRoute53ResolverResolverRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRoute53ResolverResolverRule: + case *resources.AWSRoute53ResolverResolverRule: return resource, nil } } @@ -7483,11 +7484,11 @@ func (t *Template) GetAWSRoute53ResolverResolverRuleWithName(name string) (*AWSR } // GetAllAWSRoute53ResolverResolverRuleAssociationResources retrieves all AWSRoute53ResolverResolverRuleAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSRoute53ResolverResolverRuleAssociationResources() map[string]*AWSRoute53ResolverResolverRuleAssociation { - results := map[string]*AWSRoute53ResolverResolverRuleAssociation{} +func (t *Template) GetAllAWSRoute53ResolverResolverRuleAssociationResources() map[string]*resources.AWSRoute53ResolverResolverRuleAssociation { + results := map[string]*resources.AWSRoute53ResolverResolverRuleAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSRoute53ResolverResolverRuleAssociation: + case *resources.AWSRoute53ResolverResolverRuleAssociation: results[name] = resource } } @@ -7496,10 +7497,10 @@ func (t *Template) GetAllAWSRoute53ResolverResolverRuleAssociationResources() ma // GetAWSRoute53ResolverResolverRuleAssociationWithName retrieves all AWSRoute53ResolverResolverRuleAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSRoute53ResolverResolverRuleAssociationWithName(name string) (*AWSRoute53ResolverResolverRuleAssociation, error) { +func (t *Template) GetAWSRoute53ResolverResolverRuleAssociationWithName(name string) (*resources.AWSRoute53ResolverResolverRuleAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSRoute53ResolverResolverRuleAssociation: + case *resources.AWSRoute53ResolverResolverRuleAssociation: return resource, nil } } @@ -7507,11 +7508,11 @@ func (t *Template) GetAWSRoute53ResolverResolverRuleAssociationWithName(name str } // GetAllAWSS3BucketResources retrieves all AWSS3Bucket items from an AWS CloudFormation template -func (t *Template) GetAllAWSS3BucketResources() map[string]*AWSS3Bucket { - results := map[string]*AWSS3Bucket{} +func (t *Template) GetAllAWSS3BucketResources() map[string]*resources.AWSS3Bucket { + results := map[string]*resources.AWSS3Bucket{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSS3Bucket: + case *resources.AWSS3Bucket: results[name] = resource } } @@ -7520,10 +7521,10 @@ func (t *Template) GetAllAWSS3BucketResources() map[string]*AWSS3Bucket { // GetAWSS3BucketWithName retrieves all AWSS3Bucket items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSS3BucketWithName(name string) (*AWSS3Bucket, error) { +func (t *Template) GetAWSS3BucketWithName(name string) (*resources.AWSS3Bucket, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSS3Bucket: + case *resources.AWSS3Bucket: return resource, nil } } @@ -7531,11 +7532,11 @@ func (t *Template) GetAWSS3BucketWithName(name string) (*AWSS3Bucket, error) { } // GetAllAWSS3BucketPolicyResources retrieves all AWSS3BucketPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSS3BucketPolicyResources() map[string]*AWSS3BucketPolicy { - results := map[string]*AWSS3BucketPolicy{} +func (t *Template) GetAllAWSS3BucketPolicyResources() map[string]*resources.AWSS3BucketPolicy { + results := map[string]*resources.AWSS3BucketPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSS3BucketPolicy: + case *resources.AWSS3BucketPolicy: results[name] = resource } } @@ -7544,10 +7545,10 @@ func (t *Template) GetAllAWSS3BucketPolicyResources() map[string]*AWSS3BucketPol // GetAWSS3BucketPolicyWithName retrieves all AWSS3BucketPolicy items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSS3BucketPolicyWithName(name string) (*AWSS3BucketPolicy, error) { +func (t *Template) GetAWSS3BucketPolicyWithName(name string) (*resources.AWSS3BucketPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSS3BucketPolicy: + case *resources.AWSS3BucketPolicy: return resource, nil } } @@ -7555,11 +7556,11 @@ func (t *Template) GetAWSS3BucketPolicyWithName(name string) (*AWSS3BucketPolicy } // GetAllAWSSDBDomainResources retrieves all AWSSDBDomain items from an AWS CloudFormation template -func (t *Template) GetAllAWSSDBDomainResources() map[string]*AWSSDBDomain { - results := map[string]*AWSSDBDomain{} +func (t *Template) GetAllAWSSDBDomainResources() map[string]*resources.AWSSDBDomain { + results := map[string]*resources.AWSSDBDomain{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSDBDomain: + case *resources.AWSSDBDomain: results[name] = resource } } @@ -7568,10 +7569,10 @@ func (t *Template) GetAllAWSSDBDomainResources() map[string]*AWSSDBDomain { // GetAWSSDBDomainWithName retrieves all AWSSDBDomain items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSDBDomainWithName(name string) (*AWSSDBDomain, error) { +func (t *Template) GetAWSSDBDomainWithName(name string) (*resources.AWSSDBDomain, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSDBDomain: + case *resources.AWSSDBDomain: return resource, nil } } @@ -7579,11 +7580,11 @@ func (t *Template) GetAWSSDBDomainWithName(name string) (*AWSSDBDomain, error) { } // GetAllAWSSESConfigurationSetResources retrieves all AWSSESConfigurationSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSSESConfigurationSetResources() map[string]*AWSSESConfigurationSet { - results := map[string]*AWSSESConfigurationSet{} +func (t *Template) GetAllAWSSESConfigurationSetResources() map[string]*resources.AWSSESConfigurationSet { + results := map[string]*resources.AWSSESConfigurationSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSESConfigurationSet: + case *resources.AWSSESConfigurationSet: results[name] = resource } } @@ -7592,10 +7593,10 @@ func (t *Template) GetAllAWSSESConfigurationSetResources() map[string]*AWSSESCon // GetAWSSESConfigurationSetWithName retrieves all AWSSESConfigurationSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSESConfigurationSetWithName(name string) (*AWSSESConfigurationSet, error) { +func (t *Template) GetAWSSESConfigurationSetWithName(name string) (*resources.AWSSESConfigurationSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSESConfigurationSet: + case *resources.AWSSESConfigurationSet: return resource, nil } } @@ -7603,11 +7604,11 @@ func (t *Template) GetAWSSESConfigurationSetWithName(name string) (*AWSSESConfig } // GetAllAWSSESConfigurationSetEventDestinationResources retrieves all AWSSESConfigurationSetEventDestination items from an AWS CloudFormation template -func (t *Template) GetAllAWSSESConfigurationSetEventDestinationResources() map[string]*AWSSESConfigurationSetEventDestination { - results := map[string]*AWSSESConfigurationSetEventDestination{} +func (t *Template) GetAllAWSSESConfigurationSetEventDestinationResources() map[string]*resources.AWSSESConfigurationSetEventDestination { + results := map[string]*resources.AWSSESConfigurationSetEventDestination{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSESConfigurationSetEventDestination: + case *resources.AWSSESConfigurationSetEventDestination: results[name] = resource } } @@ -7616,10 +7617,10 @@ func (t *Template) GetAllAWSSESConfigurationSetEventDestinationResources() map[s // GetAWSSESConfigurationSetEventDestinationWithName retrieves all AWSSESConfigurationSetEventDestination items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSESConfigurationSetEventDestinationWithName(name string) (*AWSSESConfigurationSetEventDestination, error) { +func (t *Template) GetAWSSESConfigurationSetEventDestinationWithName(name string) (*resources.AWSSESConfigurationSetEventDestination, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSESConfigurationSetEventDestination: + case *resources.AWSSESConfigurationSetEventDestination: return resource, nil } } @@ -7627,11 +7628,11 @@ func (t *Template) GetAWSSESConfigurationSetEventDestinationWithName(name string } // GetAllAWSSESReceiptFilterResources retrieves all AWSSESReceiptFilter items from an AWS CloudFormation template -func (t *Template) GetAllAWSSESReceiptFilterResources() map[string]*AWSSESReceiptFilter { - results := map[string]*AWSSESReceiptFilter{} +func (t *Template) GetAllAWSSESReceiptFilterResources() map[string]*resources.AWSSESReceiptFilter { + results := map[string]*resources.AWSSESReceiptFilter{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSESReceiptFilter: + case *resources.AWSSESReceiptFilter: results[name] = resource } } @@ -7640,10 +7641,10 @@ func (t *Template) GetAllAWSSESReceiptFilterResources() map[string]*AWSSESReceip // GetAWSSESReceiptFilterWithName retrieves all AWSSESReceiptFilter items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSESReceiptFilterWithName(name string) (*AWSSESReceiptFilter, error) { +func (t *Template) GetAWSSESReceiptFilterWithName(name string) (*resources.AWSSESReceiptFilter, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSESReceiptFilter: + case *resources.AWSSESReceiptFilter: return resource, nil } } @@ -7651,11 +7652,11 @@ func (t *Template) GetAWSSESReceiptFilterWithName(name string) (*AWSSESReceiptFi } // GetAllAWSSESReceiptRuleResources retrieves all AWSSESReceiptRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSSESReceiptRuleResources() map[string]*AWSSESReceiptRule { - results := map[string]*AWSSESReceiptRule{} +func (t *Template) GetAllAWSSESReceiptRuleResources() map[string]*resources.AWSSESReceiptRule { + results := map[string]*resources.AWSSESReceiptRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSESReceiptRule: + case *resources.AWSSESReceiptRule: results[name] = resource } } @@ -7664,10 +7665,10 @@ func (t *Template) GetAllAWSSESReceiptRuleResources() map[string]*AWSSESReceiptR // GetAWSSESReceiptRuleWithName retrieves all AWSSESReceiptRule items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSESReceiptRuleWithName(name string) (*AWSSESReceiptRule, error) { +func (t *Template) GetAWSSESReceiptRuleWithName(name string) (*resources.AWSSESReceiptRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSESReceiptRule: + case *resources.AWSSESReceiptRule: return resource, nil } } @@ -7675,11 +7676,11 @@ func (t *Template) GetAWSSESReceiptRuleWithName(name string) (*AWSSESReceiptRule } // GetAllAWSSESReceiptRuleSetResources retrieves all AWSSESReceiptRuleSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSSESReceiptRuleSetResources() map[string]*AWSSESReceiptRuleSet { - results := map[string]*AWSSESReceiptRuleSet{} +func (t *Template) GetAllAWSSESReceiptRuleSetResources() map[string]*resources.AWSSESReceiptRuleSet { + results := map[string]*resources.AWSSESReceiptRuleSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSESReceiptRuleSet: + case *resources.AWSSESReceiptRuleSet: results[name] = resource } } @@ -7688,10 +7689,10 @@ func (t *Template) GetAllAWSSESReceiptRuleSetResources() map[string]*AWSSESRecei // GetAWSSESReceiptRuleSetWithName retrieves all AWSSESReceiptRuleSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSESReceiptRuleSetWithName(name string) (*AWSSESReceiptRuleSet, error) { +func (t *Template) GetAWSSESReceiptRuleSetWithName(name string) (*resources.AWSSESReceiptRuleSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSESReceiptRuleSet: + case *resources.AWSSESReceiptRuleSet: return resource, nil } } @@ -7699,11 +7700,11 @@ func (t *Template) GetAWSSESReceiptRuleSetWithName(name string) (*AWSSESReceiptR } // GetAllAWSSESTemplateResources retrieves all AWSSESTemplate items from an AWS CloudFormation template -func (t *Template) GetAllAWSSESTemplateResources() map[string]*AWSSESTemplate { - results := map[string]*AWSSESTemplate{} +func (t *Template) GetAllAWSSESTemplateResources() map[string]*resources.AWSSESTemplate { + results := map[string]*resources.AWSSESTemplate{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSESTemplate: + case *resources.AWSSESTemplate: results[name] = resource } } @@ -7712,10 +7713,10 @@ func (t *Template) GetAllAWSSESTemplateResources() map[string]*AWSSESTemplate { // GetAWSSESTemplateWithName retrieves all AWSSESTemplate items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSESTemplateWithName(name string) (*AWSSESTemplate, error) { +func (t *Template) GetAWSSESTemplateWithName(name string) (*resources.AWSSESTemplate, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSESTemplate: + case *resources.AWSSESTemplate: return resource, nil } } @@ -7723,11 +7724,11 @@ func (t *Template) GetAWSSESTemplateWithName(name string) (*AWSSESTemplate, erro } // GetAllAWSSNSSubscriptionResources retrieves all AWSSNSSubscription items from an AWS CloudFormation template -func (t *Template) GetAllAWSSNSSubscriptionResources() map[string]*AWSSNSSubscription { - results := map[string]*AWSSNSSubscription{} +func (t *Template) GetAllAWSSNSSubscriptionResources() map[string]*resources.AWSSNSSubscription { + results := map[string]*resources.AWSSNSSubscription{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSNSSubscription: + case *resources.AWSSNSSubscription: results[name] = resource } } @@ -7736,10 +7737,10 @@ func (t *Template) GetAllAWSSNSSubscriptionResources() map[string]*AWSSNSSubscri // GetAWSSNSSubscriptionWithName retrieves all AWSSNSSubscription items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSNSSubscriptionWithName(name string) (*AWSSNSSubscription, error) { +func (t *Template) GetAWSSNSSubscriptionWithName(name string) (*resources.AWSSNSSubscription, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSNSSubscription: + case *resources.AWSSNSSubscription: return resource, nil } } @@ -7747,11 +7748,11 @@ func (t *Template) GetAWSSNSSubscriptionWithName(name string) (*AWSSNSSubscripti } // GetAllAWSSNSTopicResources retrieves all AWSSNSTopic items from an AWS CloudFormation template -func (t *Template) GetAllAWSSNSTopicResources() map[string]*AWSSNSTopic { - results := map[string]*AWSSNSTopic{} +func (t *Template) GetAllAWSSNSTopicResources() map[string]*resources.AWSSNSTopic { + results := map[string]*resources.AWSSNSTopic{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSNSTopic: + case *resources.AWSSNSTopic: results[name] = resource } } @@ -7760,10 +7761,10 @@ func (t *Template) GetAllAWSSNSTopicResources() map[string]*AWSSNSTopic { // GetAWSSNSTopicWithName retrieves all AWSSNSTopic items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSNSTopicWithName(name string) (*AWSSNSTopic, error) { +func (t *Template) GetAWSSNSTopicWithName(name string) (*resources.AWSSNSTopic, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSNSTopic: + case *resources.AWSSNSTopic: return resource, nil } } @@ -7771,11 +7772,11 @@ func (t *Template) GetAWSSNSTopicWithName(name string) (*AWSSNSTopic, error) { } // GetAllAWSSNSTopicPolicyResources retrieves all AWSSNSTopicPolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSSNSTopicPolicyResources() map[string]*AWSSNSTopicPolicy { - results := map[string]*AWSSNSTopicPolicy{} +func (t *Template) GetAllAWSSNSTopicPolicyResources() map[string]*resources.AWSSNSTopicPolicy { + results := map[string]*resources.AWSSNSTopicPolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSNSTopicPolicy: + case *resources.AWSSNSTopicPolicy: results[name] = resource } } @@ -7784,10 +7785,10 @@ func (t *Template) GetAllAWSSNSTopicPolicyResources() map[string]*AWSSNSTopicPol // GetAWSSNSTopicPolicyWithName retrieves all AWSSNSTopicPolicy items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSNSTopicPolicyWithName(name string) (*AWSSNSTopicPolicy, error) { +func (t *Template) GetAWSSNSTopicPolicyWithName(name string) (*resources.AWSSNSTopicPolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSNSTopicPolicy: + case *resources.AWSSNSTopicPolicy: return resource, nil } } @@ -7795,11 +7796,11 @@ func (t *Template) GetAWSSNSTopicPolicyWithName(name string) (*AWSSNSTopicPolicy } // GetAllAWSSQSQueueResources retrieves all AWSSQSQueue items from an AWS CloudFormation template -func (t *Template) GetAllAWSSQSQueueResources() map[string]*AWSSQSQueue { - results := map[string]*AWSSQSQueue{} +func (t *Template) GetAllAWSSQSQueueResources() map[string]*resources.AWSSQSQueue { + results := map[string]*resources.AWSSQSQueue{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSQSQueue: + case *resources.AWSSQSQueue: results[name] = resource } } @@ -7808,10 +7809,10 @@ func (t *Template) GetAllAWSSQSQueueResources() map[string]*AWSSQSQueue { // GetAWSSQSQueueWithName retrieves all AWSSQSQueue items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSQSQueueWithName(name string) (*AWSSQSQueue, error) { +func (t *Template) GetAWSSQSQueueWithName(name string) (*resources.AWSSQSQueue, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSQSQueue: + case *resources.AWSSQSQueue: return resource, nil } } @@ -7819,11 +7820,11 @@ func (t *Template) GetAWSSQSQueueWithName(name string) (*AWSSQSQueue, error) { } // GetAllAWSSQSQueuePolicyResources retrieves all AWSSQSQueuePolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSSQSQueuePolicyResources() map[string]*AWSSQSQueuePolicy { - results := map[string]*AWSSQSQueuePolicy{} +func (t *Template) GetAllAWSSQSQueuePolicyResources() map[string]*resources.AWSSQSQueuePolicy { + results := map[string]*resources.AWSSQSQueuePolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSQSQueuePolicy: + case *resources.AWSSQSQueuePolicy: results[name] = resource } } @@ -7832,10 +7833,10 @@ func (t *Template) GetAllAWSSQSQueuePolicyResources() map[string]*AWSSQSQueuePol // GetAWSSQSQueuePolicyWithName retrieves all AWSSQSQueuePolicy items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSQSQueuePolicyWithName(name string) (*AWSSQSQueuePolicy, error) { +func (t *Template) GetAWSSQSQueuePolicyWithName(name string) (*resources.AWSSQSQueuePolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSQSQueuePolicy: + case *resources.AWSSQSQueuePolicy: return resource, nil } } @@ -7843,11 +7844,11 @@ func (t *Template) GetAWSSQSQueuePolicyWithName(name string) (*AWSSQSQueuePolicy } // GetAllAWSSSMAssociationResources retrieves all AWSSSMAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSSSMAssociationResources() map[string]*AWSSSMAssociation { - results := map[string]*AWSSSMAssociation{} +func (t *Template) GetAllAWSSSMAssociationResources() map[string]*resources.AWSSSMAssociation { + results := map[string]*resources.AWSSSMAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSSMAssociation: + case *resources.AWSSSMAssociation: results[name] = resource } } @@ -7856,10 +7857,10 @@ func (t *Template) GetAllAWSSSMAssociationResources() map[string]*AWSSSMAssociat // GetAWSSSMAssociationWithName retrieves all AWSSSMAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSSMAssociationWithName(name string) (*AWSSSMAssociation, error) { +func (t *Template) GetAWSSSMAssociationWithName(name string) (*resources.AWSSSMAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSSMAssociation: + case *resources.AWSSSMAssociation: return resource, nil } } @@ -7867,11 +7868,11 @@ func (t *Template) GetAWSSSMAssociationWithName(name string) (*AWSSSMAssociation } // GetAllAWSSSMDocumentResources retrieves all AWSSSMDocument items from an AWS CloudFormation template -func (t *Template) GetAllAWSSSMDocumentResources() map[string]*AWSSSMDocument { - results := map[string]*AWSSSMDocument{} +func (t *Template) GetAllAWSSSMDocumentResources() map[string]*resources.AWSSSMDocument { + results := map[string]*resources.AWSSSMDocument{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSSMDocument: + case *resources.AWSSSMDocument: results[name] = resource } } @@ -7880,10 +7881,10 @@ func (t *Template) GetAllAWSSSMDocumentResources() map[string]*AWSSSMDocument { // GetAWSSSMDocumentWithName retrieves all AWSSSMDocument items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSSMDocumentWithName(name string) (*AWSSSMDocument, error) { +func (t *Template) GetAWSSSMDocumentWithName(name string) (*resources.AWSSSMDocument, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSSMDocument: + case *resources.AWSSSMDocument: return resource, nil } } @@ -7891,11 +7892,11 @@ func (t *Template) GetAWSSSMDocumentWithName(name string) (*AWSSSMDocument, erro } // GetAllAWSSSMMaintenanceWindowResources retrieves all AWSSSMMaintenanceWindow items from an AWS CloudFormation template -func (t *Template) GetAllAWSSSMMaintenanceWindowResources() map[string]*AWSSSMMaintenanceWindow { - results := map[string]*AWSSSMMaintenanceWindow{} +func (t *Template) GetAllAWSSSMMaintenanceWindowResources() map[string]*resources.AWSSSMMaintenanceWindow { + results := map[string]*resources.AWSSSMMaintenanceWindow{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSSMMaintenanceWindow: + case *resources.AWSSSMMaintenanceWindow: results[name] = resource } } @@ -7904,10 +7905,10 @@ func (t *Template) GetAllAWSSSMMaintenanceWindowResources() map[string]*AWSSSMMa // GetAWSSSMMaintenanceWindowWithName retrieves all AWSSSMMaintenanceWindow items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSSMMaintenanceWindowWithName(name string) (*AWSSSMMaintenanceWindow, error) { +func (t *Template) GetAWSSSMMaintenanceWindowWithName(name string) (*resources.AWSSSMMaintenanceWindow, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSSMMaintenanceWindow: + case *resources.AWSSSMMaintenanceWindow: return resource, nil } } @@ -7915,11 +7916,11 @@ func (t *Template) GetAWSSSMMaintenanceWindowWithName(name string) (*AWSSSMMaint } // GetAllAWSSSMMaintenanceWindowTaskResources retrieves all AWSSSMMaintenanceWindowTask items from an AWS CloudFormation template -func (t *Template) GetAllAWSSSMMaintenanceWindowTaskResources() map[string]*AWSSSMMaintenanceWindowTask { - results := map[string]*AWSSSMMaintenanceWindowTask{} +func (t *Template) GetAllAWSSSMMaintenanceWindowTaskResources() map[string]*resources.AWSSSMMaintenanceWindowTask { + results := map[string]*resources.AWSSSMMaintenanceWindowTask{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSSMMaintenanceWindowTask: + case *resources.AWSSSMMaintenanceWindowTask: results[name] = resource } } @@ -7928,10 +7929,10 @@ func (t *Template) GetAllAWSSSMMaintenanceWindowTaskResources() map[string]*AWSS // GetAWSSSMMaintenanceWindowTaskWithName retrieves all AWSSSMMaintenanceWindowTask items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSSMMaintenanceWindowTaskWithName(name string) (*AWSSSMMaintenanceWindowTask, error) { +func (t *Template) GetAWSSSMMaintenanceWindowTaskWithName(name string) (*resources.AWSSSMMaintenanceWindowTask, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSSMMaintenanceWindowTask: + case *resources.AWSSSMMaintenanceWindowTask: return resource, nil } } @@ -7939,11 +7940,11 @@ func (t *Template) GetAWSSSMMaintenanceWindowTaskWithName(name string) (*AWSSSMM } // GetAllAWSSSMParameterResources retrieves all AWSSSMParameter items from an AWS CloudFormation template -func (t *Template) GetAllAWSSSMParameterResources() map[string]*AWSSSMParameter { - results := map[string]*AWSSSMParameter{} +func (t *Template) GetAllAWSSSMParameterResources() map[string]*resources.AWSSSMParameter { + results := map[string]*resources.AWSSSMParameter{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSSMParameter: + case *resources.AWSSSMParameter: results[name] = resource } } @@ -7952,10 +7953,10 @@ func (t *Template) GetAllAWSSSMParameterResources() map[string]*AWSSSMParameter // GetAWSSSMParameterWithName retrieves all AWSSSMParameter items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSSMParameterWithName(name string) (*AWSSSMParameter, error) { +func (t *Template) GetAWSSSMParameterWithName(name string) (*resources.AWSSSMParameter, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSSMParameter: + case *resources.AWSSSMParameter: return resource, nil } } @@ -7963,11 +7964,11 @@ func (t *Template) GetAWSSSMParameterWithName(name string) (*AWSSSMParameter, er } // GetAllAWSSSMPatchBaselineResources retrieves all AWSSSMPatchBaseline items from an AWS CloudFormation template -func (t *Template) GetAllAWSSSMPatchBaselineResources() map[string]*AWSSSMPatchBaseline { - results := map[string]*AWSSSMPatchBaseline{} +func (t *Template) GetAllAWSSSMPatchBaselineResources() map[string]*resources.AWSSSMPatchBaseline { + results := map[string]*resources.AWSSSMPatchBaseline{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSSMPatchBaseline: + case *resources.AWSSSMPatchBaseline: results[name] = resource } } @@ -7976,10 +7977,10 @@ func (t *Template) GetAllAWSSSMPatchBaselineResources() map[string]*AWSSSMPatchB // GetAWSSSMPatchBaselineWithName retrieves all AWSSSMPatchBaseline items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSSMPatchBaselineWithName(name string) (*AWSSSMPatchBaseline, error) { +func (t *Template) GetAWSSSMPatchBaselineWithName(name string) (*resources.AWSSSMPatchBaseline, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSSMPatchBaseline: + case *resources.AWSSSMPatchBaseline: return resource, nil } } @@ -7987,11 +7988,11 @@ func (t *Template) GetAWSSSMPatchBaselineWithName(name string) (*AWSSSMPatchBase } // GetAllAWSSSMResourceDataSyncResources retrieves all AWSSSMResourceDataSync items from an AWS CloudFormation template -func (t *Template) GetAllAWSSSMResourceDataSyncResources() map[string]*AWSSSMResourceDataSync { - results := map[string]*AWSSSMResourceDataSync{} +func (t *Template) GetAllAWSSSMResourceDataSyncResources() map[string]*resources.AWSSSMResourceDataSync { + results := map[string]*resources.AWSSSMResourceDataSync{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSSMResourceDataSync: + case *resources.AWSSSMResourceDataSync: results[name] = resource } } @@ -8000,10 +8001,10 @@ func (t *Template) GetAllAWSSSMResourceDataSyncResources() map[string]*AWSSSMRes // GetAWSSSMResourceDataSyncWithName retrieves all AWSSSMResourceDataSync items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSSMResourceDataSyncWithName(name string) (*AWSSSMResourceDataSync, error) { +func (t *Template) GetAWSSSMResourceDataSyncWithName(name string) (*resources.AWSSSMResourceDataSync, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSSMResourceDataSync: + case *resources.AWSSSMResourceDataSync: return resource, nil } } @@ -8011,11 +8012,11 @@ func (t *Template) GetAWSSSMResourceDataSyncWithName(name string) (*AWSSSMResour } // GetAllAWSSageMakerEndpointResources retrieves all AWSSageMakerEndpoint items from an AWS CloudFormation template -func (t *Template) GetAllAWSSageMakerEndpointResources() map[string]*AWSSageMakerEndpoint { - results := map[string]*AWSSageMakerEndpoint{} +func (t *Template) GetAllAWSSageMakerEndpointResources() map[string]*resources.AWSSageMakerEndpoint { + results := map[string]*resources.AWSSageMakerEndpoint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSageMakerEndpoint: + case *resources.AWSSageMakerEndpoint: results[name] = resource } } @@ -8024,10 +8025,10 @@ func (t *Template) GetAllAWSSageMakerEndpointResources() map[string]*AWSSageMake // GetAWSSageMakerEndpointWithName retrieves all AWSSageMakerEndpoint items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSageMakerEndpointWithName(name string) (*AWSSageMakerEndpoint, error) { +func (t *Template) GetAWSSageMakerEndpointWithName(name string) (*resources.AWSSageMakerEndpoint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSageMakerEndpoint: + case *resources.AWSSageMakerEndpoint: return resource, nil } } @@ -8035,11 +8036,11 @@ func (t *Template) GetAWSSageMakerEndpointWithName(name string) (*AWSSageMakerEn } // GetAllAWSSageMakerEndpointConfigResources retrieves all AWSSageMakerEndpointConfig items from an AWS CloudFormation template -func (t *Template) GetAllAWSSageMakerEndpointConfigResources() map[string]*AWSSageMakerEndpointConfig { - results := map[string]*AWSSageMakerEndpointConfig{} +func (t *Template) GetAllAWSSageMakerEndpointConfigResources() map[string]*resources.AWSSageMakerEndpointConfig { + results := map[string]*resources.AWSSageMakerEndpointConfig{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSageMakerEndpointConfig: + case *resources.AWSSageMakerEndpointConfig: results[name] = resource } } @@ -8048,10 +8049,10 @@ func (t *Template) GetAllAWSSageMakerEndpointConfigResources() map[string]*AWSSa // GetAWSSageMakerEndpointConfigWithName retrieves all AWSSageMakerEndpointConfig items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSageMakerEndpointConfigWithName(name string) (*AWSSageMakerEndpointConfig, error) { +func (t *Template) GetAWSSageMakerEndpointConfigWithName(name string) (*resources.AWSSageMakerEndpointConfig, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSageMakerEndpointConfig: + case *resources.AWSSageMakerEndpointConfig: return resource, nil } } @@ -8059,11 +8060,11 @@ func (t *Template) GetAWSSageMakerEndpointConfigWithName(name string) (*AWSSageM } // GetAllAWSSageMakerModelResources retrieves all AWSSageMakerModel items from an AWS CloudFormation template -func (t *Template) GetAllAWSSageMakerModelResources() map[string]*AWSSageMakerModel { - results := map[string]*AWSSageMakerModel{} +func (t *Template) GetAllAWSSageMakerModelResources() map[string]*resources.AWSSageMakerModel { + results := map[string]*resources.AWSSageMakerModel{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSageMakerModel: + case *resources.AWSSageMakerModel: results[name] = resource } } @@ -8072,10 +8073,10 @@ func (t *Template) GetAllAWSSageMakerModelResources() map[string]*AWSSageMakerMo // GetAWSSageMakerModelWithName retrieves all AWSSageMakerModel items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSageMakerModelWithName(name string) (*AWSSageMakerModel, error) { +func (t *Template) GetAWSSageMakerModelWithName(name string) (*resources.AWSSageMakerModel, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSageMakerModel: + case *resources.AWSSageMakerModel: return resource, nil } } @@ -8083,11 +8084,11 @@ func (t *Template) GetAWSSageMakerModelWithName(name string) (*AWSSageMakerModel } // GetAllAWSSageMakerNotebookInstanceResources retrieves all AWSSageMakerNotebookInstance items from an AWS CloudFormation template -func (t *Template) GetAllAWSSageMakerNotebookInstanceResources() map[string]*AWSSageMakerNotebookInstance { - results := map[string]*AWSSageMakerNotebookInstance{} +func (t *Template) GetAllAWSSageMakerNotebookInstanceResources() map[string]*resources.AWSSageMakerNotebookInstance { + results := map[string]*resources.AWSSageMakerNotebookInstance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSageMakerNotebookInstance: + case *resources.AWSSageMakerNotebookInstance: results[name] = resource } } @@ -8096,10 +8097,10 @@ func (t *Template) GetAllAWSSageMakerNotebookInstanceResources() map[string]*AWS // GetAWSSageMakerNotebookInstanceWithName retrieves all AWSSageMakerNotebookInstance items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSageMakerNotebookInstanceWithName(name string) (*AWSSageMakerNotebookInstance, error) { +func (t *Template) GetAWSSageMakerNotebookInstanceWithName(name string) (*resources.AWSSageMakerNotebookInstance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSageMakerNotebookInstance: + case *resources.AWSSageMakerNotebookInstance: return resource, nil } } @@ -8107,11 +8108,11 @@ func (t *Template) GetAWSSageMakerNotebookInstanceWithName(name string) (*AWSSag } // GetAllAWSSageMakerNotebookInstanceLifecycleConfigResources retrieves all AWSSageMakerNotebookInstanceLifecycleConfig items from an AWS CloudFormation template -func (t *Template) GetAllAWSSageMakerNotebookInstanceLifecycleConfigResources() map[string]*AWSSageMakerNotebookInstanceLifecycleConfig { - results := map[string]*AWSSageMakerNotebookInstanceLifecycleConfig{} +func (t *Template) GetAllAWSSageMakerNotebookInstanceLifecycleConfigResources() map[string]*resources.AWSSageMakerNotebookInstanceLifecycleConfig { + results := map[string]*resources.AWSSageMakerNotebookInstanceLifecycleConfig{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSageMakerNotebookInstanceLifecycleConfig: + case *resources.AWSSageMakerNotebookInstanceLifecycleConfig: results[name] = resource } } @@ -8120,10 +8121,10 @@ func (t *Template) GetAllAWSSageMakerNotebookInstanceLifecycleConfigResources() // GetAWSSageMakerNotebookInstanceLifecycleConfigWithName retrieves all AWSSageMakerNotebookInstanceLifecycleConfig items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSageMakerNotebookInstanceLifecycleConfigWithName(name string) (*AWSSageMakerNotebookInstanceLifecycleConfig, error) { +func (t *Template) GetAWSSageMakerNotebookInstanceLifecycleConfigWithName(name string) (*resources.AWSSageMakerNotebookInstanceLifecycleConfig, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSageMakerNotebookInstanceLifecycleConfig: + case *resources.AWSSageMakerNotebookInstanceLifecycleConfig: return resource, nil } } @@ -8131,11 +8132,11 @@ func (t *Template) GetAWSSageMakerNotebookInstanceLifecycleConfigWithName(name s } // GetAllAWSSecretsManagerResourcePolicyResources retrieves all AWSSecretsManagerResourcePolicy items from an AWS CloudFormation template -func (t *Template) GetAllAWSSecretsManagerResourcePolicyResources() map[string]*AWSSecretsManagerResourcePolicy { - results := map[string]*AWSSecretsManagerResourcePolicy{} +func (t *Template) GetAllAWSSecretsManagerResourcePolicyResources() map[string]*resources.AWSSecretsManagerResourcePolicy { + results := map[string]*resources.AWSSecretsManagerResourcePolicy{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSecretsManagerResourcePolicy: + case *resources.AWSSecretsManagerResourcePolicy: results[name] = resource } } @@ -8144,10 +8145,10 @@ func (t *Template) GetAllAWSSecretsManagerResourcePolicyResources() map[string]* // GetAWSSecretsManagerResourcePolicyWithName retrieves all AWSSecretsManagerResourcePolicy items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSecretsManagerResourcePolicyWithName(name string) (*AWSSecretsManagerResourcePolicy, error) { +func (t *Template) GetAWSSecretsManagerResourcePolicyWithName(name string) (*resources.AWSSecretsManagerResourcePolicy, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSecretsManagerResourcePolicy: + case *resources.AWSSecretsManagerResourcePolicy: return resource, nil } } @@ -8155,11 +8156,11 @@ func (t *Template) GetAWSSecretsManagerResourcePolicyWithName(name string) (*AWS } // GetAllAWSSecretsManagerRotationScheduleResources retrieves all AWSSecretsManagerRotationSchedule items from an AWS CloudFormation template -func (t *Template) GetAllAWSSecretsManagerRotationScheduleResources() map[string]*AWSSecretsManagerRotationSchedule { - results := map[string]*AWSSecretsManagerRotationSchedule{} +func (t *Template) GetAllAWSSecretsManagerRotationScheduleResources() map[string]*resources.AWSSecretsManagerRotationSchedule { + results := map[string]*resources.AWSSecretsManagerRotationSchedule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSecretsManagerRotationSchedule: + case *resources.AWSSecretsManagerRotationSchedule: results[name] = resource } } @@ -8168,10 +8169,10 @@ func (t *Template) GetAllAWSSecretsManagerRotationScheduleResources() map[string // GetAWSSecretsManagerRotationScheduleWithName retrieves all AWSSecretsManagerRotationSchedule items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSecretsManagerRotationScheduleWithName(name string) (*AWSSecretsManagerRotationSchedule, error) { +func (t *Template) GetAWSSecretsManagerRotationScheduleWithName(name string) (*resources.AWSSecretsManagerRotationSchedule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSecretsManagerRotationSchedule: + case *resources.AWSSecretsManagerRotationSchedule: return resource, nil } } @@ -8179,11 +8180,11 @@ func (t *Template) GetAWSSecretsManagerRotationScheduleWithName(name string) (*A } // GetAllAWSSecretsManagerSecretResources retrieves all AWSSecretsManagerSecret items from an AWS CloudFormation template -func (t *Template) GetAllAWSSecretsManagerSecretResources() map[string]*AWSSecretsManagerSecret { - results := map[string]*AWSSecretsManagerSecret{} +func (t *Template) GetAllAWSSecretsManagerSecretResources() map[string]*resources.AWSSecretsManagerSecret { + results := map[string]*resources.AWSSecretsManagerSecret{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSecretsManagerSecret: + case *resources.AWSSecretsManagerSecret: results[name] = resource } } @@ -8192,10 +8193,10 @@ func (t *Template) GetAllAWSSecretsManagerSecretResources() map[string]*AWSSecre // GetAWSSecretsManagerSecretWithName retrieves all AWSSecretsManagerSecret items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSecretsManagerSecretWithName(name string) (*AWSSecretsManagerSecret, error) { +func (t *Template) GetAWSSecretsManagerSecretWithName(name string) (*resources.AWSSecretsManagerSecret, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSecretsManagerSecret: + case *resources.AWSSecretsManagerSecret: return resource, nil } } @@ -8203,11 +8204,11 @@ func (t *Template) GetAWSSecretsManagerSecretWithName(name string) (*AWSSecretsM } // GetAllAWSSecretsManagerSecretTargetAttachmentResources retrieves all AWSSecretsManagerSecretTargetAttachment items from an AWS CloudFormation template -func (t *Template) GetAllAWSSecretsManagerSecretTargetAttachmentResources() map[string]*AWSSecretsManagerSecretTargetAttachment { - results := map[string]*AWSSecretsManagerSecretTargetAttachment{} +func (t *Template) GetAllAWSSecretsManagerSecretTargetAttachmentResources() map[string]*resources.AWSSecretsManagerSecretTargetAttachment { + results := map[string]*resources.AWSSecretsManagerSecretTargetAttachment{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSSecretsManagerSecretTargetAttachment: + case *resources.AWSSecretsManagerSecretTargetAttachment: results[name] = resource } } @@ -8216,10 +8217,10 @@ func (t *Template) GetAllAWSSecretsManagerSecretTargetAttachmentResources() map[ // GetAWSSecretsManagerSecretTargetAttachmentWithName retrieves all AWSSecretsManagerSecretTargetAttachment items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSSecretsManagerSecretTargetAttachmentWithName(name string) (*AWSSecretsManagerSecretTargetAttachment, error) { +func (t *Template) GetAWSSecretsManagerSecretTargetAttachmentWithName(name string) (*resources.AWSSecretsManagerSecretTargetAttachment, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSSecretsManagerSecretTargetAttachment: + case *resources.AWSSecretsManagerSecretTargetAttachment: return resource, nil } } @@ -8227,11 +8228,11 @@ func (t *Template) GetAWSSecretsManagerSecretTargetAttachmentWithName(name strin } // GetAllAWSServerlessApiResources retrieves all AWSServerlessApi items from an AWS CloudFormation template -func (t *Template) GetAllAWSServerlessApiResources() map[string]*AWSServerlessApi { - results := map[string]*AWSServerlessApi{} +func (t *Template) GetAllAWSServerlessApiResources() map[string]*resources.AWSServerlessApi { + results := map[string]*resources.AWSServerlessApi{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSServerlessApi: + case *resources.AWSServerlessApi: results[name] = resource } } @@ -8240,10 +8241,10 @@ func (t *Template) GetAllAWSServerlessApiResources() map[string]*AWSServerlessAp // GetAWSServerlessApiWithName retrieves all AWSServerlessApi items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServerlessApiWithName(name string) (*AWSServerlessApi, error) { +func (t *Template) GetAWSServerlessApiWithName(name string) (*resources.AWSServerlessApi, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSServerlessApi: + case *resources.AWSServerlessApi: return resource, nil } } @@ -8251,11 +8252,11 @@ func (t *Template) GetAWSServerlessApiWithName(name string) (*AWSServerlessApi, } // GetAllAWSServerlessApplicationResources retrieves all AWSServerlessApplication items from an AWS CloudFormation template -func (t *Template) GetAllAWSServerlessApplicationResources() map[string]*AWSServerlessApplication { - results := map[string]*AWSServerlessApplication{} +func (t *Template) GetAllAWSServerlessApplicationResources() map[string]*resources.AWSServerlessApplication { + results := map[string]*resources.AWSServerlessApplication{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSServerlessApplication: + case *resources.AWSServerlessApplication: results[name] = resource } } @@ -8264,10 +8265,10 @@ func (t *Template) GetAllAWSServerlessApplicationResources() map[string]*AWSServ // GetAWSServerlessApplicationWithName retrieves all AWSServerlessApplication items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServerlessApplicationWithName(name string) (*AWSServerlessApplication, error) { +func (t *Template) GetAWSServerlessApplicationWithName(name string) (*resources.AWSServerlessApplication, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSServerlessApplication: + case *resources.AWSServerlessApplication: return resource, nil } } @@ -8275,11 +8276,11 @@ func (t *Template) GetAWSServerlessApplicationWithName(name string) (*AWSServerl } // GetAllAWSServerlessFunctionResources retrieves all AWSServerlessFunction items from an AWS CloudFormation template -func (t *Template) GetAllAWSServerlessFunctionResources() map[string]*AWSServerlessFunction { - results := map[string]*AWSServerlessFunction{} +func (t *Template) GetAllAWSServerlessFunctionResources() map[string]*resources.AWSServerlessFunction { + results := map[string]*resources.AWSServerlessFunction{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSServerlessFunction: + case *resources.AWSServerlessFunction: results[name] = resource } } @@ -8288,10 +8289,10 @@ func (t *Template) GetAllAWSServerlessFunctionResources() map[string]*AWSServerl // GetAWSServerlessFunctionWithName retrieves all AWSServerlessFunction items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServerlessFunctionWithName(name string) (*AWSServerlessFunction, error) { +func (t *Template) GetAWSServerlessFunctionWithName(name string) (*resources.AWSServerlessFunction, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSServerlessFunction: + case *resources.AWSServerlessFunction: return resource, nil } } @@ -8299,11 +8300,11 @@ func (t *Template) GetAWSServerlessFunctionWithName(name string) (*AWSServerless } // GetAllAWSServerlessLayerVersionResources retrieves all AWSServerlessLayerVersion items from an AWS CloudFormation template -func (t *Template) GetAllAWSServerlessLayerVersionResources() map[string]*AWSServerlessLayerVersion { - results := map[string]*AWSServerlessLayerVersion{} +func (t *Template) GetAllAWSServerlessLayerVersionResources() map[string]*resources.AWSServerlessLayerVersion { + results := map[string]*resources.AWSServerlessLayerVersion{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSServerlessLayerVersion: + case *resources.AWSServerlessLayerVersion: results[name] = resource } } @@ -8312,10 +8313,10 @@ func (t *Template) GetAllAWSServerlessLayerVersionResources() map[string]*AWSSer // GetAWSServerlessLayerVersionWithName retrieves all AWSServerlessLayerVersion items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServerlessLayerVersionWithName(name string) (*AWSServerlessLayerVersion, error) { +func (t *Template) GetAWSServerlessLayerVersionWithName(name string) (*resources.AWSServerlessLayerVersion, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSServerlessLayerVersion: + case *resources.AWSServerlessLayerVersion: return resource, nil } } @@ -8323,11 +8324,11 @@ func (t *Template) GetAWSServerlessLayerVersionWithName(name string) (*AWSServer } // GetAllAWSServerlessSimpleTableResources retrieves all AWSServerlessSimpleTable items from an AWS CloudFormation template -func (t *Template) GetAllAWSServerlessSimpleTableResources() map[string]*AWSServerlessSimpleTable { - results := map[string]*AWSServerlessSimpleTable{} +func (t *Template) GetAllAWSServerlessSimpleTableResources() map[string]*resources.AWSServerlessSimpleTable { + results := map[string]*resources.AWSServerlessSimpleTable{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSServerlessSimpleTable: + case *resources.AWSServerlessSimpleTable: results[name] = resource } } @@ -8336,10 +8337,10 @@ func (t *Template) GetAllAWSServerlessSimpleTableResources() map[string]*AWSServ // GetAWSServerlessSimpleTableWithName retrieves all AWSServerlessSimpleTable items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServerlessSimpleTableWithName(name string) (*AWSServerlessSimpleTable, error) { +func (t *Template) GetAWSServerlessSimpleTableWithName(name string) (*resources.AWSServerlessSimpleTable, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSServerlessSimpleTable: + case *resources.AWSServerlessSimpleTable: return resource, nil } } @@ -8347,11 +8348,11 @@ func (t *Template) GetAWSServerlessSimpleTableWithName(name string) (*AWSServerl } // GetAllAWSServiceCatalogAcceptedPortfolioShareResources retrieves all AWSServiceCatalogAcceptedPortfolioShare items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogAcceptedPortfolioShareResources() map[string]*AWSServiceCatalogAcceptedPortfolioShare { - results := map[string]*AWSServiceCatalogAcceptedPortfolioShare{} +func (t *Template) GetAllAWSServiceCatalogAcceptedPortfolioShareResources() map[string]*resources.AWSServiceCatalogAcceptedPortfolioShare { + results := map[string]*resources.AWSServiceCatalogAcceptedPortfolioShare{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSServiceCatalogAcceptedPortfolioShare: + case *resources.AWSServiceCatalogAcceptedPortfolioShare: results[name] = resource } } @@ -8360,10 +8361,10 @@ func (t *Template) GetAllAWSServiceCatalogAcceptedPortfolioShareResources() map[ // GetAWSServiceCatalogAcceptedPortfolioShareWithName retrieves all AWSServiceCatalogAcceptedPortfolioShare items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogAcceptedPortfolioShareWithName(name string) (*AWSServiceCatalogAcceptedPortfolioShare, error) { +func (t *Template) GetAWSServiceCatalogAcceptedPortfolioShareWithName(name string) (*resources.AWSServiceCatalogAcceptedPortfolioShare, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSServiceCatalogAcceptedPortfolioShare: + case *resources.AWSServiceCatalogAcceptedPortfolioShare: return resource, nil } } @@ -8371,11 +8372,11 @@ func (t *Template) GetAWSServiceCatalogAcceptedPortfolioShareWithName(name strin } // GetAllAWSServiceCatalogCloudFormationProductResources retrieves all AWSServiceCatalogCloudFormationProduct items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogCloudFormationProductResources() map[string]*AWSServiceCatalogCloudFormationProduct { - results := map[string]*AWSServiceCatalogCloudFormationProduct{} +func (t *Template) GetAllAWSServiceCatalogCloudFormationProductResources() map[string]*resources.AWSServiceCatalogCloudFormationProduct { + results := map[string]*resources.AWSServiceCatalogCloudFormationProduct{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSServiceCatalogCloudFormationProduct: + case *resources.AWSServiceCatalogCloudFormationProduct: results[name] = resource } } @@ -8384,10 +8385,10 @@ func (t *Template) GetAllAWSServiceCatalogCloudFormationProductResources() map[s // GetAWSServiceCatalogCloudFormationProductWithName retrieves all AWSServiceCatalogCloudFormationProduct items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogCloudFormationProductWithName(name string) (*AWSServiceCatalogCloudFormationProduct, error) { +func (t *Template) GetAWSServiceCatalogCloudFormationProductWithName(name string) (*resources.AWSServiceCatalogCloudFormationProduct, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSServiceCatalogCloudFormationProduct: + case *resources.AWSServiceCatalogCloudFormationProduct: return resource, nil } } @@ -8395,11 +8396,11 @@ func (t *Template) GetAWSServiceCatalogCloudFormationProductWithName(name string } // GetAllAWSServiceCatalogCloudFormationProvisionedProductResources retrieves all AWSServiceCatalogCloudFormationProvisionedProduct items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogCloudFormationProvisionedProductResources() map[string]*AWSServiceCatalogCloudFormationProvisionedProduct { - results := map[string]*AWSServiceCatalogCloudFormationProvisionedProduct{} +func (t *Template) GetAllAWSServiceCatalogCloudFormationProvisionedProductResources() map[string]*resources.AWSServiceCatalogCloudFormationProvisionedProduct { + results := map[string]*resources.AWSServiceCatalogCloudFormationProvisionedProduct{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSServiceCatalogCloudFormationProvisionedProduct: + case *resources.AWSServiceCatalogCloudFormationProvisionedProduct: results[name] = resource } } @@ -8408,10 +8409,10 @@ func (t *Template) GetAllAWSServiceCatalogCloudFormationProvisionedProductResour // GetAWSServiceCatalogCloudFormationProvisionedProductWithName retrieves all AWSServiceCatalogCloudFormationProvisionedProduct items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogCloudFormationProvisionedProductWithName(name string) (*AWSServiceCatalogCloudFormationProvisionedProduct, error) { +func (t *Template) GetAWSServiceCatalogCloudFormationProvisionedProductWithName(name string) (*resources.AWSServiceCatalogCloudFormationProvisionedProduct, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSServiceCatalogCloudFormationProvisionedProduct: + case *resources.AWSServiceCatalogCloudFormationProvisionedProduct: return resource, nil } } @@ -8419,11 +8420,11 @@ func (t *Template) GetAWSServiceCatalogCloudFormationProvisionedProductWithName( } // GetAllAWSServiceCatalogLaunchNotificationConstraintResources retrieves all AWSServiceCatalogLaunchNotificationConstraint items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogLaunchNotificationConstraintResources() map[string]*AWSServiceCatalogLaunchNotificationConstraint { - results := map[string]*AWSServiceCatalogLaunchNotificationConstraint{} +func (t *Template) GetAllAWSServiceCatalogLaunchNotificationConstraintResources() map[string]*resources.AWSServiceCatalogLaunchNotificationConstraint { + results := map[string]*resources.AWSServiceCatalogLaunchNotificationConstraint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSServiceCatalogLaunchNotificationConstraint: + case *resources.AWSServiceCatalogLaunchNotificationConstraint: results[name] = resource } } @@ -8432,10 +8433,10 @@ func (t *Template) GetAllAWSServiceCatalogLaunchNotificationConstraintResources( // GetAWSServiceCatalogLaunchNotificationConstraintWithName retrieves all AWSServiceCatalogLaunchNotificationConstraint items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogLaunchNotificationConstraintWithName(name string) (*AWSServiceCatalogLaunchNotificationConstraint, error) { +func (t *Template) GetAWSServiceCatalogLaunchNotificationConstraintWithName(name string) (*resources.AWSServiceCatalogLaunchNotificationConstraint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSServiceCatalogLaunchNotificationConstraint: + case *resources.AWSServiceCatalogLaunchNotificationConstraint: return resource, nil } } @@ -8443,11 +8444,11 @@ func (t *Template) GetAWSServiceCatalogLaunchNotificationConstraintWithName(name } // GetAllAWSServiceCatalogLaunchRoleConstraintResources retrieves all AWSServiceCatalogLaunchRoleConstraint items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogLaunchRoleConstraintResources() map[string]*AWSServiceCatalogLaunchRoleConstraint { - results := map[string]*AWSServiceCatalogLaunchRoleConstraint{} +func (t *Template) GetAllAWSServiceCatalogLaunchRoleConstraintResources() map[string]*resources.AWSServiceCatalogLaunchRoleConstraint { + results := map[string]*resources.AWSServiceCatalogLaunchRoleConstraint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSServiceCatalogLaunchRoleConstraint: + case *resources.AWSServiceCatalogLaunchRoleConstraint: results[name] = resource } } @@ -8456,10 +8457,10 @@ func (t *Template) GetAllAWSServiceCatalogLaunchRoleConstraintResources() map[st // GetAWSServiceCatalogLaunchRoleConstraintWithName retrieves all AWSServiceCatalogLaunchRoleConstraint items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogLaunchRoleConstraintWithName(name string) (*AWSServiceCatalogLaunchRoleConstraint, error) { +func (t *Template) GetAWSServiceCatalogLaunchRoleConstraintWithName(name string) (*resources.AWSServiceCatalogLaunchRoleConstraint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSServiceCatalogLaunchRoleConstraint: + case *resources.AWSServiceCatalogLaunchRoleConstraint: return resource, nil } } @@ -8467,11 +8468,11 @@ func (t *Template) GetAWSServiceCatalogLaunchRoleConstraintWithName(name string) } // GetAllAWSServiceCatalogLaunchTemplateConstraintResources retrieves all AWSServiceCatalogLaunchTemplateConstraint items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogLaunchTemplateConstraintResources() map[string]*AWSServiceCatalogLaunchTemplateConstraint { - results := map[string]*AWSServiceCatalogLaunchTemplateConstraint{} +func (t *Template) GetAllAWSServiceCatalogLaunchTemplateConstraintResources() map[string]*resources.AWSServiceCatalogLaunchTemplateConstraint { + results := map[string]*resources.AWSServiceCatalogLaunchTemplateConstraint{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSServiceCatalogLaunchTemplateConstraint: + case *resources.AWSServiceCatalogLaunchTemplateConstraint: results[name] = resource } } @@ -8480,10 +8481,10 @@ func (t *Template) GetAllAWSServiceCatalogLaunchTemplateConstraintResources() ma // GetAWSServiceCatalogLaunchTemplateConstraintWithName retrieves all AWSServiceCatalogLaunchTemplateConstraint items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogLaunchTemplateConstraintWithName(name string) (*AWSServiceCatalogLaunchTemplateConstraint, error) { +func (t *Template) GetAWSServiceCatalogLaunchTemplateConstraintWithName(name string) (*resources.AWSServiceCatalogLaunchTemplateConstraint, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSServiceCatalogLaunchTemplateConstraint: + case *resources.AWSServiceCatalogLaunchTemplateConstraint: return resource, nil } } @@ -8491,11 +8492,11 @@ func (t *Template) GetAWSServiceCatalogLaunchTemplateConstraintWithName(name str } // GetAllAWSServiceCatalogPortfolioResources retrieves all AWSServiceCatalogPortfolio items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogPortfolioResources() map[string]*AWSServiceCatalogPortfolio { - results := map[string]*AWSServiceCatalogPortfolio{} +func (t *Template) GetAllAWSServiceCatalogPortfolioResources() map[string]*resources.AWSServiceCatalogPortfolio { + results := map[string]*resources.AWSServiceCatalogPortfolio{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSServiceCatalogPortfolio: + case *resources.AWSServiceCatalogPortfolio: results[name] = resource } } @@ -8504,10 +8505,10 @@ func (t *Template) GetAllAWSServiceCatalogPortfolioResources() map[string]*AWSSe // GetAWSServiceCatalogPortfolioWithName retrieves all AWSServiceCatalogPortfolio items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogPortfolioWithName(name string) (*AWSServiceCatalogPortfolio, error) { +func (t *Template) GetAWSServiceCatalogPortfolioWithName(name string) (*resources.AWSServiceCatalogPortfolio, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSServiceCatalogPortfolio: + case *resources.AWSServiceCatalogPortfolio: return resource, nil } } @@ -8515,11 +8516,11 @@ func (t *Template) GetAWSServiceCatalogPortfolioWithName(name string) (*AWSServi } // GetAllAWSServiceCatalogPortfolioPrincipalAssociationResources retrieves all AWSServiceCatalogPortfolioPrincipalAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogPortfolioPrincipalAssociationResources() map[string]*AWSServiceCatalogPortfolioPrincipalAssociation { - results := map[string]*AWSServiceCatalogPortfolioPrincipalAssociation{} +func (t *Template) GetAllAWSServiceCatalogPortfolioPrincipalAssociationResources() map[string]*resources.AWSServiceCatalogPortfolioPrincipalAssociation { + results := map[string]*resources.AWSServiceCatalogPortfolioPrincipalAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSServiceCatalogPortfolioPrincipalAssociation: + case *resources.AWSServiceCatalogPortfolioPrincipalAssociation: results[name] = resource } } @@ -8528,10 +8529,10 @@ func (t *Template) GetAllAWSServiceCatalogPortfolioPrincipalAssociationResources // GetAWSServiceCatalogPortfolioPrincipalAssociationWithName retrieves all AWSServiceCatalogPortfolioPrincipalAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogPortfolioPrincipalAssociationWithName(name string) (*AWSServiceCatalogPortfolioPrincipalAssociation, error) { +func (t *Template) GetAWSServiceCatalogPortfolioPrincipalAssociationWithName(name string) (*resources.AWSServiceCatalogPortfolioPrincipalAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSServiceCatalogPortfolioPrincipalAssociation: + case *resources.AWSServiceCatalogPortfolioPrincipalAssociation: return resource, nil } } @@ -8539,11 +8540,11 @@ func (t *Template) GetAWSServiceCatalogPortfolioPrincipalAssociationWithName(nam } // GetAllAWSServiceCatalogPortfolioProductAssociationResources retrieves all AWSServiceCatalogPortfolioProductAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogPortfolioProductAssociationResources() map[string]*AWSServiceCatalogPortfolioProductAssociation { - results := map[string]*AWSServiceCatalogPortfolioProductAssociation{} +func (t *Template) GetAllAWSServiceCatalogPortfolioProductAssociationResources() map[string]*resources.AWSServiceCatalogPortfolioProductAssociation { + results := map[string]*resources.AWSServiceCatalogPortfolioProductAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSServiceCatalogPortfolioProductAssociation: + case *resources.AWSServiceCatalogPortfolioProductAssociation: results[name] = resource } } @@ -8552,10 +8553,10 @@ func (t *Template) GetAllAWSServiceCatalogPortfolioProductAssociationResources() // GetAWSServiceCatalogPortfolioProductAssociationWithName retrieves all AWSServiceCatalogPortfolioProductAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogPortfolioProductAssociationWithName(name string) (*AWSServiceCatalogPortfolioProductAssociation, error) { +func (t *Template) GetAWSServiceCatalogPortfolioProductAssociationWithName(name string) (*resources.AWSServiceCatalogPortfolioProductAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSServiceCatalogPortfolioProductAssociation: + case *resources.AWSServiceCatalogPortfolioProductAssociation: return resource, nil } } @@ -8563,11 +8564,11 @@ func (t *Template) GetAWSServiceCatalogPortfolioProductAssociationWithName(name } // GetAllAWSServiceCatalogPortfolioShareResources retrieves all AWSServiceCatalogPortfolioShare items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogPortfolioShareResources() map[string]*AWSServiceCatalogPortfolioShare { - results := map[string]*AWSServiceCatalogPortfolioShare{} +func (t *Template) GetAllAWSServiceCatalogPortfolioShareResources() map[string]*resources.AWSServiceCatalogPortfolioShare { + results := map[string]*resources.AWSServiceCatalogPortfolioShare{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSServiceCatalogPortfolioShare: + case *resources.AWSServiceCatalogPortfolioShare: results[name] = resource } } @@ -8576,10 +8577,10 @@ func (t *Template) GetAllAWSServiceCatalogPortfolioShareResources() map[string]* // GetAWSServiceCatalogPortfolioShareWithName retrieves all AWSServiceCatalogPortfolioShare items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogPortfolioShareWithName(name string) (*AWSServiceCatalogPortfolioShare, error) { +func (t *Template) GetAWSServiceCatalogPortfolioShareWithName(name string) (*resources.AWSServiceCatalogPortfolioShare, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSServiceCatalogPortfolioShare: + case *resources.AWSServiceCatalogPortfolioShare: return resource, nil } } @@ -8587,11 +8588,11 @@ func (t *Template) GetAWSServiceCatalogPortfolioShareWithName(name string) (*AWS } // GetAllAWSServiceCatalogTagOptionResources retrieves all AWSServiceCatalogTagOption items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogTagOptionResources() map[string]*AWSServiceCatalogTagOption { - results := map[string]*AWSServiceCatalogTagOption{} +func (t *Template) GetAllAWSServiceCatalogTagOptionResources() map[string]*resources.AWSServiceCatalogTagOption { + results := map[string]*resources.AWSServiceCatalogTagOption{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSServiceCatalogTagOption: + case *resources.AWSServiceCatalogTagOption: results[name] = resource } } @@ -8600,10 +8601,10 @@ func (t *Template) GetAllAWSServiceCatalogTagOptionResources() map[string]*AWSSe // GetAWSServiceCatalogTagOptionWithName retrieves all AWSServiceCatalogTagOption items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogTagOptionWithName(name string) (*AWSServiceCatalogTagOption, error) { +func (t *Template) GetAWSServiceCatalogTagOptionWithName(name string) (*resources.AWSServiceCatalogTagOption, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSServiceCatalogTagOption: + case *resources.AWSServiceCatalogTagOption: return resource, nil } } @@ -8611,11 +8612,11 @@ func (t *Template) GetAWSServiceCatalogTagOptionWithName(name string) (*AWSServi } // GetAllAWSServiceCatalogTagOptionAssociationResources retrieves all AWSServiceCatalogTagOptionAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceCatalogTagOptionAssociationResources() map[string]*AWSServiceCatalogTagOptionAssociation { - results := map[string]*AWSServiceCatalogTagOptionAssociation{} +func (t *Template) GetAllAWSServiceCatalogTagOptionAssociationResources() map[string]*resources.AWSServiceCatalogTagOptionAssociation { + results := map[string]*resources.AWSServiceCatalogTagOptionAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSServiceCatalogTagOptionAssociation: + case *resources.AWSServiceCatalogTagOptionAssociation: results[name] = resource } } @@ -8624,10 +8625,10 @@ func (t *Template) GetAllAWSServiceCatalogTagOptionAssociationResources() map[st // GetAWSServiceCatalogTagOptionAssociationWithName retrieves all AWSServiceCatalogTagOptionAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceCatalogTagOptionAssociationWithName(name string) (*AWSServiceCatalogTagOptionAssociation, error) { +func (t *Template) GetAWSServiceCatalogTagOptionAssociationWithName(name string) (*resources.AWSServiceCatalogTagOptionAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSServiceCatalogTagOptionAssociation: + case *resources.AWSServiceCatalogTagOptionAssociation: return resource, nil } } @@ -8635,11 +8636,11 @@ func (t *Template) GetAWSServiceCatalogTagOptionAssociationWithName(name string) } // GetAllAWSServiceDiscoveryHttpNamespaceResources retrieves all AWSServiceDiscoveryHttpNamespace items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceDiscoveryHttpNamespaceResources() map[string]*AWSServiceDiscoveryHttpNamespace { - results := map[string]*AWSServiceDiscoveryHttpNamespace{} +func (t *Template) GetAllAWSServiceDiscoveryHttpNamespaceResources() map[string]*resources.AWSServiceDiscoveryHttpNamespace { + results := map[string]*resources.AWSServiceDiscoveryHttpNamespace{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSServiceDiscoveryHttpNamespace: + case *resources.AWSServiceDiscoveryHttpNamespace: results[name] = resource } } @@ -8648,10 +8649,10 @@ func (t *Template) GetAllAWSServiceDiscoveryHttpNamespaceResources() map[string] // GetAWSServiceDiscoveryHttpNamespaceWithName retrieves all AWSServiceDiscoveryHttpNamespace items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceDiscoveryHttpNamespaceWithName(name string) (*AWSServiceDiscoveryHttpNamespace, error) { +func (t *Template) GetAWSServiceDiscoveryHttpNamespaceWithName(name string) (*resources.AWSServiceDiscoveryHttpNamespace, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSServiceDiscoveryHttpNamespace: + case *resources.AWSServiceDiscoveryHttpNamespace: return resource, nil } } @@ -8659,11 +8660,11 @@ func (t *Template) GetAWSServiceDiscoveryHttpNamespaceWithName(name string) (*AW } // GetAllAWSServiceDiscoveryInstanceResources retrieves all AWSServiceDiscoveryInstance items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceDiscoveryInstanceResources() map[string]*AWSServiceDiscoveryInstance { - results := map[string]*AWSServiceDiscoveryInstance{} +func (t *Template) GetAllAWSServiceDiscoveryInstanceResources() map[string]*resources.AWSServiceDiscoveryInstance { + results := map[string]*resources.AWSServiceDiscoveryInstance{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSServiceDiscoveryInstance: + case *resources.AWSServiceDiscoveryInstance: results[name] = resource } } @@ -8672,10 +8673,10 @@ func (t *Template) GetAllAWSServiceDiscoveryInstanceResources() map[string]*AWSS // GetAWSServiceDiscoveryInstanceWithName retrieves all AWSServiceDiscoveryInstance items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceDiscoveryInstanceWithName(name string) (*AWSServiceDiscoveryInstance, error) { +func (t *Template) GetAWSServiceDiscoveryInstanceWithName(name string) (*resources.AWSServiceDiscoveryInstance, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSServiceDiscoveryInstance: + case *resources.AWSServiceDiscoveryInstance: return resource, nil } } @@ -8683,11 +8684,11 @@ func (t *Template) GetAWSServiceDiscoveryInstanceWithName(name string) (*AWSServ } // GetAllAWSServiceDiscoveryPrivateDnsNamespaceResources retrieves all AWSServiceDiscoveryPrivateDnsNamespace items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceDiscoveryPrivateDnsNamespaceResources() map[string]*AWSServiceDiscoveryPrivateDnsNamespace { - results := map[string]*AWSServiceDiscoveryPrivateDnsNamespace{} +func (t *Template) GetAllAWSServiceDiscoveryPrivateDnsNamespaceResources() map[string]*resources.AWSServiceDiscoveryPrivateDnsNamespace { + results := map[string]*resources.AWSServiceDiscoveryPrivateDnsNamespace{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSServiceDiscoveryPrivateDnsNamespace: + case *resources.AWSServiceDiscoveryPrivateDnsNamespace: results[name] = resource } } @@ -8696,10 +8697,10 @@ func (t *Template) GetAllAWSServiceDiscoveryPrivateDnsNamespaceResources() map[s // GetAWSServiceDiscoveryPrivateDnsNamespaceWithName retrieves all AWSServiceDiscoveryPrivateDnsNamespace items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceDiscoveryPrivateDnsNamespaceWithName(name string) (*AWSServiceDiscoveryPrivateDnsNamespace, error) { +func (t *Template) GetAWSServiceDiscoveryPrivateDnsNamespaceWithName(name string) (*resources.AWSServiceDiscoveryPrivateDnsNamespace, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSServiceDiscoveryPrivateDnsNamespace: + case *resources.AWSServiceDiscoveryPrivateDnsNamespace: return resource, nil } } @@ -8707,11 +8708,11 @@ func (t *Template) GetAWSServiceDiscoveryPrivateDnsNamespaceWithName(name string } // GetAllAWSServiceDiscoveryPublicDnsNamespaceResources retrieves all AWSServiceDiscoveryPublicDnsNamespace items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceDiscoveryPublicDnsNamespaceResources() map[string]*AWSServiceDiscoveryPublicDnsNamespace { - results := map[string]*AWSServiceDiscoveryPublicDnsNamespace{} +func (t *Template) GetAllAWSServiceDiscoveryPublicDnsNamespaceResources() map[string]*resources.AWSServiceDiscoveryPublicDnsNamespace { + results := map[string]*resources.AWSServiceDiscoveryPublicDnsNamespace{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSServiceDiscoveryPublicDnsNamespace: + case *resources.AWSServiceDiscoveryPublicDnsNamespace: results[name] = resource } } @@ -8720,10 +8721,10 @@ func (t *Template) GetAllAWSServiceDiscoveryPublicDnsNamespaceResources() map[st // GetAWSServiceDiscoveryPublicDnsNamespaceWithName retrieves all AWSServiceDiscoveryPublicDnsNamespace items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceDiscoveryPublicDnsNamespaceWithName(name string) (*AWSServiceDiscoveryPublicDnsNamespace, error) { +func (t *Template) GetAWSServiceDiscoveryPublicDnsNamespaceWithName(name string) (*resources.AWSServiceDiscoveryPublicDnsNamespace, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSServiceDiscoveryPublicDnsNamespace: + case *resources.AWSServiceDiscoveryPublicDnsNamespace: return resource, nil } } @@ -8731,11 +8732,11 @@ func (t *Template) GetAWSServiceDiscoveryPublicDnsNamespaceWithName(name string) } // GetAllAWSServiceDiscoveryServiceResources retrieves all AWSServiceDiscoveryService items from an AWS CloudFormation template -func (t *Template) GetAllAWSServiceDiscoveryServiceResources() map[string]*AWSServiceDiscoveryService { - results := map[string]*AWSServiceDiscoveryService{} +func (t *Template) GetAllAWSServiceDiscoveryServiceResources() map[string]*resources.AWSServiceDiscoveryService { + results := map[string]*resources.AWSServiceDiscoveryService{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSServiceDiscoveryService: + case *resources.AWSServiceDiscoveryService: results[name] = resource } } @@ -8744,10 +8745,10 @@ func (t *Template) GetAllAWSServiceDiscoveryServiceResources() map[string]*AWSSe // GetAWSServiceDiscoveryServiceWithName retrieves all AWSServiceDiscoveryService items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSServiceDiscoveryServiceWithName(name string) (*AWSServiceDiscoveryService, error) { +func (t *Template) GetAWSServiceDiscoveryServiceWithName(name string) (*resources.AWSServiceDiscoveryService, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSServiceDiscoveryService: + case *resources.AWSServiceDiscoveryService: return resource, nil } } @@ -8755,11 +8756,11 @@ func (t *Template) GetAWSServiceDiscoveryServiceWithName(name string) (*AWSServi } // GetAllAWSStepFunctionsActivityResources retrieves all AWSStepFunctionsActivity items from an AWS CloudFormation template -func (t *Template) GetAllAWSStepFunctionsActivityResources() map[string]*AWSStepFunctionsActivity { - results := map[string]*AWSStepFunctionsActivity{} +func (t *Template) GetAllAWSStepFunctionsActivityResources() map[string]*resources.AWSStepFunctionsActivity { + results := map[string]*resources.AWSStepFunctionsActivity{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSStepFunctionsActivity: + case *resources.AWSStepFunctionsActivity: results[name] = resource } } @@ -8768,10 +8769,10 @@ func (t *Template) GetAllAWSStepFunctionsActivityResources() map[string]*AWSStep // GetAWSStepFunctionsActivityWithName retrieves all AWSStepFunctionsActivity items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSStepFunctionsActivityWithName(name string) (*AWSStepFunctionsActivity, error) { +func (t *Template) GetAWSStepFunctionsActivityWithName(name string) (*resources.AWSStepFunctionsActivity, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSStepFunctionsActivity: + case *resources.AWSStepFunctionsActivity: return resource, nil } } @@ -8779,11 +8780,11 @@ func (t *Template) GetAWSStepFunctionsActivityWithName(name string) (*AWSStepFun } // GetAllAWSStepFunctionsStateMachineResources retrieves all AWSStepFunctionsStateMachine items from an AWS CloudFormation template -func (t *Template) GetAllAWSStepFunctionsStateMachineResources() map[string]*AWSStepFunctionsStateMachine { - results := map[string]*AWSStepFunctionsStateMachine{} +func (t *Template) GetAllAWSStepFunctionsStateMachineResources() map[string]*resources.AWSStepFunctionsStateMachine { + results := map[string]*resources.AWSStepFunctionsStateMachine{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSStepFunctionsStateMachine: + case *resources.AWSStepFunctionsStateMachine: results[name] = resource } } @@ -8792,10 +8793,10 @@ func (t *Template) GetAllAWSStepFunctionsStateMachineResources() map[string]*AWS // GetAWSStepFunctionsStateMachineWithName retrieves all AWSStepFunctionsStateMachine items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSStepFunctionsStateMachineWithName(name string) (*AWSStepFunctionsStateMachine, error) { +func (t *Template) GetAWSStepFunctionsStateMachineWithName(name string) (*resources.AWSStepFunctionsStateMachine, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSStepFunctionsStateMachine: + case *resources.AWSStepFunctionsStateMachine: return resource, nil } } @@ -8803,11 +8804,11 @@ func (t *Template) GetAWSStepFunctionsStateMachineWithName(name string) (*AWSSte } // GetAllAWSWAFByteMatchSetResources retrieves all AWSWAFByteMatchSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFByteMatchSetResources() map[string]*AWSWAFByteMatchSet { - results := map[string]*AWSWAFByteMatchSet{} +func (t *Template) GetAllAWSWAFByteMatchSetResources() map[string]*resources.AWSWAFByteMatchSet { + results := map[string]*resources.AWSWAFByteMatchSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSWAFByteMatchSet: + case *resources.AWSWAFByteMatchSet: results[name] = resource } } @@ -8816,10 +8817,10 @@ func (t *Template) GetAllAWSWAFByteMatchSetResources() map[string]*AWSWAFByteMat // GetAWSWAFByteMatchSetWithName retrieves all AWSWAFByteMatchSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFByteMatchSetWithName(name string) (*AWSWAFByteMatchSet, error) { +func (t *Template) GetAWSWAFByteMatchSetWithName(name string) (*resources.AWSWAFByteMatchSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSWAFByteMatchSet: + case *resources.AWSWAFByteMatchSet: return resource, nil } } @@ -8827,11 +8828,11 @@ func (t *Template) GetAWSWAFByteMatchSetWithName(name string) (*AWSWAFByteMatchS } // GetAllAWSWAFIPSetResources retrieves all AWSWAFIPSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFIPSetResources() map[string]*AWSWAFIPSet { - results := map[string]*AWSWAFIPSet{} +func (t *Template) GetAllAWSWAFIPSetResources() map[string]*resources.AWSWAFIPSet { + results := map[string]*resources.AWSWAFIPSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSWAFIPSet: + case *resources.AWSWAFIPSet: results[name] = resource } } @@ -8840,10 +8841,10 @@ func (t *Template) GetAllAWSWAFIPSetResources() map[string]*AWSWAFIPSet { // GetAWSWAFIPSetWithName retrieves all AWSWAFIPSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFIPSetWithName(name string) (*AWSWAFIPSet, error) { +func (t *Template) GetAWSWAFIPSetWithName(name string) (*resources.AWSWAFIPSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSWAFIPSet: + case *resources.AWSWAFIPSet: return resource, nil } } @@ -8851,11 +8852,11 @@ func (t *Template) GetAWSWAFIPSetWithName(name string) (*AWSWAFIPSet, error) { } // GetAllAWSWAFRuleResources retrieves all AWSWAFRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRuleResources() map[string]*AWSWAFRule { - results := map[string]*AWSWAFRule{} +func (t *Template) GetAllAWSWAFRuleResources() map[string]*resources.AWSWAFRule { + results := map[string]*resources.AWSWAFRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSWAFRule: + case *resources.AWSWAFRule: results[name] = resource } } @@ -8864,10 +8865,10 @@ func (t *Template) GetAllAWSWAFRuleResources() map[string]*AWSWAFRule { // GetAWSWAFRuleWithName retrieves all AWSWAFRule items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRuleWithName(name string) (*AWSWAFRule, error) { +func (t *Template) GetAWSWAFRuleWithName(name string) (*resources.AWSWAFRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSWAFRule: + case *resources.AWSWAFRule: return resource, nil } } @@ -8875,11 +8876,11 @@ func (t *Template) GetAWSWAFRuleWithName(name string) (*AWSWAFRule, error) { } // GetAllAWSWAFSizeConstraintSetResources retrieves all AWSWAFSizeConstraintSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFSizeConstraintSetResources() map[string]*AWSWAFSizeConstraintSet { - results := map[string]*AWSWAFSizeConstraintSet{} +func (t *Template) GetAllAWSWAFSizeConstraintSetResources() map[string]*resources.AWSWAFSizeConstraintSet { + results := map[string]*resources.AWSWAFSizeConstraintSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSWAFSizeConstraintSet: + case *resources.AWSWAFSizeConstraintSet: results[name] = resource } } @@ -8888,10 +8889,10 @@ func (t *Template) GetAllAWSWAFSizeConstraintSetResources() map[string]*AWSWAFSi // GetAWSWAFSizeConstraintSetWithName retrieves all AWSWAFSizeConstraintSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFSizeConstraintSetWithName(name string) (*AWSWAFSizeConstraintSet, error) { +func (t *Template) GetAWSWAFSizeConstraintSetWithName(name string) (*resources.AWSWAFSizeConstraintSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSWAFSizeConstraintSet: + case *resources.AWSWAFSizeConstraintSet: return resource, nil } } @@ -8899,11 +8900,11 @@ func (t *Template) GetAWSWAFSizeConstraintSetWithName(name string) (*AWSWAFSizeC } // GetAllAWSWAFSqlInjectionMatchSetResources retrieves all AWSWAFSqlInjectionMatchSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFSqlInjectionMatchSetResources() map[string]*AWSWAFSqlInjectionMatchSet { - results := map[string]*AWSWAFSqlInjectionMatchSet{} +func (t *Template) GetAllAWSWAFSqlInjectionMatchSetResources() map[string]*resources.AWSWAFSqlInjectionMatchSet { + results := map[string]*resources.AWSWAFSqlInjectionMatchSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSWAFSqlInjectionMatchSet: + case *resources.AWSWAFSqlInjectionMatchSet: results[name] = resource } } @@ -8912,10 +8913,10 @@ func (t *Template) GetAllAWSWAFSqlInjectionMatchSetResources() map[string]*AWSWA // GetAWSWAFSqlInjectionMatchSetWithName retrieves all AWSWAFSqlInjectionMatchSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFSqlInjectionMatchSetWithName(name string) (*AWSWAFSqlInjectionMatchSet, error) { +func (t *Template) GetAWSWAFSqlInjectionMatchSetWithName(name string) (*resources.AWSWAFSqlInjectionMatchSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSWAFSqlInjectionMatchSet: + case *resources.AWSWAFSqlInjectionMatchSet: return resource, nil } } @@ -8923,11 +8924,11 @@ func (t *Template) GetAWSWAFSqlInjectionMatchSetWithName(name string) (*AWSWAFSq } // GetAllAWSWAFWebACLResources retrieves all AWSWAFWebACL items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFWebACLResources() map[string]*AWSWAFWebACL { - results := map[string]*AWSWAFWebACL{} +func (t *Template) GetAllAWSWAFWebACLResources() map[string]*resources.AWSWAFWebACL { + results := map[string]*resources.AWSWAFWebACL{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSWAFWebACL: + case *resources.AWSWAFWebACL: results[name] = resource } } @@ -8936,10 +8937,10 @@ func (t *Template) GetAllAWSWAFWebACLResources() map[string]*AWSWAFWebACL { // GetAWSWAFWebACLWithName retrieves all AWSWAFWebACL items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFWebACLWithName(name string) (*AWSWAFWebACL, error) { +func (t *Template) GetAWSWAFWebACLWithName(name string) (*resources.AWSWAFWebACL, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSWAFWebACL: + case *resources.AWSWAFWebACL: return resource, nil } } @@ -8947,11 +8948,11 @@ func (t *Template) GetAWSWAFWebACLWithName(name string) (*AWSWAFWebACL, error) { } // GetAllAWSWAFXssMatchSetResources retrieves all AWSWAFXssMatchSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFXssMatchSetResources() map[string]*AWSWAFXssMatchSet { - results := map[string]*AWSWAFXssMatchSet{} +func (t *Template) GetAllAWSWAFXssMatchSetResources() map[string]*resources.AWSWAFXssMatchSet { + results := map[string]*resources.AWSWAFXssMatchSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSWAFXssMatchSet: + case *resources.AWSWAFXssMatchSet: results[name] = resource } } @@ -8960,10 +8961,10 @@ func (t *Template) GetAllAWSWAFXssMatchSetResources() map[string]*AWSWAFXssMatch // GetAWSWAFXssMatchSetWithName retrieves all AWSWAFXssMatchSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFXssMatchSetWithName(name string) (*AWSWAFXssMatchSet, error) { +func (t *Template) GetAWSWAFXssMatchSetWithName(name string) (*resources.AWSWAFXssMatchSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSWAFXssMatchSet: + case *resources.AWSWAFXssMatchSet: return resource, nil } } @@ -8971,11 +8972,11 @@ func (t *Template) GetAWSWAFXssMatchSetWithName(name string) (*AWSWAFXssMatchSet } // GetAllAWSWAFRegionalByteMatchSetResources retrieves all AWSWAFRegionalByteMatchSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalByteMatchSetResources() map[string]*AWSWAFRegionalByteMatchSet { - results := map[string]*AWSWAFRegionalByteMatchSet{} +func (t *Template) GetAllAWSWAFRegionalByteMatchSetResources() map[string]*resources.AWSWAFRegionalByteMatchSet { + results := map[string]*resources.AWSWAFRegionalByteMatchSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSWAFRegionalByteMatchSet: + case *resources.AWSWAFRegionalByteMatchSet: results[name] = resource } } @@ -8984,10 +8985,10 @@ func (t *Template) GetAllAWSWAFRegionalByteMatchSetResources() map[string]*AWSWA // GetAWSWAFRegionalByteMatchSetWithName retrieves all AWSWAFRegionalByteMatchSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalByteMatchSetWithName(name string) (*AWSWAFRegionalByteMatchSet, error) { +func (t *Template) GetAWSWAFRegionalByteMatchSetWithName(name string) (*resources.AWSWAFRegionalByteMatchSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSWAFRegionalByteMatchSet: + case *resources.AWSWAFRegionalByteMatchSet: return resource, nil } } @@ -8995,11 +8996,11 @@ func (t *Template) GetAWSWAFRegionalByteMatchSetWithName(name string) (*AWSWAFRe } // GetAllAWSWAFRegionalIPSetResources retrieves all AWSWAFRegionalIPSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalIPSetResources() map[string]*AWSWAFRegionalIPSet { - results := map[string]*AWSWAFRegionalIPSet{} +func (t *Template) GetAllAWSWAFRegionalIPSetResources() map[string]*resources.AWSWAFRegionalIPSet { + results := map[string]*resources.AWSWAFRegionalIPSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSWAFRegionalIPSet: + case *resources.AWSWAFRegionalIPSet: results[name] = resource } } @@ -9008,10 +9009,10 @@ func (t *Template) GetAllAWSWAFRegionalIPSetResources() map[string]*AWSWAFRegion // GetAWSWAFRegionalIPSetWithName retrieves all AWSWAFRegionalIPSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalIPSetWithName(name string) (*AWSWAFRegionalIPSet, error) { +func (t *Template) GetAWSWAFRegionalIPSetWithName(name string) (*resources.AWSWAFRegionalIPSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSWAFRegionalIPSet: + case *resources.AWSWAFRegionalIPSet: return resource, nil } } @@ -9019,11 +9020,11 @@ func (t *Template) GetAWSWAFRegionalIPSetWithName(name string) (*AWSWAFRegionalI } // GetAllAWSWAFRegionalRuleResources retrieves all AWSWAFRegionalRule items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalRuleResources() map[string]*AWSWAFRegionalRule { - results := map[string]*AWSWAFRegionalRule{} +func (t *Template) GetAllAWSWAFRegionalRuleResources() map[string]*resources.AWSWAFRegionalRule { + results := map[string]*resources.AWSWAFRegionalRule{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSWAFRegionalRule: + case *resources.AWSWAFRegionalRule: results[name] = resource } } @@ -9032,10 +9033,10 @@ func (t *Template) GetAllAWSWAFRegionalRuleResources() map[string]*AWSWAFRegiona // GetAWSWAFRegionalRuleWithName retrieves all AWSWAFRegionalRule items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalRuleWithName(name string) (*AWSWAFRegionalRule, error) { +func (t *Template) GetAWSWAFRegionalRuleWithName(name string) (*resources.AWSWAFRegionalRule, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSWAFRegionalRule: + case *resources.AWSWAFRegionalRule: return resource, nil } } @@ -9043,11 +9044,11 @@ func (t *Template) GetAWSWAFRegionalRuleWithName(name string) (*AWSWAFRegionalRu } // GetAllAWSWAFRegionalSizeConstraintSetResources retrieves all AWSWAFRegionalSizeConstraintSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalSizeConstraintSetResources() map[string]*AWSWAFRegionalSizeConstraintSet { - results := map[string]*AWSWAFRegionalSizeConstraintSet{} +func (t *Template) GetAllAWSWAFRegionalSizeConstraintSetResources() map[string]*resources.AWSWAFRegionalSizeConstraintSet { + results := map[string]*resources.AWSWAFRegionalSizeConstraintSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSWAFRegionalSizeConstraintSet: + case *resources.AWSWAFRegionalSizeConstraintSet: results[name] = resource } } @@ -9056,10 +9057,10 @@ func (t *Template) GetAllAWSWAFRegionalSizeConstraintSetResources() map[string]* // GetAWSWAFRegionalSizeConstraintSetWithName retrieves all AWSWAFRegionalSizeConstraintSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalSizeConstraintSetWithName(name string) (*AWSWAFRegionalSizeConstraintSet, error) { +func (t *Template) GetAWSWAFRegionalSizeConstraintSetWithName(name string) (*resources.AWSWAFRegionalSizeConstraintSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSWAFRegionalSizeConstraintSet: + case *resources.AWSWAFRegionalSizeConstraintSet: return resource, nil } } @@ -9067,11 +9068,11 @@ func (t *Template) GetAWSWAFRegionalSizeConstraintSetWithName(name string) (*AWS } // GetAllAWSWAFRegionalSqlInjectionMatchSetResources retrieves all AWSWAFRegionalSqlInjectionMatchSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalSqlInjectionMatchSetResources() map[string]*AWSWAFRegionalSqlInjectionMatchSet { - results := map[string]*AWSWAFRegionalSqlInjectionMatchSet{} +func (t *Template) GetAllAWSWAFRegionalSqlInjectionMatchSetResources() map[string]*resources.AWSWAFRegionalSqlInjectionMatchSet { + results := map[string]*resources.AWSWAFRegionalSqlInjectionMatchSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSWAFRegionalSqlInjectionMatchSet: + case *resources.AWSWAFRegionalSqlInjectionMatchSet: results[name] = resource } } @@ -9080,10 +9081,10 @@ func (t *Template) GetAllAWSWAFRegionalSqlInjectionMatchSetResources() map[strin // GetAWSWAFRegionalSqlInjectionMatchSetWithName retrieves all AWSWAFRegionalSqlInjectionMatchSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalSqlInjectionMatchSetWithName(name string) (*AWSWAFRegionalSqlInjectionMatchSet, error) { +func (t *Template) GetAWSWAFRegionalSqlInjectionMatchSetWithName(name string) (*resources.AWSWAFRegionalSqlInjectionMatchSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSWAFRegionalSqlInjectionMatchSet: + case *resources.AWSWAFRegionalSqlInjectionMatchSet: return resource, nil } } @@ -9091,11 +9092,11 @@ func (t *Template) GetAWSWAFRegionalSqlInjectionMatchSetWithName(name string) (* } // GetAllAWSWAFRegionalWebACLResources retrieves all AWSWAFRegionalWebACL items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalWebACLResources() map[string]*AWSWAFRegionalWebACL { - results := map[string]*AWSWAFRegionalWebACL{} +func (t *Template) GetAllAWSWAFRegionalWebACLResources() map[string]*resources.AWSWAFRegionalWebACL { + results := map[string]*resources.AWSWAFRegionalWebACL{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSWAFRegionalWebACL: + case *resources.AWSWAFRegionalWebACL: results[name] = resource } } @@ -9104,10 +9105,10 @@ func (t *Template) GetAllAWSWAFRegionalWebACLResources() map[string]*AWSWAFRegio // GetAWSWAFRegionalWebACLWithName retrieves all AWSWAFRegionalWebACL items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalWebACLWithName(name string) (*AWSWAFRegionalWebACL, error) { +func (t *Template) GetAWSWAFRegionalWebACLWithName(name string) (*resources.AWSWAFRegionalWebACL, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSWAFRegionalWebACL: + case *resources.AWSWAFRegionalWebACL: return resource, nil } } @@ -9115,11 +9116,11 @@ func (t *Template) GetAWSWAFRegionalWebACLWithName(name string) (*AWSWAFRegional } // GetAllAWSWAFRegionalWebACLAssociationResources retrieves all AWSWAFRegionalWebACLAssociation items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalWebACLAssociationResources() map[string]*AWSWAFRegionalWebACLAssociation { - results := map[string]*AWSWAFRegionalWebACLAssociation{} +func (t *Template) GetAllAWSWAFRegionalWebACLAssociationResources() map[string]*resources.AWSWAFRegionalWebACLAssociation { + results := map[string]*resources.AWSWAFRegionalWebACLAssociation{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSWAFRegionalWebACLAssociation: + case *resources.AWSWAFRegionalWebACLAssociation: results[name] = resource } } @@ -9128,10 +9129,10 @@ func (t *Template) GetAllAWSWAFRegionalWebACLAssociationResources() map[string]* // GetAWSWAFRegionalWebACLAssociationWithName retrieves all AWSWAFRegionalWebACLAssociation items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalWebACLAssociationWithName(name string) (*AWSWAFRegionalWebACLAssociation, error) { +func (t *Template) GetAWSWAFRegionalWebACLAssociationWithName(name string) (*resources.AWSWAFRegionalWebACLAssociation, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSWAFRegionalWebACLAssociation: + case *resources.AWSWAFRegionalWebACLAssociation: return resource, nil } } @@ -9139,11 +9140,11 @@ func (t *Template) GetAWSWAFRegionalWebACLAssociationWithName(name string) (*AWS } // GetAllAWSWAFRegionalXssMatchSetResources retrieves all AWSWAFRegionalXssMatchSet items from an AWS CloudFormation template -func (t *Template) GetAllAWSWAFRegionalXssMatchSetResources() map[string]*AWSWAFRegionalXssMatchSet { - results := map[string]*AWSWAFRegionalXssMatchSet{} +func (t *Template) GetAllAWSWAFRegionalXssMatchSetResources() map[string]*resources.AWSWAFRegionalXssMatchSet { + results := map[string]*resources.AWSWAFRegionalXssMatchSet{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSWAFRegionalXssMatchSet: + case *resources.AWSWAFRegionalXssMatchSet: results[name] = resource } } @@ -9152,10 +9153,10 @@ func (t *Template) GetAllAWSWAFRegionalXssMatchSetResources() map[string]*AWSWAF // GetAWSWAFRegionalXssMatchSetWithName retrieves all AWSWAFRegionalXssMatchSet items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWAFRegionalXssMatchSetWithName(name string) (*AWSWAFRegionalXssMatchSet, error) { +func (t *Template) GetAWSWAFRegionalXssMatchSetWithName(name string) (*resources.AWSWAFRegionalXssMatchSet, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSWAFRegionalXssMatchSet: + case *resources.AWSWAFRegionalXssMatchSet: return resource, nil } } @@ -9163,11 +9164,11 @@ func (t *Template) GetAWSWAFRegionalXssMatchSetWithName(name string) (*AWSWAFReg } // GetAllAWSWorkSpacesWorkspaceResources retrieves all AWSWorkSpacesWorkspace items from an AWS CloudFormation template -func (t *Template) GetAllAWSWorkSpacesWorkspaceResources() map[string]*AWSWorkSpacesWorkspace { - results := map[string]*AWSWorkSpacesWorkspace{} +func (t *Template) GetAllAWSWorkSpacesWorkspaceResources() map[string]*resources.AWSWorkSpacesWorkspace { + results := map[string]*resources.AWSWorkSpacesWorkspace{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AWSWorkSpacesWorkspace: + case *resources.AWSWorkSpacesWorkspace: results[name] = resource } } @@ -9176,10 +9177,10 @@ func (t *Template) GetAllAWSWorkSpacesWorkspaceResources() map[string]*AWSWorkSp // GetAWSWorkSpacesWorkspaceWithName retrieves all AWSWorkSpacesWorkspace items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAWSWorkSpacesWorkspaceWithName(name string) (*AWSWorkSpacesWorkspace, error) { +func (t *Template) GetAWSWorkSpacesWorkspaceWithName(name string) (*resources.AWSWorkSpacesWorkspace, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AWSWorkSpacesWorkspace: + case *resources.AWSWorkSpacesWorkspace: return resource, nil } } @@ -9187,11 +9188,11 @@ func (t *Template) GetAWSWorkSpacesWorkspaceWithName(name string) (*AWSWorkSpace } // GetAllAlexaASKSkillResources retrieves all AlexaASKSkill items from an AWS CloudFormation template -func (t *Template) GetAllAlexaASKSkillResources() map[string]*AlexaASKSkill { - results := map[string]*AlexaASKSkill{} +func (t *Template) GetAllAlexaASKSkillResources() map[string]*resources.AlexaASKSkill { + results := map[string]*resources.AlexaASKSkill{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *AlexaASKSkill: + case *resources.AlexaASKSkill: results[name] = resource } } @@ -9200,10 +9201,10 @@ func (t *Template) GetAllAlexaASKSkillResources() map[string]*AlexaASKSkill { // GetAlexaASKSkillWithName retrieves all AlexaASKSkill items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) GetAlexaASKSkillWithName(name string) (*AlexaASKSkill, error) { +func (t *Template) GetAlexaASKSkillWithName(name string) (*resources.AlexaASKSkill, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *AlexaASKSkill: + case *resources.AlexaASKSkill: return resource, nil } } diff --git a/cloudformation/aws-cloudfront-distribution_legacycustomorigin.go b/cloudformation/aws-cloudfront-distribution_legacycustomorigin.go deleted file mode 100644 index 1e0d47b0b3..0000000000 --- a/cloudformation/aws-cloudfront-distribution_legacycustomorigin.go +++ /dev/null @@ -1,36 +0,0 @@ -package cloudformation - -// AWSCloudFrontDistribution_LegacyCustomOrigin AWS CloudFormation Resource (AWS::CloudFront::Distribution.LegacyCustomOrigin) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacycustomorigin.html -type AWSCloudFrontDistribution_LegacyCustomOrigin struct { - - // DNSName AWS CloudFormation Property - // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacycustomorigin.html#cfn-cloudfront-distribution-legacycustomorigin-dnsname - DNSName string `json:"DNSName,omitempty"` - - // HTTPPort AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacycustomorigin.html#cfn-cloudfront-distribution-legacycustomorigin-httpport - HTTPPort int `json:"HTTPPort,omitempty"` - - // HTTPSPort AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacycustomorigin.html#cfn-cloudfront-distribution-legacycustomorigin-httpsport - HTTPSPort int `json:"HTTPSPort,omitempty"` - - // OriginProtocolPolicy AWS CloudFormation Property - // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacycustomorigin.html#cfn-cloudfront-distribution-legacycustomorigin-originprotocolpolicy - OriginProtocolPolicy string `json:"OriginProtocolPolicy,omitempty"` - - // OriginSSLProtocols AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacycustomorigin.html#cfn-cloudfront-distribution-legacycustomorigin-originsslprotocols - OriginSSLProtocols []string `json:"OriginSSLProtocols,omitempty"` -} - -// AWSCloudFormationType returns the AWS CloudFormation resource type -func (r *AWSCloudFrontDistribution_LegacyCustomOrigin) AWSCloudFormationType() string { - return "AWS::CloudFront::Distribution.LegacyCustomOrigin" -} diff --git a/cloudformation/aws-cloudfront-distribution_legacys3origin.go b/cloudformation/aws-cloudfront-distribution_legacys3origin.go deleted file mode 100644 index 0e28c27d36..0000000000 --- a/cloudformation/aws-cloudfront-distribution_legacys3origin.go +++ /dev/null @@ -1,21 +0,0 @@ -package cloudformation - -// AWSCloudFrontDistribution_LegacyS3Origin AWS CloudFormation Resource (AWS::CloudFront::Distribution.LegacyS3Origin) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacys3origin.html -type AWSCloudFrontDistribution_LegacyS3Origin struct { - - // DNSName AWS CloudFormation Property - // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacys3origin.html#cfn-cloudfront-distribution-legacys3origin-dnsname - DNSName string `json:"DNSName,omitempty"` - - // OriginAccessIdentity AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacys3origin.html#cfn-cloudfront-distribution-legacys3origin-originaccessidentity - OriginAccessIdentity string `json:"OriginAccessIdentity,omitempty"` -} - -// AWSCloudFormationType returns the AWS CloudFormation resource type -func (r *AWSCloudFrontDistribution_LegacyS3Origin) AWSCloudFormationType() string { - return "AWS::CloudFront::Distribution.LegacyS3Origin" -} diff --git a/cloudformation/aws-ssm-patchbaseline_patchgroup.go b/cloudformation/aws-ssm-patchbaseline_patchgroup.go deleted file mode 100644 index 97ee734dd8..0000000000 --- a/cloudformation/aws-ssm-patchbaseline_patchgroup.go +++ /dev/null @@ -1,11 +0,0 @@ -package cloudformation - -// AWSSSMPatchBaseline_PatchGroup AWS CloudFormation Resource (AWS::SSM::PatchBaseline.PatchGroup) -// See: -type AWSSSMPatchBaseline_PatchGroup struct { -} - -// AWSCloudFormationType returns the AWS CloudFormation resource type -func (r *AWSSSMPatchBaseline_PatchGroup) AWSCloudFormationType() string { - return "AWS::SSM::PatchBaseline.PatchGroup" -} diff --git a/cloudformation/policies.go b/cloudformation/policies/policies.go similarity index 99% rename from cloudformation/policies.go rename to cloudformation/policies/policies.go index d1c4d60d55..d70ed0a08d 100644 --- a/cloudformation/policies.go +++ b/cloudformation/policies/policies.go @@ -1,4 +1,4 @@ -package cloudformation +package policies // CreationPolicy prevents a resource status from reaching create complete until AWS CloudFormation receives a specified number of success signals or the timeout period is exceeded. To signal a resource, you can use the cfn-signal helper script or SignalResource API. AWS CloudFormation publishes valid signals to the stack events so that you track the number of signals sent. type CreationPolicy struct { diff --git a/cloudformation/policies_test.go b/cloudformation/policies_test.go index f3619b662f..2b20daa746 100644 --- a/cloudformation/policies_test.go +++ b/cloudformation/policies_test.go @@ -4,6 +4,8 @@ import ( "github.com/sanathkr/yaml" "github.com/awslabs/goformation/cloudformation" + "github.com/awslabs/goformation/cloudformation/policies" + "github.com/awslabs/goformation/cloudformation/resources" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" @@ -15,13 +17,13 @@ var _ = Describe("Goformation", func() { tests := []struct { Name string - Input *cloudformation.UpdatePolicy + Input *policies.UpdatePolicy Expected interface{} }{ { Name: "AutoScalingReplacingUpdate", - Input: &cloudformation.UpdatePolicy{ - AutoScalingReplacingUpdate: &cloudformation.AutoScalingReplacingUpdate{ + Input: &policies.UpdatePolicy{ + AutoScalingReplacingUpdate: &policies.AutoScalingReplacingUpdate{ WillReplace: true, }, }, @@ -33,8 +35,8 @@ var _ = Describe("Goformation", func() { }, { Name: "AutoScalingReplacingUpdate", - Input: &cloudformation.UpdatePolicy{ - AutoScalingRollingUpdate: &cloudformation.AutoScalingRollingUpdate{ + Input: &policies.UpdatePolicy{ + AutoScalingRollingUpdate: &policies.AutoScalingRollingUpdate{ MaxBatchSize: 10, MinInstancesInService: 11, MinSuccessfulInstancesPercent: 12, @@ -56,8 +58,8 @@ var _ = Describe("Goformation", func() { }, { Name: "AutoScalingScheduledAction", - Input: &cloudformation.UpdatePolicy{ - AutoScalingScheduledAction: &cloudformation.AutoScalingScheduledAction{ + Input: &policies.UpdatePolicy{ + AutoScalingScheduledAction: &policies.AutoScalingScheduledAction{ IgnoreUnmodifiedGroupSizeProperties: true, }, }, @@ -69,8 +71,8 @@ var _ = Describe("Goformation", func() { }, { Name: "CodeDeployLambdaAliasUpdate", - Input: &cloudformation.UpdatePolicy{ - CodeDeployLambdaAliasUpdate: &cloudformation.CodeDeployLambdaAliasUpdate{ + Input: &policies.UpdatePolicy{ + CodeDeployLambdaAliasUpdate: &policies.CodeDeployLambdaAliasUpdate{ ApplicationName: "test-application-name", DeploymentGroupName: "test-deployment-group-name", AfterAllowTrafficHook: "test-after-allow-traffic-hook", @@ -93,7 +95,7 @@ var _ = Describe("Goformation", func() { It("should have the correct values for "+test.Name, func() { - asg := cloudformation.AWSAutoScalingAutoScalingGroup{} + asg := resources.AWSAutoScalingAutoScalingGroup{} asg.SetUpdatePolicy(test.Input) template := &cloudformation.Template{ @@ -128,16 +130,16 @@ var _ = Describe("Goformation", func() { tests := []struct { Name string - Input *cloudformation.CreationPolicy + Input *policies.CreationPolicy Expected interface{} }{ { Name: "CreationPolicy", - Input: &cloudformation.CreationPolicy{ - AutoScalingCreationPolicy: &cloudformation.AutoScalingCreationPolicy{ + Input: &policies.CreationPolicy{ + AutoScalingCreationPolicy: &policies.AutoScalingCreationPolicy{ MinSuccessfulInstancesPercent: 10, }, - ResourceSignal: &cloudformation.ResourceSignal{ + ResourceSignal: &policies.ResourceSignal{ Count: 11, Timeout: "test-timeout", }, @@ -159,7 +161,7 @@ var _ = Describe("Goformation", func() { It("should have the correct values for "+test.Name, func() { - asg := cloudformation.AWSAutoScalingAutoScalingGroup{} + asg := resources.AWSAutoScalingAutoScalingGroup{} asg.SetCreationPolicy(test.Input) template := &cloudformation.Template{ @@ -194,7 +196,7 @@ var _ = Describe("Goformation", func() { tests := []struct { Name string - Input cloudformation.DeletionPolicy + Input policies.DeletionPolicy Expected interface{} }{ { @@ -219,7 +221,7 @@ var _ = Describe("Goformation", func() { It("should have the correct values for "+test.Name, func() { - asg := cloudformation.AWSAutoScalingAutoScalingGroup{} + asg := resources.AWSAutoScalingAutoScalingGroup{} asg.SetDeletionPolicy(test.Input) template := &cloudformation.Template{ diff --git a/cloudformation/alexa-ask-skill.go b/cloudformation/resources/alexa-ask-skill.go similarity index 91% rename from cloudformation/alexa-ask-skill.go rename to cloudformation/resources/alexa-ask-skill.go index bb9fbdddf1..03a2f33d5e 100644 --- a/cloudformation/alexa-ask-skill.go +++ b/cloudformation/resources/alexa-ask-skill.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AlexaASKSkill AWS CloudFormation Resource (Alexa::ASK::Skill) @@ -26,7 +27,7 @@ type AlexaASKSkill struct { VendorId string `json:"VendorId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AlexaASKSkill) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AlexaASKSkill) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AlexaASKSkill) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AlexaASKSkill) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/alexa-ask-skill_authenticationconfiguration.go b/cloudformation/resources/alexa-ask-skill_authenticationconfiguration.go similarity index 95% rename from cloudformation/alexa-ask-skill_authenticationconfiguration.go rename to cloudformation/resources/alexa-ask-skill_authenticationconfiguration.go index a013db177b..5c40d8b3ed 100644 --- a/cloudformation/alexa-ask-skill_authenticationconfiguration.go +++ b/cloudformation/resources/alexa-ask-skill_authenticationconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AlexaASKSkill_AuthenticationConfiguration AWS CloudFormation Resource (Alexa::ASK::Skill.AuthenticationConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-authenticationconfiguration.html @@ -20,7 +22,7 @@ type AlexaASKSkill_AuthenticationConfiguration struct { RefreshToken string `json:"RefreshToken,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AlexaASKSkill_AuthenticationConfiguration) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AlexaASKSkill_AuthenticationConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AlexaASKSkill_AuthenticationConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/alexa-ask-skill_overrides.go b/cloudformation/resources/alexa-ask-skill_overrides.go similarity index 91% rename from cloudformation/alexa-ask-skill_overrides.go rename to cloudformation/resources/alexa-ask-skill_overrides.go index 89fd0c8f9e..8f5108582b 100644 --- a/cloudformation/alexa-ask-skill_overrides.go +++ b/cloudformation/resources/alexa-ask-skill_overrides.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AlexaASKSkill_Overrides AWS CloudFormation Resource (Alexa::ASK::Skill.Overrides) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-overrides.html @@ -10,7 +12,7 @@ type AlexaASKSkill_Overrides struct { Manifest interface{} `json:"Manifest,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AlexaASKSkill_Overrides) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AlexaASKSkill_Overrides) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AlexaASKSkill_Overrides) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/alexa-ask-skill_skillpackage.go b/cloudformation/resources/alexa-ask-skill_skillpackage.go similarity index 94% rename from cloudformation/alexa-ask-skill_skillpackage.go rename to cloudformation/resources/alexa-ask-skill_skillpackage.go index 14b40d796c..a523563e50 100644 --- a/cloudformation/alexa-ask-skill_skillpackage.go +++ b/cloudformation/resources/alexa-ask-skill_skillpackage.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AlexaASKSkill_SkillPackage AWS CloudFormation Resource (Alexa::ASK::Skill.SkillPackage) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-skillpackage.html @@ -30,7 +32,7 @@ type AlexaASKSkill_SkillPackage struct { S3ObjectVersion string `json:"S3ObjectVersion,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AlexaASKSkill_SkillPackage) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AlexaASKSkill_SkillPackage) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AlexaASKSkill_SkillPackage) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-amazonmq-broker.go b/cloudformation/resources/aws-amazonmq-broker.go similarity index 94% rename from cloudformation/aws-amazonmq-broker.go rename to cloudformation/resources/aws-amazonmq-broker.go index 4c86d2c1e6..f1fe875960 100644 --- a/cloudformation/aws-amazonmq-broker.go +++ b/cloudformation/resources/aws-amazonmq-broker.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAmazonMQBroker AWS CloudFormation Resource (AWS::AmazonMQ::Broker) @@ -81,7 +82,7 @@ type AWSAmazonMQBroker struct { Users []AWSAmazonMQBroker_User `json:"Users,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -121,7 +122,7 @@ func (r *AWSAmazonMQBroker) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAmazonMQBroker) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAmazonMQBroker) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -132,9 +133,9 @@ func (r AWSAmazonMQBroker) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-amazonmq-broker_configurationid.go b/cloudformation/resources/aws-amazonmq-broker_configurationid.go similarity index 94% rename from cloudformation/aws-amazonmq-broker_configurationid.go rename to cloudformation/resources/aws-amazonmq-broker_configurationid.go index 3273228230..ec0b94004c 100644 --- a/cloudformation/aws-amazonmq-broker_configurationid.go +++ b/cloudformation/resources/aws-amazonmq-broker_configurationid.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAmazonMQBroker_ConfigurationId AWS CloudFormation Resource (AWS::AmazonMQ::Broker.ConfigurationId) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-configurationid.html @@ -15,7 +17,7 @@ type AWSAmazonMQBroker_ConfigurationId struct { Revision int `json:"Revision"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAmazonMQBroker_ConfigurationId) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAmazonMQBroker_ConfigurationId) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAmazonMQBroker_ConfigurationId) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-amazonmq-broker_loglist.go b/cloudformation/resources/aws-amazonmq-broker_loglist.go similarity index 92% rename from cloudformation/aws-amazonmq-broker_loglist.go rename to cloudformation/resources/aws-amazonmq-broker_loglist.go index 4b85e010be..764322b18a 100644 --- a/cloudformation/aws-amazonmq-broker_loglist.go +++ b/cloudformation/resources/aws-amazonmq-broker_loglist.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAmazonMQBroker_LogList AWS CloudFormation Resource (AWS::AmazonMQ::Broker.LogList) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-loglist.html @@ -15,7 +17,7 @@ type AWSAmazonMQBroker_LogList struct { General bool `json:"General,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAmazonMQBroker_LogList) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAmazonMQBroker_LogList) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAmazonMQBroker_LogList) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-amazonmq-broker_maintenancewindow.go b/cloudformation/resources/aws-amazonmq-broker_maintenancewindow.go similarity index 95% rename from cloudformation/aws-amazonmq-broker_maintenancewindow.go rename to cloudformation/resources/aws-amazonmq-broker_maintenancewindow.go index 703f73d2c9..b3281b099e 100644 --- a/cloudformation/aws-amazonmq-broker_maintenancewindow.go +++ b/cloudformation/resources/aws-amazonmq-broker_maintenancewindow.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAmazonMQBroker_MaintenanceWindow AWS CloudFormation Resource (AWS::AmazonMQ::Broker.MaintenanceWindow) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-maintenancewindow.html @@ -20,7 +22,7 @@ type AWSAmazonMQBroker_MaintenanceWindow struct { TimeZone string `json:"TimeZone,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSAmazonMQBroker_MaintenanceWindow) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAmazonMQBroker_MaintenanceWindow) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAmazonMQBroker_MaintenanceWindow) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-amazonmq-broker_tagsentry.go b/cloudformation/resources/aws-amazonmq-broker_tagsentry.go similarity index 92% rename from cloudformation/aws-amazonmq-broker_tagsentry.go rename to cloudformation/resources/aws-amazonmq-broker_tagsentry.go index 4ca5ae0f2a..ee6fd448b5 100644 --- a/cloudformation/aws-amazonmq-broker_tagsentry.go +++ b/cloudformation/resources/aws-amazonmq-broker_tagsentry.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAmazonMQBroker_TagsEntry AWS CloudFormation Resource (AWS::AmazonMQ::Broker.TagsEntry) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-tagsentry.html @@ -15,7 +17,7 @@ type AWSAmazonMQBroker_TagsEntry struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAmazonMQBroker_TagsEntry) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAmazonMQBroker_TagsEntry) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAmazonMQBroker_TagsEntry) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-amazonmq-broker_user.go b/cloudformation/resources/aws-amazonmq-broker_user.go similarity index 93% rename from cloudformation/aws-amazonmq-broker_user.go rename to cloudformation/resources/aws-amazonmq-broker_user.go index 1051e5788a..1d61bcaec2 100644 --- a/cloudformation/aws-amazonmq-broker_user.go +++ b/cloudformation/resources/aws-amazonmq-broker_user.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAmazonMQBroker_User AWS CloudFormation Resource (AWS::AmazonMQ::Broker.User) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-user.html @@ -25,7 +27,7 @@ type AWSAmazonMQBroker_User struct { Username string `json:"Username,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSAmazonMQBroker_User) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAmazonMQBroker_User) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAmazonMQBroker_User) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-amazonmq-configuration.go b/cloudformation/resources/aws-amazonmq-configuration.go similarity index 92% rename from cloudformation/aws-amazonmq-configuration.go rename to cloudformation/resources/aws-amazonmq-configuration.go index 8073f976dd..68c13e608e 100644 --- a/cloudformation/aws-amazonmq-configuration.go +++ b/cloudformation/resources/aws-amazonmq-configuration.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAmazonMQConfiguration AWS CloudFormation Resource (AWS::AmazonMQ::Configuration) @@ -41,7 +42,7 @@ type AWSAmazonMQConfiguration struct { Tags []AWSAmazonMQConfiguration_TagsEntry `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -81,7 +82,7 @@ func (r *AWSAmazonMQConfiguration) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAmazonMQConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAmazonMQConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -92,9 +93,9 @@ func (r AWSAmazonMQConfiguration) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-amazonmq-configuration_tagsentry.go b/cloudformation/resources/aws-amazonmq-configuration_tagsentry.go similarity index 94% rename from cloudformation/aws-amazonmq-configuration_tagsentry.go rename to cloudformation/resources/aws-amazonmq-configuration_tagsentry.go index 73c61c5a88..10628edd06 100644 --- a/cloudformation/aws-amazonmq-configuration_tagsentry.go +++ b/cloudformation/resources/aws-amazonmq-configuration_tagsentry.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAmazonMQConfiguration_TagsEntry AWS CloudFormation Resource (AWS::AmazonMQ::Configuration.TagsEntry) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-configuration-tagsentry.html @@ -15,7 +17,7 @@ type AWSAmazonMQConfiguration_TagsEntry struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAmazonMQConfiguration_TagsEntry) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAmazonMQConfiguration_TagsEntry) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAmazonMQConfiguration_TagsEntry) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-amazonmq-configurationassociation.go b/cloudformation/resources/aws-amazonmq-configurationassociation.go similarity index 92% rename from cloudformation/aws-amazonmq-configurationassociation.go rename to cloudformation/resources/aws-amazonmq-configurationassociation.go index a34f85b755..11f3ca09ca 100644 --- a/cloudformation/aws-amazonmq-configurationassociation.go +++ b/cloudformation/resources/aws-amazonmq-configurationassociation.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAmazonMQConfigurationAssociation AWS CloudFormation Resource (AWS::AmazonMQ::ConfigurationAssociation) @@ -21,7 +22,7 @@ type AWSAmazonMQConfigurationAssociation struct { Configuration *AWSAmazonMQConfigurationAssociation_ConfigurationId `json:"Configuration,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSAmazonMQConfigurationAssociation) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAmazonMQConfigurationAssociation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAmazonMQConfigurationAssociation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSAmazonMQConfigurationAssociation) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-amazonmq-configurationassociation_configurationid.go b/cloudformation/resources/aws-amazonmq-configurationassociation_configurationid.go similarity index 94% rename from cloudformation/aws-amazonmq-configurationassociation_configurationid.go rename to cloudformation/resources/aws-amazonmq-configurationassociation_configurationid.go index 1df0fd80b7..a1b05d1525 100644 --- a/cloudformation/aws-amazonmq-configurationassociation_configurationid.go +++ b/cloudformation/resources/aws-amazonmq-configurationassociation_configurationid.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAmazonMQConfigurationAssociation_ConfigurationId AWS CloudFormation Resource (AWS::AmazonMQ::ConfigurationAssociation.ConfigurationId) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-configurationassociation-configurationid.html @@ -15,7 +17,7 @@ type AWSAmazonMQConfigurationAssociation_ConfigurationId struct { Revision int `json:"Revision"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAmazonMQConfigurationAssociation_ConfigurationId) SetMetadata(metada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAmazonMQConfigurationAssociation_ConfigurationId) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAmazonMQConfigurationAssociation_ConfigurationId) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigateway-account.go b/cloudformation/resources/aws-apigateway-account.go similarity index 89% rename from cloudformation/aws-apigateway-account.go rename to cloudformation/resources/aws-apigateway-account.go index e0b3dc251e..13a5ef8014 100644 --- a/cloudformation/aws-apigateway-account.go +++ b/cloudformation/resources/aws-apigateway-account.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayAccount AWS CloudFormation Resource (AWS::ApiGateway::Account) @@ -16,7 +17,7 @@ type AWSApiGatewayAccount struct { CloudWatchRoleArn string `json:"CloudWatchRoleArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -56,7 +57,7 @@ func (r *AWSApiGatewayAccount) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayAccount) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayAccount) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -67,9 +68,9 @@ func (r AWSApiGatewayAccount) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigateway-apikey.go b/cloudformation/resources/aws-apigateway-apikey.go similarity index 92% rename from cloudformation/aws-apigateway-apikey.go rename to cloudformation/resources/aws-apigateway-apikey.go index 581989188f..eaa422bd73 100644 --- a/cloudformation/aws-apigateway-apikey.go +++ b/cloudformation/resources/aws-apigateway-apikey.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayApiKey AWS CloudFormation Resource (AWS::ApiGateway::ApiKey) @@ -46,7 +47,7 @@ type AWSApiGatewayApiKey struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSApiGatewayApiKey) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayApiKey) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayApiKey) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSApiGatewayApiKey) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigateway-apikey_stagekey.go b/cloudformation/resources/aws-apigateway-apikey_stagekey.go similarity index 94% rename from cloudformation/aws-apigateway-apikey_stagekey.go rename to cloudformation/resources/aws-apigateway-apikey_stagekey.go index b24c6fd428..a815e51679 100644 --- a/cloudformation/aws-apigateway-apikey_stagekey.go +++ b/cloudformation/resources/aws-apigateway-apikey_stagekey.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayApiKey_StageKey AWS CloudFormation Resource (AWS::ApiGateway::ApiKey.StageKey) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-apikey-stagekey.html @@ -15,7 +17,7 @@ type AWSApiGatewayApiKey_StageKey struct { StageName string `json:"StageName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSApiGatewayApiKey_StageKey) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayApiKey_StageKey) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayApiKey_StageKey) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigateway-authorizer.go b/cloudformation/resources/aws-apigateway-authorizer.go similarity index 93% rename from cloudformation/aws-apigateway-authorizer.go rename to cloudformation/resources/aws-apigateway-authorizer.go index 69b92d3dda..d5064db44f 100644 --- a/cloudformation/aws-apigateway-authorizer.go +++ b/cloudformation/resources/aws-apigateway-authorizer.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayAuthorizer AWS CloudFormation Resource (AWS::ApiGateway::Authorizer) @@ -61,7 +62,7 @@ type AWSApiGatewayAuthorizer struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -101,7 +102,7 @@ func (r *AWSApiGatewayAuthorizer) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayAuthorizer) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayAuthorizer) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -112,9 +113,9 @@ func (r AWSApiGatewayAuthorizer) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigateway-basepathmapping.go b/cloudformation/resources/aws-apigateway-basepathmapping.go similarity index 92% rename from cloudformation/aws-apigateway-basepathmapping.go rename to cloudformation/resources/aws-apigateway-basepathmapping.go index 61b9bf9093..cfb5088da8 100644 --- a/cloudformation/aws-apigateway-basepathmapping.go +++ b/cloudformation/resources/aws-apigateway-basepathmapping.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayBasePathMapping AWS CloudFormation Resource (AWS::ApiGateway::BasePathMapping) @@ -31,7 +32,7 @@ type AWSApiGatewayBasePathMapping struct { Stage string `json:"Stage,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSApiGatewayBasePathMapping) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayBasePathMapping) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayBasePathMapping) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSApiGatewayBasePathMapping) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigateway-clientcertificate.go b/cloudformation/resources/aws-apigateway-clientcertificate.go similarity index 91% rename from cloudformation/aws-apigateway-clientcertificate.go rename to cloudformation/resources/aws-apigateway-clientcertificate.go index 4c68db3174..0b2702120d 100644 --- a/cloudformation/aws-apigateway-clientcertificate.go +++ b/cloudformation/resources/aws-apigateway-clientcertificate.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayClientCertificate AWS CloudFormation Resource (AWS::ApiGateway::ClientCertificate) @@ -16,7 +17,7 @@ type AWSApiGatewayClientCertificate struct { Description string `json:"Description,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -56,7 +57,7 @@ func (r *AWSApiGatewayClientCertificate) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayClientCertificate) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayClientCertificate) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -67,9 +68,9 @@ func (r AWSApiGatewayClientCertificate) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigateway-deployment.go b/cloudformation/resources/aws-apigateway-deployment.go similarity index 92% rename from cloudformation/aws-apigateway-deployment.go rename to cloudformation/resources/aws-apigateway-deployment.go index 0721b07a05..515c34c2b8 100644 --- a/cloudformation/aws-apigateway-deployment.go +++ b/cloudformation/resources/aws-apigateway-deployment.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayDeployment AWS CloudFormation Resource (AWS::ApiGateway::Deployment) @@ -36,7 +37,7 @@ type AWSApiGatewayDeployment struct { StageName string `json:"StageName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSApiGatewayDeployment) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayDeployment) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayDeployment) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSApiGatewayDeployment) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigateway-deployment_accesslogsetting.go b/cloudformation/resources/aws-apigateway-deployment_accesslogsetting.go similarity index 94% rename from cloudformation/aws-apigateway-deployment_accesslogsetting.go rename to cloudformation/resources/aws-apigateway-deployment_accesslogsetting.go index bd505d5831..da50b96f73 100644 --- a/cloudformation/aws-apigateway-deployment_accesslogsetting.go +++ b/cloudformation/resources/aws-apigateway-deployment_accesslogsetting.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayDeployment_AccessLogSetting AWS CloudFormation Resource (AWS::ApiGateway::Deployment.AccessLogSetting) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-accesslogsetting.html @@ -15,7 +17,7 @@ type AWSApiGatewayDeployment_AccessLogSetting struct { Format string `json:"Format,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSApiGatewayDeployment_AccessLogSetting) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayDeployment_AccessLogSetting) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayDeployment_AccessLogSetting) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigateway-deployment_canarysetting.go b/cloudformation/resources/aws-apigateway-deployment_canarysetting.go similarity index 95% rename from cloudformation/aws-apigateway-deployment_canarysetting.go rename to cloudformation/resources/aws-apigateway-deployment_canarysetting.go index 2f4e17da0c..2802e1d1d1 100644 --- a/cloudformation/aws-apigateway-deployment_canarysetting.go +++ b/cloudformation/resources/aws-apigateway-deployment_canarysetting.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayDeployment_CanarySetting AWS CloudFormation Resource (AWS::ApiGateway::Deployment.CanarySetting) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-canarysetting.html @@ -20,7 +22,7 @@ type AWSApiGatewayDeployment_CanarySetting struct { UseStageCache bool `json:"UseStageCache,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSApiGatewayDeployment_CanarySetting) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayDeployment_CanarySetting) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayDeployment_CanarySetting) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigateway-deployment_deploymentcanarysettings.go b/cloudformation/resources/aws-apigateway-deployment_deploymentcanarysettings.go similarity index 95% rename from cloudformation/aws-apigateway-deployment_deploymentcanarysettings.go rename to cloudformation/resources/aws-apigateway-deployment_deploymentcanarysettings.go index bff6aa6260..42aa7816a5 100644 --- a/cloudformation/aws-apigateway-deployment_deploymentcanarysettings.go +++ b/cloudformation/resources/aws-apigateway-deployment_deploymentcanarysettings.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayDeployment_DeploymentCanarySettings AWS CloudFormation Resource (AWS::ApiGateway::Deployment.DeploymentCanarySettings) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-deploymentcanarysettings.html @@ -20,7 +22,7 @@ type AWSApiGatewayDeployment_DeploymentCanarySettings struct { UseStageCache bool `json:"UseStageCache,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSApiGatewayDeployment_DeploymentCanarySettings) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayDeployment_DeploymentCanarySettings) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayDeployment_DeploymentCanarySettings) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigateway-deployment_methodsetting.go b/cloudformation/resources/aws-apigateway-deployment_methodsetting.go similarity index 97% rename from cloudformation/aws-apigateway-deployment_methodsetting.go rename to cloudformation/resources/aws-apigateway-deployment_methodsetting.go index c935d0f029..7d07f4b102 100644 --- a/cloudformation/aws-apigateway-deployment_methodsetting.go +++ b/cloudformation/resources/aws-apigateway-deployment_methodsetting.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayDeployment_MethodSetting AWS CloudFormation Resource (AWS::ApiGateway::Deployment.MethodSetting) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html @@ -55,7 +57,7 @@ type AWSApiGatewayDeployment_MethodSetting struct { ThrottlingRateLimit float64 `json:"ThrottlingRateLimit,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -95,6 +97,6 @@ func (r *AWSApiGatewayDeployment_MethodSetting) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayDeployment_MethodSetting) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayDeployment_MethodSetting) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigateway-deployment_stagedescription.go b/cloudformation/resources/aws-apigateway-deployment_stagedescription.go similarity index 98% rename from cloudformation/aws-apigateway-deployment_stagedescription.go rename to cloudformation/resources/aws-apigateway-deployment_stagedescription.go index e7b83181f5..55417a4bb2 100644 --- a/cloudformation/aws-apigateway-deployment_stagedescription.go +++ b/cloudformation/resources/aws-apigateway-deployment_stagedescription.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayDeployment_StageDescription AWS CloudFormation Resource (AWS::ApiGateway::Deployment.StageDescription) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html @@ -100,7 +102,7 @@ type AWSApiGatewayDeployment_StageDescription struct { Variables map[string]string `json:"Variables,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -140,6 +142,6 @@ func (r *AWSApiGatewayDeployment_StageDescription) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayDeployment_StageDescription) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayDeployment_StageDescription) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigateway-documentationpart.go b/cloudformation/resources/aws-apigateway-documentationpart.go similarity index 92% rename from cloudformation/aws-apigateway-documentationpart.go rename to cloudformation/resources/aws-apigateway-documentationpart.go index f9e6728f42..8e1516dd8f 100644 --- a/cloudformation/aws-apigateway-documentationpart.go +++ b/cloudformation/resources/aws-apigateway-documentationpart.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayDocumentationPart AWS CloudFormation Resource (AWS::ApiGateway::DocumentationPart) @@ -26,7 +27,7 @@ type AWSApiGatewayDocumentationPart struct { RestApiId string `json:"RestApiId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSApiGatewayDocumentationPart) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayDocumentationPart) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayDocumentationPart) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSApiGatewayDocumentationPart) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigateway-documentationpart_location.go b/cloudformation/resources/aws-apigateway-documentationpart_location.go similarity index 95% rename from cloudformation/aws-apigateway-documentationpart_location.go rename to cloudformation/resources/aws-apigateway-documentationpart_location.go index c629a6147e..5531033e75 100644 --- a/cloudformation/aws-apigateway-documentationpart_location.go +++ b/cloudformation/resources/aws-apigateway-documentationpart_location.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayDocumentationPart_Location AWS CloudFormation Resource (AWS::ApiGateway::DocumentationPart.Location) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-documentationpart-location.html @@ -30,7 +32,7 @@ type AWSApiGatewayDocumentationPart_Location struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSApiGatewayDocumentationPart_Location) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayDocumentationPart_Location) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayDocumentationPart_Location) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigateway-documentationversion.go b/cloudformation/resources/aws-apigateway-documentationversion.go similarity index 92% rename from cloudformation/aws-apigateway-documentationversion.go rename to cloudformation/resources/aws-apigateway-documentationversion.go index 7c80391e51..48b8b33929 100644 --- a/cloudformation/aws-apigateway-documentationversion.go +++ b/cloudformation/resources/aws-apigateway-documentationversion.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayDocumentationVersion AWS CloudFormation Resource (AWS::ApiGateway::DocumentationVersion) @@ -26,7 +27,7 @@ type AWSApiGatewayDocumentationVersion struct { RestApiId string `json:"RestApiId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSApiGatewayDocumentationVersion) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayDocumentationVersion) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayDocumentationVersion) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSApiGatewayDocumentationVersion) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigateway-domainname.go b/cloudformation/resources/aws-apigateway-domainname.go similarity index 91% rename from cloudformation/aws-apigateway-domainname.go rename to cloudformation/resources/aws-apigateway-domainname.go index 50cabc315a..1970a63332 100644 --- a/cloudformation/aws-apigateway-domainname.go +++ b/cloudformation/resources/aws-apigateway-domainname.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayDomainName AWS CloudFormation Resource (AWS::ApiGateway::DomainName) @@ -31,7 +32,7 @@ type AWSApiGatewayDomainName struct { RegionalCertificateArn string `json:"RegionalCertificateArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSApiGatewayDomainName) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayDomainName) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayDomainName) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSApiGatewayDomainName) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigateway-domainname_endpointconfiguration.go b/cloudformation/resources/aws-apigateway-domainname_endpointconfiguration.go similarity index 93% rename from cloudformation/aws-apigateway-domainname_endpointconfiguration.go rename to cloudformation/resources/aws-apigateway-domainname_endpointconfiguration.go index 04f9fa5a05..bf92eae8aa 100644 --- a/cloudformation/aws-apigateway-domainname_endpointconfiguration.go +++ b/cloudformation/resources/aws-apigateway-domainname_endpointconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayDomainName_EndpointConfiguration AWS CloudFormation Resource (AWS::ApiGateway::DomainName.EndpointConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-endpointconfiguration.html @@ -10,7 +12,7 @@ type AWSApiGatewayDomainName_EndpointConfiguration struct { Types []string `json:"Types,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSApiGatewayDomainName_EndpointConfiguration) SetMetadata(metadata map // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayDomainName_EndpointConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayDomainName_EndpointConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigateway-gatewayresponse.go b/cloudformation/resources/aws-apigateway-gatewayresponse.go similarity index 93% rename from cloudformation/aws-apigateway-gatewayresponse.go rename to cloudformation/resources/aws-apigateway-gatewayresponse.go index efc71c250d..ca803fec40 100644 --- a/cloudformation/aws-apigateway-gatewayresponse.go +++ b/cloudformation/resources/aws-apigateway-gatewayresponse.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayGatewayResponse AWS CloudFormation Resource (AWS::ApiGateway::GatewayResponse) @@ -36,7 +37,7 @@ type AWSApiGatewayGatewayResponse struct { StatusCode string `json:"StatusCode,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSApiGatewayGatewayResponse) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayGatewayResponse) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayGatewayResponse) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSApiGatewayGatewayResponse) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigateway-method.go b/cloudformation/resources/aws-apigateway-method.go similarity index 94% rename from cloudformation/aws-apigateway-method.go rename to cloudformation/resources/aws-apigateway-method.go index 5e0ce1d9dc..12ea578a56 100644 --- a/cloudformation/aws-apigateway-method.go +++ b/cloudformation/resources/aws-apigateway-method.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayMethod AWS CloudFormation Resource (AWS::ApiGateway::Method) @@ -76,7 +77,7 @@ type AWSApiGatewayMethod struct { RestApiId string `json:"RestApiId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -116,7 +117,7 @@ func (r *AWSApiGatewayMethod) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayMethod) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayMethod) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -127,9 +128,9 @@ func (r AWSApiGatewayMethod) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigateway-method_integration.go b/cloudformation/resources/aws-apigateway-method_integration.go similarity index 97% rename from cloudformation/aws-apigateway-method_integration.go rename to cloudformation/resources/aws-apigateway-method_integration.go index eafc4a0bb7..12c8cdf5c1 100644 --- a/cloudformation/aws-apigateway-method_integration.go +++ b/cloudformation/resources/aws-apigateway-method_integration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayMethod_Integration AWS CloudFormation Resource (AWS::ApiGateway::Method.Integration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html @@ -75,7 +77,7 @@ type AWSApiGatewayMethod_Integration struct { Uri string `json:"Uri,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -115,6 +117,6 @@ func (r *AWSApiGatewayMethod_Integration) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayMethod_Integration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayMethod_Integration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigateway-method_integrationresponse.go b/cloudformation/resources/aws-apigateway-method_integrationresponse.go similarity index 96% rename from cloudformation/aws-apigateway-method_integrationresponse.go rename to cloudformation/resources/aws-apigateway-method_integrationresponse.go index 7d88353600..7f3fe9773b 100644 --- a/cloudformation/aws-apigateway-method_integrationresponse.go +++ b/cloudformation/resources/aws-apigateway-method_integrationresponse.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayMethod_IntegrationResponse AWS CloudFormation Resource (AWS::ApiGateway::Method.IntegrationResponse) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration-integrationresponse.html @@ -30,7 +32,7 @@ type AWSApiGatewayMethod_IntegrationResponse struct { StatusCode string `json:"StatusCode,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSApiGatewayMethod_IntegrationResponse) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayMethod_IntegrationResponse) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayMethod_IntegrationResponse) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigateway-method_methodresponse.go b/cloudformation/resources/aws-apigateway-method_methodresponse.go similarity index 95% rename from cloudformation/aws-apigateway-method_methodresponse.go rename to cloudformation/resources/aws-apigateway-method_methodresponse.go index da51ed64ea..e08e17a51b 100644 --- a/cloudformation/aws-apigateway-method_methodresponse.go +++ b/cloudformation/resources/aws-apigateway-method_methodresponse.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayMethod_MethodResponse AWS CloudFormation Resource (AWS::ApiGateway::Method.MethodResponse) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-methodresponse.html @@ -20,7 +22,7 @@ type AWSApiGatewayMethod_MethodResponse struct { StatusCode string `json:"StatusCode,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSApiGatewayMethod_MethodResponse) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayMethod_MethodResponse) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayMethod_MethodResponse) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigateway-model.go b/cloudformation/resources/aws-apigateway-model.go similarity index 91% rename from cloudformation/aws-apigateway-model.go rename to cloudformation/resources/aws-apigateway-model.go index a65d2de7ee..bcfef2eb37 100644 --- a/cloudformation/aws-apigateway-model.go +++ b/cloudformation/resources/aws-apigateway-model.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayModel AWS CloudFormation Resource (AWS::ApiGateway::Model) @@ -36,7 +37,7 @@ type AWSApiGatewayModel struct { Schema interface{} `json:"Schema,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSApiGatewayModel) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayModel) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayModel) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSApiGatewayModel) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigateway-requestvalidator.go b/cloudformation/resources/aws-apigateway-requestvalidator.go similarity index 93% rename from cloudformation/aws-apigateway-requestvalidator.go rename to cloudformation/resources/aws-apigateway-requestvalidator.go index d9884af53b..94d8a98fab 100644 --- a/cloudformation/aws-apigateway-requestvalidator.go +++ b/cloudformation/resources/aws-apigateway-requestvalidator.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayRequestValidator AWS CloudFormation Resource (AWS::ApiGateway::RequestValidator) @@ -31,7 +32,7 @@ type AWSApiGatewayRequestValidator struct { ValidateRequestParameters bool `json:"ValidateRequestParameters,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSApiGatewayRequestValidator) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayRequestValidator) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayRequestValidator) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSApiGatewayRequestValidator) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigateway-resource.go b/cloudformation/resources/aws-apigateway-resource.go similarity index 91% rename from cloudformation/aws-apigateway-resource.go rename to cloudformation/resources/aws-apigateway-resource.go index 028a83a516..1e7fa9a93b 100644 --- a/cloudformation/aws-apigateway-resource.go +++ b/cloudformation/resources/aws-apigateway-resource.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayResource AWS CloudFormation Resource (AWS::ApiGateway::Resource) @@ -26,7 +27,7 @@ type AWSApiGatewayResource struct { RestApiId string `json:"RestApiId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSApiGatewayResource) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayResource) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayResource) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSApiGatewayResource) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigateway-restapi.go b/cloudformation/resources/aws-apigateway-restapi.go similarity index 94% rename from cloudformation/aws-apigateway-restapi.go rename to cloudformation/resources/aws-apigateway-restapi.go index 336b31fadc..c04114752c 100644 --- a/cloudformation/aws-apigateway-restapi.go +++ b/cloudformation/resources/aws-apigateway-restapi.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayRestApi AWS CloudFormation Resource (AWS::ApiGateway::RestApi) @@ -71,7 +72,7 @@ type AWSApiGatewayRestApi struct { Policy interface{} `json:"Policy,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -111,7 +112,7 @@ func (r *AWSApiGatewayRestApi) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayRestApi) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayRestApi) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -122,9 +123,9 @@ func (r AWSApiGatewayRestApi) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigateway-restapi_endpointconfiguration.go b/cloudformation/resources/aws-apigateway-restapi_endpointconfiguration.go similarity index 93% rename from cloudformation/aws-apigateway-restapi_endpointconfiguration.go rename to cloudformation/resources/aws-apigateway-restapi_endpointconfiguration.go index 29a202a767..93c04f8dfc 100644 --- a/cloudformation/aws-apigateway-restapi_endpointconfiguration.go +++ b/cloudformation/resources/aws-apigateway-restapi_endpointconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayRestApi_EndpointConfiguration AWS CloudFormation Resource (AWS::ApiGateway::RestApi.EndpointConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html @@ -10,7 +12,7 @@ type AWSApiGatewayRestApi_EndpointConfiguration struct { Types []string `json:"Types,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSApiGatewayRestApi_EndpointConfiguration) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayRestApi_EndpointConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayRestApi_EndpointConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigateway-restapi_s3location.go b/cloudformation/resources/aws-apigateway-restapi_s3location.go similarity index 95% rename from cloudformation/aws-apigateway-restapi_s3location.go rename to cloudformation/resources/aws-apigateway-restapi_s3location.go index 554273ef9d..68dd676389 100644 --- a/cloudformation/aws-apigateway-restapi_s3location.go +++ b/cloudformation/resources/aws-apigateway-restapi_s3location.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayRestApi_S3Location AWS CloudFormation Resource (AWS::ApiGateway::RestApi.S3Location) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html @@ -25,7 +27,7 @@ type AWSApiGatewayRestApi_S3Location struct { Version string `json:"Version,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSApiGatewayRestApi_S3Location) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayRestApi_S3Location) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayRestApi_S3Location) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigateway-stage.go b/cloudformation/resources/aws-apigateway-stage.go similarity index 94% rename from cloudformation/aws-apigateway-stage.go rename to cloudformation/resources/aws-apigateway-stage.go index b7d4e845d5..07e01fb0a3 100644 --- a/cloudformation/aws-apigateway-stage.go +++ b/cloudformation/resources/aws-apigateway-stage.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayStage AWS CloudFormation Resource (AWS::ApiGateway::Stage) @@ -81,7 +82,7 @@ type AWSApiGatewayStage struct { Variables map[string]string `json:"Variables,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -121,7 +122,7 @@ func (r *AWSApiGatewayStage) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayStage) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayStage) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -132,9 +133,9 @@ func (r AWSApiGatewayStage) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigateway-stage_accesslogsetting.go b/cloudformation/resources/aws-apigateway-stage_accesslogsetting.go similarity index 94% rename from cloudformation/aws-apigateway-stage_accesslogsetting.go rename to cloudformation/resources/aws-apigateway-stage_accesslogsetting.go index 1dfcc52ba7..9939517997 100644 --- a/cloudformation/aws-apigateway-stage_accesslogsetting.go +++ b/cloudformation/resources/aws-apigateway-stage_accesslogsetting.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayStage_AccessLogSetting AWS CloudFormation Resource (AWS::ApiGateway::Stage.AccessLogSetting) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-accesslogsetting.html @@ -15,7 +17,7 @@ type AWSApiGatewayStage_AccessLogSetting struct { Format string `json:"Format,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSApiGatewayStage_AccessLogSetting) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayStage_AccessLogSetting) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayStage_AccessLogSetting) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigateway-stage_canarysetting.go b/cloudformation/resources/aws-apigateway-stage_canarysetting.go similarity index 95% rename from cloudformation/aws-apigateway-stage_canarysetting.go rename to cloudformation/resources/aws-apigateway-stage_canarysetting.go index b798999a6a..10166a6041 100644 --- a/cloudformation/aws-apigateway-stage_canarysetting.go +++ b/cloudformation/resources/aws-apigateway-stage_canarysetting.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayStage_CanarySetting AWS CloudFormation Resource (AWS::ApiGateway::Stage.CanarySetting) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html @@ -25,7 +27,7 @@ type AWSApiGatewayStage_CanarySetting struct { UseStageCache bool `json:"UseStageCache,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSApiGatewayStage_CanarySetting) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayStage_CanarySetting) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayStage_CanarySetting) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigateway-stage_methodsetting.go b/cloudformation/resources/aws-apigateway-stage_methodsetting.go similarity index 97% rename from cloudformation/aws-apigateway-stage_methodsetting.go rename to cloudformation/resources/aws-apigateway-stage_methodsetting.go index 4d3e42bbf9..6bfd15331d 100644 --- a/cloudformation/aws-apigateway-stage_methodsetting.go +++ b/cloudformation/resources/aws-apigateway-stage_methodsetting.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayStage_MethodSetting AWS CloudFormation Resource (AWS::ApiGateway::Stage.MethodSetting) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html @@ -55,7 +57,7 @@ type AWSApiGatewayStage_MethodSetting struct { ThrottlingRateLimit float64 `json:"ThrottlingRateLimit,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -95,6 +97,6 @@ func (r *AWSApiGatewayStage_MethodSetting) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayStage_MethodSetting) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayStage_MethodSetting) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigateway-usageplan.go b/cloudformation/resources/aws-apigateway-usageplan.go similarity index 92% rename from cloudformation/aws-apigateway-usageplan.go rename to cloudformation/resources/aws-apigateway-usageplan.go index 21c5f8a179..8b9661478b 100644 --- a/cloudformation/aws-apigateway-usageplan.go +++ b/cloudformation/resources/aws-apigateway-usageplan.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayUsagePlan AWS CloudFormation Resource (AWS::ApiGateway::UsagePlan) @@ -36,7 +37,7 @@ type AWSApiGatewayUsagePlan struct { UsagePlanName string `json:"UsagePlanName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSApiGatewayUsagePlan) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayUsagePlan) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayUsagePlan) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSApiGatewayUsagePlan) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigateway-usageplan_apistage.go b/cloudformation/resources/aws-apigateway-usageplan_apistage.go similarity index 95% rename from cloudformation/aws-apigateway-usageplan_apistage.go rename to cloudformation/resources/aws-apigateway-usageplan_apistage.go index 81834d3aa5..85b9e8c187 100644 --- a/cloudformation/aws-apigateway-usageplan_apistage.go +++ b/cloudformation/resources/aws-apigateway-usageplan_apistage.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayUsagePlan_ApiStage AWS CloudFormation Resource (AWS::ApiGateway::UsagePlan.ApiStage) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-apistage.html @@ -20,7 +22,7 @@ type AWSApiGatewayUsagePlan_ApiStage struct { Throttle map[string]AWSApiGatewayUsagePlan_ThrottleSettings `json:"Throttle,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSApiGatewayUsagePlan_ApiStage) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayUsagePlan_ApiStage) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayUsagePlan_ApiStage) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigateway-usageplan_quotasettings.go b/cloudformation/resources/aws-apigateway-usageplan_quotasettings.go similarity index 94% rename from cloudformation/aws-apigateway-usageplan_quotasettings.go rename to cloudformation/resources/aws-apigateway-usageplan_quotasettings.go index 1b41905452..f13585189d 100644 --- a/cloudformation/aws-apigateway-usageplan_quotasettings.go +++ b/cloudformation/resources/aws-apigateway-usageplan_quotasettings.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayUsagePlan_QuotaSettings AWS CloudFormation Resource (AWS::ApiGateway::UsagePlan.QuotaSettings) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-quotasettings.html @@ -20,7 +22,7 @@ type AWSApiGatewayUsagePlan_QuotaSettings struct { Period string `json:"Period,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSApiGatewayUsagePlan_QuotaSettings) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayUsagePlan_QuotaSettings) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayUsagePlan_QuotaSettings) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigateway-usageplan_throttlesettings.go b/cloudformation/resources/aws-apigateway-usageplan_throttlesettings.go similarity index 94% rename from cloudformation/aws-apigateway-usageplan_throttlesettings.go rename to cloudformation/resources/aws-apigateway-usageplan_throttlesettings.go index d548ccaa87..005547f0b7 100644 --- a/cloudformation/aws-apigateway-usageplan_throttlesettings.go +++ b/cloudformation/resources/aws-apigateway-usageplan_throttlesettings.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayUsagePlan_ThrottleSettings AWS CloudFormation Resource (AWS::ApiGateway::UsagePlan.ThrottleSettings) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-throttlesettings.html @@ -15,7 +17,7 @@ type AWSApiGatewayUsagePlan_ThrottleSettings struct { RateLimit float64 `json:"RateLimit,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSApiGatewayUsagePlan_ThrottleSettings) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayUsagePlan_ThrottleSettings) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayUsagePlan_ThrottleSettings) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigateway-usageplankey.go b/cloudformation/resources/aws-apigateway-usageplankey.go similarity index 91% rename from cloudformation/aws-apigateway-usageplankey.go rename to cloudformation/resources/aws-apigateway-usageplankey.go index e83bf4d191..ed8760c935 100644 --- a/cloudformation/aws-apigateway-usageplankey.go +++ b/cloudformation/resources/aws-apigateway-usageplankey.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayUsagePlanKey AWS CloudFormation Resource (AWS::ApiGateway::UsagePlanKey) @@ -26,7 +27,7 @@ type AWSApiGatewayUsagePlanKey struct { UsagePlanId string `json:"UsagePlanId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSApiGatewayUsagePlanKey) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayUsagePlanKey) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayUsagePlanKey) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSApiGatewayUsagePlanKey) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigateway-vpclink.go b/cloudformation/resources/aws-apigateway-vpclink.go similarity index 91% rename from cloudformation/aws-apigateway-vpclink.go rename to cloudformation/resources/aws-apigateway-vpclink.go index 6920d10208..d0e29739df 100644 --- a/cloudformation/aws-apigateway-vpclink.go +++ b/cloudformation/resources/aws-apigateway-vpclink.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayVpcLink AWS CloudFormation Resource (AWS::ApiGateway::VpcLink) @@ -26,7 +27,7 @@ type AWSApiGatewayVpcLink struct { TargetArns []string `json:"TargetArns,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSApiGatewayVpcLink) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayVpcLink) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayVpcLink) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSApiGatewayVpcLink) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigatewayv2-api.go b/cloudformation/resources/aws-apigatewayv2-api.go similarity index 92% rename from cloudformation/aws-apigatewayv2-api.go rename to cloudformation/resources/aws-apigatewayv2-api.go index 11705af61d..6d59b45c99 100644 --- a/cloudformation/aws-apigatewayv2-api.go +++ b/cloudformation/resources/aws-apigatewayv2-api.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayV2Api AWS CloudFormation Resource (AWS::ApiGatewayV2::Api) @@ -46,7 +47,7 @@ type AWSApiGatewayV2Api struct { Version string `json:"Version,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSApiGatewayV2Api) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayV2Api) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayV2Api) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSApiGatewayV2Api) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigatewayv2-authorizer.go b/cloudformation/resources/aws-apigatewayv2-authorizer.go similarity index 93% rename from cloudformation/aws-apigatewayv2-authorizer.go rename to cloudformation/resources/aws-apigatewayv2-authorizer.go index aca8ad4d6e..bd3d9e412f 100644 --- a/cloudformation/aws-apigatewayv2-authorizer.go +++ b/cloudformation/resources/aws-apigatewayv2-authorizer.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayV2Authorizer AWS CloudFormation Resource (AWS::ApiGatewayV2::Authorizer) @@ -51,7 +52,7 @@ type AWSApiGatewayV2Authorizer struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -91,7 +92,7 @@ func (r *AWSApiGatewayV2Authorizer) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayV2Authorizer) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayV2Authorizer) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -102,9 +103,9 @@ func (r AWSApiGatewayV2Authorizer) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigatewayv2-deployment.go b/cloudformation/resources/aws-apigatewayv2-deployment.go similarity index 91% rename from cloudformation/aws-apigatewayv2-deployment.go rename to cloudformation/resources/aws-apigatewayv2-deployment.go index b552d3c77c..461c1092b9 100644 --- a/cloudformation/aws-apigatewayv2-deployment.go +++ b/cloudformation/resources/aws-apigatewayv2-deployment.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayV2Deployment AWS CloudFormation Resource (AWS::ApiGatewayV2::Deployment) @@ -26,7 +27,7 @@ type AWSApiGatewayV2Deployment struct { StageName string `json:"StageName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSApiGatewayV2Deployment) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayV2Deployment) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayV2Deployment) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSApiGatewayV2Deployment) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigatewayv2-integration.go b/cloudformation/resources/aws-apigatewayv2-integration.go similarity index 94% rename from cloudformation/aws-apigatewayv2-integration.go rename to cloudformation/resources/aws-apigatewayv2-integration.go index 1795d6a38e..c6c1b52e3b 100644 --- a/cloudformation/aws-apigatewayv2-integration.go +++ b/cloudformation/resources/aws-apigatewayv2-integration.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayV2Integration AWS CloudFormation Resource (AWS::ApiGatewayV2::Integration) @@ -76,7 +77,7 @@ type AWSApiGatewayV2Integration struct { TimeoutInMillis int `json:"TimeoutInMillis,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -116,7 +117,7 @@ func (r *AWSApiGatewayV2Integration) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayV2Integration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayV2Integration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -127,9 +128,9 @@ func (r AWSApiGatewayV2Integration) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigatewayv2-integrationresponse.go b/cloudformation/resources/aws-apigatewayv2-integrationresponse.go similarity index 94% rename from cloudformation/aws-apigatewayv2-integrationresponse.go rename to cloudformation/resources/aws-apigatewayv2-integrationresponse.go index df25d88589..3e8514235b 100644 --- a/cloudformation/aws-apigatewayv2-integrationresponse.go +++ b/cloudformation/resources/aws-apigatewayv2-integrationresponse.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayV2IntegrationResponse AWS CloudFormation Resource (AWS::ApiGatewayV2::IntegrationResponse) @@ -46,7 +47,7 @@ type AWSApiGatewayV2IntegrationResponse struct { TemplateSelectionExpression string `json:"TemplateSelectionExpression,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSApiGatewayV2IntegrationResponse) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayV2IntegrationResponse) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayV2IntegrationResponse) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSApiGatewayV2IntegrationResponse) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigatewayv2-model.go b/cloudformation/resources/aws-apigatewayv2-model.go similarity index 91% rename from cloudformation/aws-apigatewayv2-model.go rename to cloudformation/resources/aws-apigatewayv2-model.go index ecf470d805..419b1a0bcf 100644 --- a/cloudformation/aws-apigatewayv2-model.go +++ b/cloudformation/resources/aws-apigatewayv2-model.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayV2Model AWS CloudFormation Resource (AWS::ApiGatewayV2::Model) @@ -36,7 +37,7 @@ type AWSApiGatewayV2Model struct { Schema interface{} `json:"Schema,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSApiGatewayV2Model) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayV2Model) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayV2Model) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSApiGatewayV2Model) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigatewayv2-route.go b/cloudformation/resources/aws-apigatewayv2-route.go similarity index 94% rename from cloudformation/aws-apigatewayv2-route.go rename to cloudformation/resources/aws-apigatewayv2-route.go index a10d174ea1..525abf1ddc 100644 --- a/cloudformation/aws-apigatewayv2-route.go +++ b/cloudformation/resources/aws-apigatewayv2-route.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayV2Route AWS CloudFormation Resource (AWS::ApiGatewayV2::Route) @@ -71,7 +72,7 @@ type AWSApiGatewayV2Route struct { Target string `json:"Target,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -111,7 +112,7 @@ func (r *AWSApiGatewayV2Route) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayV2Route) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayV2Route) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -122,9 +123,9 @@ func (r AWSApiGatewayV2Route) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigatewayv2-route_parameterconstraints.go b/cloudformation/resources/aws-apigatewayv2-route_parameterconstraints.go similarity index 93% rename from cloudformation/aws-apigatewayv2-route_parameterconstraints.go rename to cloudformation/resources/aws-apigatewayv2-route_parameterconstraints.go index 9a36b5ea98..09d3ae7f6d 100644 --- a/cloudformation/aws-apigatewayv2-route_parameterconstraints.go +++ b/cloudformation/resources/aws-apigatewayv2-route_parameterconstraints.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayV2Route_ParameterConstraints AWS CloudFormation Resource (AWS::ApiGatewayV2::Route.ParameterConstraints) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-route-parameterconstraints.html @@ -10,7 +12,7 @@ type AWSApiGatewayV2Route_ParameterConstraints struct { Required bool `json:"Required"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSApiGatewayV2Route_ParameterConstraints) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayV2Route_ParameterConstraints) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayV2Route_ParameterConstraints) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigatewayv2-routeresponse.go b/cloudformation/resources/aws-apigatewayv2-routeresponse.go similarity index 93% rename from cloudformation/aws-apigatewayv2-routeresponse.go rename to cloudformation/resources/aws-apigatewayv2-routeresponse.go index 8b3ce26573..33a9a21550 100644 --- a/cloudformation/aws-apigatewayv2-routeresponse.go +++ b/cloudformation/resources/aws-apigatewayv2-routeresponse.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayV2RouteResponse AWS CloudFormation Resource (AWS::ApiGatewayV2::RouteResponse) @@ -41,7 +42,7 @@ type AWSApiGatewayV2RouteResponse struct { RouteResponseKey string `json:"RouteResponseKey,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -81,7 +82,7 @@ func (r *AWSApiGatewayV2RouteResponse) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayV2RouteResponse) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayV2RouteResponse) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -92,9 +93,9 @@ func (r AWSApiGatewayV2RouteResponse) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigatewayv2-routeresponse_parameterconstraints.go b/cloudformation/resources/aws-apigatewayv2-routeresponse_parameterconstraints.go similarity index 93% rename from cloudformation/aws-apigatewayv2-routeresponse_parameterconstraints.go rename to cloudformation/resources/aws-apigatewayv2-routeresponse_parameterconstraints.go index 87f2ca831d..8575c70f8a 100644 --- a/cloudformation/aws-apigatewayv2-routeresponse_parameterconstraints.go +++ b/cloudformation/resources/aws-apigatewayv2-routeresponse_parameterconstraints.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayV2RouteResponse_ParameterConstraints AWS CloudFormation Resource (AWS::ApiGatewayV2::RouteResponse.ParameterConstraints) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-routeresponse-parameterconstraints.html @@ -10,7 +12,7 @@ type AWSApiGatewayV2RouteResponse_ParameterConstraints struct { Required bool `json:"Required"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSApiGatewayV2RouteResponse_ParameterConstraints) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayV2RouteResponse_ParameterConstraints) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayV2RouteResponse_ParameterConstraints) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigatewayv2-stage.go b/cloudformation/resources/aws-apigatewayv2-stage.go similarity index 93% rename from cloudformation/aws-apigatewayv2-stage.go rename to cloudformation/resources/aws-apigatewayv2-stage.go index 5ec4b1cc4e..eb8e1417ca 100644 --- a/cloudformation/aws-apigatewayv2-stage.go +++ b/cloudformation/resources/aws-apigatewayv2-stage.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApiGatewayV2Stage AWS CloudFormation Resource (AWS::ApiGatewayV2::Stage) @@ -56,7 +57,7 @@ type AWSApiGatewayV2Stage struct { StageVariables interface{} `json:"StageVariables,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -96,7 +97,7 @@ func (r *AWSApiGatewayV2Stage) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayV2Stage) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayV2Stage) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -107,9 +108,9 @@ func (r AWSApiGatewayV2Stage) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-apigatewayv2-stage_accesslogsettings.go b/cloudformation/resources/aws-apigatewayv2-stage_accesslogsettings.go similarity index 94% rename from cloudformation/aws-apigatewayv2-stage_accesslogsettings.go rename to cloudformation/resources/aws-apigatewayv2-stage_accesslogsettings.go index 931eb97044..58e5543c9d 100644 --- a/cloudformation/aws-apigatewayv2-stage_accesslogsettings.go +++ b/cloudformation/resources/aws-apigatewayv2-stage_accesslogsettings.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayV2Stage_AccessLogSettings AWS CloudFormation Resource (AWS::ApiGatewayV2::Stage.AccessLogSettings) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-accesslogsettings.html @@ -15,7 +17,7 @@ type AWSApiGatewayV2Stage_AccessLogSettings struct { Format string `json:"Format,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSApiGatewayV2Stage_AccessLogSettings) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayV2Stage_AccessLogSettings) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayV2Stage_AccessLogSettings) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-apigatewayv2-stage_routesettings.go b/cloudformation/resources/aws-apigatewayv2-stage_routesettings.go similarity index 95% rename from cloudformation/aws-apigatewayv2-stage_routesettings.go rename to cloudformation/resources/aws-apigatewayv2-stage_routesettings.go index ffb67d7a53..0939cf1ae5 100644 --- a/cloudformation/aws-apigatewayv2-stage_routesettings.go +++ b/cloudformation/resources/aws-apigatewayv2-stage_routesettings.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApiGatewayV2Stage_RouteSettings AWS CloudFormation Resource (AWS::ApiGatewayV2::Stage.RouteSettings) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html @@ -30,7 +32,7 @@ type AWSApiGatewayV2Stage_RouteSettings struct { ThrottlingRateLimit float64 `json:"ThrottlingRateLimit,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSApiGatewayV2Stage_RouteSettings) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApiGatewayV2Stage_RouteSettings) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApiGatewayV2Stage_RouteSettings) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-applicationautoscaling-scalabletarget.go b/cloudformation/resources/aws-applicationautoscaling-scalabletarget.go similarity index 94% rename from cloudformation/aws-applicationautoscaling-scalabletarget.go rename to cloudformation/resources/aws-applicationautoscaling-scalabletarget.go index f1e748662a..c24fa6851f 100644 --- a/cloudformation/aws-applicationautoscaling-scalabletarget.go +++ b/cloudformation/resources/aws-applicationautoscaling-scalabletarget.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApplicationAutoScalingScalableTarget AWS CloudFormation Resource (AWS::ApplicationAutoScaling::ScalableTarget) @@ -46,7 +47,7 @@ type AWSApplicationAutoScalingScalableTarget struct { ServiceNamespace string `json:"ServiceNamespace,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSApplicationAutoScalingScalableTarget) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApplicationAutoScalingScalableTarget) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApplicationAutoScalingScalableTarget) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSApplicationAutoScalingScalableTarget) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-applicationautoscaling-scalabletarget_scalabletargetaction.go b/cloudformation/resources/aws-applicationautoscaling-scalabletarget_scalabletargetaction.go similarity index 94% rename from cloudformation/aws-applicationautoscaling-scalabletarget_scalabletargetaction.go rename to cloudformation/resources/aws-applicationautoscaling-scalabletarget_scalabletargetaction.go index 74a6c8c79b..2fb4113897 100644 --- a/cloudformation/aws-applicationautoscaling-scalabletarget_scalabletargetaction.go +++ b/cloudformation/resources/aws-applicationautoscaling-scalabletarget_scalabletargetaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApplicationAutoScalingScalableTarget_ScalableTargetAction AWS CloudFormation Resource (AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scalabletargetaction.html @@ -15,7 +17,7 @@ type AWSApplicationAutoScalingScalableTarget_ScalableTargetAction struct { MinCapacity int `json:"MinCapacity,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSApplicationAutoScalingScalableTarget_ScalableTargetAction) SetMetada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApplicationAutoScalingScalableTarget_ScalableTargetAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApplicationAutoScalingScalableTarget_ScalableTargetAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-applicationautoscaling-scalabletarget_scheduledaction.go b/cloudformation/resources/aws-applicationautoscaling-scalabletarget_scheduledaction.go similarity index 95% rename from cloudformation/aws-applicationautoscaling-scalabletarget_scheduledaction.go rename to cloudformation/resources/aws-applicationautoscaling-scalabletarget_scheduledaction.go index 4c8cae5b1c..33851f5a23 100644 --- a/cloudformation/aws-applicationautoscaling-scalabletarget_scheduledaction.go +++ b/cloudformation/resources/aws-applicationautoscaling-scalabletarget_scheduledaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApplicationAutoScalingScalableTarget_ScheduledAction AWS CloudFormation Resource (AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html @@ -30,7 +32,7 @@ type AWSApplicationAutoScalingScalableTarget_ScheduledAction struct { StartTime string `json:"StartTime,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSApplicationAutoScalingScalableTarget_ScheduledAction) SetMetadata(me // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApplicationAutoScalingScalableTarget_ScheduledAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApplicationAutoScalingScalableTarget_ScheduledAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-applicationautoscaling-scalingpolicy.go b/cloudformation/resources/aws-applicationautoscaling-scalingpolicy.go similarity index 94% rename from cloudformation/aws-applicationautoscaling-scalingpolicy.go rename to cloudformation/resources/aws-applicationautoscaling-scalingpolicy.go index db8c22cb94..f6f32ba0ae 100644 --- a/cloudformation/aws-applicationautoscaling-scalingpolicy.go +++ b/cloudformation/resources/aws-applicationautoscaling-scalingpolicy.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSApplicationAutoScalingScalingPolicy AWS CloudFormation Resource (AWS::ApplicationAutoScaling::ScalingPolicy) @@ -51,7 +52,7 @@ type AWSApplicationAutoScalingScalingPolicy struct { TargetTrackingScalingPolicyConfiguration *AWSApplicationAutoScalingScalingPolicy_TargetTrackingScalingPolicyConfiguration `json:"TargetTrackingScalingPolicyConfiguration,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -91,7 +92,7 @@ func (r *AWSApplicationAutoScalingScalingPolicy) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApplicationAutoScalingScalingPolicy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApplicationAutoScalingScalingPolicy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -102,9 +103,9 @@ func (r AWSApplicationAutoScalingScalingPolicy) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-applicationautoscaling-scalingpolicy_customizedmetricspecification.go b/cloudformation/resources/aws-applicationautoscaling-scalingpolicy_customizedmetricspecification.go similarity index 95% rename from cloudformation/aws-applicationautoscaling-scalingpolicy_customizedmetricspecification.go rename to cloudformation/resources/aws-applicationautoscaling-scalingpolicy_customizedmetricspecification.go index 3a5031ff79..a6cf5d3f4d 100644 --- a/cloudformation/aws-applicationautoscaling-scalingpolicy_customizedmetricspecification.go +++ b/cloudformation/resources/aws-applicationautoscaling-scalingpolicy_customizedmetricspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApplicationAutoScalingScalingPolicy_CustomizedMetricSpecification AWS CloudFormation Resource (AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html @@ -30,7 +32,7 @@ type AWSApplicationAutoScalingScalingPolicy_CustomizedMetricSpecification struct Unit string `json:"Unit,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSApplicationAutoScalingScalingPolicy_CustomizedMetricSpecification) S // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApplicationAutoScalingScalingPolicy_CustomizedMetricSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApplicationAutoScalingScalingPolicy_CustomizedMetricSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-applicationautoscaling-scalingpolicy_metricdimension.go b/cloudformation/resources/aws-applicationautoscaling-scalingpolicy_metricdimension.go similarity index 94% rename from cloudformation/aws-applicationautoscaling-scalingpolicy_metricdimension.go rename to cloudformation/resources/aws-applicationautoscaling-scalingpolicy_metricdimension.go index eb8b40de03..250ef7ddfd 100644 --- a/cloudformation/aws-applicationautoscaling-scalingpolicy_metricdimension.go +++ b/cloudformation/resources/aws-applicationautoscaling-scalingpolicy_metricdimension.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApplicationAutoScalingScalingPolicy_MetricDimension AWS CloudFormation Resource (AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-metricdimension.html @@ -15,7 +17,7 @@ type AWSApplicationAutoScalingScalingPolicy_MetricDimension struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSApplicationAutoScalingScalingPolicy_MetricDimension) SetMetadata(met // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApplicationAutoScalingScalingPolicy_MetricDimension) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApplicationAutoScalingScalingPolicy_MetricDimension) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-applicationautoscaling-scalingpolicy_predefinedmetricspecification.go b/cloudformation/resources/aws-applicationautoscaling-scalingpolicy_predefinedmetricspecification.go similarity index 94% rename from cloudformation/aws-applicationautoscaling-scalingpolicy_predefinedmetricspecification.go rename to cloudformation/resources/aws-applicationautoscaling-scalingpolicy_predefinedmetricspecification.go index 099b8f310a..cf16cbcb89 100644 --- a/cloudformation/aws-applicationautoscaling-scalingpolicy_predefinedmetricspecification.go +++ b/cloudformation/resources/aws-applicationautoscaling-scalingpolicy_predefinedmetricspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApplicationAutoScalingScalingPolicy_PredefinedMetricSpecification AWS CloudFormation Resource (AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predefinedmetricspecification.html @@ -15,7 +17,7 @@ type AWSApplicationAutoScalingScalingPolicy_PredefinedMetricSpecification struct ResourceLabel string `json:"ResourceLabel,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSApplicationAutoScalingScalingPolicy_PredefinedMetricSpecification) S // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApplicationAutoScalingScalingPolicy_PredefinedMetricSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApplicationAutoScalingScalingPolicy_PredefinedMetricSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-applicationautoscaling-scalingpolicy_stepadjustment.go b/cloudformation/resources/aws-applicationautoscaling-scalingpolicy_stepadjustment.go similarity index 95% rename from cloudformation/aws-applicationautoscaling-scalingpolicy_stepadjustment.go rename to cloudformation/resources/aws-applicationautoscaling-scalingpolicy_stepadjustment.go index 64a52c91f6..b3d65c0411 100644 --- a/cloudformation/aws-applicationautoscaling-scalingpolicy_stepadjustment.go +++ b/cloudformation/resources/aws-applicationautoscaling-scalingpolicy_stepadjustment.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApplicationAutoScalingScalingPolicy_StepAdjustment AWS CloudFormation Resource (AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html @@ -20,7 +22,7 @@ type AWSApplicationAutoScalingScalingPolicy_StepAdjustment struct { ScalingAdjustment int `json:"ScalingAdjustment"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSApplicationAutoScalingScalingPolicy_StepAdjustment) SetMetadata(meta // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApplicationAutoScalingScalingPolicy_StepAdjustment) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApplicationAutoScalingScalingPolicy_StepAdjustment) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-applicationautoscaling-scalingpolicy_stepscalingpolicyconfiguration.go b/cloudformation/resources/aws-applicationautoscaling-scalingpolicy_stepscalingpolicyconfiguration.go similarity index 95% rename from cloudformation/aws-applicationautoscaling-scalingpolicy_stepscalingpolicyconfiguration.go rename to cloudformation/resources/aws-applicationautoscaling-scalingpolicy_stepscalingpolicyconfiguration.go index b3bc85a998..b845df08c1 100644 --- a/cloudformation/aws-applicationautoscaling-scalingpolicy_stepscalingpolicyconfiguration.go +++ b/cloudformation/resources/aws-applicationautoscaling-scalingpolicy_stepscalingpolicyconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApplicationAutoScalingScalingPolicy_StepScalingPolicyConfiguration AWS CloudFormation Resource (AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html @@ -30,7 +32,7 @@ type AWSApplicationAutoScalingScalingPolicy_StepScalingPolicyConfiguration struc StepAdjustments []AWSApplicationAutoScalingScalingPolicy_StepAdjustment `json:"StepAdjustments,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSApplicationAutoScalingScalingPolicy_StepScalingPolicyConfiguration) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApplicationAutoScalingScalingPolicy_StepScalingPolicyConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApplicationAutoScalingScalingPolicy_StepScalingPolicyConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-applicationautoscaling-scalingpolicy_targettrackingscalingpolicyconfiguration.go b/cloudformation/resources/aws-applicationautoscaling-scalingpolicy_targettrackingscalingpolicyconfiguration.go similarity index 96% rename from cloudformation/aws-applicationautoscaling-scalingpolicy_targettrackingscalingpolicyconfiguration.go rename to cloudformation/resources/aws-applicationautoscaling-scalingpolicy_targettrackingscalingpolicyconfiguration.go index e8430be416..8f5c8c5b48 100644 --- a/cloudformation/aws-applicationautoscaling-scalingpolicy_targettrackingscalingpolicyconfiguration.go +++ b/cloudformation/resources/aws-applicationautoscaling-scalingpolicy_targettrackingscalingpolicyconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSApplicationAutoScalingScalingPolicy_TargetTrackingScalingPolicyConfiguration AWS CloudFormation Resource (AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html @@ -35,7 +37,7 @@ type AWSApplicationAutoScalingScalingPolicy_TargetTrackingScalingPolicyConfigura TargetValue float64 `json:"TargetValue"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSApplicationAutoScalingScalingPolicy_TargetTrackingScalingPolicyConfi // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSApplicationAutoScalingScalingPolicy_TargetTrackingScalingPolicyConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSApplicationAutoScalingScalingPolicy_TargetTrackingScalingPolicyConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-appstream-directoryconfig.go b/cloudformation/resources/aws-appstream-directoryconfig.go similarity index 91% rename from cloudformation/aws-appstream-directoryconfig.go rename to cloudformation/resources/aws-appstream-directoryconfig.go index a5300670b6..ce9d33bb51 100644 --- a/cloudformation/aws-appstream-directoryconfig.go +++ b/cloudformation/resources/aws-appstream-directoryconfig.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAppStreamDirectoryConfig AWS CloudFormation Resource (AWS::AppStream::DirectoryConfig) @@ -26,7 +27,7 @@ type AWSAppStreamDirectoryConfig struct { ServiceAccountCredentials *AWSAppStreamDirectoryConfig_ServiceAccountCredentials `json:"ServiceAccountCredentials,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSAppStreamDirectoryConfig) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppStreamDirectoryConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppStreamDirectoryConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSAppStreamDirectoryConfig) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-appstream-directoryconfig_serviceaccountcredentials.go b/cloudformation/resources/aws-appstream-directoryconfig_serviceaccountcredentials.go similarity index 94% rename from cloudformation/aws-appstream-directoryconfig_serviceaccountcredentials.go rename to cloudformation/resources/aws-appstream-directoryconfig_serviceaccountcredentials.go index ff2bcea32c..b95f800e8d 100644 --- a/cloudformation/aws-appstream-directoryconfig_serviceaccountcredentials.go +++ b/cloudformation/resources/aws-appstream-directoryconfig_serviceaccountcredentials.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAppStreamDirectoryConfig_ServiceAccountCredentials AWS CloudFormation Resource (AWS::AppStream::DirectoryConfig.ServiceAccountCredentials) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-directoryconfig-serviceaccountcredentials.html @@ -15,7 +17,7 @@ type AWSAppStreamDirectoryConfig_ServiceAccountCredentials struct { AccountPassword string `json:"AccountPassword,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAppStreamDirectoryConfig_ServiceAccountCredentials) SetMetadata(meta // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppStreamDirectoryConfig_ServiceAccountCredentials) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppStreamDirectoryConfig_ServiceAccountCredentials) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-appstream-fleet.go b/cloudformation/resources/aws-appstream-fleet.go similarity index 94% rename from cloudformation/aws-appstream-fleet.go rename to cloudformation/resources/aws-appstream-fleet.go index e685e03626..e10ed7b6f2 100644 --- a/cloudformation/aws-appstream-fleet.go +++ b/cloudformation/resources/aws-appstream-fleet.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAppStreamFleet AWS CloudFormation Resource (AWS::AppStream::Fleet) @@ -76,7 +77,7 @@ type AWSAppStreamFleet struct { VpcConfig *AWSAppStreamFleet_VpcConfig `json:"VpcConfig,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -116,7 +117,7 @@ func (r *AWSAppStreamFleet) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppStreamFleet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppStreamFleet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -127,9 +128,9 @@ func (r AWSAppStreamFleet) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-appstream-fleet_computecapacity.go b/cloudformation/resources/aws-appstream-fleet_computecapacity.go similarity index 94% rename from cloudformation/aws-appstream-fleet_computecapacity.go rename to cloudformation/resources/aws-appstream-fleet_computecapacity.go index 293627fd7a..39a7f0dd9c 100644 --- a/cloudformation/aws-appstream-fleet_computecapacity.go +++ b/cloudformation/resources/aws-appstream-fleet_computecapacity.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAppStreamFleet_ComputeCapacity AWS CloudFormation Resource (AWS::AppStream::Fleet.ComputeCapacity) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-fleet-computecapacity.html @@ -10,7 +12,7 @@ type AWSAppStreamFleet_ComputeCapacity struct { DesiredInstances int `json:"DesiredInstances"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSAppStreamFleet_ComputeCapacity) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppStreamFleet_ComputeCapacity) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppStreamFleet_ComputeCapacity) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-appstream-fleet_domainjoininfo.go b/cloudformation/resources/aws-appstream-fleet_domainjoininfo.go similarity index 94% rename from cloudformation/aws-appstream-fleet_domainjoininfo.go rename to cloudformation/resources/aws-appstream-fleet_domainjoininfo.go index 3799d6082c..ee49a05411 100644 --- a/cloudformation/aws-appstream-fleet_domainjoininfo.go +++ b/cloudformation/resources/aws-appstream-fleet_domainjoininfo.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAppStreamFleet_DomainJoinInfo AWS CloudFormation Resource (AWS::AppStream::Fleet.DomainJoinInfo) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-fleet-domainjoininfo.html @@ -15,7 +17,7 @@ type AWSAppStreamFleet_DomainJoinInfo struct { OrganizationalUnitDistinguishedName string `json:"OrganizationalUnitDistinguishedName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAppStreamFleet_DomainJoinInfo) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppStreamFleet_DomainJoinInfo) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppStreamFleet_DomainJoinInfo) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-appstream-fleet_vpcconfig.go b/cloudformation/resources/aws-appstream-fleet_vpcconfig.go similarity index 92% rename from cloudformation/aws-appstream-fleet_vpcconfig.go rename to cloudformation/resources/aws-appstream-fleet_vpcconfig.go index a1bb54d065..e3314604cb 100644 --- a/cloudformation/aws-appstream-fleet_vpcconfig.go +++ b/cloudformation/resources/aws-appstream-fleet_vpcconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAppStreamFleet_VpcConfig AWS CloudFormation Resource (AWS::AppStream::Fleet.VpcConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-fleet-vpcconfig.html @@ -15,7 +17,7 @@ type AWSAppStreamFleet_VpcConfig struct { SubnetIds []string `json:"SubnetIds,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAppStreamFleet_VpcConfig) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppStreamFleet_VpcConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppStreamFleet_VpcConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-appstream-imagebuilder.go b/cloudformation/resources/aws-appstream-imagebuilder.go similarity index 93% rename from cloudformation/aws-appstream-imagebuilder.go rename to cloudformation/resources/aws-appstream-imagebuilder.go index 96cd4382cc..6f317bea44 100644 --- a/cloudformation/aws-appstream-imagebuilder.go +++ b/cloudformation/resources/aws-appstream-imagebuilder.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAppStreamImageBuilder AWS CloudFormation Resource (AWS::AppStream::ImageBuilder) @@ -61,7 +62,7 @@ type AWSAppStreamImageBuilder struct { VpcConfig *AWSAppStreamImageBuilder_VpcConfig `json:"VpcConfig,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -101,7 +102,7 @@ func (r *AWSAppStreamImageBuilder) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppStreamImageBuilder) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppStreamImageBuilder) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -112,9 +113,9 @@ func (r AWSAppStreamImageBuilder) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-appstream-imagebuilder_domainjoininfo.go b/cloudformation/resources/aws-appstream-imagebuilder_domainjoininfo.go similarity index 94% rename from cloudformation/aws-appstream-imagebuilder_domainjoininfo.go rename to cloudformation/resources/aws-appstream-imagebuilder_domainjoininfo.go index 1dc84daf0c..07b4d90475 100644 --- a/cloudformation/aws-appstream-imagebuilder_domainjoininfo.go +++ b/cloudformation/resources/aws-appstream-imagebuilder_domainjoininfo.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAppStreamImageBuilder_DomainJoinInfo AWS CloudFormation Resource (AWS::AppStream::ImageBuilder.DomainJoinInfo) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-imagebuilder-domainjoininfo.html @@ -15,7 +17,7 @@ type AWSAppStreamImageBuilder_DomainJoinInfo struct { OrganizationalUnitDistinguishedName string `json:"OrganizationalUnitDistinguishedName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAppStreamImageBuilder_DomainJoinInfo) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppStreamImageBuilder_DomainJoinInfo) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppStreamImageBuilder_DomainJoinInfo) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-appstream-imagebuilder_vpcconfig.go b/cloudformation/resources/aws-appstream-imagebuilder_vpcconfig.go similarity index 94% rename from cloudformation/aws-appstream-imagebuilder_vpcconfig.go rename to cloudformation/resources/aws-appstream-imagebuilder_vpcconfig.go index 185feac9b5..ff67ccce8a 100644 --- a/cloudformation/aws-appstream-imagebuilder_vpcconfig.go +++ b/cloudformation/resources/aws-appstream-imagebuilder_vpcconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAppStreamImageBuilder_VpcConfig AWS CloudFormation Resource (AWS::AppStream::ImageBuilder.VpcConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-imagebuilder-vpcconfig.html @@ -15,7 +17,7 @@ type AWSAppStreamImageBuilder_VpcConfig struct { SubnetIds []string `json:"SubnetIds,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAppStreamImageBuilder_VpcConfig) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppStreamImageBuilder_VpcConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppStreamImageBuilder_VpcConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-appstream-stack.go b/cloudformation/resources/aws-appstream-stack.go similarity index 93% rename from cloudformation/aws-appstream-stack.go rename to cloudformation/resources/aws-appstream-stack.go index 634a02604c..ad4e7c8322 100644 --- a/cloudformation/aws-appstream-stack.go +++ b/cloudformation/resources/aws-appstream-stack.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAppStreamStack AWS CloudFormation Resource (AWS::AppStream::Stack) @@ -61,7 +62,7 @@ type AWSAppStreamStack struct { UserSettings []AWSAppStreamStack_UserSetting `json:"UserSettings,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -101,7 +102,7 @@ func (r *AWSAppStreamStack) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppStreamStack) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppStreamStack) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -112,9 +113,9 @@ func (r AWSAppStreamStack) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-appstream-stack_applicationsettings.go b/cloudformation/resources/aws-appstream-stack_applicationsettings.go similarity index 94% rename from cloudformation/aws-appstream-stack_applicationsettings.go rename to cloudformation/resources/aws-appstream-stack_applicationsettings.go index def58c680c..17ab75328a 100644 --- a/cloudformation/aws-appstream-stack_applicationsettings.go +++ b/cloudformation/resources/aws-appstream-stack_applicationsettings.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAppStreamStack_ApplicationSettings AWS CloudFormation Resource (AWS::AppStream::Stack.ApplicationSettings) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-applicationsettings.html @@ -15,7 +17,7 @@ type AWSAppStreamStack_ApplicationSettings struct { SettingsGroup string `json:"SettingsGroup,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAppStreamStack_ApplicationSettings) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppStreamStack_ApplicationSettings) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppStreamStack_ApplicationSettings) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-appstream-stack_storageconnector.go b/cloudformation/resources/aws-appstream-stack_storageconnector.go similarity index 95% rename from cloudformation/aws-appstream-stack_storageconnector.go rename to cloudformation/resources/aws-appstream-stack_storageconnector.go index 25e93547e6..9f8c464fac 100644 --- a/cloudformation/aws-appstream-stack_storageconnector.go +++ b/cloudformation/resources/aws-appstream-stack_storageconnector.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAppStreamStack_StorageConnector AWS CloudFormation Resource (AWS::AppStream::Stack.StorageConnector) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-storageconnector.html @@ -20,7 +22,7 @@ type AWSAppStreamStack_StorageConnector struct { ResourceIdentifier string `json:"ResourceIdentifier,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSAppStreamStack_StorageConnector) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppStreamStack_StorageConnector) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppStreamStack_StorageConnector) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-appstream-stack_usersetting.go b/cloudformation/resources/aws-appstream-stack_usersetting.go similarity index 94% rename from cloudformation/aws-appstream-stack_usersetting.go rename to cloudformation/resources/aws-appstream-stack_usersetting.go index 37260f5576..1342cf0a10 100644 --- a/cloudformation/aws-appstream-stack_usersetting.go +++ b/cloudformation/resources/aws-appstream-stack_usersetting.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAppStreamStack_UserSetting AWS CloudFormation Resource (AWS::AppStream::Stack.UserSetting) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-usersetting.html @@ -15,7 +17,7 @@ type AWSAppStreamStack_UserSetting struct { Permission string `json:"Permission,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAppStreamStack_UserSetting) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppStreamStack_UserSetting) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppStreamStack_UserSetting) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-appstream-stackfleetassociation.go b/cloudformation/resources/aws-appstream-stackfleetassociation.go similarity index 92% rename from cloudformation/aws-appstream-stackfleetassociation.go rename to cloudformation/resources/aws-appstream-stackfleetassociation.go index b7678213c9..24f6e83e15 100644 --- a/cloudformation/aws-appstream-stackfleetassociation.go +++ b/cloudformation/resources/aws-appstream-stackfleetassociation.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAppStreamStackFleetAssociation AWS CloudFormation Resource (AWS::AppStream::StackFleetAssociation) @@ -21,7 +22,7 @@ type AWSAppStreamStackFleetAssociation struct { StackName string `json:"StackName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSAppStreamStackFleetAssociation) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppStreamStackFleetAssociation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppStreamStackFleetAssociation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSAppStreamStackFleetAssociation) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-appstream-stackuserassociation.go b/cloudformation/resources/aws-appstream-stackuserassociation.go similarity index 93% rename from cloudformation/aws-appstream-stackuserassociation.go rename to cloudformation/resources/aws-appstream-stackuserassociation.go index 3c5504f3b0..26a8d50656 100644 --- a/cloudformation/aws-appstream-stackuserassociation.go +++ b/cloudformation/resources/aws-appstream-stackuserassociation.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAppStreamStackUserAssociation AWS CloudFormation Resource (AWS::AppStream::StackUserAssociation) @@ -31,7 +32,7 @@ type AWSAppStreamStackUserAssociation struct { UserName string `json:"UserName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSAppStreamStackUserAssociation) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppStreamStackUserAssociation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppStreamStackUserAssociation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSAppStreamStackUserAssociation) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-appstream-user.go b/cloudformation/resources/aws-appstream-user.go similarity index 91% rename from cloudformation/aws-appstream-user.go rename to cloudformation/resources/aws-appstream-user.go index 5592e0d32c..950be80755 100644 --- a/cloudformation/aws-appstream-user.go +++ b/cloudformation/resources/aws-appstream-user.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAppStreamUser AWS CloudFormation Resource (AWS::AppStream::User) @@ -36,7 +37,7 @@ type AWSAppStreamUser struct { UserName string `json:"UserName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSAppStreamUser) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppStreamUser) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppStreamUser) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSAppStreamUser) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-appsync-apikey.go b/cloudformation/resources/aws-appsync-apikey.go similarity index 90% rename from cloudformation/aws-appsync-apikey.go rename to cloudformation/resources/aws-appsync-apikey.go index 075bbe29c5..bad5aee6c4 100644 --- a/cloudformation/aws-appsync-apikey.go +++ b/cloudformation/resources/aws-appsync-apikey.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAppSyncApiKey AWS CloudFormation Resource (AWS::AppSync::ApiKey) @@ -26,7 +27,7 @@ type AWSAppSyncApiKey struct { Expires float64 `json:"Expires,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSAppSyncApiKey) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppSyncApiKey) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppSyncApiKey) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSAppSyncApiKey) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-appsync-datasource.go b/cloudformation/resources/aws-appsync-datasource.go similarity index 93% rename from cloudformation/aws-appsync-datasource.go rename to cloudformation/resources/aws-appsync-datasource.go index e1fb16fe96..824f827248 100644 --- a/cloudformation/aws-appsync-datasource.go +++ b/cloudformation/resources/aws-appsync-datasource.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAppSyncDataSource AWS CloudFormation Resource (AWS::AppSync::DataSource) @@ -61,7 +62,7 @@ type AWSAppSyncDataSource struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -101,7 +102,7 @@ func (r *AWSAppSyncDataSource) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppSyncDataSource) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppSyncDataSource) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -112,9 +113,9 @@ func (r AWSAppSyncDataSource) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-appsync-datasource_authorizationconfig.go b/cloudformation/resources/aws-appsync-datasource_authorizationconfig.go similarity index 94% rename from cloudformation/aws-appsync-datasource_authorizationconfig.go rename to cloudformation/resources/aws-appsync-datasource_authorizationconfig.go index 062c5f04ff..15a46e97b8 100644 --- a/cloudformation/aws-appsync-datasource_authorizationconfig.go +++ b/cloudformation/resources/aws-appsync-datasource_authorizationconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAppSyncDataSource_AuthorizationConfig AWS CloudFormation Resource (AWS::AppSync::DataSource.AuthorizationConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-authorizationconfig.html @@ -15,7 +17,7 @@ type AWSAppSyncDataSource_AuthorizationConfig struct { AwsIamConfig *AWSAppSyncDataSource_AwsIamConfig `json:"AwsIamConfig,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAppSyncDataSource_AuthorizationConfig) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppSyncDataSource_AuthorizationConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppSyncDataSource_AuthorizationConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-appsync-datasource_awsiamconfig.go b/cloudformation/resources/aws-appsync-datasource_awsiamconfig.go similarity index 94% rename from cloudformation/aws-appsync-datasource_awsiamconfig.go rename to cloudformation/resources/aws-appsync-datasource_awsiamconfig.go index 92fb554690..b9436a37e7 100644 --- a/cloudformation/aws-appsync-datasource_awsiamconfig.go +++ b/cloudformation/resources/aws-appsync-datasource_awsiamconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAppSyncDataSource_AwsIamConfig AWS CloudFormation Resource (AWS::AppSync::DataSource.AwsIamConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-awsiamconfig.html @@ -15,7 +17,7 @@ type AWSAppSyncDataSource_AwsIamConfig struct { SigningServiceName string `json:"SigningServiceName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAppSyncDataSource_AwsIamConfig) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppSyncDataSource_AwsIamConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppSyncDataSource_AwsIamConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-appsync-datasource_dynamodbconfig.go b/cloudformation/resources/aws-appsync-datasource_dynamodbconfig.go similarity index 95% rename from cloudformation/aws-appsync-datasource_dynamodbconfig.go rename to cloudformation/resources/aws-appsync-datasource_dynamodbconfig.go index 2aa9e3538f..4cc2545d57 100644 --- a/cloudformation/aws-appsync-datasource_dynamodbconfig.go +++ b/cloudformation/resources/aws-appsync-datasource_dynamodbconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAppSyncDataSource_DynamoDBConfig AWS CloudFormation Resource (AWS::AppSync::DataSource.DynamoDBConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html @@ -20,7 +22,7 @@ type AWSAppSyncDataSource_DynamoDBConfig struct { UseCallerCredentials bool `json:"UseCallerCredentials,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSAppSyncDataSource_DynamoDBConfig) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppSyncDataSource_DynamoDBConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppSyncDataSource_DynamoDBConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-appsync-datasource_elasticsearchconfig.go b/cloudformation/resources/aws-appsync-datasource_elasticsearchconfig.go similarity index 94% rename from cloudformation/aws-appsync-datasource_elasticsearchconfig.go rename to cloudformation/resources/aws-appsync-datasource_elasticsearchconfig.go index 3646eb8854..5b00c198a8 100644 --- a/cloudformation/aws-appsync-datasource_elasticsearchconfig.go +++ b/cloudformation/resources/aws-appsync-datasource_elasticsearchconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAppSyncDataSource_ElasticsearchConfig AWS CloudFormation Resource (AWS::AppSync::DataSource.ElasticsearchConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-elasticsearchconfig.html @@ -15,7 +17,7 @@ type AWSAppSyncDataSource_ElasticsearchConfig struct { Endpoint string `json:"Endpoint,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAppSyncDataSource_ElasticsearchConfig) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppSyncDataSource_ElasticsearchConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppSyncDataSource_ElasticsearchConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-appsync-datasource_httpconfig.go b/cloudformation/resources/aws-appsync-datasource_httpconfig.go similarity index 94% rename from cloudformation/aws-appsync-datasource_httpconfig.go rename to cloudformation/resources/aws-appsync-datasource_httpconfig.go index edef613342..a55cf309fa 100644 --- a/cloudformation/aws-appsync-datasource_httpconfig.go +++ b/cloudformation/resources/aws-appsync-datasource_httpconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAppSyncDataSource_HttpConfig AWS CloudFormation Resource (AWS::AppSync::DataSource.HttpConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-httpconfig.html @@ -15,7 +17,7 @@ type AWSAppSyncDataSource_HttpConfig struct { Endpoint string `json:"Endpoint,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAppSyncDataSource_HttpConfig) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppSyncDataSource_HttpConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppSyncDataSource_HttpConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-appsync-datasource_lambdaconfig.go b/cloudformation/resources/aws-appsync-datasource_lambdaconfig.go similarity index 94% rename from cloudformation/aws-appsync-datasource_lambdaconfig.go rename to cloudformation/resources/aws-appsync-datasource_lambdaconfig.go index d7ff3dae54..53f9697aab 100644 --- a/cloudformation/aws-appsync-datasource_lambdaconfig.go +++ b/cloudformation/resources/aws-appsync-datasource_lambdaconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAppSyncDataSource_LambdaConfig AWS CloudFormation Resource (AWS::AppSync::DataSource.LambdaConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-lambdaconfig.html @@ -10,7 +12,7 @@ type AWSAppSyncDataSource_LambdaConfig struct { LambdaFunctionArn string `json:"LambdaFunctionArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSAppSyncDataSource_LambdaConfig) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppSyncDataSource_LambdaConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppSyncDataSource_LambdaConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-appsync-datasource_rdshttpendpointconfig.go b/cloudformation/resources/aws-appsync-datasource_rdshttpendpointconfig.go similarity index 95% rename from cloudformation/aws-appsync-datasource_rdshttpendpointconfig.go rename to cloudformation/resources/aws-appsync-datasource_rdshttpendpointconfig.go index d6bd642bf2..83d4bf0b3c 100644 --- a/cloudformation/aws-appsync-datasource_rdshttpendpointconfig.go +++ b/cloudformation/resources/aws-appsync-datasource_rdshttpendpointconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAppSyncDataSource_RdsHttpEndpointConfig AWS CloudFormation Resource (AWS::AppSync::DataSource.RdsHttpEndpointConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-rdshttpendpointconfig.html @@ -30,7 +32,7 @@ type AWSAppSyncDataSource_RdsHttpEndpointConfig struct { Schema string `json:"Schema,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSAppSyncDataSource_RdsHttpEndpointConfig) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppSyncDataSource_RdsHttpEndpointConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppSyncDataSource_RdsHttpEndpointConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-appsync-datasource_relationaldatabaseconfig.go b/cloudformation/resources/aws-appsync-datasource_relationaldatabaseconfig.go similarity index 94% rename from cloudformation/aws-appsync-datasource_relationaldatabaseconfig.go rename to cloudformation/resources/aws-appsync-datasource_relationaldatabaseconfig.go index 1515ed87fa..c03451567b 100644 --- a/cloudformation/aws-appsync-datasource_relationaldatabaseconfig.go +++ b/cloudformation/resources/aws-appsync-datasource_relationaldatabaseconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAppSyncDataSource_RelationalDatabaseConfig AWS CloudFormation Resource (AWS::AppSync::DataSource.RelationalDatabaseConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-relationaldatabaseconfig.html @@ -15,7 +17,7 @@ type AWSAppSyncDataSource_RelationalDatabaseConfig struct { RelationalDatabaseSourceType string `json:"RelationalDatabaseSourceType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAppSyncDataSource_RelationalDatabaseConfig) SetMetadata(metadata map // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppSyncDataSource_RelationalDatabaseConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppSyncDataSource_RelationalDatabaseConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-appsync-functionconfiguration.go b/cloudformation/resources/aws-appsync-functionconfiguration.go similarity index 94% rename from cloudformation/aws-appsync-functionconfiguration.go rename to cloudformation/resources/aws-appsync-functionconfiguration.go index 296c22e733..9369195a30 100644 --- a/cloudformation/aws-appsync-functionconfiguration.go +++ b/cloudformation/resources/aws-appsync-functionconfiguration.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAppSyncFunctionConfiguration AWS CloudFormation Resource (AWS::AppSync::FunctionConfiguration) @@ -56,7 +57,7 @@ type AWSAppSyncFunctionConfiguration struct { ResponseMappingTemplateS3Location string `json:"ResponseMappingTemplateS3Location,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -96,7 +97,7 @@ func (r *AWSAppSyncFunctionConfiguration) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppSyncFunctionConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppSyncFunctionConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -107,9 +108,9 @@ func (r AWSAppSyncFunctionConfiguration) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-appsync-graphqlapi.go b/cloudformation/resources/aws-appsync-graphqlapi.go similarity index 92% rename from cloudformation/aws-appsync-graphqlapi.go rename to cloudformation/resources/aws-appsync-graphqlapi.go index 75a02a24b8..1a85d66a44 100644 --- a/cloudformation/aws-appsync-graphqlapi.go +++ b/cloudformation/resources/aws-appsync-graphqlapi.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAppSyncGraphQLApi AWS CloudFormation Resource (AWS::AppSync::GraphQLApi) @@ -36,7 +37,7 @@ type AWSAppSyncGraphQLApi struct { UserPoolConfig *AWSAppSyncGraphQLApi_UserPoolConfig `json:"UserPoolConfig,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSAppSyncGraphQLApi) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppSyncGraphQLApi) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppSyncGraphQLApi) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSAppSyncGraphQLApi) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-appsync-graphqlapi_logconfig.go b/cloudformation/resources/aws-appsync-graphqlapi_logconfig.go similarity index 94% rename from cloudformation/aws-appsync-graphqlapi_logconfig.go rename to cloudformation/resources/aws-appsync-graphqlapi_logconfig.go index 714fc0a204..477b377744 100644 --- a/cloudformation/aws-appsync-graphqlapi_logconfig.go +++ b/cloudformation/resources/aws-appsync-graphqlapi_logconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAppSyncGraphQLApi_LogConfig AWS CloudFormation Resource (AWS::AppSync::GraphQLApi.LogConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-logconfig.html @@ -15,7 +17,7 @@ type AWSAppSyncGraphQLApi_LogConfig struct { FieldLogLevel string `json:"FieldLogLevel,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAppSyncGraphQLApi_LogConfig) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppSyncGraphQLApi_LogConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppSyncGraphQLApi_LogConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-appsync-graphqlapi_openidconnectconfig.go b/cloudformation/resources/aws-appsync-graphqlapi_openidconnectconfig.go similarity index 95% rename from cloudformation/aws-appsync-graphqlapi_openidconnectconfig.go rename to cloudformation/resources/aws-appsync-graphqlapi_openidconnectconfig.go index bccb2ee179..18cc869ec0 100644 --- a/cloudformation/aws-appsync-graphqlapi_openidconnectconfig.go +++ b/cloudformation/resources/aws-appsync-graphqlapi_openidconnectconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAppSyncGraphQLApi_OpenIDConnectConfig AWS CloudFormation Resource (AWS::AppSync::GraphQLApi.OpenIDConnectConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html @@ -25,7 +27,7 @@ type AWSAppSyncGraphQLApi_OpenIDConnectConfig struct { Issuer string `json:"Issuer,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSAppSyncGraphQLApi_OpenIDConnectConfig) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppSyncGraphQLApi_OpenIDConnectConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppSyncGraphQLApi_OpenIDConnectConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-appsync-graphqlapi_userpoolconfig.go b/cloudformation/resources/aws-appsync-graphqlapi_userpoolconfig.go similarity index 95% rename from cloudformation/aws-appsync-graphqlapi_userpoolconfig.go rename to cloudformation/resources/aws-appsync-graphqlapi_userpoolconfig.go index c75ee4cc3b..62e98e9e12 100644 --- a/cloudformation/aws-appsync-graphqlapi_userpoolconfig.go +++ b/cloudformation/resources/aws-appsync-graphqlapi_userpoolconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAppSyncGraphQLApi_UserPoolConfig AWS CloudFormation Resource (AWS::AppSync::GraphQLApi.UserPoolConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html @@ -25,7 +27,7 @@ type AWSAppSyncGraphQLApi_UserPoolConfig struct { UserPoolId string `json:"UserPoolId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSAppSyncGraphQLApi_UserPoolConfig) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppSyncGraphQLApi_UserPoolConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppSyncGraphQLApi_UserPoolConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-appsync-graphqlschema.go b/cloudformation/resources/aws-appsync-graphqlschema.go similarity index 91% rename from cloudformation/aws-appsync-graphqlschema.go rename to cloudformation/resources/aws-appsync-graphqlschema.go index 79b96ca67e..39879f2187 100644 --- a/cloudformation/aws-appsync-graphqlschema.go +++ b/cloudformation/resources/aws-appsync-graphqlschema.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAppSyncGraphQLSchema AWS CloudFormation Resource (AWS::AppSync::GraphQLSchema) @@ -26,7 +27,7 @@ type AWSAppSyncGraphQLSchema struct { DefinitionS3Location string `json:"DefinitionS3Location,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSAppSyncGraphQLSchema) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppSyncGraphQLSchema) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppSyncGraphQLSchema) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSAppSyncGraphQLSchema) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-appsync-resolver.go b/cloudformation/resources/aws-appsync-resolver.go similarity index 93% rename from cloudformation/aws-appsync-resolver.go rename to cloudformation/resources/aws-appsync-resolver.go index 9c6bb56ef5..d6d040d974 100644 --- a/cloudformation/aws-appsync-resolver.go +++ b/cloudformation/resources/aws-appsync-resolver.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAppSyncResolver AWS CloudFormation Resource (AWS::AppSync::Resolver) @@ -61,7 +62,7 @@ type AWSAppSyncResolver struct { TypeName string `json:"TypeName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -101,7 +102,7 @@ func (r *AWSAppSyncResolver) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppSyncResolver) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppSyncResolver) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -112,9 +113,9 @@ func (r AWSAppSyncResolver) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-appsync-resolver_pipelineconfig.go b/cloudformation/resources/aws-appsync-resolver_pipelineconfig.go similarity index 93% rename from cloudformation/aws-appsync-resolver_pipelineconfig.go rename to cloudformation/resources/aws-appsync-resolver_pipelineconfig.go index e83edcc18d..9cb3b5eae4 100644 --- a/cloudformation/aws-appsync-resolver_pipelineconfig.go +++ b/cloudformation/resources/aws-appsync-resolver_pipelineconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAppSyncResolver_PipelineConfig AWS CloudFormation Resource (AWS::AppSync::Resolver.PipelineConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-pipelineconfig.html @@ -10,7 +12,7 @@ type AWSAppSyncResolver_PipelineConfig struct { Functions []string `json:"Functions,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSAppSyncResolver_PipelineConfig) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAppSyncResolver_PipelineConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAppSyncResolver_PipelineConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-athena-namedquery.go b/cloudformation/resources/aws-athena-namedquery.go similarity index 91% rename from cloudformation/aws-athena-namedquery.go rename to cloudformation/resources/aws-athena-namedquery.go index 2e98ce48d8..52ee07dbda 100644 --- a/cloudformation/aws-athena-namedquery.go +++ b/cloudformation/resources/aws-athena-namedquery.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAthenaNamedQuery AWS CloudFormation Resource (AWS::Athena::NamedQuery) @@ -31,7 +32,7 @@ type AWSAthenaNamedQuery struct { QueryString string `json:"QueryString,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSAthenaNamedQuery) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAthenaNamedQuery) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAthenaNamedQuery) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSAthenaNamedQuery) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-autoscaling-autoscalinggroup.go b/cloudformation/resources/aws-autoscaling-autoscalinggroup.go similarity index 94% rename from cloudformation/aws-autoscaling-autoscalinggroup.go rename to cloudformation/resources/aws-autoscaling-autoscalinggroup.go index 5123c8129d..3580e1f0ee 100644 --- a/cloudformation/aws-autoscaling-autoscalinggroup.go +++ b/cloudformation/resources/aws-autoscaling-autoscalinggroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAutoScalingAutoScalingGroup AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup) @@ -121,13 +122,13 @@ type AWSAutoScalingAutoScalingGroup struct { VPCZoneIdentifier []string `json:"VPCZoneIdentifier,omitempty"` // _updatePolicy represents a CloudFormation UpdatePolicy - _updatePolicy *UpdatePolicy + _updatePolicy *policies.UpdatePolicy // _creationPolicy represents a CloudFormation CreationPolicy - _creationPolicy *CreationPolicy + _creationPolicy *policies.CreationPolicy // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -167,19 +168,19 @@ func (r *AWSAutoScalingAutoScalingGroup) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingAutoScalingGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingAutoScalingGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } // SetUpdatePolicy applies an AWS CloudFormation UpdatePolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html -func (r *AWSAutoScalingAutoScalingGroup) SetUpdatePolicy(policy *UpdatePolicy) { +func (r *AWSAutoScalingAutoScalingGroup) SetUpdatePolicy(policy *policies.UpdatePolicy) { r._updatePolicy = policy } // SetCreationPolicy applies an AWS CloudFormation CreationPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-creationpolicy.html -func (r *AWSAutoScalingAutoScalingGroup) SetCreationPolicy(policy *CreationPolicy) { +func (r *AWSAutoScalingAutoScalingGroup) SetCreationPolicy(policy *policies.CreationPolicy) { r._creationPolicy = policy } @@ -190,11 +191,11 @@ func (r AWSAutoScalingAutoScalingGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` - UpdatePolicy *UpdatePolicy `json:"UpdatePolicy,omitempty"` - CreationPolicy *CreationPolicy `json:"CreationPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdatePolicy *policies.UpdatePolicy `json:"UpdatePolicy,omitempty"` + CreationPolicy *policies.CreationPolicy `json:"CreationPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-autoscaling-autoscalinggroup_instancesdistribution.go b/cloudformation/resources/aws-autoscaling-autoscalinggroup_instancesdistribution.go similarity index 96% rename from cloudformation/aws-autoscaling-autoscalinggroup_instancesdistribution.go rename to cloudformation/resources/aws-autoscaling-autoscalinggroup_instancesdistribution.go index 370678676d..4547480189 100644 --- a/cloudformation/aws-autoscaling-autoscalinggroup_instancesdistribution.go +++ b/cloudformation/resources/aws-autoscaling-autoscalinggroup_instancesdistribution.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingAutoScalingGroup_InstancesDistribution AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.InstancesDistribution) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancesdistribution.html @@ -35,7 +37,7 @@ type AWSAutoScalingAutoScalingGroup_InstancesDistribution struct { SpotMaxPrice string `json:"SpotMaxPrice,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSAutoScalingAutoScalingGroup_InstancesDistribution) SetMetadata(metad // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingAutoScalingGroup_InstancesDistribution) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingAutoScalingGroup_InstancesDistribution) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscaling-autoscalinggroup_launchtemplate.go b/cloudformation/resources/aws-autoscaling-autoscalinggroup_launchtemplate.go similarity index 94% rename from cloudformation/aws-autoscaling-autoscalinggroup_launchtemplate.go rename to cloudformation/resources/aws-autoscaling-autoscalinggroup_launchtemplate.go index 405ca64a32..30b92798bd 100644 --- a/cloudformation/aws-autoscaling-autoscalinggroup_launchtemplate.go +++ b/cloudformation/resources/aws-autoscaling-autoscalinggroup_launchtemplate.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingAutoScalingGroup_LaunchTemplate AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.LaunchTemplate) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-launchtemplate.html @@ -15,7 +17,7 @@ type AWSAutoScalingAutoScalingGroup_LaunchTemplate struct { Overrides []AWSAutoScalingAutoScalingGroup_LaunchTemplateOverrides `json:"Overrides,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAutoScalingAutoScalingGroup_LaunchTemplate) SetMetadata(metadata map // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingAutoScalingGroup_LaunchTemplate) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingAutoScalingGroup_LaunchTemplate) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscaling-autoscalinggroup_launchtemplateoverrides.go b/cloudformation/resources/aws-autoscaling-autoscalinggroup_launchtemplateoverrides.go similarity index 93% rename from cloudformation/aws-autoscaling-autoscalinggroup_launchtemplateoverrides.go rename to cloudformation/resources/aws-autoscaling-autoscalinggroup_launchtemplateoverrides.go index e4e5cdbd83..5f6addfd04 100644 --- a/cloudformation/aws-autoscaling-autoscalinggroup_launchtemplateoverrides.go +++ b/cloudformation/resources/aws-autoscaling-autoscalinggroup_launchtemplateoverrides.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingAutoScalingGroup_LaunchTemplateOverrides AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-launchtemplateoverrides.html @@ -10,7 +12,7 @@ type AWSAutoScalingAutoScalingGroup_LaunchTemplateOverrides struct { InstanceType string `json:"InstanceType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSAutoScalingAutoScalingGroup_LaunchTemplateOverrides) SetMetadata(met // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingAutoScalingGroup_LaunchTemplateOverrides) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingAutoScalingGroup_LaunchTemplateOverrides) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscaling-autoscalinggroup_launchtemplatespecification.go b/cloudformation/resources/aws-autoscaling-autoscalinggroup_launchtemplatespecification.go similarity index 95% rename from cloudformation/aws-autoscaling-autoscalinggroup_launchtemplatespecification.go rename to cloudformation/resources/aws-autoscaling-autoscalinggroup_launchtemplatespecification.go index 755084d908..877d1a0a67 100644 --- a/cloudformation/aws-autoscaling-autoscalinggroup_launchtemplatespecification.go +++ b/cloudformation/resources/aws-autoscaling-autoscalinggroup_launchtemplatespecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingAutoScalingGroup_LaunchTemplateSpecification AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplatespecification.html @@ -20,7 +22,7 @@ type AWSAutoScalingAutoScalingGroup_LaunchTemplateSpecification struct { Version string `json:"Version,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSAutoScalingAutoScalingGroup_LaunchTemplateSpecification) SetMetadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingAutoScalingGroup_LaunchTemplateSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingAutoScalingGroup_LaunchTemplateSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscaling-autoscalinggroup_lifecyclehookspecification.go b/cloudformation/resources/aws-autoscaling-autoscalinggroup_lifecyclehookspecification.go similarity index 96% rename from cloudformation/aws-autoscaling-autoscalinggroup_lifecyclehookspecification.go rename to cloudformation/resources/aws-autoscaling-autoscalinggroup_lifecyclehookspecification.go index 0bfaa60b80..2ec86f0c84 100644 --- a/cloudformation/aws-autoscaling-autoscalinggroup_lifecyclehookspecification.go +++ b/cloudformation/resources/aws-autoscaling-autoscalinggroup_lifecyclehookspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingAutoScalingGroup_LifecycleHookSpecification AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-lifecyclehookspecification.html @@ -40,7 +42,7 @@ type AWSAutoScalingAutoScalingGroup_LifecycleHookSpecification struct { RoleARN string `json:"RoleARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -80,6 +82,6 @@ func (r *AWSAutoScalingAutoScalingGroup_LifecycleHookSpecification) SetMetadata( // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingAutoScalingGroup_LifecycleHookSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingAutoScalingGroup_LifecycleHookSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscaling-autoscalinggroup_metricscollection.go b/cloudformation/resources/aws-autoscaling-autoscalinggroup_metricscollection.go similarity index 94% rename from cloudformation/aws-autoscaling-autoscalinggroup_metricscollection.go rename to cloudformation/resources/aws-autoscaling-autoscalinggroup_metricscollection.go index 436549bd59..6abf47eb38 100644 --- a/cloudformation/aws-autoscaling-autoscalinggroup_metricscollection.go +++ b/cloudformation/resources/aws-autoscaling-autoscalinggroup_metricscollection.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingAutoScalingGroup_MetricsCollection AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.MetricsCollection) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-metricscollection.html @@ -15,7 +17,7 @@ type AWSAutoScalingAutoScalingGroup_MetricsCollection struct { Metrics []string `json:"Metrics,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAutoScalingAutoScalingGroup_MetricsCollection) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingAutoScalingGroup_MetricsCollection) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingAutoScalingGroup_MetricsCollection) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscaling-autoscalinggroup_mixedinstancespolicy.go b/cloudformation/resources/aws-autoscaling-autoscalinggroup_mixedinstancespolicy.go similarity index 94% rename from cloudformation/aws-autoscaling-autoscalinggroup_mixedinstancespolicy.go rename to cloudformation/resources/aws-autoscaling-autoscalinggroup_mixedinstancespolicy.go index ab467f51cb..73813fd9b1 100644 --- a/cloudformation/aws-autoscaling-autoscalinggroup_mixedinstancespolicy.go +++ b/cloudformation/resources/aws-autoscaling-autoscalinggroup_mixedinstancespolicy.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingAutoScalingGroup_MixedInstancesPolicy AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-group-mixedinstancespolicy.html @@ -15,7 +17,7 @@ type AWSAutoScalingAutoScalingGroup_MixedInstancesPolicy struct { LaunchTemplate *AWSAutoScalingAutoScalingGroup_LaunchTemplate `json:"LaunchTemplate,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAutoScalingAutoScalingGroup_MixedInstancesPolicy) SetMetadata(metada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingAutoScalingGroup_MixedInstancesPolicy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingAutoScalingGroup_MixedInstancesPolicy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscaling-autoscalinggroup_notificationconfiguration.go b/cloudformation/resources/aws-autoscaling-autoscalinggroup_notificationconfiguration.go similarity index 94% rename from cloudformation/aws-autoscaling-autoscalinggroup_notificationconfiguration.go rename to cloudformation/resources/aws-autoscaling-autoscalinggroup_notificationconfiguration.go index 33705fe91d..e8aa7eb9dc 100644 --- a/cloudformation/aws-autoscaling-autoscalinggroup_notificationconfiguration.go +++ b/cloudformation/resources/aws-autoscaling-autoscalinggroup_notificationconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingAutoScalingGroup_NotificationConfiguration AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-notificationconfigurations.html @@ -15,7 +17,7 @@ type AWSAutoScalingAutoScalingGroup_NotificationConfiguration struct { TopicARN string `json:"TopicARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAutoScalingAutoScalingGroup_NotificationConfiguration) SetMetadata(m // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingAutoScalingGroup_NotificationConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingAutoScalingGroup_NotificationConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscaling-autoscalinggroup_tagproperty.go b/cloudformation/resources/aws-autoscaling-autoscalinggroup_tagproperty.go similarity index 94% rename from cloudformation/aws-autoscaling-autoscalinggroup_tagproperty.go rename to cloudformation/resources/aws-autoscaling-autoscalinggroup_tagproperty.go index ae926ff945..4062408ff2 100644 --- a/cloudformation/aws-autoscaling-autoscalinggroup_tagproperty.go +++ b/cloudformation/resources/aws-autoscaling-autoscalinggroup_tagproperty.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingAutoScalingGroup_TagProperty AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.TagProperty) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-tags.html @@ -20,7 +22,7 @@ type AWSAutoScalingAutoScalingGroup_TagProperty struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSAutoScalingAutoScalingGroup_TagProperty) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingAutoScalingGroup_TagProperty) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingAutoScalingGroup_TagProperty) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscaling-launchconfiguration.go b/cloudformation/resources/aws-autoscaling-launchconfiguration.go similarity index 95% rename from cloudformation/aws-autoscaling-launchconfiguration.go rename to cloudformation/resources/aws-autoscaling-launchconfiguration.go index 5e31d12633..2f9bc1f866 100644 --- a/cloudformation/aws-autoscaling-launchconfiguration.go +++ b/cloudformation/resources/aws-autoscaling-launchconfiguration.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAutoScalingLaunchConfiguration AWS CloudFormation Resource (AWS::AutoScaling::LaunchConfiguration) @@ -101,7 +102,7 @@ type AWSAutoScalingLaunchConfiguration struct { UserData string `json:"UserData,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -141,7 +142,7 @@ func (r *AWSAutoScalingLaunchConfiguration) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingLaunchConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingLaunchConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -152,9 +153,9 @@ func (r AWSAutoScalingLaunchConfiguration) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-autoscaling-launchconfiguration_blockdevice.go b/cloudformation/resources/aws-autoscaling-launchconfiguration_blockdevice.go similarity index 95% rename from cloudformation/aws-autoscaling-launchconfiguration_blockdevice.go rename to cloudformation/resources/aws-autoscaling-launchconfiguration_blockdevice.go index 95eb83a0ea..1ce7467834 100644 --- a/cloudformation/aws-autoscaling-launchconfiguration_blockdevice.go +++ b/cloudformation/resources/aws-autoscaling-launchconfiguration_blockdevice.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingLaunchConfiguration_BlockDevice AWS CloudFormation Resource (AWS::AutoScaling::LaunchConfiguration.BlockDevice) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html @@ -35,7 +37,7 @@ type AWSAutoScalingLaunchConfiguration_BlockDevice struct { VolumeType string `json:"VolumeType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSAutoScalingLaunchConfiguration_BlockDevice) SetMetadata(metadata map // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingLaunchConfiguration_BlockDevice) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingLaunchConfiguration_BlockDevice) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscaling-launchconfiguration_blockdevicemapping.go b/cloudformation/resources/aws-autoscaling-launchconfiguration_blockdevicemapping.go similarity index 95% rename from cloudformation/aws-autoscaling-launchconfiguration_blockdevicemapping.go rename to cloudformation/resources/aws-autoscaling-launchconfiguration_blockdevicemapping.go index a01e03b672..cbaee82997 100644 --- a/cloudformation/aws-autoscaling-launchconfiguration_blockdevicemapping.go +++ b/cloudformation/resources/aws-autoscaling-launchconfiguration_blockdevicemapping.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingLaunchConfiguration_BlockDeviceMapping AWS CloudFormation Resource (AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-mapping.html @@ -25,7 +27,7 @@ type AWSAutoScalingLaunchConfiguration_BlockDeviceMapping struct { VirtualName string `json:"VirtualName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSAutoScalingLaunchConfiguration_BlockDeviceMapping) SetMetadata(metad // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingLaunchConfiguration_BlockDeviceMapping) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingLaunchConfiguration_BlockDeviceMapping) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscaling-lifecyclehook.go b/cloudformation/resources/aws-autoscaling-lifecyclehook.go similarity index 93% rename from cloudformation/aws-autoscaling-lifecyclehook.go rename to cloudformation/resources/aws-autoscaling-lifecyclehook.go index 66e20c3c0f..431920a679 100644 --- a/cloudformation/aws-autoscaling-lifecyclehook.go +++ b/cloudformation/resources/aws-autoscaling-lifecyclehook.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAutoScalingLifecycleHook AWS CloudFormation Resource (AWS::AutoScaling::LifecycleHook) @@ -51,7 +52,7 @@ type AWSAutoScalingLifecycleHook struct { RoleARN string `json:"RoleARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -91,7 +92,7 @@ func (r *AWSAutoScalingLifecycleHook) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingLifecycleHook) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingLifecycleHook) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -102,9 +103,9 @@ func (r AWSAutoScalingLifecycleHook) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-autoscaling-scalingpolicy.go b/cloudformation/resources/aws-autoscaling-scalingpolicy.go similarity index 93% rename from cloudformation/aws-autoscaling-scalingpolicy.go rename to cloudformation/resources/aws-autoscaling-scalingpolicy.go index 8dd10f9a5f..e3ebdf1fc6 100644 --- a/cloudformation/aws-autoscaling-scalingpolicy.go +++ b/cloudformation/resources/aws-autoscaling-scalingpolicy.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAutoScalingScalingPolicy AWS CloudFormation Resource (AWS::AutoScaling::ScalingPolicy) @@ -61,7 +62,7 @@ type AWSAutoScalingScalingPolicy struct { TargetTrackingConfiguration *AWSAutoScalingScalingPolicy_TargetTrackingConfiguration `json:"TargetTrackingConfiguration,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -101,7 +102,7 @@ func (r *AWSAutoScalingScalingPolicy) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingScalingPolicy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingScalingPolicy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -112,9 +113,9 @@ func (r AWSAutoScalingScalingPolicy) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-autoscaling-scalingpolicy_customizedmetricspecification.go b/cloudformation/resources/aws-autoscaling-scalingpolicy_customizedmetricspecification.go similarity index 95% rename from cloudformation/aws-autoscaling-scalingpolicy_customizedmetricspecification.go rename to cloudformation/resources/aws-autoscaling-scalingpolicy_customizedmetricspecification.go index 9586e38d0b..d1385cab10 100644 --- a/cloudformation/aws-autoscaling-scalingpolicy_customizedmetricspecification.go +++ b/cloudformation/resources/aws-autoscaling-scalingpolicy_customizedmetricspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingScalingPolicy_CustomizedMetricSpecification AWS CloudFormation Resource (AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-customizedmetricspecification.html @@ -30,7 +32,7 @@ type AWSAutoScalingScalingPolicy_CustomizedMetricSpecification struct { Unit string `json:"Unit,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSAutoScalingScalingPolicy_CustomizedMetricSpecification) SetMetadata( // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingScalingPolicy_CustomizedMetricSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingScalingPolicy_CustomizedMetricSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscaling-scalingpolicy_metricdimension.go b/cloudformation/resources/aws-autoscaling-scalingpolicy_metricdimension.go similarity index 94% rename from cloudformation/aws-autoscaling-scalingpolicy_metricdimension.go rename to cloudformation/resources/aws-autoscaling-scalingpolicy_metricdimension.go index 102cb60164..a071bca207 100644 --- a/cloudformation/aws-autoscaling-scalingpolicy_metricdimension.go +++ b/cloudformation/resources/aws-autoscaling-scalingpolicy_metricdimension.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingScalingPolicy_MetricDimension AWS CloudFormation Resource (AWS::AutoScaling::ScalingPolicy.MetricDimension) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricdimension.html @@ -15,7 +17,7 @@ type AWSAutoScalingScalingPolicy_MetricDimension struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAutoScalingScalingPolicy_MetricDimension) SetMetadata(metadata map[s // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingScalingPolicy_MetricDimension) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingScalingPolicy_MetricDimension) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscaling-scalingpolicy_predefinedmetricspecification.go b/cloudformation/resources/aws-autoscaling-scalingpolicy_predefinedmetricspecification.go similarity index 94% rename from cloudformation/aws-autoscaling-scalingpolicy_predefinedmetricspecification.go rename to cloudformation/resources/aws-autoscaling-scalingpolicy_predefinedmetricspecification.go index ed1c5173aa..aecfd407b6 100644 --- a/cloudformation/aws-autoscaling-scalingpolicy_predefinedmetricspecification.go +++ b/cloudformation/resources/aws-autoscaling-scalingpolicy_predefinedmetricspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingScalingPolicy_PredefinedMetricSpecification AWS CloudFormation Resource (AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predefinedmetricspecification.html @@ -15,7 +17,7 @@ type AWSAutoScalingScalingPolicy_PredefinedMetricSpecification struct { ResourceLabel string `json:"ResourceLabel,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAutoScalingScalingPolicy_PredefinedMetricSpecification) SetMetadata( // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingScalingPolicy_PredefinedMetricSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingScalingPolicy_PredefinedMetricSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscaling-scalingpolicy_stepadjustment.go b/cloudformation/resources/aws-autoscaling-scalingpolicy_stepadjustment.go similarity index 95% rename from cloudformation/aws-autoscaling-scalingpolicy_stepadjustment.go rename to cloudformation/resources/aws-autoscaling-scalingpolicy_stepadjustment.go index 24a0b0f761..e3f3a204ac 100644 --- a/cloudformation/aws-autoscaling-scalingpolicy_stepadjustment.go +++ b/cloudformation/resources/aws-autoscaling-scalingpolicy_stepadjustment.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingScalingPolicy_StepAdjustment AWS CloudFormation Resource (AWS::AutoScaling::ScalingPolicy.StepAdjustment) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-stepadjustments.html @@ -20,7 +22,7 @@ type AWSAutoScalingScalingPolicy_StepAdjustment struct { ScalingAdjustment int `json:"ScalingAdjustment"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSAutoScalingScalingPolicy_StepAdjustment) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingScalingPolicy_StepAdjustment) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingScalingPolicy_StepAdjustment) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscaling-scalingpolicy_targettrackingconfiguration.go b/cloudformation/resources/aws-autoscaling-scalingpolicy_targettrackingconfiguration.go similarity index 95% rename from cloudformation/aws-autoscaling-scalingpolicy_targettrackingconfiguration.go rename to cloudformation/resources/aws-autoscaling-scalingpolicy_targettrackingconfiguration.go index 52cdcc9804..57bfd9e5e7 100644 --- a/cloudformation/aws-autoscaling-scalingpolicy_targettrackingconfiguration.go +++ b/cloudformation/resources/aws-autoscaling-scalingpolicy_targettrackingconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingScalingPolicy_TargetTrackingConfiguration AWS CloudFormation Resource (AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-targettrackingconfiguration.html @@ -25,7 +27,7 @@ type AWSAutoScalingScalingPolicy_TargetTrackingConfiguration struct { TargetValue float64 `json:"TargetValue"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSAutoScalingScalingPolicy_TargetTrackingConfiguration) SetMetadata(me // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingScalingPolicy_TargetTrackingConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingScalingPolicy_TargetTrackingConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscaling-scheduledaction.go b/cloudformation/resources/aws-autoscaling-scheduledaction.go similarity index 93% rename from cloudformation/aws-autoscaling-scheduledaction.go rename to cloudformation/resources/aws-autoscaling-scheduledaction.go index fe4f9cc7e8..0c2819e155 100644 --- a/cloudformation/aws-autoscaling-scheduledaction.go +++ b/cloudformation/resources/aws-autoscaling-scheduledaction.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAutoScalingScheduledAction AWS CloudFormation Resource (AWS::AutoScaling::ScheduledAction) @@ -46,7 +47,7 @@ type AWSAutoScalingScheduledAction struct { StartTime string `json:"StartTime,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSAutoScalingScheduledAction) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingScheduledAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingScheduledAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSAutoScalingScheduledAction) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-autoscalingplans-scalingplan.go b/cloudformation/resources/aws-autoscalingplans-scalingplan.go similarity index 92% rename from cloudformation/aws-autoscalingplans-scalingplan.go rename to cloudformation/resources/aws-autoscalingplans-scalingplan.go index c93d8acc3b..8d32bec436 100644 --- a/cloudformation/aws-autoscalingplans-scalingplan.go +++ b/cloudformation/resources/aws-autoscalingplans-scalingplan.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSAutoScalingPlansScalingPlan AWS CloudFormation Resource (AWS::AutoScalingPlans::ScalingPlan) @@ -21,7 +22,7 @@ type AWSAutoScalingPlansScalingPlan struct { ScalingInstructions []AWSAutoScalingPlansScalingPlan_ScalingInstruction `json:"ScalingInstructions,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSAutoScalingPlansScalingPlan) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingPlansScalingPlan) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingPlansScalingPlan) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSAutoScalingPlansScalingPlan) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-autoscalingplans-scalingplan_applicationsource.go b/cloudformation/resources/aws-autoscalingplans-scalingplan_applicationsource.go similarity index 94% rename from cloudformation/aws-autoscalingplans-scalingplan_applicationsource.go rename to cloudformation/resources/aws-autoscalingplans-scalingplan_applicationsource.go index 26029be646..00fcbf3274 100644 --- a/cloudformation/aws-autoscalingplans-scalingplan_applicationsource.go +++ b/cloudformation/resources/aws-autoscalingplans-scalingplan_applicationsource.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingPlansScalingPlan_ApplicationSource AWS CloudFormation Resource (AWS::AutoScalingPlans::ScalingPlan.ApplicationSource) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-applicationsource.html @@ -15,7 +17,7 @@ type AWSAutoScalingPlansScalingPlan_ApplicationSource struct { TagFilters []AWSAutoScalingPlansScalingPlan_TagFilter `json:"TagFilters,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAutoScalingPlansScalingPlan_ApplicationSource) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingPlansScalingPlan_ApplicationSource) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingPlansScalingPlan_ApplicationSource) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscalingplans-scalingplan_customizedloadmetricspecification.go b/cloudformation/resources/aws-autoscalingplans-scalingplan_customizedloadmetricspecification.go similarity index 95% rename from cloudformation/aws-autoscalingplans-scalingplan_customizedloadmetricspecification.go rename to cloudformation/resources/aws-autoscalingplans-scalingplan_customizedloadmetricspecification.go index 0d38bf687d..2a5cb93690 100644 --- a/cloudformation/aws-autoscalingplans-scalingplan_customizedloadmetricspecification.go +++ b/cloudformation/resources/aws-autoscalingplans-scalingplan_customizedloadmetricspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingPlansScalingPlan_CustomizedLoadMetricSpecification AWS CloudFormation Resource (AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedloadmetricspecification.html @@ -30,7 +32,7 @@ type AWSAutoScalingPlansScalingPlan_CustomizedLoadMetricSpecification struct { Unit string `json:"Unit,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSAutoScalingPlansScalingPlan_CustomizedLoadMetricSpecification) SetMe // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingPlansScalingPlan_CustomizedLoadMetricSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingPlansScalingPlan_CustomizedLoadMetricSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscalingplans-scalingplan_customizedscalingmetricspecification.go b/cloudformation/resources/aws-autoscalingplans-scalingplan_customizedscalingmetricspecification.go similarity index 95% rename from cloudformation/aws-autoscalingplans-scalingplan_customizedscalingmetricspecification.go rename to cloudformation/resources/aws-autoscalingplans-scalingplan_customizedscalingmetricspecification.go index 71d13b79af..0f7abc640d 100644 --- a/cloudformation/aws-autoscalingplans-scalingplan_customizedscalingmetricspecification.go +++ b/cloudformation/resources/aws-autoscalingplans-scalingplan_customizedscalingmetricspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingPlansScalingPlan_CustomizedScalingMetricSpecification AWS CloudFormation Resource (AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedscalingmetricspecification.html @@ -30,7 +32,7 @@ type AWSAutoScalingPlansScalingPlan_CustomizedScalingMetricSpecification struct Unit string `json:"Unit,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSAutoScalingPlansScalingPlan_CustomizedScalingMetricSpecification) Se // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingPlansScalingPlan_CustomizedScalingMetricSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingPlansScalingPlan_CustomizedScalingMetricSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscalingplans-scalingplan_metricdimension.go b/cloudformation/resources/aws-autoscalingplans-scalingplan_metricdimension.go similarity index 94% rename from cloudformation/aws-autoscalingplans-scalingplan_metricdimension.go rename to cloudformation/resources/aws-autoscalingplans-scalingplan_metricdimension.go index 333adf2833..1577ff9535 100644 --- a/cloudformation/aws-autoscalingplans-scalingplan_metricdimension.go +++ b/cloudformation/resources/aws-autoscalingplans-scalingplan_metricdimension.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingPlansScalingPlan_MetricDimension AWS CloudFormation Resource (AWS::AutoScalingPlans::ScalingPlan.MetricDimension) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-metricdimension.html @@ -15,7 +17,7 @@ type AWSAutoScalingPlansScalingPlan_MetricDimension struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAutoScalingPlansScalingPlan_MetricDimension) SetMetadata(metadata ma // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingPlansScalingPlan_MetricDimension) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingPlansScalingPlan_MetricDimension) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscalingplans-scalingplan_predefinedloadmetricspecification.go b/cloudformation/resources/aws-autoscalingplans-scalingplan_predefinedloadmetricspecification.go similarity index 94% rename from cloudformation/aws-autoscalingplans-scalingplan_predefinedloadmetricspecification.go rename to cloudformation/resources/aws-autoscalingplans-scalingplan_predefinedloadmetricspecification.go index 647ad20fc2..6f07f3c2c4 100644 --- a/cloudformation/aws-autoscalingplans-scalingplan_predefinedloadmetricspecification.go +++ b/cloudformation/resources/aws-autoscalingplans-scalingplan_predefinedloadmetricspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingPlansScalingPlan_PredefinedLoadMetricSpecification AWS CloudFormation Resource (AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-predefinedloadmetricspecification.html @@ -15,7 +17,7 @@ type AWSAutoScalingPlansScalingPlan_PredefinedLoadMetricSpecification struct { ResourceLabel string `json:"ResourceLabel,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAutoScalingPlansScalingPlan_PredefinedLoadMetricSpecification) SetMe // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingPlansScalingPlan_PredefinedLoadMetricSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingPlansScalingPlan_PredefinedLoadMetricSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscalingplans-scalingplan_predefinedscalingmetricspecification.go b/cloudformation/resources/aws-autoscalingplans-scalingplan_predefinedscalingmetricspecification.go similarity index 94% rename from cloudformation/aws-autoscalingplans-scalingplan_predefinedscalingmetricspecification.go rename to cloudformation/resources/aws-autoscalingplans-scalingplan_predefinedscalingmetricspecification.go index fe446f71e7..da2b77001b 100644 --- a/cloudformation/aws-autoscalingplans-scalingplan_predefinedscalingmetricspecification.go +++ b/cloudformation/resources/aws-autoscalingplans-scalingplan_predefinedscalingmetricspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingPlansScalingPlan_PredefinedScalingMetricSpecification AWS CloudFormation Resource (AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-predefinedscalingmetricspecification.html @@ -15,7 +17,7 @@ type AWSAutoScalingPlansScalingPlan_PredefinedScalingMetricSpecification struct ResourceLabel string `json:"ResourceLabel,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAutoScalingPlansScalingPlan_PredefinedScalingMetricSpecification) Se // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingPlansScalingPlan_PredefinedScalingMetricSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingPlansScalingPlan_PredefinedScalingMetricSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscalingplans-scalingplan_scalinginstruction.go b/cloudformation/resources/aws-autoscalingplans-scalingplan_scalinginstruction.go similarity index 97% rename from cloudformation/aws-autoscalingplans-scalingplan_scalinginstruction.go rename to cloudformation/resources/aws-autoscalingplans-scalingplan_scalinginstruction.go index 8074a2aff5..7e1f5157ae 100644 --- a/cloudformation/aws-autoscalingplans-scalingplan_scalinginstruction.go +++ b/cloudformation/resources/aws-autoscalingplans-scalingplan_scalinginstruction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingPlansScalingPlan_ScalingInstruction AWS CloudFormation Resource (AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html @@ -75,7 +77,7 @@ type AWSAutoScalingPlansScalingPlan_ScalingInstruction struct { TargetTrackingConfigurations []AWSAutoScalingPlansScalingPlan_TargetTrackingConfiguration `json:"TargetTrackingConfigurations,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -115,6 +117,6 @@ func (r *AWSAutoScalingPlansScalingPlan_ScalingInstruction) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingPlansScalingPlan_ScalingInstruction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingPlansScalingPlan_ScalingInstruction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscalingplans-scalingplan_tagfilter.go b/cloudformation/resources/aws-autoscalingplans-scalingplan_tagfilter.go similarity index 94% rename from cloudformation/aws-autoscalingplans-scalingplan_tagfilter.go rename to cloudformation/resources/aws-autoscalingplans-scalingplan_tagfilter.go index 22ec9bbf8a..446f714b03 100644 --- a/cloudformation/aws-autoscalingplans-scalingplan_tagfilter.go +++ b/cloudformation/resources/aws-autoscalingplans-scalingplan_tagfilter.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingPlansScalingPlan_TagFilter AWS CloudFormation Resource (AWS::AutoScalingPlans::ScalingPlan.TagFilter) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-tagfilter.html @@ -15,7 +17,7 @@ type AWSAutoScalingPlansScalingPlan_TagFilter struct { Values []string `json:"Values,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSAutoScalingPlansScalingPlan_TagFilter) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingPlansScalingPlan_TagFilter) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingPlansScalingPlan_TagFilter) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-autoscalingplans-scalingplan_targettrackingconfiguration.go b/cloudformation/resources/aws-autoscalingplans-scalingplan_targettrackingconfiguration.go similarity index 96% rename from cloudformation/aws-autoscalingplans-scalingplan_targettrackingconfiguration.go rename to cloudformation/resources/aws-autoscalingplans-scalingplan_targettrackingconfiguration.go index 14a0a5e497..dacde07a9f 100644 --- a/cloudformation/aws-autoscalingplans-scalingplan_targettrackingconfiguration.go +++ b/cloudformation/resources/aws-autoscalingplans-scalingplan_targettrackingconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSAutoScalingPlansScalingPlan_TargetTrackingConfiguration AWS CloudFormation Resource (AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-targettrackingconfiguration.html @@ -40,7 +42,7 @@ type AWSAutoScalingPlansScalingPlan_TargetTrackingConfiguration struct { TargetValue float64 `json:"TargetValue"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -80,6 +82,6 @@ func (r *AWSAutoScalingPlansScalingPlan_TargetTrackingConfiguration) SetMetadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSAutoScalingPlansScalingPlan_TargetTrackingConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSAutoScalingPlansScalingPlan_TargetTrackingConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-batch-computeenvironment.go b/cloudformation/resources/aws-batch-computeenvironment.go similarity index 92% rename from cloudformation/aws-batch-computeenvironment.go rename to cloudformation/resources/aws-batch-computeenvironment.go index e715e0ff9d..bcd07eb3a7 100644 --- a/cloudformation/aws-batch-computeenvironment.go +++ b/cloudformation/resources/aws-batch-computeenvironment.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSBatchComputeEnvironment AWS CloudFormation Resource (AWS::Batch::ComputeEnvironment) @@ -36,7 +37,7 @@ type AWSBatchComputeEnvironment struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSBatchComputeEnvironment) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBatchComputeEnvironment) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBatchComputeEnvironment) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSBatchComputeEnvironment) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-batch-computeenvironment_computeresources.go b/cloudformation/resources/aws-batch-computeenvironment_computeresources.go similarity index 97% rename from cloudformation/aws-batch-computeenvironment_computeresources.go rename to cloudformation/resources/aws-batch-computeenvironment_computeresources.go index ebe73cb15c..b04b1ee33b 100644 --- a/cloudformation/aws-batch-computeenvironment_computeresources.go +++ b/cloudformation/resources/aws-batch-computeenvironment_computeresources.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSBatchComputeEnvironment_ComputeResources AWS CloudFormation Resource (AWS::Batch::ComputeEnvironment.ComputeResources) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html @@ -80,7 +82,7 @@ type AWSBatchComputeEnvironment_ComputeResources struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -120,6 +122,6 @@ func (r *AWSBatchComputeEnvironment_ComputeResources) SetMetadata(metadata map[s // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBatchComputeEnvironment_ComputeResources) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBatchComputeEnvironment_ComputeResources) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-batch-computeenvironment_launchtemplatespecification.go b/cloudformation/resources/aws-batch-computeenvironment_launchtemplatespecification.go similarity index 95% rename from cloudformation/aws-batch-computeenvironment_launchtemplatespecification.go rename to cloudformation/resources/aws-batch-computeenvironment_launchtemplatespecification.go index 35848634e5..e6cf06d6d1 100644 --- a/cloudformation/aws-batch-computeenvironment_launchtemplatespecification.go +++ b/cloudformation/resources/aws-batch-computeenvironment_launchtemplatespecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSBatchComputeEnvironment_LaunchTemplateSpecification AWS CloudFormation Resource (AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-launchtemplatespecification.html @@ -20,7 +22,7 @@ type AWSBatchComputeEnvironment_LaunchTemplateSpecification struct { Version string `json:"Version,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSBatchComputeEnvironment_LaunchTemplateSpecification) SetMetadata(met // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBatchComputeEnvironment_LaunchTemplateSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBatchComputeEnvironment_LaunchTemplateSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-batch-jobdefinition.go b/cloudformation/resources/aws-batch-jobdefinition.go similarity index 92% rename from cloudformation/aws-batch-jobdefinition.go rename to cloudformation/resources/aws-batch-jobdefinition.go index 33ebc96984..5e7cd1f0f6 100644 --- a/cloudformation/aws-batch-jobdefinition.go +++ b/cloudformation/resources/aws-batch-jobdefinition.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSBatchJobDefinition AWS CloudFormation Resource (AWS::Batch::JobDefinition) @@ -46,7 +47,7 @@ type AWSBatchJobDefinition struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSBatchJobDefinition) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBatchJobDefinition) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBatchJobDefinition) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSBatchJobDefinition) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-batch-jobdefinition_containerproperties.go b/cloudformation/resources/aws-batch-jobdefinition_containerproperties.go similarity index 97% rename from cloudformation/aws-batch-jobdefinition_containerproperties.go rename to cloudformation/resources/aws-batch-jobdefinition_containerproperties.go index 41b6aab7b7..ddcdeaa2a3 100644 --- a/cloudformation/aws-batch-jobdefinition_containerproperties.go +++ b/cloudformation/resources/aws-batch-jobdefinition_containerproperties.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSBatchJobDefinition_ContainerProperties AWS CloudFormation Resource (AWS::Batch::JobDefinition.ContainerProperties) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html @@ -70,7 +72,7 @@ type AWSBatchJobDefinition_ContainerProperties struct { Volumes []AWSBatchJobDefinition_Volumes `json:"Volumes,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -110,6 +112,6 @@ func (r *AWSBatchJobDefinition_ContainerProperties) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBatchJobDefinition_ContainerProperties) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBatchJobDefinition_ContainerProperties) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-batch-jobdefinition_environment.go b/cloudformation/resources/aws-batch-jobdefinition_environment.go similarity index 94% rename from cloudformation/aws-batch-jobdefinition_environment.go rename to cloudformation/resources/aws-batch-jobdefinition_environment.go index 541a3f2065..e616061282 100644 --- a/cloudformation/aws-batch-jobdefinition_environment.go +++ b/cloudformation/resources/aws-batch-jobdefinition_environment.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSBatchJobDefinition_Environment AWS CloudFormation Resource (AWS::Batch::JobDefinition.Environment) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-environment.html @@ -15,7 +17,7 @@ type AWSBatchJobDefinition_Environment struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSBatchJobDefinition_Environment) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBatchJobDefinition_Environment) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBatchJobDefinition_Environment) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-batch-jobdefinition_mountpoints.go b/cloudformation/resources/aws-batch-jobdefinition_mountpoints.go similarity index 95% rename from cloudformation/aws-batch-jobdefinition_mountpoints.go rename to cloudformation/resources/aws-batch-jobdefinition_mountpoints.go index 9208e0d787..3c0f9e13a6 100644 --- a/cloudformation/aws-batch-jobdefinition_mountpoints.go +++ b/cloudformation/resources/aws-batch-jobdefinition_mountpoints.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSBatchJobDefinition_MountPoints AWS CloudFormation Resource (AWS::Batch::JobDefinition.MountPoints) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html @@ -20,7 +22,7 @@ type AWSBatchJobDefinition_MountPoints struct { SourceVolume string `json:"SourceVolume,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSBatchJobDefinition_MountPoints) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBatchJobDefinition_MountPoints) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBatchJobDefinition_MountPoints) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-batch-jobdefinition_nodeproperties.go b/cloudformation/resources/aws-batch-jobdefinition_nodeproperties.go similarity index 95% rename from cloudformation/aws-batch-jobdefinition_nodeproperties.go rename to cloudformation/resources/aws-batch-jobdefinition_nodeproperties.go index 071ec81263..bfadd35ad0 100644 --- a/cloudformation/aws-batch-jobdefinition_nodeproperties.go +++ b/cloudformation/resources/aws-batch-jobdefinition_nodeproperties.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSBatchJobDefinition_NodeProperties AWS CloudFormation Resource (AWS::Batch::JobDefinition.NodeProperties) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-nodeproperties.html @@ -20,7 +22,7 @@ type AWSBatchJobDefinition_NodeProperties struct { NumNodes int `json:"NumNodes"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSBatchJobDefinition_NodeProperties) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBatchJobDefinition_NodeProperties) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBatchJobDefinition_NodeProperties) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-batch-jobdefinition_noderangeproperty.go b/cloudformation/resources/aws-batch-jobdefinition_noderangeproperty.go similarity index 94% rename from cloudformation/aws-batch-jobdefinition_noderangeproperty.go rename to cloudformation/resources/aws-batch-jobdefinition_noderangeproperty.go index 326d99fb92..6612cbe595 100644 --- a/cloudformation/aws-batch-jobdefinition_noderangeproperty.go +++ b/cloudformation/resources/aws-batch-jobdefinition_noderangeproperty.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSBatchJobDefinition_NodeRangeProperty AWS CloudFormation Resource (AWS::Batch::JobDefinition.NodeRangeProperty) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-noderangeproperty.html @@ -15,7 +17,7 @@ type AWSBatchJobDefinition_NodeRangeProperty struct { TargetNodes string `json:"TargetNodes,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSBatchJobDefinition_NodeRangeProperty) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBatchJobDefinition_NodeRangeProperty) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBatchJobDefinition_NodeRangeProperty) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-batch-jobdefinition_retrystrategy.go b/cloudformation/resources/aws-batch-jobdefinition_retrystrategy.go similarity index 93% rename from cloudformation/aws-batch-jobdefinition_retrystrategy.go rename to cloudformation/resources/aws-batch-jobdefinition_retrystrategy.go index 28cb042c35..bc745242dd 100644 --- a/cloudformation/aws-batch-jobdefinition_retrystrategy.go +++ b/cloudformation/resources/aws-batch-jobdefinition_retrystrategy.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSBatchJobDefinition_RetryStrategy AWS CloudFormation Resource (AWS::Batch::JobDefinition.RetryStrategy) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-retrystrategy.html @@ -10,7 +12,7 @@ type AWSBatchJobDefinition_RetryStrategy struct { Attempts int `json:"Attempts,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSBatchJobDefinition_RetryStrategy) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBatchJobDefinition_RetryStrategy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBatchJobDefinition_RetryStrategy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-batch-jobdefinition_timeout.go b/cloudformation/resources/aws-batch-jobdefinition_timeout.go similarity index 94% rename from cloudformation/aws-batch-jobdefinition_timeout.go rename to cloudformation/resources/aws-batch-jobdefinition_timeout.go index 7332e4704a..a608c5cf3c 100644 --- a/cloudformation/aws-batch-jobdefinition_timeout.go +++ b/cloudformation/resources/aws-batch-jobdefinition_timeout.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSBatchJobDefinition_Timeout AWS CloudFormation Resource (AWS::Batch::JobDefinition.Timeout) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-timeout.html @@ -10,7 +12,7 @@ type AWSBatchJobDefinition_Timeout struct { AttemptDurationSeconds int `json:"AttemptDurationSeconds,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSBatchJobDefinition_Timeout) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBatchJobDefinition_Timeout) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBatchJobDefinition_Timeout) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-batch-jobdefinition_ulimit.go b/cloudformation/resources/aws-batch-jobdefinition_ulimit.go similarity index 94% rename from cloudformation/aws-batch-jobdefinition_ulimit.go rename to cloudformation/resources/aws-batch-jobdefinition_ulimit.go index 6fc097936c..34365950a7 100644 --- a/cloudformation/aws-batch-jobdefinition_ulimit.go +++ b/cloudformation/resources/aws-batch-jobdefinition_ulimit.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSBatchJobDefinition_Ulimit AWS CloudFormation Resource (AWS::Batch::JobDefinition.Ulimit) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html @@ -20,7 +22,7 @@ type AWSBatchJobDefinition_Ulimit struct { SoftLimit int `json:"SoftLimit"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSBatchJobDefinition_Ulimit) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBatchJobDefinition_Ulimit) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBatchJobDefinition_Ulimit) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-batch-jobdefinition_volumes.go b/cloudformation/resources/aws-batch-jobdefinition_volumes.go similarity index 94% rename from cloudformation/aws-batch-jobdefinition_volumes.go rename to cloudformation/resources/aws-batch-jobdefinition_volumes.go index caa57b4eaa..6e03487e61 100644 --- a/cloudformation/aws-batch-jobdefinition_volumes.go +++ b/cloudformation/resources/aws-batch-jobdefinition_volumes.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSBatchJobDefinition_Volumes AWS CloudFormation Resource (AWS::Batch::JobDefinition.Volumes) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html @@ -15,7 +17,7 @@ type AWSBatchJobDefinition_Volumes struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSBatchJobDefinition_Volumes) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBatchJobDefinition_Volumes) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBatchJobDefinition_Volumes) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-batch-jobdefinition_volumeshost.go b/cloudformation/resources/aws-batch-jobdefinition_volumeshost.go similarity index 93% rename from cloudformation/aws-batch-jobdefinition_volumeshost.go rename to cloudformation/resources/aws-batch-jobdefinition_volumeshost.go index 4ab03f1eb2..2d2d73ca59 100644 --- a/cloudformation/aws-batch-jobdefinition_volumeshost.go +++ b/cloudformation/resources/aws-batch-jobdefinition_volumeshost.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSBatchJobDefinition_VolumesHost AWS CloudFormation Resource (AWS::Batch::JobDefinition.VolumesHost) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumeshost.html @@ -10,7 +12,7 @@ type AWSBatchJobDefinition_VolumesHost struct { SourcePath string `json:"SourcePath,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSBatchJobDefinition_VolumesHost) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBatchJobDefinition_VolumesHost) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBatchJobDefinition_VolumesHost) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-batch-jobqueue.go b/cloudformation/resources/aws-batch-jobqueue.go similarity index 91% rename from cloudformation/aws-batch-jobqueue.go rename to cloudformation/resources/aws-batch-jobqueue.go index b997cfdc75..62fc252f51 100644 --- a/cloudformation/aws-batch-jobqueue.go +++ b/cloudformation/resources/aws-batch-jobqueue.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSBatchJobQueue AWS CloudFormation Resource (AWS::Batch::JobQueue) @@ -31,7 +32,7 @@ type AWSBatchJobQueue struct { State string `json:"State,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSBatchJobQueue) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBatchJobQueue) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBatchJobQueue) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSBatchJobQueue) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-batch-jobqueue_computeenvironmentorder.go b/cloudformation/resources/aws-batch-jobqueue_computeenvironmentorder.go similarity index 94% rename from cloudformation/aws-batch-jobqueue_computeenvironmentorder.go rename to cloudformation/resources/aws-batch-jobqueue_computeenvironmentorder.go index 4197032106..d640751604 100644 --- a/cloudformation/aws-batch-jobqueue_computeenvironmentorder.go +++ b/cloudformation/resources/aws-batch-jobqueue_computeenvironmentorder.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSBatchJobQueue_ComputeEnvironmentOrder AWS CloudFormation Resource (AWS::Batch::JobQueue.ComputeEnvironmentOrder) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-computeenvironmentorder.html @@ -15,7 +17,7 @@ type AWSBatchJobQueue_ComputeEnvironmentOrder struct { Order int `json:"Order"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSBatchJobQueue_ComputeEnvironmentOrder) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBatchJobQueue_ComputeEnvironmentOrder) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBatchJobQueue_ComputeEnvironmentOrder) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-budgets-budget.go b/cloudformation/resources/aws-budgets-budget.go similarity index 90% rename from cloudformation/aws-budgets-budget.go rename to cloudformation/resources/aws-budgets-budget.go index 81eb259bb2..566dc26833 100644 --- a/cloudformation/aws-budgets-budget.go +++ b/cloudformation/resources/aws-budgets-budget.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSBudgetsBudget AWS CloudFormation Resource (AWS::Budgets::Budget) @@ -21,7 +22,7 @@ type AWSBudgetsBudget struct { NotificationsWithSubscribers []AWSBudgetsBudget_NotificationWithSubscribers `json:"NotificationsWithSubscribers,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSBudgetsBudget) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBudgetsBudget) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBudgetsBudget) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSBudgetsBudget) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-budgets-budget_budgetdata.go b/cloudformation/resources/aws-budgets-budget_budgetdata.go similarity index 94% rename from cloudformation/aws-budgets-budget_budgetdata.go rename to cloudformation/resources/aws-budgets-budget_budgetdata.go index dbd880d466..edf335d2ea 100644 --- a/cloudformation/aws-budgets-budget_budgetdata.go +++ b/cloudformation/resources/aws-budgets-budget_budgetdata.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSBudgetsBudget_BudgetData AWS CloudFormation Resource (AWS::Budgets::Budget.BudgetData) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html @@ -40,7 +42,7 @@ type AWSBudgetsBudget_BudgetData struct { TimeUnit string `json:"TimeUnit,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -80,6 +82,6 @@ func (r *AWSBudgetsBudget_BudgetData) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBudgetsBudget_BudgetData) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBudgetsBudget_BudgetData) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-budgets-budget_costtypes.go b/cloudformation/resources/aws-budgets-budget_costtypes.go similarity index 96% rename from cloudformation/aws-budgets-budget_costtypes.go rename to cloudformation/resources/aws-budgets-budget_costtypes.go index e259c94e39..85c4737c67 100644 --- a/cloudformation/aws-budgets-budget_costtypes.go +++ b/cloudformation/resources/aws-budgets-budget_costtypes.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSBudgetsBudget_CostTypes AWS CloudFormation Resource (AWS::Budgets::Budget.CostTypes) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html @@ -60,7 +62,7 @@ type AWSBudgetsBudget_CostTypes struct { UseBlended bool `json:"UseBlended,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -100,6 +102,6 @@ func (r *AWSBudgetsBudget_CostTypes) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBudgetsBudget_CostTypes) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBudgetsBudget_CostTypes) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-budgets-budget_notification.go b/cloudformation/resources/aws-budgets-budget_notification.go similarity index 95% rename from cloudformation/aws-budgets-budget_notification.go rename to cloudformation/resources/aws-budgets-budget_notification.go index d14d4b228a..db1585b160 100644 --- a/cloudformation/aws-budgets-budget_notification.go +++ b/cloudformation/resources/aws-budgets-budget_notification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSBudgetsBudget_Notification AWS CloudFormation Resource (AWS::Budgets::Budget.Notification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notification.html @@ -25,7 +27,7 @@ type AWSBudgetsBudget_Notification struct { ThresholdType string `json:"ThresholdType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSBudgetsBudget_Notification) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBudgetsBudget_Notification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBudgetsBudget_Notification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-budgets-budget_notificationwithsubscribers.go b/cloudformation/resources/aws-budgets-budget_notificationwithsubscribers.go similarity index 94% rename from cloudformation/aws-budgets-budget_notificationwithsubscribers.go rename to cloudformation/resources/aws-budgets-budget_notificationwithsubscribers.go index cd55d29330..5f89f2afe2 100644 --- a/cloudformation/aws-budgets-budget_notificationwithsubscribers.go +++ b/cloudformation/resources/aws-budgets-budget_notificationwithsubscribers.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSBudgetsBudget_NotificationWithSubscribers AWS CloudFormation Resource (AWS::Budgets::Budget.NotificationWithSubscribers) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notificationwithsubscribers.html @@ -15,7 +17,7 @@ type AWSBudgetsBudget_NotificationWithSubscribers struct { Subscribers []AWSBudgetsBudget_Subscriber `json:"Subscribers,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSBudgetsBudget_NotificationWithSubscribers) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBudgetsBudget_NotificationWithSubscribers) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBudgetsBudget_NotificationWithSubscribers) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-budgets-budget_spend.go b/cloudformation/resources/aws-budgets-budget_spend.go similarity index 92% rename from cloudformation/aws-budgets-budget_spend.go rename to cloudformation/resources/aws-budgets-budget_spend.go index 0f0ce16a5d..ea1a23e13a 100644 --- a/cloudformation/aws-budgets-budget_spend.go +++ b/cloudformation/resources/aws-budgets-budget_spend.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSBudgetsBudget_Spend AWS CloudFormation Resource (AWS::Budgets::Budget.Spend) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-spend.html @@ -15,7 +17,7 @@ type AWSBudgetsBudget_Spend struct { Unit string `json:"Unit,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSBudgetsBudget_Spend) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBudgetsBudget_Spend) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBudgetsBudget_Spend) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-budgets-budget_subscriber.go b/cloudformation/resources/aws-budgets-budget_subscriber.go similarity index 92% rename from cloudformation/aws-budgets-budget_subscriber.go rename to cloudformation/resources/aws-budgets-budget_subscriber.go index a821986afc..1860baa0f2 100644 --- a/cloudformation/aws-budgets-budget_subscriber.go +++ b/cloudformation/resources/aws-budgets-budget_subscriber.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSBudgetsBudget_Subscriber AWS CloudFormation Resource (AWS::Budgets::Budget.Subscriber) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-subscriber.html @@ -15,7 +17,7 @@ type AWSBudgetsBudget_Subscriber struct { SubscriptionType string `json:"SubscriptionType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSBudgetsBudget_Subscriber) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBudgetsBudget_Subscriber) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBudgetsBudget_Subscriber) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-budgets-budget_timeperiod.go b/cloudformation/resources/aws-budgets-budget_timeperiod.go similarity index 92% rename from cloudformation/aws-budgets-budget_timeperiod.go rename to cloudformation/resources/aws-budgets-budget_timeperiod.go index b671b092a2..1b098bca7b 100644 --- a/cloudformation/aws-budgets-budget_timeperiod.go +++ b/cloudformation/resources/aws-budgets-budget_timeperiod.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSBudgetsBudget_TimePeriod AWS CloudFormation Resource (AWS::Budgets::Budget.TimePeriod) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-timeperiod.html @@ -15,7 +17,7 @@ type AWSBudgetsBudget_TimePeriod struct { Start string `json:"Start,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSBudgetsBudget_TimePeriod) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSBudgetsBudget_TimePeriod) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSBudgetsBudget_TimePeriod) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-certificatemanager-certificate.go b/cloudformation/resources/aws-certificatemanager-certificate.go similarity index 93% rename from cloudformation/aws-certificatemanager-certificate.go rename to cloudformation/resources/aws-certificatemanager-certificate.go index 2ad81cf0c9..1a729d5267 100644 --- a/cloudformation/aws-certificatemanager-certificate.go +++ b/cloudformation/resources/aws-certificatemanager-certificate.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCertificateManagerCertificate AWS CloudFormation Resource (AWS::CertificateManager::Certificate) @@ -36,7 +37,7 @@ type AWSCertificateManagerCertificate struct { ValidationMethod string `json:"ValidationMethod,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSCertificateManagerCertificate) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCertificateManagerCertificate) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCertificateManagerCertificate) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSCertificateManagerCertificate) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-certificatemanager-certificate_domainvalidationoption.go b/cloudformation/resources/aws-certificatemanager-certificate_domainvalidationoption.go similarity index 94% rename from cloudformation/aws-certificatemanager-certificate_domainvalidationoption.go rename to cloudformation/resources/aws-certificatemanager-certificate_domainvalidationoption.go index 632b2aa33d..7d24a797ab 100644 --- a/cloudformation/aws-certificatemanager-certificate_domainvalidationoption.go +++ b/cloudformation/resources/aws-certificatemanager-certificate_domainvalidationoption.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCertificateManagerCertificate_DomainValidationOption AWS CloudFormation Resource (AWS::CertificateManager::Certificate.DomainValidationOption) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-certificate-domainvalidationoption.html @@ -15,7 +17,7 @@ type AWSCertificateManagerCertificate_DomainValidationOption struct { ValidationDomain string `json:"ValidationDomain,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCertificateManagerCertificate_DomainValidationOption) SetMetadata(me // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCertificateManagerCertificate_DomainValidationOption) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCertificateManagerCertificate_DomainValidationOption) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloud9-environmentec2.go b/cloudformation/resources/aws-cloud9-environmentec2.go similarity index 92% rename from cloudformation/aws-cloud9-environmentec2.go rename to cloudformation/resources/aws-cloud9-environmentec2.go index c71d1b484f..ccf3484c8b 100644 --- a/cloudformation/aws-cloud9-environmentec2.go +++ b/cloudformation/resources/aws-cloud9-environmentec2.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCloud9EnvironmentEC2 AWS CloudFormation Resource (AWS::Cloud9::EnvironmentEC2) @@ -46,7 +47,7 @@ type AWSCloud9EnvironmentEC2 struct { SubnetId string `json:"SubnetId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSCloud9EnvironmentEC2) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloud9EnvironmentEC2) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloud9EnvironmentEC2) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSCloud9EnvironmentEC2) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-cloud9-environmentec2_repository.go b/cloudformation/resources/aws-cloud9-environmentec2_repository.go similarity index 94% rename from cloudformation/aws-cloud9-environmentec2_repository.go rename to cloudformation/resources/aws-cloud9-environmentec2_repository.go index e768e344af..033c8d48fd 100644 --- a/cloudformation/aws-cloud9-environmentec2_repository.go +++ b/cloudformation/resources/aws-cloud9-environmentec2_repository.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloud9EnvironmentEC2_Repository AWS CloudFormation Resource (AWS::Cloud9::EnvironmentEC2.Repository) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloud9-environmentec2-repository.html @@ -15,7 +17,7 @@ type AWSCloud9EnvironmentEC2_Repository struct { RepositoryUrl string `json:"RepositoryUrl,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCloud9EnvironmentEC2_Repository) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloud9EnvironmentEC2_Repository) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloud9EnvironmentEC2_Repository) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudformation-customresource.go b/cloudformation/resources/aws-cloudformation-customresource.go similarity index 91% rename from cloudformation/aws-cloudformation-customresource.go rename to cloudformation/resources/aws-cloudformation-customresource.go index 49ba2064f7..4f9e158620 100644 --- a/cloudformation/aws-cloudformation-customresource.go +++ b/cloudformation/resources/aws-cloudformation-customresource.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCloudFormationCustomResource AWS CloudFormation Resource (AWS::CloudFormation::CustomResource) @@ -16,7 +17,7 @@ type AWSCloudFormationCustomResource struct { ServiceToken string `json:"ServiceToken,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -56,7 +57,7 @@ func (r *AWSCloudFormationCustomResource) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFormationCustomResource) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFormationCustomResource) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -67,9 +68,9 @@ func (r AWSCloudFormationCustomResource) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-cloudformation-macro.go b/cloudformation/resources/aws-cloudformation-macro.go similarity index 91% rename from cloudformation/aws-cloudformation-macro.go rename to cloudformation/resources/aws-cloudformation-macro.go index de16f5b40c..0a20a0102e 100644 --- a/cloudformation/aws-cloudformation-macro.go +++ b/cloudformation/resources/aws-cloudformation-macro.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCloudFormationMacro AWS CloudFormation Resource (AWS::CloudFormation::Macro) @@ -36,7 +37,7 @@ type AWSCloudFormationMacro struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSCloudFormationMacro) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFormationMacro) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFormationMacro) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSCloudFormationMacro) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-cloudformation-stack.go b/cloudformation/resources/aws-cloudformation-stack.go similarity index 91% rename from cloudformation/aws-cloudformation-stack.go rename to cloudformation/resources/aws-cloudformation-stack.go index 6e02155e5c..c6d9c7f235 100644 --- a/cloudformation/aws-cloudformation-stack.go +++ b/cloudformation/resources/aws-cloudformation-stack.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCloudFormationStack AWS CloudFormation Resource (AWS::CloudFormation::Stack) @@ -36,7 +37,7 @@ type AWSCloudFormationStack struct { TimeoutInMinutes int `json:"TimeoutInMinutes,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSCloudFormationStack) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFormationStack) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFormationStack) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSCloudFormationStack) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-cloudformation-waitcondition.go b/cloudformation/resources/aws-cloudformation-waitcondition.go similarity index 90% rename from cloudformation/aws-cloudformation-waitcondition.go rename to cloudformation/resources/aws-cloudformation-waitcondition.go index 9fa4ffc977..3de0f116a4 100644 --- a/cloudformation/aws-cloudformation-waitcondition.go +++ b/cloudformation/resources/aws-cloudformation-waitcondition.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCloudFormationWaitCondition AWS CloudFormation Resource (AWS::CloudFormation::WaitCondition) @@ -26,10 +27,10 @@ type AWSCloudFormationWaitCondition struct { Timeout string `json:"Timeout,omitempty"` // _creationPolicy represents a CloudFormation CreationPolicy - _creationPolicy *CreationPolicy + _creationPolicy *policies.CreationPolicy // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -69,13 +70,13 @@ func (r *AWSCloudFormationWaitCondition) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFormationWaitCondition) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFormationWaitCondition) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } // SetCreationPolicy applies an AWS CloudFormation CreationPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-creationpolicy.html -func (r *AWSCloudFormationWaitCondition) SetCreationPolicy(policy *CreationPolicy) { +func (r *AWSCloudFormationWaitCondition) SetCreationPolicy(policy *policies.CreationPolicy) { r._creationPolicy = policy } @@ -86,11 +87,11 @@ func (r AWSCloudFormationWaitCondition) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` - CreationPolicy *CreationPolicy `json:"CreationPolicy,omitempty"` + CreationPolicy *policies.CreationPolicy `json:"CreationPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-cloudformation-waitconditionhandle.go b/cloudformation/resources/aws-cloudformation-waitconditionhandle.go similarity index 91% rename from cloudformation/aws-cloudformation-waitconditionhandle.go rename to cloudformation/resources/aws-cloudformation-waitconditionhandle.go index 01f4be30cc..bd747187d0 100644 --- a/cloudformation/aws-cloudformation-waitconditionhandle.go +++ b/cloudformation/resources/aws-cloudformation-waitconditionhandle.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCloudFormationWaitConditionHandle AWS CloudFormation Resource (AWS::CloudFormation::WaitConditionHandle) @@ -11,7 +12,7 @@ import ( type AWSCloudFormationWaitConditionHandle struct { // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -51,7 +52,7 @@ func (r *AWSCloudFormationWaitConditionHandle) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFormationWaitConditionHandle) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFormationWaitConditionHandle) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -62,9 +63,9 @@ func (r AWSCloudFormationWaitConditionHandle) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-cloudfront-cloudfrontoriginaccessidentity.go b/cloudformation/resources/aws-cloudfront-cloudfrontoriginaccessidentity.go similarity index 92% rename from cloudformation/aws-cloudfront-cloudfrontoriginaccessidentity.go rename to cloudformation/resources/aws-cloudfront-cloudfrontoriginaccessidentity.go index f7dd8c9585..bb16b4153e 100644 --- a/cloudformation/aws-cloudfront-cloudfrontoriginaccessidentity.go +++ b/cloudformation/resources/aws-cloudfront-cloudfrontoriginaccessidentity.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCloudFrontCloudFrontOriginAccessIdentity AWS CloudFormation Resource (AWS::CloudFront::CloudFrontOriginAccessIdentity) @@ -16,7 +17,7 @@ type AWSCloudFrontCloudFrontOriginAccessIdentity struct { CloudFrontOriginAccessIdentityConfig *AWSCloudFrontCloudFrontOriginAccessIdentity_CloudFrontOriginAccessIdentityConfig `json:"CloudFrontOriginAccessIdentityConfig,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -56,7 +57,7 @@ func (r *AWSCloudFrontCloudFrontOriginAccessIdentity) SetMetadata(metadata map[s // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontCloudFrontOriginAccessIdentity) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontCloudFrontOriginAccessIdentity) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -67,9 +68,9 @@ func (r AWSCloudFrontCloudFrontOriginAccessIdentity) MarshalJSON() ([]byte, erro return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-cloudfront-cloudfrontoriginaccessidentity_cloudfrontoriginaccessidentityconfig.go b/cloudformation/resources/aws-cloudfront-cloudfrontoriginaccessidentity_cloudfrontoriginaccessidentityconfig.go similarity index 93% rename from cloudformation/aws-cloudfront-cloudfrontoriginaccessidentity_cloudfrontoriginaccessidentityconfig.go rename to cloudformation/resources/aws-cloudfront-cloudfrontoriginaccessidentity_cloudfrontoriginaccessidentityconfig.go index 2f8875d024..d7d7126a93 100644 --- a/cloudformation/aws-cloudfront-cloudfrontoriginaccessidentity_cloudfrontoriginaccessidentityconfig.go +++ b/cloudformation/resources/aws-cloudfront-cloudfrontoriginaccessidentity_cloudfrontoriginaccessidentityconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudFrontCloudFrontOriginAccessIdentity_CloudFrontOriginAccessIdentityConfig AWS CloudFormation Resource (AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cloudfrontoriginaccessidentity-cloudfrontoriginaccessidentityconfig.html @@ -10,7 +12,7 @@ type AWSCloudFrontCloudFrontOriginAccessIdentity_CloudFrontOriginAccessIdentityC Comment string `json:"Comment,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSCloudFrontCloudFrontOriginAccessIdentity_CloudFrontOriginAccessIdent // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontCloudFrontOriginAccessIdentity_CloudFrontOriginAccessIdentityConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontCloudFrontOriginAccessIdentity_CloudFrontOriginAccessIdentityConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudfront-distribution.go b/cloudformation/resources/aws-cloudfront-distribution.go similarity index 90% rename from cloudformation/aws-cloudfront-distribution.go rename to cloudformation/resources/aws-cloudfront-distribution.go index acd0900859..fcf3ca4454 100644 --- a/cloudformation/aws-cloudfront-distribution.go +++ b/cloudformation/resources/aws-cloudfront-distribution.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCloudFrontDistribution AWS CloudFormation Resource (AWS::CloudFront::Distribution) @@ -21,7 +22,7 @@ type AWSCloudFrontDistribution struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSCloudFrontDistribution) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontDistribution) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontDistribution) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSCloudFrontDistribution) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-cloudfront-distribution_cachebehavior.go b/cloudformation/resources/aws-cloudfront-distribution_cachebehavior.go similarity index 97% rename from cloudformation/aws-cloudfront-distribution_cachebehavior.go rename to cloudformation/resources/aws-cloudfront-distribution_cachebehavior.go index ec806681c7..afe6fe4b24 100644 --- a/cloudformation/aws-cloudfront-distribution_cachebehavior.go +++ b/cloudformation/resources/aws-cloudfront-distribution_cachebehavior.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudFrontDistribution_CacheBehavior AWS CloudFormation Resource (AWS::CloudFront::Distribution.CacheBehavior) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html @@ -75,7 +77,7 @@ type AWSCloudFrontDistribution_CacheBehavior struct { ViewerProtocolPolicy string `json:"ViewerProtocolPolicy,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -115,6 +117,6 @@ func (r *AWSCloudFrontDistribution_CacheBehavior) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontDistribution_CacheBehavior) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontDistribution_CacheBehavior) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudfront-distribution_cookies.go b/cloudformation/resources/aws-cloudfront-distribution_cookies.go similarity index 94% rename from cloudformation/aws-cloudfront-distribution_cookies.go rename to cloudformation/resources/aws-cloudfront-distribution_cookies.go index 2dcb7700cb..30e6a2da97 100644 --- a/cloudformation/aws-cloudfront-distribution_cookies.go +++ b/cloudformation/resources/aws-cloudfront-distribution_cookies.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudFrontDistribution_Cookies AWS CloudFormation Resource (AWS::CloudFront::Distribution.Cookies) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cookies.html @@ -15,7 +17,7 @@ type AWSCloudFrontDistribution_Cookies struct { WhitelistedNames []string `json:"WhitelistedNames,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCloudFrontDistribution_Cookies) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontDistribution_Cookies) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontDistribution_Cookies) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudfront-distribution_customerrorresponse.go b/cloudformation/resources/aws-cloudfront-distribution_customerrorresponse.go similarity index 95% rename from cloudformation/aws-cloudfront-distribution_customerrorresponse.go rename to cloudformation/resources/aws-cloudfront-distribution_customerrorresponse.go index ac408060af..3d4265f113 100644 --- a/cloudformation/aws-cloudfront-distribution_customerrorresponse.go +++ b/cloudformation/resources/aws-cloudfront-distribution_customerrorresponse.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudFrontDistribution_CustomErrorResponse AWS CloudFormation Resource (AWS::CloudFront::Distribution.CustomErrorResponse) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customerrorresponse.html @@ -25,7 +27,7 @@ type AWSCloudFrontDistribution_CustomErrorResponse struct { ResponsePagePath string `json:"ResponsePagePath,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSCloudFrontDistribution_CustomErrorResponse) SetMetadata(metadata map // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontDistribution_CustomErrorResponse) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontDistribution_CustomErrorResponse) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudfront-distribution_customoriginconfig.go b/cloudformation/resources/aws-cloudfront-distribution_customoriginconfig.go similarity index 96% rename from cloudformation/aws-cloudfront-distribution_customoriginconfig.go rename to cloudformation/resources/aws-cloudfront-distribution_customoriginconfig.go index 559f788627..b4e9b61877 100644 --- a/cloudformation/aws-cloudfront-distribution_customoriginconfig.go +++ b/cloudformation/resources/aws-cloudfront-distribution_customoriginconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudFrontDistribution_CustomOriginConfig AWS CloudFormation Resource (AWS::CloudFront::Distribution.CustomOriginConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customoriginconfig.html @@ -35,7 +37,7 @@ type AWSCloudFrontDistribution_CustomOriginConfig struct { OriginSSLProtocols []string `json:"OriginSSLProtocols,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSCloudFrontDistribution_CustomOriginConfig) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontDistribution_CustomOriginConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontDistribution_CustomOriginConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudfront-distribution_defaultcachebehavior.go b/cloudformation/resources/aws-cloudfront-distribution_defaultcachebehavior.go similarity index 97% rename from cloudformation/aws-cloudfront-distribution_defaultcachebehavior.go rename to cloudformation/resources/aws-cloudfront-distribution_defaultcachebehavior.go index ee6217d3da..416df21f34 100644 --- a/cloudformation/aws-cloudfront-distribution_defaultcachebehavior.go +++ b/cloudformation/resources/aws-cloudfront-distribution_defaultcachebehavior.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudFrontDistribution_DefaultCacheBehavior AWS CloudFormation Resource (AWS::CloudFront::Distribution.DefaultCacheBehavior) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html @@ -70,7 +72,7 @@ type AWSCloudFrontDistribution_DefaultCacheBehavior struct { ViewerProtocolPolicy string `json:"ViewerProtocolPolicy,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -110,6 +112,6 @@ func (r *AWSCloudFrontDistribution_DefaultCacheBehavior) SetMetadata(metadata ma // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontDistribution_DefaultCacheBehavior) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontDistribution_DefaultCacheBehavior) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudfront-distribution_distributionconfig.go b/cloudformation/resources/aws-cloudfront-distribution_distributionconfig.go similarity index 97% rename from cloudformation/aws-cloudfront-distribution_distributionconfig.go rename to cloudformation/resources/aws-cloudfront-distribution_distributionconfig.go index c5e6495666..a46eea73d7 100644 --- a/cloudformation/aws-cloudfront-distribution_distributionconfig.go +++ b/cloudformation/resources/aws-cloudfront-distribution_distributionconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudFrontDistribution_DistributionConfig AWS CloudFormation Resource (AWS::CloudFront::Distribution.DistributionConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html @@ -80,7 +82,7 @@ type AWSCloudFrontDistribution_DistributionConfig struct { WebACLId string `json:"WebACLId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -120,6 +122,6 @@ func (r *AWSCloudFrontDistribution_DistributionConfig) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontDistribution_DistributionConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontDistribution_DistributionConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudfront-distribution_forwardedvalues.go b/cloudformation/resources/aws-cloudfront-distribution_forwardedvalues.go similarity index 95% rename from cloudformation/aws-cloudfront-distribution_forwardedvalues.go rename to cloudformation/resources/aws-cloudfront-distribution_forwardedvalues.go index 616ff2a25b..6f414bdb4b 100644 --- a/cloudformation/aws-cloudfront-distribution_forwardedvalues.go +++ b/cloudformation/resources/aws-cloudfront-distribution_forwardedvalues.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudFrontDistribution_ForwardedValues AWS CloudFormation Resource (AWS::CloudFront::Distribution.ForwardedValues) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-forwardedvalues.html @@ -25,7 +27,7 @@ type AWSCloudFrontDistribution_ForwardedValues struct { QueryStringCacheKeys []string `json:"QueryStringCacheKeys,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSCloudFrontDistribution_ForwardedValues) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontDistribution_ForwardedValues) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontDistribution_ForwardedValues) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudfront-distribution_georestriction.go b/cloudformation/resources/aws-cloudfront-distribution_georestriction.go similarity index 94% rename from cloudformation/aws-cloudfront-distribution_georestriction.go rename to cloudformation/resources/aws-cloudfront-distribution_georestriction.go index 47a5247475..7a44186092 100644 --- a/cloudformation/aws-cloudfront-distribution_georestriction.go +++ b/cloudformation/resources/aws-cloudfront-distribution_georestriction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudFrontDistribution_GeoRestriction AWS CloudFormation Resource (AWS::CloudFront::Distribution.GeoRestriction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-georestriction.html @@ -15,7 +17,7 @@ type AWSCloudFrontDistribution_GeoRestriction struct { RestrictionType string `json:"RestrictionType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCloudFrontDistribution_GeoRestriction) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontDistribution_GeoRestriction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontDistribution_GeoRestriction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudfront-distribution_lambdafunctionassociation.go b/cloudformation/resources/aws-cloudfront-distribution_lambdafunctionassociation.go similarity index 94% rename from cloudformation/aws-cloudfront-distribution_lambdafunctionassociation.go rename to cloudformation/resources/aws-cloudfront-distribution_lambdafunctionassociation.go index 996f9148d5..512b300c2d 100644 --- a/cloudformation/aws-cloudfront-distribution_lambdafunctionassociation.go +++ b/cloudformation/resources/aws-cloudfront-distribution_lambdafunctionassociation.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudFrontDistribution_LambdaFunctionAssociation AWS CloudFormation Resource (AWS::CloudFront::Distribution.LambdaFunctionAssociation) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-lambdafunctionassociation.html @@ -15,7 +17,7 @@ type AWSCloudFrontDistribution_LambdaFunctionAssociation struct { LambdaFunctionARN string `json:"LambdaFunctionARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCloudFrontDistribution_LambdaFunctionAssociation) SetMetadata(metada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontDistribution_LambdaFunctionAssociation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontDistribution_LambdaFunctionAssociation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudfront-distribution_logging.go b/cloudformation/resources/aws-cloudfront-distribution_logging.go similarity index 95% rename from cloudformation/aws-cloudfront-distribution_logging.go rename to cloudformation/resources/aws-cloudfront-distribution_logging.go index e7490092ec..96cc1bff5d 100644 --- a/cloudformation/aws-cloudfront-distribution_logging.go +++ b/cloudformation/resources/aws-cloudfront-distribution_logging.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudFrontDistribution_Logging AWS CloudFormation Resource (AWS::CloudFront::Distribution.Logging) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-logging.html @@ -20,7 +22,7 @@ type AWSCloudFrontDistribution_Logging struct { Prefix string `json:"Prefix,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSCloudFrontDistribution_Logging) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontDistribution_Logging) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontDistribution_Logging) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudfront-distribution_origin.go b/cloudformation/resources/aws-cloudfront-distribution_origin.go similarity index 96% rename from cloudformation/aws-cloudfront-distribution_origin.go rename to cloudformation/resources/aws-cloudfront-distribution_origin.go index 10b585343e..f2e843ea9e 100644 --- a/cloudformation/aws-cloudfront-distribution_origin.go +++ b/cloudformation/resources/aws-cloudfront-distribution_origin.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudFrontDistribution_Origin AWS CloudFormation Resource (AWS::CloudFront::Distribution.Origin) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html @@ -35,7 +37,7 @@ type AWSCloudFrontDistribution_Origin struct { S3OriginConfig *AWSCloudFrontDistribution_S3OriginConfig `json:"S3OriginConfig,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSCloudFrontDistribution_Origin) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontDistribution_Origin) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontDistribution_Origin) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudfront-distribution_origincustomheader.go b/cloudformation/resources/aws-cloudfront-distribution_origincustomheader.go similarity index 94% rename from cloudformation/aws-cloudfront-distribution_origincustomheader.go rename to cloudformation/resources/aws-cloudfront-distribution_origincustomheader.go index 2687f9b300..6804f9f45a 100644 --- a/cloudformation/aws-cloudfront-distribution_origincustomheader.go +++ b/cloudformation/resources/aws-cloudfront-distribution_origincustomheader.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudFrontDistribution_OriginCustomHeader AWS CloudFormation Resource (AWS::CloudFront::Distribution.OriginCustomHeader) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origincustomheader.html @@ -15,7 +17,7 @@ type AWSCloudFrontDistribution_OriginCustomHeader struct { HeaderValue string `json:"HeaderValue,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCloudFrontDistribution_OriginCustomHeader) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontDistribution_OriginCustomHeader) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontDistribution_OriginCustomHeader) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudfront-distribution_restrictions.go b/cloudformation/resources/aws-cloudfront-distribution_restrictions.go similarity index 94% rename from cloudformation/aws-cloudfront-distribution_restrictions.go rename to cloudformation/resources/aws-cloudfront-distribution_restrictions.go index d7c7c2a22e..9a31e2eb84 100644 --- a/cloudformation/aws-cloudfront-distribution_restrictions.go +++ b/cloudformation/resources/aws-cloudfront-distribution_restrictions.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudFrontDistribution_Restrictions AWS CloudFormation Resource (AWS::CloudFront::Distribution.Restrictions) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-restrictions.html @@ -10,7 +12,7 @@ type AWSCloudFrontDistribution_Restrictions struct { GeoRestriction *AWSCloudFrontDistribution_GeoRestriction `json:"GeoRestriction,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSCloudFrontDistribution_Restrictions) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontDistribution_Restrictions) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontDistribution_Restrictions) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudfront-distribution_s3originconfig.go b/cloudformation/resources/aws-cloudfront-distribution_s3originconfig.go similarity index 94% rename from cloudformation/aws-cloudfront-distribution_s3originconfig.go rename to cloudformation/resources/aws-cloudfront-distribution_s3originconfig.go index 6619b3527e..362ec0f62a 100644 --- a/cloudformation/aws-cloudfront-distribution_s3originconfig.go +++ b/cloudformation/resources/aws-cloudfront-distribution_s3originconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudFrontDistribution_S3OriginConfig AWS CloudFormation Resource (AWS::CloudFront::Distribution.S3OriginConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-s3originconfig.html @@ -10,7 +12,7 @@ type AWSCloudFrontDistribution_S3OriginConfig struct { OriginAccessIdentity string `json:"OriginAccessIdentity,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSCloudFrontDistribution_S3OriginConfig) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontDistribution_S3OriginConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontDistribution_S3OriginConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudfront-distribution_viewercertificate.go b/cloudformation/resources/aws-cloudfront-distribution_viewercertificate.go similarity index 95% rename from cloudformation/aws-cloudfront-distribution_viewercertificate.go rename to cloudformation/resources/aws-cloudfront-distribution_viewercertificate.go index e2c537a092..ab5f34e3bf 100644 --- a/cloudformation/aws-cloudfront-distribution_viewercertificate.go +++ b/cloudformation/resources/aws-cloudfront-distribution_viewercertificate.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudFrontDistribution_ViewerCertificate AWS CloudFormation Resource (AWS::CloudFront::Distribution.ViewerCertificate) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html @@ -30,7 +32,7 @@ type AWSCloudFrontDistribution_ViewerCertificate struct { SslSupportMethod string `json:"SslSupportMethod,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSCloudFrontDistribution_ViewerCertificate) SetMetadata(metadata map[s // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontDistribution_ViewerCertificate) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontDistribution_ViewerCertificate) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudfront-streamingdistribution.go b/cloudformation/resources/aws-cloudfront-streamingdistribution.go similarity index 92% rename from cloudformation/aws-cloudfront-streamingdistribution.go rename to cloudformation/resources/aws-cloudfront-streamingdistribution.go index dd6ff9a7bb..fd0bc41b63 100644 --- a/cloudformation/aws-cloudfront-streamingdistribution.go +++ b/cloudformation/resources/aws-cloudfront-streamingdistribution.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCloudFrontStreamingDistribution AWS CloudFormation Resource (AWS::CloudFront::StreamingDistribution) @@ -21,7 +22,7 @@ type AWSCloudFrontStreamingDistribution struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSCloudFrontStreamingDistribution) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontStreamingDistribution) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontStreamingDistribution) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSCloudFrontStreamingDistribution) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-cloudfront-streamingdistribution_logging.go b/cloudformation/resources/aws-cloudfront-streamingdistribution_logging.go similarity index 94% rename from cloudformation/aws-cloudfront-streamingdistribution_logging.go rename to cloudformation/resources/aws-cloudfront-streamingdistribution_logging.go index 6b3f9701fa..0f81ac9b24 100644 --- a/cloudformation/aws-cloudfront-streamingdistribution_logging.go +++ b/cloudformation/resources/aws-cloudfront-streamingdistribution_logging.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudFrontStreamingDistribution_Logging AWS CloudFormation Resource (AWS::CloudFront::StreamingDistribution.Logging) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-logging.html @@ -20,7 +22,7 @@ type AWSCloudFrontStreamingDistribution_Logging struct { Prefix string `json:"Prefix,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSCloudFrontStreamingDistribution_Logging) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontStreamingDistribution_Logging) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontStreamingDistribution_Logging) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudfront-streamingdistribution_s3origin.go b/cloudformation/resources/aws-cloudfront-streamingdistribution_s3origin.go similarity index 94% rename from cloudformation/aws-cloudfront-streamingdistribution_s3origin.go rename to cloudformation/resources/aws-cloudfront-streamingdistribution_s3origin.go index bab0a4b778..56eafab607 100644 --- a/cloudformation/aws-cloudfront-streamingdistribution_s3origin.go +++ b/cloudformation/resources/aws-cloudfront-streamingdistribution_s3origin.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudFrontStreamingDistribution_S3Origin AWS CloudFormation Resource (AWS::CloudFront::StreamingDistribution.S3Origin) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-s3origin.html @@ -15,7 +17,7 @@ type AWSCloudFrontStreamingDistribution_S3Origin struct { OriginAccessIdentity string `json:"OriginAccessIdentity,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCloudFrontStreamingDistribution_S3Origin) SetMetadata(metadata map[s // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontStreamingDistribution_S3Origin) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontStreamingDistribution_S3Origin) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudfront-streamingdistribution_streamingdistributionconfig.go b/cloudformation/resources/aws-cloudfront-streamingdistribution_streamingdistributionconfig.go similarity index 96% rename from cloudformation/aws-cloudfront-streamingdistribution_streamingdistributionconfig.go rename to cloudformation/resources/aws-cloudfront-streamingdistribution_streamingdistributionconfig.go index 991d77d234..1c24440432 100644 --- a/cloudformation/aws-cloudfront-streamingdistribution_streamingdistributionconfig.go +++ b/cloudformation/resources/aws-cloudfront-streamingdistribution_streamingdistributionconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudFrontStreamingDistribution_StreamingDistributionConfig AWS CloudFormation Resource (AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html @@ -40,7 +42,7 @@ type AWSCloudFrontStreamingDistribution_StreamingDistributionConfig struct { TrustedSigners *AWSCloudFrontStreamingDistribution_TrustedSigners `json:"TrustedSigners,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -80,6 +82,6 @@ func (r *AWSCloudFrontStreamingDistribution_StreamingDistributionConfig) SetMeta // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontStreamingDistribution_StreamingDistributionConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontStreamingDistribution_StreamingDistributionConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudfront-streamingdistribution_trustedsigners.go b/cloudformation/resources/aws-cloudfront-streamingdistribution_trustedsigners.go similarity index 94% rename from cloudformation/aws-cloudfront-streamingdistribution_trustedsigners.go rename to cloudformation/resources/aws-cloudfront-streamingdistribution_trustedsigners.go index 4b804745c1..6927220c50 100644 --- a/cloudformation/aws-cloudfront-streamingdistribution_trustedsigners.go +++ b/cloudformation/resources/aws-cloudfront-streamingdistribution_trustedsigners.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudFrontStreamingDistribution_TrustedSigners AWS CloudFormation Resource (AWS::CloudFront::StreamingDistribution.TrustedSigners) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-trustedsigners.html @@ -15,7 +17,7 @@ type AWSCloudFrontStreamingDistribution_TrustedSigners struct { Enabled bool `json:"Enabled"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCloudFrontStreamingDistribution_TrustedSigners) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudFrontStreamingDistribution_TrustedSigners) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudFrontStreamingDistribution_TrustedSigners) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudtrail-trail.go b/cloudformation/resources/aws-cloudtrail-trail.go similarity index 94% rename from cloudformation/aws-cloudtrail-trail.go rename to cloudformation/resources/aws-cloudtrail-trail.go index fe41419664..b63700db5f 100644 --- a/cloudformation/aws-cloudtrail-trail.go +++ b/cloudformation/resources/aws-cloudtrail-trail.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCloudTrailTrail AWS CloudFormation Resource (AWS::CloudTrail::Trail) @@ -76,7 +77,7 @@ type AWSCloudTrailTrail struct { TrailName string `json:"TrailName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -116,7 +117,7 @@ func (r *AWSCloudTrailTrail) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudTrailTrail) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudTrailTrail) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -127,9 +128,9 @@ func (r AWSCloudTrailTrail) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-cloudtrail-trail_dataresource.go b/cloudformation/resources/aws-cloudtrail-trail_dataresource.go similarity index 94% rename from cloudformation/aws-cloudtrail-trail_dataresource.go rename to cloudformation/resources/aws-cloudtrail-trail_dataresource.go index a95fdb0b4c..f2d90e47a4 100644 --- a/cloudformation/aws-cloudtrail-trail_dataresource.go +++ b/cloudformation/resources/aws-cloudtrail-trail_dataresource.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudTrailTrail_DataResource AWS CloudFormation Resource (AWS::CloudTrail::Trail.DataResource) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-dataresource.html @@ -15,7 +17,7 @@ type AWSCloudTrailTrail_DataResource struct { Values []string `json:"Values,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCloudTrailTrail_DataResource) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudTrailTrail_DataResource) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudTrailTrail_DataResource) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudtrail-trail_eventselector.go b/cloudformation/resources/aws-cloudtrail-trail_eventselector.go similarity index 95% rename from cloudformation/aws-cloudtrail-trail_eventselector.go rename to cloudformation/resources/aws-cloudtrail-trail_eventselector.go index ba4711b200..22e77702ac 100644 --- a/cloudformation/aws-cloudtrail-trail_eventselector.go +++ b/cloudformation/resources/aws-cloudtrail-trail_eventselector.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudTrailTrail_EventSelector AWS CloudFormation Resource (AWS::CloudTrail::Trail.EventSelector) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-eventselector.html @@ -20,7 +22,7 @@ type AWSCloudTrailTrail_EventSelector struct { ReadWriteType string `json:"ReadWriteType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSCloudTrailTrail_EventSelector) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudTrailTrail_EventSelector) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudTrailTrail_EventSelector) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudwatch-alarm.go b/cloudformation/resources/aws-cloudwatch-alarm.go similarity index 95% rename from cloudformation/aws-cloudwatch-alarm.go rename to cloudformation/resources/aws-cloudwatch-alarm.go index 440ff9f330..3ffda4bf32 100644 --- a/cloudformation/aws-cloudwatch-alarm.go +++ b/cloudformation/resources/aws-cloudwatch-alarm.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCloudWatchAlarm AWS CloudFormation Resource (AWS::CloudWatch::Alarm) @@ -111,7 +112,7 @@ type AWSCloudWatchAlarm struct { Unit string `json:"Unit,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -151,7 +152,7 @@ func (r *AWSCloudWatchAlarm) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudWatchAlarm) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudWatchAlarm) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -162,9 +163,9 @@ func (r AWSCloudWatchAlarm) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-cloudwatch-alarm_dimension.go b/cloudformation/resources/aws-cloudwatch-alarm_dimension.go similarity index 94% rename from cloudformation/aws-cloudwatch-alarm_dimension.go rename to cloudformation/resources/aws-cloudwatch-alarm_dimension.go index e6bf1a69a3..9afd74755c 100644 --- a/cloudformation/aws-cloudwatch-alarm_dimension.go +++ b/cloudformation/resources/aws-cloudwatch-alarm_dimension.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudWatchAlarm_Dimension AWS CloudFormation Resource (AWS::CloudWatch::Alarm.Dimension) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-dimension.html @@ -15,7 +17,7 @@ type AWSCloudWatchAlarm_Dimension struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCloudWatchAlarm_Dimension) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudWatchAlarm_Dimension) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudWatchAlarm_Dimension) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudwatch-alarm_metric.go b/cloudformation/resources/aws-cloudwatch-alarm_metric.go similarity index 93% rename from cloudformation/aws-cloudwatch-alarm_metric.go rename to cloudformation/resources/aws-cloudwatch-alarm_metric.go index eae602637a..33ca064b0d 100644 --- a/cloudformation/aws-cloudwatch-alarm_metric.go +++ b/cloudformation/resources/aws-cloudwatch-alarm_metric.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudWatchAlarm_Metric AWS CloudFormation Resource (AWS::CloudWatch::Alarm.Metric) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metric.html @@ -20,7 +22,7 @@ type AWSCloudWatchAlarm_Metric struct { Namespace string `json:"Namespace,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSCloudWatchAlarm_Metric) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudWatchAlarm_Metric) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudWatchAlarm_Metric) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudwatch-alarm_metricdataquery.go b/cloudformation/resources/aws-cloudwatch-alarm_metricdataquery.go similarity index 95% rename from cloudformation/aws-cloudwatch-alarm_metricdataquery.go rename to cloudformation/resources/aws-cloudwatch-alarm_metricdataquery.go index 3ed0d719c3..9081f51928 100644 --- a/cloudformation/aws-cloudwatch-alarm_metricdataquery.go +++ b/cloudformation/resources/aws-cloudwatch-alarm_metricdataquery.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudWatchAlarm_MetricDataQuery AWS CloudFormation Resource (AWS::CloudWatch::Alarm.MetricDataQuery) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html @@ -30,7 +32,7 @@ type AWSCloudWatchAlarm_MetricDataQuery struct { ReturnData bool `json:"ReturnData,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSCloudWatchAlarm_MetricDataQuery) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudWatchAlarm_MetricDataQuery) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudWatchAlarm_MetricDataQuery) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudwatch-alarm_metricstat.go b/cloudformation/resources/aws-cloudwatch-alarm_metricstat.go similarity index 95% rename from cloudformation/aws-cloudwatch-alarm_metricstat.go rename to cloudformation/resources/aws-cloudwatch-alarm_metricstat.go index ccf17140af..ffed9ffd13 100644 --- a/cloudformation/aws-cloudwatch-alarm_metricstat.go +++ b/cloudformation/resources/aws-cloudwatch-alarm_metricstat.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCloudWatchAlarm_MetricStat AWS CloudFormation Resource (AWS::CloudWatch::Alarm.MetricStat) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html @@ -25,7 +27,7 @@ type AWSCloudWatchAlarm_MetricStat struct { Unit string `json:"Unit,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSCloudWatchAlarm_MetricStat) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudWatchAlarm_MetricStat) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudWatchAlarm_MetricStat) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cloudwatch-dashboard.go b/cloudformation/resources/aws-cloudwatch-dashboard.go similarity index 90% rename from cloudformation/aws-cloudwatch-dashboard.go rename to cloudformation/resources/aws-cloudwatch-dashboard.go index 3ef3a145d4..bc83b0bc79 100644 --- a/cloudformation/aws-cloudwatch-dashboard.go +++ b/cloudformation/resources/aws-cloudwatch-dashboard.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCloudWatchDashboard AWS CloudFormation Resource (AWS::CloudWatch::Dashboard) @@ -21,7 +22,7 @@ type AWSCloudWatchDashboard struct { DashboardName string `json:"DashboardName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSCloudWatchDashboard) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCloudWatchDashboard) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCloudWatchDashboard) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSCloudWatchDashboard) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-codebuild-project.go b/cloudformation/resources/aws-codebuild-project.go similarity index 95% rename from cloudformation/aws-codebuild-project.go rename to cloudformation/resources/aws-codebuild-project.go index 03ccf80b99..02c92fa400 100644 --- a/cloudformation/aws-codebuild-project.go +++ b/cloudformation/resources/aws-codebuild-project.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCodeBuildProject AWS CloudFormation Resource (AWS::CodeBuild::Project) @@ -96,7 +97,7 @@ type AWSCodeBuildProject struct { VpcConfig *AWSCodeBuildProject_VpcConfig `json:"VpcConfig,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -136,7 +137,7 @@ func (r *AWSCodeBuildProject) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeBuildProject) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeBuildProject) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -147,9 +148,9 @@ func (r AWSCodeBuildProject) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-codebuild-project_artifacts.go b/cloudformation/resources/aws-codebuild-project_artifacts.go similarity index 96% rename from cloudformation/aws-codebuild-project_artifacts.go rename to cloudformation/resources/aws-codebuild-project_artifacts.go index a59aa5b0b0..f63e77058f 100644 --- a/cloudformation/aws-codebuild-project_artifacts.go +++ b/cloudformation/resources/aws-codebuild-project_artifacts.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeBuildProject_Artifacts AWS CloudFormation Resource (AWS::CodeBuild::Project.Artifacts) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html @@ -50,7 +52,7 @@ type AWSCodeBuildProject_Artifacts struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -90,6 +92,6 @@ func (r *AWSCodeBuildProject_Artifacts) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeBuildProject_Artifacts) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeBuildProject_Artifacts) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codebuild-project_cloudwatchlogsconfig.go b/cloudformation/resources/aws-codebuild-project_cloudwatchlogsconfig.go similarity index 94% rename from cloudformation/aws-codebuild-project_cloudwatchlogsconfig.go rename to cloudformation/resources/aws-codebuild-project_cloudwatchlogsconfig.go index f4211b8ae9..b37447dfc8 100644 --- a/cloudformation/aws-codebuild-project_cloudwatchlogsconfig.go +++ b/cloudformation/resources/aws-codebuild-project_cloudwatchlogsconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeBuildProject_CloudWatchLogsConfig AWS CloudFormation Resource (AWS::CodeBuild::Project.CloudWatchLogsConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-cloudwatchlogsconfig.html @@ -20,7 +22,7 @@ type AWSCodeBuildProject_CloudWatchLogsConfig struct { StreamName string `json:"StreamName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSCodeBuildProject_CloudWatchLogsConfig) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeBuildProject_CloudWatchLogsConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeBuildProject_CloudWatchLogsConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codebuild-project_environment.go b/cloudformation/resources/aws-codebuild-project_environment.go similarity index 96% rename from cloudformation/aws-codebuild-project_environment.go rename to cloudformation/resources/aws-codebuild-project_environment.go index 14aceb8043..ba925ec833 100644 --- a/cloudformation/aws-codebuild-project_environment.go +++ b/cloudformation/resources/aws-codebuild-project_environment.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeBuildProject_Environment AWS CloudFormation Resource (AWS::CodeBuild::Project.Environment) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html @@ -45,7 +47,7 @@ type AWSCodeBuildProject_Environment struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -85,6 +87,6 @@ func (r *AWSCodeBuildProject_Environment) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeBuildProject_Environment) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeBuildProject_Environment) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codebuild-project_environmentvariable.go b/cloudformation/resources/aws-codebuild-project_environmentvariable.go similarity index 94% rename from cloudformation/aws-codebuild-project_environmentvariable.go rename to cloudformation/resources/aws-codebuild-project_environmentvariable.go index 1886c72178..3bc6320d43 100644 --- a/cloudformation/aws-codebuild-project_environmentvariable.go +++ b/cloudformation/resources/aws-codebuild-project_environmentvariable.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeBuildProject_EnvironmentVariable AWS CloudFormation Resource (AWS::CodeBuild::Project.EnvironmentVariable) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environmentvariable.html @@ -20,7 +22,7 @@ type AWSCodeBuildProject_EnvironmentVariable struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSCodeBuildProject_EnvironmentVariable) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeBuildProject_EnvironmentVariable) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeBuildProject_EnvironmentVariable) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codebuild-project_filtergroup.go b/cloudformation/resources/aws-codebuild-project_filtergroup.go similarity index 93% rename from cloudformation/aws-codebuild-project_filtergroup.go rename to cloudformation/resources/aws-codebuild-project_filtergroup.go index ed91bfa3a7..f78990ee09 100644 --- a/cloudformation/aws-codebuild-project_filtergroup.go +++ b/cloudformation/resources/aws-codebuild-project_filtergroup.go @@ -1,11 +1,13 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeBuildProject_FilterGroup AWS CloudFormation Resource (AWS::CodeBuild::Project.FilterGroup) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-filtergroup.html type AWSCodeBuildProject_FilterGroup struct { // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -45,6 +47,6 @@ func (r *AWSCodeBuildProject_FilterGroup) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeBuildProject_FilterGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeBuildProject_FilterGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codebuild-project_logsconfig.go b/cloudformation/resources/aws-codebuild-project_logsconfig.go similarity index 94% rename from cloudformation/aws-codebuild-project_logsconfig.go rename to cloudformation/resources/aws-codebuild-project_logsconfig.go index 06199db575..32f2ea3984 100644 --- a/cloudformation/aws-codebuild-project_logsconfig.go +++ b/cloudformation/resources/aws-codebuild-project_logsconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeBuildProject_LogsConfig AWS CloudFormation Resource (AWS::CodeBuild::Project.LogsConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-logsconfig.html @@ -15,7 +17,7 @@ type AWSCodeBuildProject_LogsConfig struct { S3Logs *AWSCodeBuildProject_S3LogsConfig `json:"S3Logs,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCodeBuildProject_LogsConfig) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeBuildProject_LogsConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeBuildProject_LogsConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codebuild-project_projectcache.go b/cloudformation/resources/aws-codebuild-project_projectcache.go similarity index 94% rename from cloudformation/aws-codebuild-project_projectcache.go rename to cloudformation/resources/aws-codebuild-project_projectcache.go index f939e31bab..66bd3b4050 100644 --- a/cloudformation/aws-codebuild-project_projectcache.go +++ b/cloudformation/resources/aws-codebuild-project_projectcache.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeBuildProject_ProjectCache AWS CloudFormation Resource (AWS::CodeBuild::Project.ProjectCache) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html @@ -20,7 +22,7 @@ type AWSCodeBuildProject_ProjectCache struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSCodeBuildProject_ProjectCache) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeBuildProject_ProjectCache) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeBuildProject_ProjectCache) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codebuild-project_projecttriggers.go b/cloudformation/resources/aws-codebuild-project_projecttriggers.go similarity index 94% rename from cloudformation/aws-codebuild-project_projecttriggers.go rename to cloudformation/resources/aws-codebuild-project_projecttriggers.go index b8c7b05dee..8a3696d017 100644 --- a/cloudformation/aws-codebuild-project_projecttriggers.go +++ b/cloudformation/resources/aws-codebuild-project_projecttriggers.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeBuildProject_ProjectTriggers AWS CloudFormation Resource (AWS::CodeBuild::Project.ProjectTriggers) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projecttriggers.html @@ -15,7 +17,7 @@ type AWSCodeBuildProject_ProjectTriggers struct { Webhook bool `json:"Webhook,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCodeBuildProject_ProjectTriggers) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeBuildProject_ProjectTriggers) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeBuildProject_ProjectTriggers) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codebuild-project_registrycredential.go b/cloudformation/resources/aws-codebuild-project_registrycredential.go similarity index 94% rename from cloudformation/aws-codebuild-project_registrycredential.go rename to cloudformation/resources/aws-codebuild-project_registrycredential.go index 2d7a73b1f7..bd32253af7 100644 --- a/cloudformation/aws-codebuild-project_registrycredential.go +++ b/cloudformation/resources/aws-codebuild-project_registrycredential.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeBuildProject_RegistryCredential AWS CloudFormation Resource (AWS::CodeBuild::Project.RegistryCredential) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-registrycredential.html @@ -15,7 +17,7 @@ type AWSCodeBuildProject_RegistryCredential struct { CredentialProvider string `json:"CredentialProvider,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCodeBuildProject_RegistryCredential) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeBuildProject_RegistryCredential) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeBuildProject_RegistryCredential) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codebuild-project_s3logsconfig.go b/cloudformation/resources/aws-codebuild-project_s3logsconfig.go similarity index 94% rename from cloudformation/aws-codebuild-project_s3logsconfig.go rename to cloudformation/resources/aws-codebuild-project_s3logsconfig.go index 57d5e2afc4..7ab60ca7b7 100644 --- a/cloudformation/aws-codebuild-project_s3logsconfig.go +++ b/cloudformation/resources/aws-codebuild-project_s3logsconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeBuildProject_S3LogsConfig AWS CloudFormation Resource (AWS::CodeBuild::Project.S3LogsConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-s3logsconfig.html @@ -15,7 +17,7 @@ type AWSCodeBuildProject_S3LogsConfig struct { Status string `json:"Status,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCodeBuildProject_S3LogsConfig) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeBuildProject_S3LogsConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeBuildProject_S3LogsConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codebuild-project_source.go b/cloudformation/resources/aws-codebuild-project_source.go similarity index 95% rename from cloudformation/aws-codebuild-project_source.go rename to cloudformation/resources/aws-codebuild-project_source.go index 48103b7595..55aa136392 100644 --- a/cloudformation/aws-codebuild-project_source.go +++ b/cloudformation/resources/aws-codebuild-project_source.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeBuildProject_Source AWS CloudFormation Resource (AWS::CodeBuild::Project.Source) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html @@ -45,7 +47,7 @@ type AWSCodeBuildProject_Source struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -85,6 +87,6 @@ func (r *AWSCodeBuildProject_Source) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeBuildProject_Source) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeBuildProject_Source) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codebuild-project_sourceauth.go b/cloudformation/resources/aws-codebuild-project_sourceauth.go similarity index 94% rename from cloudformation/aws-codebuild-project_sourceauth.go rename to cloudformation/resources/aws-codebuild-project_sourceauth.go index 1816d17517..dce20ce804 100644 --- a/cloudformation/aws-codebuild-project_sourceauth.go +++ b/cloudformation/resources/aws-codebuild-project_sourceauth.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeBuildProject_SourceAuth AWS CloudFormation Resource (AWS::CodeBuild::Project.SourceAuth) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-sourceauth.html @@ -15,7 +17,7 @@ type AWSCodeBuildProject_SourceAuth struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCodeBuildProject_SourceAuth) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeBuildProject_SourceAuth) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeBuildProject_SourceAuth) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codebuild-project_vpcconfig.go b/cloudformation/resources/aws-codebuild-project_vpcconfig.go similarity index 95% rename from cloudformation/aws-codebuild-project_vpcconfig.go rename to cloudformation/resources/aws-codebuild-project_vpcconfig.go index 5ef856328a..bf27ddf995 100644 --- a/cloudformation/aws-codebuild-project_vpcconfig.go +++ b/cloudformation/resources/aws-codebuild-project_vpcconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeBuildProject_VpcConfig AWS CloudFormation Resource (AWS::CodeBuild::Project.VpcConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html @@ -20,7 +22,7 @@ type AWSCodeBuildProject_VpcConfig struct { VpcId string `json:"VpcId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSCodeBuildProject_VpcConfig) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeBuildProject_VpcConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeBuildProject_VpcConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codebuild-project_webhookfilter.go b/cloudformation/resources/aws-codebuild-project_webhookfilter.go similarity index 95% rename from cloudformation/aws-codebuild-project_webhookfilter.go rename to cloudformation/resources/aws-codebuild-project_webhookfilter.go index 788862f096..eec8364098 100644 --- a/cloudformation/aws-codebuild-project_webhookfilter.go +++ b/cloudformation/resources/aws-codebuild-project_webhookfilter.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeBuildProject_WebhookFilter AWS CloudFormation Resource (AWS::CodeBuild::Project.WebhookFilter) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-webhookfilter.html @@ -20,7 +22,7 @@ type AWSCodeBuildProject_WebhookFilter struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSCodeBuildProject_WebhookFilter) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeBuildProject_WebhookFilter) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeBuildProject_WebhookFilter) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codecommit-repository.go b/cloudformation/resources/aws-codecommit-repository.go similarity index 91% rename from cloudformation/aws-codecommit-repository.go rename to cloudformation/resources/aws-codecommit-repository.go index c45e30f9cc..01da2f8298 100644 --- a/cloudformation/aws-codecommit-repository.go +++ b/cloudformation/resources/aws-codecommit-repository.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCodeCommitRepository AWS CloudFormation Resource (AWS::CodeCommit::Repository) @@ -26,7 +27,7 @@ type AWSCodeCommitRepository struct { Triggers []AWSCodeCommitRepository_RepositoryTrigger `json:"Triggers,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSCodeCommitRepository) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeCommitRepository) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeCommitRepository) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSCodeCommitRepository) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-codecommit-repository_repositorytrigger.go b/cloudformation/resources/aws-codecommit-repository_repositorytrigger.go similarity index 95% rename from cloudformation/aws-codecommit-repository_repositorytrigger.go rename to cloudformation/resources/aws-codecommit-repository_repositorytrigger.go index 4e18386589..f260b3d3c2 100644 --- a/cloudformation/aws-codecommit-repository_repositorytrigger.go +++ b/cloudformation/resources/aws-codecommit-repository_repositorytrigger.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeCommitRepository_RepositoryTrigger AWS CloudFormation Resource (AWS::CodeCommit::Repository.RepositoryTrigger) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html @@ -30,7 +32,7 @@ type AWSCodeCommitRepository_RepositoryTrigger struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSCodeCommitRepository_RepositoryTrigger) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeCommitRepository_RepositoryTrigger) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeCommitRepository_RepositoryTrigger) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codedeploy-application.go b/cloudformation/resources/aws-codedeploy-application.go similarity index 90% rename from cloudformation/aws-codedeploy-application.go rename to cloudformation/resources/aws-codedeploy-application.go index c35aea9c38..21f77e93bc 100644 --- a/cloudformation/aws-codedeploy-application.go +++ b/cloudformation/resources/aws-codedeploy-application.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCodeDeployApplication AWS CloudFormation Resource (AWS::CodeDeploy::Application) @@ -21,7 +22,7 @@ type AWSCodeDeployApplication struct { ComputePlatform string `json:"ComputePlatform,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSCodeDeployApplication) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeDeployApplication) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeDeployApplication) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSCodeDeployApplication) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-codedeploy-deploymentconfig.go b/cloudformation/resources/aws-codedeploy-deploymentconfig.go similarity index 92% rename from cloudformation/aws-codedeploy-deploymentconfig.go rename to cloudformation/resources/aws-codedeploy-deploymentconfig.go index dbd613970b..0b20e133cb 100644 --- a/cloudformation/aws-codedeploy-deploymentconfig.go +++ b/cloudformation/resources/aws-codedeploy-deploymentconfig.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCodeDeployDeploymentConfig AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentConfig) @@ -21,7 +22,7 @@ type AWSCodeDeployDeploymentConfig struct { MinimumHealthyHosts *AWSCodeDeployDeploymentConfig_MinimumHealthyHosts `json:"MinimumHealthyHosts,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSCodeDeployDeploymentConfig) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeDeployDeploymentConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeDeployDeploymentConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSCodeDeployDeploymentConfig) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-codedeploy-deploymentconfig_minimumhealthyhosts.go b/cloudformation/resources/aws-codedeploy-deploymentconfig_minimumhealthyhosts.go similarity index 94% rename from cloudformation/aws-codedeploy-deploymentconfig_minimumhealthyhosts.go rename to cloudformation/resources/aws-codedeploy-deploymentconfig_minimumhealthyhosts.go index 0238bd3536..59177e6cb0 100644 --- a/cloudformation/aws-codedeploy-deploymentconfig_minimumhealthyhosts.go +++ b/cloudformation/resources/aws-codedeploy-deploymentconfig_minimumhealthyhosts.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeDeployDeploymentConfig_MinimumHealthyHosts AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-minimumhealthyhosts.html @@ -15,7 +17,7 @@ type AWSCodeDeployDeploymentConfig_MinimumHealthyHosts struct { Value int `json:"Value"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCodeDeployDeploymentConfig_MinimumHealthyHosts) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeDeployDeploymentConfig_MinimumHealthyHosts) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeDeployDeploymentConfig_MinimumHealthyHosts) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codedeploy-deploymentgroup.go b/cloudformation/resources/aws-codedeploy-deploymentgroup.go similarity index 95% rename from cloudformation/aws-codedeploy-deploymentgroup.go rename to cloudformation/resources/aws-codedeploy-deploymentgroup.go index 7a2606e387..4586a1955c 100644 --- a/cloudformation/aws-codedeploy-deploymentgroup.go +++ b/cloudformation/resources/aws-codedeploy-deploymentgroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCodeDeployDeploymentGroup AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup) @@ -86,7 +87,7 @@ type AWSCodeDeployDeploymentGroup struct { TriggerConfigurations []AWSCodeDeployDeploymentGroup_TriggerConfig `json:"TriggerConfigurations,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -126,7 +127,7 @@ func (r *AWSCodeDeployDeploymentGroup) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeDeployDeploymentGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeDeployDeploymentGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -137,9 +138,9 @@ func (r AWSCodeDeployDeploymentGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-codedeploy-deploymentgroup_alarm.go b/cloudformation/resources/aws-codedeploy-deploymentgroup_alarm.go similarity index 93% rename from cloudformation/aws-codedeploy-deploymentgroup_alarm.go rename to cloudformation/resources/aws-codedeploy-deploymentgroup_alarm.go index 2f17ab803d..ebe718369d 100644 --- a/cloudformation/aws-codedeploy-deploymentgroup_alarm.go +++ b/cloudformation/resources/aws-codedeploy-deploymentgroup_alarm.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeDeployDeploymentGroup_Alarm AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.Alarm) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarm.html @@ -10,7 +12,7 @@ type AWSCodeDeployDeploymentGroup_Alarm struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSCodeDeployDeploymentGroup_Alarm) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeDeployDeploymentGroup_Alarm) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeDeployDeploymentGroup_Alarm) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codedeploy-deploymentgroup_alarmconfiguration.go b/cloudformation/resources/aws-codedeploy-deploymentgroup_alarmconfiguration.go similarity index 95% rename from cloudformation/aws-codedeploy-deploymentgroup_alarmconfiguration.go rename to cloudformation/resources/aws-codedeploy-deploymentgroup_alarmconfiguration.go index c02b6e7d9f..bedda13e54 100644 --- a/cloudformation/aws-codedeploy-deploymentgroup_alarmconfiguration.go +++ b/cloudformation/resources/aws-codedeploy-deploymentgroup_alarmconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeDeployDeploymentGroup_AlarmConfiguration AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarmconfiguration.html @@ -20,7 +22,7 @@ type AWSCodeDeployDeploymentGroup_AlarmConfiguration struct { IgnorePollAlarmFailure bool `json:"IgnorePollAlarmFailure,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSCodeDeployDeploymentGroup_AlarmConfiguration) SetMetadata(metadata m // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeDeployDeploymentGroup_AlarmConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeDeployDeploymentGroup_AlarmConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codedeploy-deploymentgroup_autorollbackconfiguration.go b/cloudformation/resources/aws-codedeploy-deploymentgroup_autorollbackconfiguration.go similarity index 94% rename from cloudformation/aws-codedeploy-deploymentgroup_autorollbackconfiguration.go rename to cloudformation/resources/aws-codedeploy-deploymentgroup_autorollbackconfiguration.go index e469bfc04a..450ccee209 100644 --- a/cloudformation/aws-codedeploy-deploymentgroup_autorollbackconfiguration.go +++ b/cloudformation/resources/aws-codedeploy-deploymentgroup_autorollbackconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeDeployDeploymentGroup_AutoRollbackConfiguration AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-autorollbackconfiguration.html @@ -15,7 +17,7 @@ type AWSCodeDeployDeploymentGroup_AutoRollbackConfiguration struct { Events []string `json:"Events,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCodeDeployDeploymentGroup_AutoRollbackConfiguration) SetMetadata(met // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeDeployDeploymentGroup_AutoRollbackConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeDeployDeploymentGroup_AutoRollbackConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codedeploy-deploymentgroup_deployment.go b/cloudformation/resources/aws-codedeploy-deploymentgroup_deployment.go similarity index 95% rename from cloudformation/aws-codedeploy-deploymentgroup_deployment.go rename to cloudformation/resources/aws-codedeploy-deploymentgroup_deployment.go index 6c67cada42..959b64959f 100644 --- a/cloudformation/aws-codedeploy-deploymentgroup_deployment.go +++ b/cloudformation/resources/aws-codedeploy-deploymentgroup_deployment.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeDeployDeploymentGroup_Deployment AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.Deployment) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment.html @@ -20,7 +22,7 @@ type AWSCodeDeployDeploymentGroup_Deployment struct { Revision *AWSCodeDeployDeploymentGroup_RevisionLocation `json:"Revision,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSCodeDeployDeploymentGroup_Deployment) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeDeployDeploymentGroup_Deployment) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeDeployDeploymentGroup_Deployment) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codedeploy-deploymentgroup_deploymentstyle.go b/cloudformation/resources/aws-codedeploy-deploymentgroup_deploymentstyle.go similarity index 94% rename from cloudformation/aws-codedeploy-deploymentgroup_deploymentstyle.go rename to cloudformation/resources/aws-codedeploy-deploymentgroup_deploymentstyle.go index 087f25bad3..b27fab6c5e 100644 --- a/cloudformation/aws-codedeploy-deploymentgroup_deploymentstyle.go +++ b/cloudformation/resources/aws-codedeploy-deploymentgroup_deploymentstyle.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeDeployDeploymentGroup_DeploymentStyle AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.DeploymentStyle) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentstyle.html @@ -15,7 +17,7 @@ type AWSCodeDeployDeploymentGroup_DeploymentStyle struct { DeploymentType string `json:"DeploymentType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCodeDeployDeploymentGroup_DeploymentStyle) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeDeployDeploymentGroup_DeploymentStyle) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeDeployDeploymentGroup_DeploymentStyle) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codedeploy-deploymentgroup_ec2tagfilter.go b/cloudformation/resources/aws-codedeploy-deploymentgroup_ec2tagfilter.go similarity index 94% rename from cloudformation/aws-codedeploy-deploymentgroup_ec2tagfilter.go rename to cloudformation/resources/aws-codedeploy-deploymentgroup_ec2tagfilter.go index 73129467b0..626c6bf883 100644 --- a/cloudformation/aws-codedeploy-deploymentgroup_ec2tagfilter.go +++ b/cloudformation/resources/aws-codedeploy-deploymentgroup_ec2tagfilter.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeDeployDeploymentGroup_EC2TagFilter AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.EC2TagFilter) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilter.html @@ -20,7 +22,7 @@ type AWSCodeDeployDeploymentGroup_EC2TagFilter struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSCodeDeployDeploymentGroup_EC2TagFilter) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeDeployDeploymentGroup_EC2TagFilter) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeDeployDeploymentGroup_EC2TagFilter) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codedeploy-deploymentgroup_ec2tagset.go b/cloudformation/resources/aws-codedeploy-deploymentgroup_ec2tagset.go similarity index 94% rename from cloudformation/aws-codedeploy-deploymentgroup_ec2tagset.go rename to cloudformation/resources/aws-codedeploy-deploymentgroup_ec2tagset.go index 508814e3cb..86e5b9d2b0 100644 --- a/cloudformation/aws-codedeploy-deploymentgroup_ec2tagset.go +++ b/cloudformation/resources/aws-codedeploy-deploymentgroup_ec2tagset.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeDeployDeploymentGroup_EC2TagSet AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.EC2TagSet) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagset.html @@ -10,7 +12,7 @@ type AWSCodeDeployDeploymentGroup_EC2TagSet struct { Ec2TagSetList []AWSCodeDeployDeploymentGroup_EC2TagSetListObject `json:"Ec2TagSetList,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSCodeDeployDeploymentGroup_EC2TagSet) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeDeployDeploymentGroup_EC2TagSet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeDeployDeploymentGroup_EC2TagSet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codedeploy-deploymentgroup_ec2tagsetlistobject.go b/cloudformation/resources/aws-codedeploy-deploymentgroup_ec2tagsetlistobject.go similarity index 93% rename from cloudformation/aws-codedeploy-deploymentgroup_ec2tagsetlistobject.go rename to cloudformation/resources/aws-codedeploy-deploymentgroup_ec2tagsetlistobject.go index f2d2a76ccf..9591483d50 100644 --- a/cloudformation/aws-codedeploy-deploymentgroup_ec2tagsetlistobject.go +++ b/cloudformation/resources/aws-codedeploy-deploymentgroup_ec2tagsetlistobject.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeDeployDeploymentGroup_EC2TagSetListObject AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagsetlistobject.html @@ -10,7 +12,7 @@ type AWSCodeDeployDeploymentGroup_EC2TagSetListObject struct { Ec2TagGroup []AWSCodeDeployDeploymentGroup_EC2TagFilter `json:"Ec2TagGroup,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSCodeDeployDeploymentGroup_EC2TagSetListObject) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeDeployDeploymentGroup_EC2TagSetListObject) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeDeployDeploymentGroup_EC2TagSetListObject) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codedeploy-deploymentgroup_elbinfo.go b/cloudformation/resources/aws-codedeploy-deploymentgroup_elbinfo.go similarity index 93% rename from cloudformation/aws-codedeploy-deploymentgroup_elbinfo.go rename to cloudformation/resources/aws-codedeploy-deploymentgroup_elbinfo.go index 80f5d5186d..9efcb14897 100644 --- a/cloudformation/aws-codedeploy-deploymentgroup_elbinfo.go +++ b/cloudformation/resources/aws-codedeploy-deploymentgroup_elbinfo.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeDeployDeploymentGroup_ELBInfo AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.ELBInfo) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-elbinfo.html @@ -10,7 +12,7 @@ type AWSCodeDeployDeploymentGroup_ELBInfo struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSCodeDeployDeploymentGroup_ELBInfo) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeDeployDeploymentGroup_ELBInfo) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeDeployDeploymentGroup_ELBInfo) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codedeploy-deploymentgroup_githublocation.go b/cloudformation/resources/aws-codedeploy-deploymentgroup_githublocation.go similarity index 94% rename from cloudformation/aws-codedeploy-deploymentgroup_githublocation.go rename to cloudformation/resources/aws-codedeploy-deploymentgroup_githublocation.go index 4febd02a7a..792d82fb0c 100644 --- a/cloudformation/aws-codedeploy-deploymentgroup_githublocation.go +++ b/cloudformation/resources/aws-codedeploy-deploymentgroup_githublocation.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeDeployDeploymentGroup_GitHubLocation AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.GitHubLocation) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-githublocation.html @@ -15,7 +17,7 @@ type AWSCodeDeployDeploymentGroup_GitHubLocation struct { Repository string `json:"Repository,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCodeDeployDeploymentGroup_GitHubLocation) SetMetadata(metadata map[s // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeDeployDeploymentGroup_GitHubLocation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeDeployDeploymentGroup_GitHubLocation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codedeploy-deploymentgroup_loadbalancerinfo.go b/cloudformation/resources/aws-codedeploy-deploymentgroup_loadbalancerinfo.go similarity index 94% rename from cloudformation/aws-codedeploy-deploymentgroup_loadbalancerinfo.go rename to cloudformation/resources/aws-codedeploy-deploymentgroup_loadbalancerinfo.go index e28068ece8..4c9e81d7fc 100644 --- a/cloudformation/aws-codedeploy-deploymentgroup_loadbalancerinfo.go +++ b/cloudformation/resources/aws-codedeploy-deploymentgroup_loadbalancerinfo.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeDeployDeploymentGroup_LoadBalancerInfo AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-loadbalancerinfo.html @@ -15,7 +17,7 @@ type AWSCodeDeployDeploymentGroup_LoadBalancerInfo struct { TargetGroupInfoList []AWSCodeDeployDeploymentGroup_TargetGroupInfo `json:"TargetGroupInfoList,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCodeDeployDeploymentGroup_LoadBalancerInfo) SetMetadata(metadata map // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeDeployDeploymentGroup_LoadBalancerInfo) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeDeployDeploymentGroup_LoadBalancerInfo) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codedeploy-deploymentgroup_onpremisestagset.go b/cloudformation/resources/aws-codedeploy-deploymentgroup_onpremisestagset.go similarity index 94% rename from cloudformation/aws-codedeploy-deploymentgroup_onpremisestagset.go rename to cloudformation/resources/aws-codedeploy-deploymentgroup_onpremisestagset.go index 99e0ea98cd..5a5e7392c8 100644 --- a/cloudformation/aws-codedeploy-deploymentgroup_onpremisestagset.go +++ b/cloudformation/resources/aws-codedeploy-deploymentgroup_onpremisestagset.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeDeployDeploymentGroup_OnPremisesTagSet AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisestagset.html @@ -10,7 +12,7 @@ type AWSCodeDeployDeploymentGroup_OnPremisesTagSet struct { OnPremisesTagSetList []AWSCodeDeployDeploymentGroup_OnPremisesTagSetListObject `json:"OnPremisesTagSetList,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSCodeDeployDeploymentGroup_OnPremisesTagSet) SetMetadata(metadata map // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeDeployDeploymentGroup_OnPremisesTagSet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeDeployDeploymentGroup_OnPremisesTagSet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codedeploy-deploymentgroup_onpremisestagsetlistobject.go b/cloudformation/resources/aws-codedeploy-deploymentgroup_onpremisestagsetlistobject.go similarity index 93% rename from cloudformation/aws-codedeploy-deploymentgroup_onpremisestagsetlistobject.go rename to cloudformation/resources/aws-codedeploy-deploymentgroup_onpremisestagsetlistobject.go index 60f8406756..0f53d2f558 100644 --- a/cloudformation/aws-codedeploy-deploymentgroup_onpremisestagsetlistobject.go +++ b/cloudformation/resources/aws-codedeploy-deploymentgroup_onpremisestagsetlistobject.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeDeployDeploymentGroup_OnPremisesTagSetListObject AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisestagsetlistobject.html @@ -10,7 +12,7 @@ type AWSCodeDeployDeploymentGroup_OnPremisesTagSetListObject struct { OnPremisesTagGroup []AWSCodeDeployDeploymentGroup_TagFilter `json:"OnPremisesTagGroup,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSCodeDeployDeploymentGroup_OnPremisesTagSetListObject) SetMetadata(me // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeDeployDeploymentGroup_OnPremisesTagSetListObject) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeDeployDeploymentGroup_OnPremisesTagSetListObject) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codedeploy-deploymentgroup_revisionlocation.go b/cloudformation/resources/aws-codedeploy-deploymentgroup_revisionlocation.go similarity index 95% rename from cloudformation/aws-codedeploy-deploymentgroup_revisionlocation.go rename to cloudformation/resources/aws-codedeploy-deploymentgroup_revisionlocation.go index 22f207b98d..02c6c311c6 100644 --- a/cloudformation/aws-codedeploy-deploymentgroup_revisionlocation.go +++ b/cloudformation/resources/aws-codedeploy-deploymentgroup_revisionlocation.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeDeployDeploymentGroup_RevisionLocation AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.RevisionLocation) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision.html @@ -20,7 +22,7 @@ type AWSCodeDeployDeploymentGroup_RevisionLocation struct { S3Location *AWSCodeDeployDeploymentGroup_S3Location `json:"S3Location,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSCodeDeployDeploymentGroup_RevisionLocation) SetMetadata(metadata map // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeDeployDeploymentGroup_RevisionLocation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeDeployDeploymentGroup_RevisionLocation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codedeploy-deploymentgroup_s3location.go b/cloudformation/resources/aws-codedeploy-deploymentgroup_s3location.go similarity index 95% rename from cloudformation/aws-codedeploy-deploymentgroup_s3location.go rename to cloudformation/resources/aws-codedeploy-deploymentgroup_s3location.go index 01326707bc..4f88ab6c4c 100644 --- a/cloudformation/aws-codedeploy-deploymentgroup_s3location.go +++ b/cloudformation/resources/aws-codedeploy-deploymentgroup_s3location.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeDeployDeploymentGroup_S3Location AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.S3Location) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html @@ -30,7 +32,7 @@ type AWSCodeDeployDeploymentGroup_S3Location struct { Version string `json:"Version,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSCodeDeployDeploymentGroup_S3Location) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeDeployDeploymentGroup_S3Location) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeDeployDeploymentGroup_S3Location) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codedeploy-deploymentgroup_tagfilter.go b/cloudformation/resources/aws-codedeploy-deploymentgroup_tagfilter.go similarity index 94% rename from cloudformation/aws-codedeploy-deploymentgroup_tagfilter.go rename to cloudformation/resources/aws-codedeploy-deploymentgroup_tagfilter.go index dba7931eb0..3131a88cf4 100644 --- a/cloudformation/aws-codedeploy-deploymentgroup_tagfilter.go +++ b/cloudformation/resources/aws-codedeploy-deploymentgroup_tagfilter.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeDeployDeploymentGroup_TagFilter AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.TagFilter) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-tagfilter.html @@ -20,7 +22,7 @@ type AWSCodeDeployDeploymentGroup_TagFilter struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSCodeDeployDeploymentGroup_TagFilter) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeDeployDeploymentGroup_TagFilter) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeDeployDeploymentGroup_TagFilter) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codedeploy-deploymentgroup_targetgroupinfo.go b/cloudformation/resources/aws-codedeploy-deploymentgroup_targetgroupinfo.go similarity index 93% rename from cloudformation/aws-codedeploy-deploymentgroup_targetgroupinfo.go rename to cloudformation/resources/aws-codedeploy-deploymentgroup_targetgroupinfo.go index 9cd31ef749..d2d3dbd1d8 100644 --- a/cloudformation/aws-codedeploy-deploymentgroup_targetgroupinfo.go +++ b/cloudformation/resources/aws-codedeploy-deploymentgroup_targetgroupinfo.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeDeployDeploymentGroup_TargetGroupInfo AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-targetgroupinfo.html @@ -10,7 +12,7 @@ type AWSCodeDeployDeploymentGroup_TargetGroupInfo struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSCodeDeployDeploymentGroup_TargetGroupInfo) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeDeployDeploymentGroup_TargetGroupInfo) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeDeployDeploymentGroup_TargetGroupInfo) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codedeploy-deploymentgroup_triggerconfig.go b/cloudformation/resources/aws-codedeploy-deploymentgroup_triggerconfig.go similarity index 95% rename from cloudformation/aws-codedeploy-deploymentgroup_triggerconfig.go rename to cloudformation/resources/aws-codedeploy-deploymentgroup_triggerconfig.go index 3582d4f5ca..6bfd061f24 100644 --- a/cloudformation/aws-codedeploy-deploymentgroup_triggerconfig.go +++ b/cloudformation/resources/aws-codedeploy-deploymentgroup_triggerconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodeDeployDeploymentGroup_TriggerConfig AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.TriggerConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-triggerconfig.html @@ -20,7 +22,7 @@ type AWSCodeDeployDeploymentGroup_TriggerConfig struct { TriggerTargetArn string `json:"TriggerTargetArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSCodeDeployDeploymentGroup_TriggerConfig) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodeDeployDeploymentGroup_TriggerConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodeDeployDeploymentGroup_TriggerConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codepipeline-customactiontype.go b/cloudformation/resources/aws-codepipeline-customactiontype.go similarity index 94% rename from cloudformation/aws-codepipeline-customactiontype.go rename to cloudformation/resources/aws-codepipeline-customactiontype.go index 60afdaf3ef..6a948b00ac 100644 --- a/cloudformation/aws-codepipeline-customactiontype.go +++ b/cloudformation/resources/aws-codepipeline-customactiontype.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCodePipelineCustomActionType AWS CloudFormation Resource (AWS::CodePipeline::CustomActionType) @@ -46,7 +47,7 @@ type AWSCodePipelineCustomActionType struct { Version string `json:"Version,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSCodePipelineCustomActionType) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodePipelineCustomActionType) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodePipelineCustomActionType) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSCodePipelineCustomActionType) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-codepipeline-customactiontype_artifactdetails.go b/cloudformation/resources/aws-codepipeline-customactiontype_artifactdetails.go similarity index 94% rename from cloudformation/aws-codepipeline-customactiontype_artifactdetails.go rename to cloudformation/resources/aws-codepipeline-customactiontype_artifactdetails.go index a803da2ad2..b1d925fb28 100644 --- a/cloudformation/aws-codepipeline-customactiontype_artifactdetails.go +++ b/cloudformation/resources/aws-codepipeline-customactiontype_artifactdetails.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodePipelineCustomActionType_ArtifactDetails AWS CloudFormation Resource (AWS::CodePipeline::CustomActionType.ArtifactDetails) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-artifactdetails.html @@ -15,7 +17,7 @@ type AWSCodePipelineCustomActionType_ArtifactDetails struct { MinimumCount int `json:"MinimumCount"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCodePipelineCustomActionType_ArtifactDetails) SetMetadata(metadata m // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodePipelineCustomActionType_ArtifactDetails) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodePipelineCustomActionType_ArtifactDetails) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codepipeline-customactiontype_configurationproperties.go b/cloudformation/resources/aws-codepipeline-customactiontype_configurationproperties.go similarity index 96% rename from cloudformation/aws-codepipeline-customactiontype_configurationproperties.go rename to cloudformation/resources/aws-codepipeline-customactiontype_configurationproperties.go index c938c25adc..36e464b19e 100644 --- a/cloudformation/aws-codepipeline-customactiontype_configurationproperties.go +++ b/cloudformation/resources/aws-codepipeline-customactiontype_configurationproperties.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodePipelineCustomActionType_ConfigurationProperties AWS CloudFormation Resource (AWS::CodePipeline::CustomActionType.ConfigurationProperties) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html @@ -40,7 +42,7 @@ type AWSCodePipelineCustomActionType_ConfigurationProperties struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -80,6 +82,6 @@ func (r *AWSCodePipelineCustomActionType_ConfigurationProperties) SetMetadata(me // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodePipelineCustomActionType_ConfigurationProperties) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodePipelineCustomActionType_ConfigurationProperties) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codepipeline-customactiontype_settings.go b/cloudformation/resources/aws-codepipeline-customactiontype_settings.go similarity index 95% rename from cloudformation/aws-codepipeline-customactiontype_settings.go rename to cloudformation/resources/aws-codepipeline-customactiontype_settings.go index 5c462cfd16..f1375fbb53 100644 --- a/cloudformation/aws-codepipeline-customactiontype_settings.go +++ b/cloudformation/resources/aws-codepipeline-customactiontype_settings.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodePipelineCustomActionType_Settings AWS CloudFormation Resource (AWS::CodePipeline::CustomActionType.Settings) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-settings.html @@ -25,7 +27,7 @@ type AWSCodePipelineCustomActionType_Settings struct { ThirdPartyConfigurationUrl string `json:"ThirdPartyConfigurationUrl,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSCodePipelineCustomActionType_Settings) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodePipelineCustomActionType_Settings) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodePipelineCustomActionType_Settings) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codepipeline-pipeline.go b/cloudformation/resources/aws-codepipeline-pipeline.go similarity index 93% rename from cloudformation/aws-codepipeline-pipeline.go rename to cloudformation/resources/aws-codepipeline-pipeline.go index 04d296a8f8..2266329b03 100644 --- a/cloudformation/aws-codepipeline-pipeline.go +++ b/cloudformation/resources/aws-codepipeline-pipeline.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCodePipelinePipeline AWS CloudFormation Resource (AWS::CodePipeline::Pipeline) @@ -46,7 +47,7 @@ type AWSCodePipelinePipeline struct { Stages []AWSCodePipelinePipeline_StageDeclaration `json:"Stages,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSCodePipelinePipeline) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodePipelinePipeline) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodePipelinePipeline) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSCodePipelinePipeline) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-codepipeline-pipeline_actiondeclaration.go b/cloudformation/resources/aws-codepipeline-pipeline_actiondeclaration.go similarity index 96% rename from cloudformation/aws-codepipeline-pipeline_actiondeclaration.go rename to cloudformation/resources/aws-codepipeline-pipeline_actiondeclaration.go index 8e874f1f52..6353173cad 100644 --- a/cloudformation/aws-codepipeline-pipeline_actiondeclaration.go +++ b/cloudformation/resources/aws-codepipeline-pipeline_actiondeclaration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodePipelinePipeline_ActionDeclaration AWS CloudFormation Resource (AWS::CodePipeline::Pipeline.ActionDeclaration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html @@ -45,7 +47,7 @@ type AWSCodePipelinePipeline_ActionDeclaration struct { RunOrder int `json:"RunOrder,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -85,6 +87,6 @@ func (r *AWSCodePipelinePipeline_ActionDeclaration) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodePipelinePipeline_ActionDeclaration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodePipelinePipeline_ActionDeclaration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codepipeline-pipeline_actiontypeid.go b/cloudformation/resources/aws-codepipeline-pipeline_actiontypeid.go similarity index 95% rename from cloudformation/aws-codepipeline-pipeline_actiontypeid.go rename to cloudformation/resources/aws-codepipeline-pipeline_actiontypeid.go index eb0f130609..1eb5cdba07 100644 --- a/cloudformation/aws-codepipeline-pipeline_actiontypeid.go +++ b/cloudformation/resources/aws-codepipeline-pipeline_actiontypeid.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodePipelinePipeline_ActionTypeId AWS CloudFormation Resource (AWS::CodePipeline::Pipeline.ActionTypeId) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html @@ -25,7 +27,7 @@ type AWSCodePipelinePipeline_ActionTypeId struct { Version string `json:"Version,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSCodePipelinePipeline_ActionTypeId) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodePipelinePipeline_ActionTypeId) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodePipelinePipeline_ActionTypeId) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codepipeline-pipeline_artifactstore.go b/cloudformation/resources/aws-codepipeline-pipeline_artifactstore.go similarity index 95% rename from cloudformation/aws-codepipeline-pipeline_artifactstore.go rename to cloudformation/resources/aws-codepipeline-pipeline_artifactstore.go index e0061b9c21..25fa7bd7e8 100644 --- a/cloudformation/aws-codepipeline-pipeline_artifactstore.go +++ b/cloudformation/resources/aws-codepipeline-pipeline_artifactstore.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodePipelinePipeline_ArtifactStore AWS CloudFormation Resource (AWS::CodePipeline::Pipeline.ArtifactStore) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore.html @@ -20,7 +22,7 @@ type AWSCodePipelinePipeline_ArtifactStore struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSCodePipelinePipeline_ArtifactStore) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodePipelinePipeline_ArtifactStore) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodePipelinePipeline_ArtifactStore) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codepipeline-pipeline_artifactstoremap.go b/cloudformation/resources/aws-codepipeline-pipeline_artifactstoremap.go similarity index 94% rename from cloudformation/aws-codepipeline-pipeline_artifactstoremap.go rename to cloudformation/resources/aws-codepipeline-pipeline_artifactstoremap.go index 4f09ad64f1..654a63e53a 100644 --- a/cloudformation/aws-codepipeline-pipeline_artifactstoremap.go +++ b/cloudformation/resources/aws-codepipeline-pipeline_artifactstoremap.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodePipelinePipeline_ArtifactStoreMap AWS CloudFormation Resource (AWS::CodePipeline::Pipeline.ArtifactStoreMap) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstoremap.html @@ -15,7 +17,7 @@ type AWSCodePipelinePipeline_ArtifactStoreMap struct { Region string `json:"Region,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCodePipelinePipeline_ArtifactStoreMap) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodePipelinePipeline_ArtifactStoreMap) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodePipelinePipeline_ArtifactStoreMap) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codepipeline-pipeline_blockerdeclaration.go b/cloudformation/resources/aws-codepipeline-pipeline_blockerdeclaration.go similarity index 94% rename from cloudformation/aws-codepipeline-pipeline_blockerdeclaration.go rename to cloudformation/resources/aws-codepipeline-pipeline_blockerdeclaration.go index 886128430f..72490bed81 100644 --- a/cloudformation/aws-codepipeline-pipeline_blockerdeclaration.go +++ b/cloudformation/resources/aws-codepipeline-pipeline_blockerdeclaration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodePipelinePipeline_BlockerDeclaration AWS CloudFormation Resource (AWS::CodePipeline::Pipeline.BlockerDeclaration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-blockers.html @@ -15,7 +17,7 @@ type AWSCodePipelinePipeline_BlockerDeclaration struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCodePipelinePipeline_BlockerDeclaration) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodePipelinePipeline_BlockerDeclaration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodePipelinePipeline_BlockerDeclaration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codepipeline-pipeline_encryptionkey.go b/cloudformation/resources/aws-codepipeline-pipeline_encryptionkey.go similarity index 94% rename from cloudformation/aws-codepipeline-pipeline_encryptionkey.go rename to cloudformation/resources/aws-codepipeline-pipeline_encryptionkey.go index 33701c2ce2..3d1f6faf8d 100644 --- a/cloudformation/aws-codepipeline-pipeline_encryptionkey.go +++ b/cloudformation/resources/aws-codepipeline-pipeline_encryptionkey.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodePipelinePipeline_EncryptionKey AWS CloudFormation Resource (AWS::CodePipeline::Pipeline.EncryptionKey) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore-encryptionkey.html @@ -15,7 +17,7 @@ type AWSCodePipelinePipeline_EncryptionKey struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCodePipelinePipeline_EncryptionKey) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodePipelinePipeline_EncryptionKey) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodePipelinePipeline_EncryptionKey) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codepipeline-pipeline_inputartifact.go b/cloudformation/resources/aws-codepipeline-pipeline_inputartifact.go similarity index 93% rename from cloudformation/aws-codepipeline-pipeline_inputartifact.go rename to cloudformation/resources/aws-codepipeline-pipeline_inputartifact.go index 807a855623..5f514bcec5 100644 --- a/cloudformation/aws-codepipeline-pipeline_inputartifact.go +++ b/cloudformation/resources/aws-codepipeline-pipeline_inputartifact.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodePipelinePipeline_InputArtifact AWS CloudFormation Resource (AWS::CodePipeline::Pipeline.InputArtifact) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-inputartifacts.html @@ -10,7 +12,7 @@ type AWSCodePipelinePipeline_InputArtifact struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSCodePipelinePipeline_InputArtifact) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodePipelinePipeline_InputArtifact) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodePipelinePipeline_InputArtifact) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codepipeline-pipeline_outputartifact.go b/cloudformation/resources/aws-codepipeline-pipeline_outputartifact.go similarity index 93% rename from cloudformation/aws-codepipeline-pipeline_outputartifact.go rename to cloudformation/resources/aws-codepipeline-pipeline_outputartifact.go index 72ddc441cb..5910626430 100644 --- a/cloudformation/aws-codepipeline-pipeline_outputartifact.go +++ b/cloudformation/resources/aws-codepipeline-pipeline_outputartifact.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodePipelinePipeline_OutputArtifact AWS CloudFormation Resource (AWS::CodePipeline::Pipeline.OutputArtifact) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-outputartifacts.html @@ -10,7 +12,7 @@ type AWSCodePipelinePipeline_OutputArtifact struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSCodePipelinePipeline_OutputArtifact) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodePipelinePipeline_OutputArtifact) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodePipelinePipeline_OutputArtifact) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codepipeline-pipeline_stagedeclaration.go b/cloudformation/resources/aws-codepipeline-pipeline_stagedeclaration.go similarity index 94% rename from cloudformation/aws-codepipeline-pipeline_stagedeclaration.go rename to cloudformation/resources/aws-codepipeline-pipeline_stagedeclaration.go index bd72990003..03385ca621 100644 --- a/cloudformation/aws-codepipeline-pipeline_stagedeclaration.go +++ b/cloudformation/resources/aws-codepipeline-pipeline_stagedeclaration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodePipelinePipeline_StageDeclaration AWS CloudFormation Resource (AWS::CodePipeline::Pipeline.StageDeclaration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages.html @@ -20,7 +22,7 @@ type AWSCodePipelinePipeline_StageDeclaration struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSCodePipelinePipeline_StageDeclaration) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodePipelinePipeline_StageDeclaration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodePipelinePipeline_StageDeclaration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codepipeline-pipeline_stagetransition.go b/cloudformation/resources/aws-codepipeline-pipeline_stagetransition.go similarity index 94% rename from cloudformation/aws-codepipeline-pipeline_stagetransition.go rename to cloudformation/resources/aws-codepipeline-pipeline_stagetransition.go index 31b460878c..6bd64fe677 100644 --- a/cloudformation/aws-codepipeline-pipeline_stagetransition.go +++ b/cloudformation/resources/aws-codepipeline-pipeline_stagetransition.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodePipelinePipeline_StageTransition AWS CloudFormation Resource (AWS::CodePipeline::Pipeline.StageTransition) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-disableinboundstagetransitions.html @@ -15,7 +17,7 @@ type AWSCodePipelinePipeline_StageTransition struct { StageName string `json:"StageName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCodePipelinePipeline_StageTransition) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodePipelinePipeline_StageTransition) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodePipelinePipeline_StageTransition) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codepipeline-webhook.go b/cloudformation/resources/aws-codepipeline-webhook.go similarity index 93% rename from cloudformation/aws-codepipeline-webhook.go rename to cloudformation/resources/aws-codepipeline-webhook.go index e03a9d72c9..85a8e7501c 100644 --- a/cloudformation/aws-codepipeline-webhook.go +++ b/cloudformation/resources/aws-codepipeline-webhook.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCodePipelineWebhook AWS CloudFormation Resource (AWS::CodePipeline::Webhook) @@ -51,7 +52,7 @@ type AWSCodePipelineWebhook struct { TargetPipelineVersion int `json:"TargetPipelineVersion"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -91,7 +92,7 @@ func (r *AWSCodePipelineWebhook) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodePipelineWebhook) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodePipelineWebhook) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -102,9 +103,9 @@ func (r AWSCodePipelineWebhook) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-codepipeline-webhook_webhookauthconfiguration.go b/cloudformation/resources/aws-codepipeline-webhook_webhookauthconfiguration.go similarity index 94% rename from cloudformation/aws-codepipeline-webhook_webhookauthconfiguration.go rename to cloudformation/resources/aws-codepipeline-webhook_webhookauthconfiguration.go index bc388878bb..594c8ff52f 100644 --- a/cloudformation/aws-codepipeline-webhook_webhookauthconfiguration.go +++ b/cloudformation/resources/aws-codepipeline-webhook_webhookauthconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodePipelineWebhook_WebhookAuthConfiguration AWS CloudFormation Resource (AWS::CodePipeline::Webhook.WebhookAuthConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-webhook-webhookauthconfiguration.html @@ -15,7 +17,7 @@ type AWSCodePipelineWebhook_WebhookAuthConfiguration struct { SecretToken string `json:"SecretToken,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCodePipelineWebhook_WebhookAuthConfiguration) SetMetadata(metadata m // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodePipelineWebhook_WebhookAuthConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodePipelineWebhook_WebhookAuthConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-codepipeline-webhook_webhookfilterrule.go b/cloudformation/resources/aws-codepipeline-webhook_webhookfilterrule.go similarity index 94% rename from cloudformation/aws-codepipeline-webhook_webhookfilterrule.go rename to cloudformation/resources/aws-codepipeline-webhook_webhookfilterrule.go index 57caa507ee..d76be76f84 100644 --- a/cloudformation/aws-codepipeline-webhook_webhookfilterrule.go +++ b/cloudformation/resources/aws-codepipeline-webhook_webhookfilterrule.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCodePipelineWebhook_WebhookFilterRule AWS CloudFormation Resource (AWS::CodePipeline::Webhook.WebhookFilterRule) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-webhook-webhookfilterrule.html @@ -15,7 +17,7 @@ type AWSCodePipelineWebhook_WebhookFilterRule struct { MatchEquals string `json:"MatchEquals,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCodePipelineWebhook_WebhookFilterRule) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCodePipelineWebhook_WebhookFilterRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCodePipelineWebhook_WebhookFilterRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cognito-identitypool.go b/cloudformation/resources/aws-cognito-identitypool.go similarity index 94% rename from cloudformation/aws-cognito-identitypool.go rename to cloudformation/resources/aws-cognito-identitypool.go index cb83b4eee2..a95f2b8308 100644 --- a/cloudformation/aws-cognito-identitypool.go +++ b/cloudformation/resources/aws-cognito-identitypool.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCognitoIdentityPool AWS CloudFormation Resource (AWS::Cognito::IdentityPool) @@ -61,7 +62,7 @@ type AWSCognitoIdentityPool struct { SupportedLoginProviders interface{} `json:"SupportedLoginProviders,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -101,7 +102,7 @@ func (r *AWSCognitoIdentityPool) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoIdentityPool) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoIdentityPool) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -112,9 +113,9 @@ func (r AWSCognitoIdentityPool) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-cognito-identitypool_cognitoidentityprovider.go b/cloudformation/resources/aws-cognito-identitypool_cognitoidentityprovider.go similarity index 95% rename from cloudformation/aws-cognito-identitypool_cognitoidentityprovider.go rename to cloudformation/resources/aws-cognito-identitypool_cognitoidentityprovider.go index 4759ca778f..aabcd94aa1 100644 --- a/cloudformation/aws-cognito-identitypool_cognitoidentityprovider.go +++ b/cloudformation/resources/aws-cognito-identitypool_cognitoidentityprovider.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCognitoIdentityPool_CognitoIdentityProvider AWS CloudFormation Resource (AWS::Cognito::IdentityPool.CognitoIdentityProvider) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitoidentityprovider.html @@ -20,7 +22,7 @@ type AWSCognitoIdentityPool_CognitoIdentityProvider struct { ServerSideTokenCheck bool `json:"ServerSideTokenCheck,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSCognitoIdentityPool_CognitoIdentityProvider) SetMetadata(metadata ma // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoIdentityPool_CognitoIdentityProvider) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoIdentityPool_CognitoIdentityProvider) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cognito-identitypool_cognitostreams.go b/cloudformation/resources/aws-cognito-identitypool_cognitostreams.go similarity index 95% rename from cloudformation/aws-cognito-identitypool_cognitostreams.go rename to cloudformation/resources/aws-cognito-identitypool_cognitostreams.go index 2b35ba1a28..5796e24daa 100644 --- a/cloudformation/aws-cognito-identitypool_cognitostreams.go +++ b/cloudformation/resources/aws-cognito-identitypool_cognitostreams.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCognitoIdentityPool_CognitoStreams AWS CloudFormation Resource (AWS::Cognito::IdentityPool.CognitoStreams) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitostreams.html @@ -20,7 +22,7 @@ type AWSCognitoIdentityPool_CognitoStreams struct { StreamingStatus string `json:"StreamingStatus,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSCognitoIdentityPool_CognitoStreams) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoIdentityPool_CognitoStreams) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoIdentityPool_CognitoStreams) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cognito-identitypool_pushsync.go b/cloudformation/resources/aws-cognito-identitypool_pushsync.go similarity index 94% rename from cloudformation/aws-cognito-identitypool_pushsync.go rename to cloudformation/resources/aws-cognito-identitypool_pushsync.go index 8b5e14bdc0..180ed9e86a 100644 --- a/cloudformation/aws-cognito-identitypool_pushsync.go +++ b/cloudformation/resources/aws-cognito-identitypool_pushsync.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCognitoIdentityPool_PushSync AWS CloudFormation Resource (AWS::Cognito::IdentityPool.PushSync) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-pushsync.html @@ -15,7 +17,7 @@ type AWSCognitoIdentityPool_PushSync struct { RoleArn string `json:"RoleArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCognitoIdentityPool_PushSync) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoIdentityPool_PushSync) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoIdentityPool_PushSync) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cognito-identitypoolroleattachment.go b/cloudformation/resources/aws-cognito-identitypoolroleattachment.go similarity index 92% rename from cloudformation/aws-cognito-identitypoolroleattachment.go rename to cloudformation/resources/aws-cognito-identitypoolroleattachment.go index f6bc1f3559..7aa5a91788 100644 --- a/cloudformation/aws-cognito-identitypoolroleattachment.go +++ b/cloudformation/resources/aws-cognito-identitypoolroleattachment.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCognitoIdentityPoolRoleAttachment AWS CloudFormation Resource (AWS::Cognito::IdentityPoolRoleAttachment) @@ -26,7 +27,7 @@ type AWSCognitoIdentityPoolRoleAttachment struct { Roles interface{} `json:"Roles,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSCognitoIdentityPoolRoleAttachment) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoIdentityPoolRoleAttachment) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoIdentityPoolRoleAttachment) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSCognitoIdentityPoolRoleAttachment) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-cognito-identitypoolroleattachment_mappingrule.go b/cloudformation/resources/aws-cognito-identitypoolroleattachment_mappingrule.go similarity index 95% rename from cloudformation/aws-cognito-identitypoolroleattachment_mappingrule.go rename to cloudformation/resources/aws-cognito-identitypoolroleattachment_mappingrule.go index f779dfaad6..6db39027d9 100644 --- a/cloudformation/aws-cognito-identitypoolroleattachment_mappingrule.go +++ b/cloudformation/resources/aws-cognito-identitypoolroleattachment_mappingrule.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCognitoIdentityPoolRoleAttachment_MappingRule AWS CloudFormation Resource (AWS::Cognito::IdentityPoolRoleAttachment.MappingRule) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-mappingrule.html @@ -25,7 +27,7 @@ type AWSCognitoIdentityPoolRoleAttachment_MappingRule struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSCognitoIdentityPoolRoleAttachment_MappingRule) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoIdentityPoolRoleAttachment_MappingRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoIdentityPoolRoleAttachment_MappingRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cognito-identitypoolroleattachment_rolemapping.go b/cloudformation/resources/aws-cognito-identitypoolroleattachment_rolemapping.go similarity index 95% rename from cloudformation/aws-cognito-identitypoolroleattachment_rolemapping.go rename to cloudformation/resources/aws-cognito-identitypoolroleattachment_rolemapping.go index 3ad8aaa838..3da418cf6f 100644 --- a/cloudformation/aws-cognito-identitypoolroleattachment_rolemapping.go +++ b/cloudformation/resources/aws-cognito-identitypoolroleattachment_rolemapping.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCognitoIdentityPoolRoleAttachment_RoleMapping AWS CloudFormation Resource (AWS::Cognito::IdentityPoolRoleAttachment.RoleMapping) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rolemapping.html @@ -20,7 +22,7 @@ type AWSCognitoIdentityPoolRoleAttachment_RoleMapping struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSCognitoIdentityPoolRoleAttachment_RoleMapping) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoIdentityPoolRoleAttachment_RoleMapping) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoIdentityPoolRoleAttachment_RoleMapping) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cognito-identitypoolroleattachment_rulesconfigurationtype.go b/cloudformation/resources/aws-cognito-identitypoolroleattachment_rulesconfigurationtype.go similarity index 93% rename from cloudformation/aws-cognito-identitypoolroleattachment_rulesconfigurationtype.go rename to cloudformation/resources/aws-cognito-identitypoolroleattachment_rulesconfigurationtype.go index c92b91ef6d..bb74cedcec 100644 --- a/cloudformation/aws-cognito-identitypoolroleattachment_rulesconfigurationtype.go +++ b/cloudformation/resources/aws-cognito-identitypoolroleattachment_rulesconfigurationtype.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCognitoIdentityPoolRoleAttachment_RulesConfigurationType AWS CloudFormation Resource (AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rulesconfigurationtype.html @@ -10,7 +12,7 @@ type AWSCognitoIdentityPoolRoleAttachment_RulesConfigurationType struct { Rules []AWSCognitoIdentityPoolRoleAttachment_MappingRule `json:"Rules,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSCognitoIdentityPoolRoleAttachment_RulesConfigurationType) SetMetadat // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoIdentityPoolRoleAttachment_RulesConfigurationType) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoIdentityPoolRoleAttachment_RulesConfigurationType) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cognito-userpool.go b/cloudformation/resources/aws-cognito-userpool.go similarity index 95% rename from cloudformation/aws-cognito-userpool.go rename to cloudformation/resources/aws-cognito-userpool.go index 145ce4a45c..33ce18a1e9 100644 --- a/cloudformation/aws-cognito-userpool.go +++ b/cloudformation/resources/aws-cognito-userpool.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCognitoUserPool AWS CloudFormation Resource (AWS::Cognito::UserPool) @@ -96,7 +97,7 @@ type AWSCognitoUserPool struct { UsernameAttributes []string `json:"UsernameAttributes,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -136,7 +137,7 @@ func (r *AWSCognitoUserPool) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoUserPool) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoUserPool) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -147,9 +148,9 @@ func (r AWSCognitoUserPool) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-cognito-userpool_admincreateuserconfig.go b/cloudformation/resources/aws-cognito-userpool_admincreateuserconfig.go similarity index 95% rename from cloudformation/aws-cognito-userpool_admincreateuserconfig.go rename to cloudformation/resources/aws-cognito-userpool_admincreateuserconfig.go index d9e26e96a8..109688b515 100644 --- a/cloudformation/aws-cognito-userpool_admincreateuserconfig.go +++ b/cloudformation/resources/aws-cognito-userpool_admincreateuserconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCognitoUserPool_AdminCreateUserConfig AWS CloudFormation Resource (AWS::Cognito::UserPool.AdminCreateUserConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-admincreateuserconfig.html @@ -20,7 +22,7 @@ type AWSCognitoUserPool_AdminCreateUserConfig struct { UnusedAccountValidityDays float64 `json:"UnusedAccountValidityDays,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSCognitoUserPool_AdminCreateUserConfig) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoUserPool_AdminCreateUserConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoUserPool_AdminCreateUserConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cognito-userpool_deviceconfiguration.go b/cloudformation/resources/aws-cognito-userpool_deviceconfiguration.go similarity index 94% rename from cloudformation/aws-cognito-userpool_deviceconfiguration.go rename to cloudformation/resources/aws-cognito-userpool_deviceconfiguration.go index f41f4f1145..45fa3ef12a 100644 --- a/cloudformation/aws-cognito-userpool_deviceconfiguration.go +++ b/cloudformation/resources/aws-cognito-userpool_deviceconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCognitoUserPool_DeviceConfiguration AWS CloudFormation Resource (AWS::Cognito::UserPool.DeviceConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-deviceconfiguration.html @@ -15,7 +17,7 @@ type AWSCognitoUserPool_DeviceConfiguration struct { DeviceOnlyRememberedOnUserPrompt bool `json:"DeviceOnlyRememberedOnUserPrompt,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCognitoUserPool_DeviceConfiguration) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoUserPool_DeviceConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoUserPool_DeviceConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cognito-userpool_emailconfiguration.go b/cloudformation/resources/aws-cognito-userpool_emailconfiguration.go similarity index 94% rename from cloudformation/aws-cognito-userpool_emailconfiguration.go rename to cloudformation/resources/aws-cognito-userpool_emailconfiguration.go index 843c607d18..a1beed8a15 100644 --- a/cloudformation/aws-cognito-userpool_emailconfiguration.go +++ b/cloudformation/resources/aws-cognito-userpool_emailconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCognitoUserPool_EmailConfiguration AWS CloudFormation Resource (AWS::Cognito::UserPool.EmailConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-emailconfiguration.html @@ -15,7 +17,7 @@ type AWSCognitoUserPool_EmailConfiguration struct { SourceArn string `json:"SourceArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCognitoUserPool_EmailConfiguration) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoUserPool_EmailConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoUserPool_EmailConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cognito-userpool_invitemessagetemplate.go b/cloudformation/resources/aws-cognito-userpool_invitemessagetemplate.go similarity index 95% rename from cloudformation/aws-cognito-userpool_invitemessagetemplate.go rename to cloudformation/resources/aws-cognito-userpool_invitemessagetemplate.go index ddbad858de..915bc11f4c 100644 --- a/cloudformation/aws-cognito-userpool_invitemessagetemplate.go +++ b/cloudformation/resources/aws-cognito-userpool_invitemessagetemplate.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCognitoUserPool_InviteMessageTemplate AWS CloudFormation Resource (AWS::Cognito::UserPool.InviteMessageTemplate) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-invitemessagetemplate.html @@ -20,7 +22,7 @@ type AWSCognitoUserPool_InviteMessageTemplate struct { SMSMessage string `json:"SMSMessage,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSCognitoUserPool_InviteMessageTemplate) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoUserPool_InviteMessageTemplate) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoUserPool_InviteMessageTemplate) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cognito-userpool_lambdaconfig.go b/cloudformation/resources/aws-cognito-userpool_lambdaconfig.go similarity index 96% rename from cloudformation/aws-cognito-userpool_lambdaconfig.go rename to cloudformation/resources/aws-cognito-userpool_lambdaconfig.go index d95ead3f0b..49b10ef365 100644 --- a/cloudformation/aws-cognito-userpool_lambdaconfig.go +++ b/cloudformation/resources/aws-cognito-userpool_lambdaconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCognitoUserPool_LambdaConfig AWS CloudFormation Resource (AWS::Cognito::UserPool.LambdaConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html @@ -45,7 +47,7 @@ type AWSCognitoUserPool_LambdaConfig struct { VerifyAuthChallengeResponse string `json:"VerifyAuthChallengeResponse,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -85,6 +87,6 @@ func (r *AWSCognitoUserPool_LambdaConfig) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoUserPool_LambdaConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoUserPool_LambdaConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cognito-userpool_numberattributeconstraints.go b/cloudformation/resources/aws-cognito-userpool_numberattributeconstraints.go similarity index 94% rename from cloudformation/aws-cognito-userpool_numberattributeconstraints.go rename to cloudformation/resources/aws-cognito-userpool_numberattributeconstraints.go index 0dbc750558..bd01d33385 100644 --- a/cloudformation/aws-cognito-userpool_numberattributeconstraints.go +++ b/cloudformation/resources/aws-cognito-userpool_numberattributeconstraints.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCognitoUserPool_NumberAttributeConstraints AWS CloudFormation Resource (AWS::Cognito::UserPool.NumberAttributeConstraints) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-numberattributeconstraints.html @@ -15,7 +17,7 @@ type AWSCognitoUserPool_NumberAttributeConstraints struct { MinValue string `json:"MinValue,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCognitoUserPool_NumberAttributeConstraints) SetMetadata(metadata map // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoUserPool_NumberAttributeConstraints) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoUserPool_NumberAttributeConstraints) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cognito-userpool_passwordpolicy.go b/cloudformation/resources/aws-cognito-userpool_passwordpolicy.go similarity index 95% rename from cloudformation/aws-cognito-userpool_passwordpolicy.go rename to cloudformation/resources/aws-cognito-userpool_passwordpolicy.go index af8021777a..22bc027cc2 100644 --- a/cloudformation/aws-cognito-userpool_passwordpolicy.go +++ b/cloudformation/resources/aws-cognito-userpool_passwordpolicy.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCognitoUserPool_PasswordPolicy AWS CloudFormation Resource (AWS::Cognito::UserPool.PasswordPolicy) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-passwordpolicy.html @@ -30,7 +32,7 @@ type AWSCognitoUserPool_PasswordPolicy struct { RequireUppercase bool `json:"RequireUppercase,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSCognitoUserPool_PasswordPolicy) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoUserPool_PasswordPolicy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoUserPool_PasswordPolicy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cognito-userpool_policies.go b/cloudformation/resources/aws-cognito-userpool_policies.go similarity index 91% rename from cloudformation/aws-cognito-userpool_policies.go rename to cloudformation/resources/aws-cognito-userpool_policies.go index f87558582f..f3004b87f0 100644 --- a/cloudformation/aws-cognito-userpool_policies.go +++ b/cloudformation/resources/aws-cognito-userpool_policies.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCognitoUserPool_Policies AWS CloudFormation Resource (AWS::Cognito::UserPool.Policies) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-policies.html @@ -10,7 +12,7 @@ type AWSCognitoUserPool_Policies struct { PasswordPolicy *AWSCognitoUserPool_PasswordPolicy `json:"PasswordPolicy,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSCognitoUserPool_Policies) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoUserPool_Policies) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoUserPool_Policies) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cognito-userpool_schemaattribute.go b/cloudformation/resources/aws-cognito-userpool_schemaattribute.go similarity index 96% rename from cloudformation/aws-cognito-userpool_schemaattribute.go rename to cloudformation/resources/aws-cognito-userpool_schemaattribute.go index ba2519ec64..7f20ca37f4 100644 --- a/cloudformation/aws-cognito-userpool_schemaattribute.go +++ b/cloudformation/resources/aws-cognito-userpool_schemaattribute.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCognitoUserPool_SchemaAttribute AWS CloudFormation Resource (AWS::Cognito::UserPool.SchemaAttribute) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-schemaattribute.html @@ -40,7 +42,7 @@ type AWSCognitoUserPool_SchemaAttribute struct { StringAttributeConstraints *AWSCognitoUserPool_StringAttributeConstraints `json:"StringAttributeConstraints,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -80,6 +82,6 @@ func (r *AWSCognitoUserPool_SchemaAttribute) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoUserPool_SchemaAttribute) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoUserPool_SchemaAttribute) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cognito-userpool_smsconfiguration.go b/cloudformation/resources/aws-cognito-userpool_smsconfiguration.go similarity index 94% rename from cloudformation/aws-cognito-userpool_smsconfiguration.go rename to cloudformation/resources/aws-cognito-userpool_smsconfiguration.go index 046599daed..4b1a84128b 100644 --- a/cloudformation/aws-cognito-userpool_smsconfiguration.go +++ b/cloudformation/resources/aws-cognito-userpool_smsconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCognitoUserPool_SmsConfiguration AWS CloudFormation Resource (AWS::Cognito::UserPool.SmsConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-smsconfiguration.html @@ -15,7 +17,7 @@ type AWSCognitoUserPool_SmsConfiguration struct { SnsCallerArn string `json:"SnsCallerArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCognitoUserPool_SmsConfiguration) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoUserPool_SmsConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoUserPool_SmsConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cognito-userpool_stringattributeconstraints.go b/cloudformation/resources/aws-cognito-userpool_stringattributeconstraints.go similarity index 94% rename from cloudformation/aws-cognito-userpool_stringattributeconstraints.go rename to cloudformation/resources/aws-cognito-userpool_stringattributeconstraints.go index 5bb0fd723f..4a6b481918 100644 --- a/cloudformation/aws-cognito-userpool_stringattributeconstraints.go +++ b/cloudformation/resources/aws-cognito-userpool_stringattributeconstraints.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCognitoUserPool_StringAttributeConstraints AWS CloudFormation Resource (AWS::Cognito::UserPool.StringAttributeConstraints) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-stringattributeconstraints.html @@ -15,7 +17,7 @@ type AWSCognitoUserPool_StringAttributeConstraints struct { MinLength string `json:"MinLength,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCognitoUserPool_StringAttributeConstraints) SetMetadata(metadata map // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoUserPool_StringAttributeConstraints) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoUserPool_StringAttributeConstraints) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cognito-userpoolclient.go b/cloudformation/resources/aws-cognito-userpoolclient.go similarity index 92% rename from cloudformation/aws-cognito-userpoolclient.go rename to cloudformation/resources/aws-cognito-userpoolclient.go index 2d2870b536..cbc98207fa 100644 --- a/cloudformation/aws-cognito-userpoolclient.go +++ b/cloudformation/resources/aws-cognito-userpoolclient.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCognitoUserPoolClient AWS CloudFormation Resource (AWS::Cognito::UserPoolClient) @@ -46,7 +47,7 @@ type AWSCognitoUserPoolClient struct { WriteAttributes []string `json:"WriteAttributes,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSCognitoUserPoolClient) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoUserPoolClient) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoUserPoolClient) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSCognitoUserPoolClient) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-cognito-userpoolgroup.go b/cloudformation/resources/aws-cognito-userpoolgroup.go similarity index 91% rename from cloudformation/aws-cognito-userpoolgroup.go rename to cloudformation/resources/aws-cognito-userpoolgroup.go index 9d4bf70637..3d05e5e6a9 100644 --- a/cloudformation/aws-cognito-userpoolgroup.go +++ b/cloudformation/resources/aws-cognito-userpoolgroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCognitoUserPoolGroup AWS CloudFormation Resource (AWS::Cognito::UserPoolGroup) @@ -36,7 +37,7 @@ type AWSCognitoUserPoolGroup struct { UserPoolId string `json:"UserPoolId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSCognitoUserPoolGroup) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoUserPoolGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoUserPoolGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSCognitoUserPoolGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-cognito-userpooluser.go b/cloudformation/resources/aws-cognito-userpooluser.go similarity index 92% rename from cloudformation/aws-cognito-userpooluser.go rename to cloudformation/resources/aws-cognito-userpooluser.go index a30d34aa6e..38df5eb47b 100644 --- a/cloudformation/aws-cognito-userpooluser.go +++ b/cloudformation/resources/aws-cognito-userpooluser.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCognitoUserPoolUser AWS CloudFormation Resource (AWS::Cognito::UserPoolUser) @@ -46,7 +47,7 @@ type AWSCognitoUserPoolUser struct { ValidationData []AWSCognitoUserPoolUser_AttributeType `json:"ValidationData,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSCognitoUserPoolUser) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoUserPoolUser) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoUserPoolUser) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSCognitoUserPoolUser) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-cognito-userpooluser_attributetype.go b/cloudformation/resources/aws-cognito-userpooluser_attributetype.go similarity index 94% rename from cloudformation/aws-cognito-userpooluser_attributetype.go rename to cloudformation/resources/aws-cognito-userpooluser_attributetype.go index ed1f55ccdb..f446713b00 100644 --- a/cloudformation/aws-cognito-userpooluser_attributetype.go +++ b/cloudformation/resources/aws-cognito-userpooluser_attributetype.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSCognitoUserPoolUser_AttributeType AWS CloudFormation Resource (AWS::Cognito::UserPoolUser.AttributeType) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpooluser-attributetype.html @@ -15,7 +17,7 @@ type AWSCognitoUserPoolUser_AttributeType struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSCognitoUserPoolUser_AttributeType) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoUserPoolUser_AttributeType) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoUserPoolUser_AttributeType) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-cognito-userpoolusertogroupattachment.go b/cloudformation/resources/aws-cognito-userpoolusertogroupattachment.go similarity index 92% rename from cloudformation/aws-cognito-userpoolusertogroupattachment.go rename to cloudformation/resources/aws-cognito-userpoolusertogroupattachment.go index 1735e69ace..011b1dcb00 100644 --- a/cloudformation/aws-cognito-userpoolusertogroupattachment.go +++ b/cloudformation/resources/aws-cognito-userpoolusertogroupattachment.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSCognitoUserPoolUserToGroupAttachment AWS CloudFormation Resource (AWS::Cognito::UserPoolUserToGroupAttachment) @@ -26,7 +27,7 @@ type AWSCognitoUserPoolUserToGroupAttachment struct { Username string `json:"Username,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSCognitoUserPoolUserToGroupAttachment) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSCognitoUserPoolUserToGroupAttachment) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSCognitoUserPoolUserToGroupAttachment) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSCognitoUserPoolUserToGroupAttachment) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-config-aggregationauthorization.go b/cloudformation/resources/aws-config-aggregationauthorization.go similarity index 92% rename from cloudformation/aws-config-aggregationauthorization.go rename to cloudformation/resources/aws-config-aggregationauthorization.go index 8e6b95bbf8..df76d8cd9d 100644 --- a/cloudformation/aws-config-aggregationauthorization.go +++ b/cloudformation/resources/aws-config-aggregationauthorization.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSConfigAggregationAuthorization AWS CloudFormation Resource (AWS::Config::AggregationAuthorization) @@ -21,7 +22,7 @@ type AWSConfigAggregationAuthorization struct { AuthorizedAwsRegion string `json:"AuthorizedAwsRegion,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSConfigAggregationAuthorization) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSConfigAggregationAuthorization) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSConfigAggregationAuthorization) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSConfigAggregationAuthorization) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-config-configrule.go b/cloudformation/resources/aws-config-configrule.go similarity index 92% rename from cloudformation/aws-config-configrule.go rename to cloudformation/resources/aws-config-configrule.go index 23859ce8f0..229b834ccd 100644 --- a/cloudformation/aws-config-configrule.go +++ b/cloudformation/resources/aws-config-configrule.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSConfigConfigRule AWS CloudFormation Resource (AWS::Config::ConfigRule) @@ -41,7 +42,7 @@ type AWSConfigConfigRule struct { Source *AWSConfigConfigRule_Source `json:"Source,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -81,7 +82,7 @@ func (r *AWSConfigConfigRule) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSConfigConfigRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSConfigConfigRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -92,9 +93,9 @@ func (r AWSConfigConfigRule) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-config-configrule_scope.go b/cloudformation/resources/aws-config-configrule_scope.go similarity index 93% rename from cloudformation/aws-config-configrule_scope.go rename to cloudformation/resources/aws-config-configrule_scope.go index 3c63bbfcdc..e91c1b40b3 100644 --- a/cloudformation/aws-config-configrule_scope.go +++ b/cloudformation/resources/aws-config-configrule_scope.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSConfigConfigRule_Scope AWS CloudFormation Resource (AWS::Config::ConfigRule.Scope) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-scope.html @@ -25,7 +27,7 @@ type AWSConfigConfigRule_Scope struct { TagValue string `json:"TagValue,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSConfigConfigRule_Scope) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSConfigConfigRule_Scope) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSConfigConfigRule_Scope) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-config-configrule_source.go b/cloudformation/resources/aws-config-configrule_source.go similarity index 93% rename from cloudformation/aws-config-configrule_source.go rename to cloudformation/resources/aws-config-configrule_source.go index 6c59804a90..1981f26dd0 100644 --- a/cloudformation/aws-config-configrule_source.go +++ b/cloudformation/resources/aws-config-configrule_source.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSConfigConfigRule_Source AWS CloudFormation Resource (AWS::Config::ConfigRule.Source) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source.html @@ -20,7 +22,7 @@ type AWSConfigConfigRule_Source struct { SourceIdentifier string `json:"SourceIdentifier,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSConfigConfigRule_Source) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSConfigConfigRule_Source) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSConfigConfigRule_Source) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-config-configrule_sourcedetail.go b/cloudformation/resources/aws-config-configrule_sourcedetail.go similarity index 95% rename from cloudformation/aws-config-configrule_sourcedetail.go rename to cloudformation/resources/aws-config-configrule_sourcedetail.go index 7d8d002e74..8fa108bb56 100644 --- a/cloudformation/aws-config-configrule_sourcedetail.go +++ b/cloudformation/resources/aws-config-configrule_sourcedetail.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSConfigConfigRule_SourceDetail AWS CloudFormation Resource (AWS::Config::ConfigRule.SourceDetail) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source-sourcedetails.html @@ -20,7 +22,7 @@ type AWSConfigConfigRule_SourceDetail struct { MessageType string `json:"MessageType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSConfigConfigRule_SourceDetail) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSConfigConfigRule_SourceDetail) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSConfigConfigRule_SourceDetail) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-config-configurationaggregator.go b/cloudformation/resources/aws-config-configurationaggregator.go similarity index 93% rename from cloudformation/aws-config-configurationaggregator.go rename to cloudformation/resources/aws-config-configurationaggregator.go index 982b261f98..052dca0bf9 100644 --- a/cloudformation/aws-config-configurationaggregator.go +++ b/cloudformation/resources/aws-config-configurationaggregator.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSConfigConfigurationAggregator AWS CloudFormation Resource (AWS::Config::ConfigurationAggregator) @@ -26,7 +27,7 @@ type AWSConfigConfigurationAggregator struct { OrganizationAggregationSource *AWSConfigConfigurationAggregator_OrganizationAggregationSource `json:"OrganizationAggregationSource,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSConfigConfigurationAggregator) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSConfigConfigurationAggregator) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSConfigConfigurationAggregator) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSConfigConfigurationAggregator) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-config-configurationaggregator_accountaggregationsource.go b/cloudformation/resources/aws-config-configurationaggregator_accountaggregationsource.go similarity index 94% rename from cloudformation/aws-config-configurationaggregator_accountaggregationsource.go rename to cloudformation/resources/aws-config-configurationaggregator_accountaggregationsource.go index 032d57f397..d06d490971 100644 --- a/cloudformation/aws-config-configurationaggregator_accountaggregationsource.go +++ b/cloudformation/resources/aws-config-configurationaggregator_accountaggregationsource.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSConfigConfigurationAggregator_AccountAggregationSource AWS CloudFormation Resource (AWS::Config::ConfigurationAggregator.AccountAggregationSource) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationaggregator-accountaggregationsource.html @@ -20,7 +22,7 @@ type AWSConfigConfigurationAggregator_AccountAggregationSource struct { AwsRegions []string `json:"AwsRegions,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSConfigConfigurationAggregator_AccountAggregationSource) SetMetadata( // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSConfigConfigurationAggregator_AccountAggregationSource) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSConfigConfigurationAggregator_AccountAggregationSource) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-config-configurationaggregator_organizationaggregationsource.go b/cloudformation/resources/aws-config-configurationaggregator_organizationaggregationsource.go similarity index 94% rename from cloudformation/aws-config-configurationaggregator_organizationaggregationsource.go rename to cloudformation/resources/aws-config-configurationaggregator_organizationaggregationsource.go index 31145b270f..384d831458 100644 --- a/cloudformation/aws-config-configurationaggregator_organizationaggregationsource.go +++ b/cloudformation/resources/aws-config-configurationaggregator_organizationaggregationsource.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSConfigConfigurationAggregator_OrganizationAggregationSource AWS CloudFormation Resource (AWS::Config::ConfigurationAggregator.OrganizationAggregationSource) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationaggregator-organizationaggregationsource.html @@ -20,7 +22,7 @@ type AWSConfigConfigurationAggregator_OrganizationAggregationSource struct { RoleArn string `json:"RoleArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSConfigConfigurationAggregator_OrganizationAggregationSource) SetMeta // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSConfigConfigurationAggregator_OrganizationAggregationSource) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSConfigConfigurationAggregator_OrganizationAggregationSource) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-config-configurationrecorder.go b/cloudformation/resources/aws-config-configurationrecorder.go similarity index 92% rename from cloudformation/aws-config-configurationrecorder.go rename to cloudformation/resources/aws-config-configurationrecorder.go index fb11f316ca..c1f2eb9681 100644 --- a/cloudformation/aws-config-configurationrecorder.go +++ b/cloudformation/resources/aws-config-configurationrecorder.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSConfigConfigurationRecorder AWS CloudFormation Resource (AWS::Config::ConfigurationRecorder) @@ -26,7 +27,7 @@ type AWSConfigConfigurationRecorder struct { RoleARN string `json:"RoleARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSConfigConfigurationRecorder) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSConfigConfigurationRecorder) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSConfigConfigurationRecorder) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSConfigConfigurationRecorder) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-config-configurationrecorder_recordinggroup.go b/cloudformation/resources/aws-config-configurationrecorder_recordinggroup.go similarity index 95% rename from cloudformation/aws-config-configurationrecorder_recordinggroup.go rename to cloudformation/resources/aws-config-configurationrecorder_recordinggroup.go index c96ca4920d..26876eb678 100644 --- a/cloudformation/aws-config-configurationrecorder_recordinggroup.go +++ b/cloudformation/resources/aws-config-configurationrecorder_recordinggroup.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSConfigConfigurationRecorder_RecordingGroup AWS CloudFormation Resource (AWS::Config::ConfigurationRecorder.RecordingGroup) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordinggroup.html @@ -20,7 +22,7 @@ type AWSConfigConfigurationRecorder_RecordingGroup struct { ResourceTypes []string `json:"ResourceTypes,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSConfigConfigurationRecorder_RecordingGroup) SetMetadata(metadata map // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSConfigConfigurationRecorder_RecordingGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSConfigConfigurationRecorder_RecordingGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-config-deliverychannel.go b/cloudformation/resources/aws-config-deliverychannel.go similarity index 92% rename from cloudformation/aws-config-deliverychannel.go rename to cloudformation/resources/aws-config-deliverychannel.go index 0e97f91e0d..d5e1f5d27e 100644 --- a/cloudformation/aws-config-deliverychannel.go +++ b/cloudformation/resources/aws-config-deliverychannel.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSConfigDeliveryChannel AWS CloudFormation Resource (AWS::Config::DeliveryChannel) @@ -36,7 +37,7 @@ type AWSConfigDeliveryChannel struct { SnsTopicARN string `json:"SnsTopicARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSConfigDeliveryChannel) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSConfigDeliveryChannel) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSConfigDeliveryChannel) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSConfigDeliveryChannel) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-config-deliverychannel_configsnapshotdeliveryproperties.go b/cloudformation/resources/aws-config-deliverychannel_configsnapshotdeliveryproperties.go similarity index 93% rename from cloudformation/aws-config-deliverychannel_configsnapshotdeliveryproperties.go rename to cloudformation/resources/aws-config-deliverychannel_configsnapshotdeliveryproperties.go index 782aea5396..e7daa81dec 100644 --- a/cloudformation/aws-config-deliverychannel_configsnapshotdeliveryproperties.go +++ b/cloudformation/resources/aws-config-deliverychannel_configsnapshotdeliveryproperties.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSConfigDeliveryChannel_ConfigSnapshotDeliveryProperties AWS CloudFormation Resource (AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-deliverychannel-configsnapshotdeliveryproperties.html @@ -10,7 +12,7 @@ type AWSConfigDeliveryChannel_ConfigSnapshotDeliveryProperties struct { DeliveryFrequency string `json:"DeliveryFrequency,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSConfigDeliveryChannel_ConfigSnapshotDeliveryProperties) SetMetadata( // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSConfigDeliveryChannel_ConfigSnapshotDeliveryProperties) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSConfigDeliveryChannel_ConfigSnapshotDeliveryProperties) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-datapipeline-pipeline.go b/cloudformation/resources/aws-datapipeline-pipeline.go similarity index 92% rename from cloudformation/aws-datapipeline-pipeline.go rename to cloudformation/resources/aws-datapipeline-pipeline.go index 77118c1931..2ce72e2729 100644 --- a/cloudformation/aws-datapipeline-pipeline.go +++ b/cloudformation/resources/aws-datapipeline-pipeline.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSDataPipelinePipeline AWS CloudFormation Resource (AWS::DataPipeline::Pipeline) @@ -46,7 +47,7 @@ type AWSDataPipelinePipeline struct { PipelineTags []AWSDataPipelinePipeline_PipelineTag `json:"PipelineTags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSDataPipelinePipeline) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDataPipelinePipeline) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDataPipelinePipeline) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSDataPipelinePipeline) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-datapipeline-pipeline_field.go b/cloudformation/resources/aws-datapipeline-pipeline_field.go similarity index 95% rename from cloudformation/aws-datapipeline-pipeline_field.go rename to cloudformation/resources/aws-datapipeline-pipeline_field.go index d4bc3ea05c..c75a4f1642 100644 --- a/cloudformation/aws-datapipeline-pipeline_field.go +++ b/cloudformation/resources/aws-datapipeline-pipeline_field.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDataPipelinePipeline_Field AWS CloudFormation Resource (AWS::DataPipeline::Pipeline.Field) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects-fields.html @@ -20,7 +22,7 @@ type AWSDataPipelinePipeline_Field struct { StringValue string `json:"StringValue,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSDataPipelinePipeline_Field) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDataPipelinePipeline_Field) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDataPipelinePipeline_Field) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-datapipeline-pipeline_parameterattribute.go b/cloudformation/resources/aws-datapipeline-pipeline_parameterattribute.go similarity index 94% rename from cloudformation/aws-datapipeline-pipeline_parameterattribute.go rename to cloudformation/resources/aws-datapipeline-pipeline_parameterattribute.go index 4956243691..4575584367 100644 --- a/cloudformation/aws-datapipeline-pipeline_parameterattribute.go +++ b/cloudformation/resources/aws-datapipeline-pipeline_parameterattribute.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDataPipelinePipeline_ParameterAttribute AWS CloudFormation Resource (AWS::DataPipeline::Pipeline.ParameterAttribute) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects-attributes.html @@ -15,7 +17,7 @@ type AWSDataPipelinePipeline_ParameterAttribute struct { StringValue string `json:"StringValue,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSDataPipelinePipeline_ParameterAttribute) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDataPipelinePipeline_ParameterAttribute) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDataPipelinePipeline_ParameterAttribute) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-datapipeline-pipeline_parameterobject.go b/cloudformation/resources/aws-datapipeline-pipeline_parameterobject.go similarity index 94% rename from cloudformation/aws-datapipeline-pipeline_parameterobject.go rename to cloudformation/resources/aws-datapipeline-pipeline_parameterobject.go index d9a80c7d9f..c18f6d6267 100644 --- a/cloudformation/aws-datapipeline-pipeline_parameterobject.go +++ b/cloudformation/resources/aws-datapipeline-pipeline_parameterobject.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDataPipelinePipeline_ParameterObject AWS CloudFormation Resource (AWS::DataPipeline::Pipeline.ParameterObject) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects.html @@ -15,7 +17,7 @@ type AWSDataPipelinePipeline_ParameterObject struct { Id string `json:"Id,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSDataPipelinePipeline_ParameterObject) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDataPipelinePipeline_ParameterObject) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDataPipelinePipeline_ParameterObject) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-datapipeline-pipeline_parametervalue.go b/cloudformation/resources/aws-datapipeline-pipeline_parametervalue.go similarity index 94% rename from cloudformation/aws-datapipeline-pipeline_parametervalue.go rename to cloudformation/resources/aws-datapipeline-pipeline_parametervalue.go index 7022640459..dc71c4384f 100644 --- a/cloudformation/aws-datapipeline-pipeline_parametervalue.go +++ b/cloudformation/resources/aws-datapipeline-pipeline_parametervalue.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDataPipelinePipeline_ParameterValue AWS CloudFormation Resource (AWS::DataPipeline::Pipeline.ParameterValue) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parametervalues.html @@ -15,7 +17,7 @@ type AWSDataPipelinePipeline_ParameterValue struct { StringValue string `json:"StringValue,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSDataPipelinePipeline_ParameterValue) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDataPipelinePipeline_ParameterValue) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDataPipelinePipeline_ParameterValue) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-datapipeline-pipeline_pipelineobject.go b/cloudformation/resources/aws-datapipeline-pipeline_pipelineobject.go similarity index 94% rename from cloudformation/aws-datapipeline-pipeline_pipelineobject.go rename to cloudformation/resources/aws-datapipeline-pipeline_pipelineobject.go index 59838b0952..10d4e74e99 100644 --- a/cloudformation/aws-datapipeline-pipeline_pipelineobject.go +++ b/cloudformation/resources/aws-datapipeline-pipeline_pipelineobject.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDataPipelinePipeline_PipelineObject AWS CloudFormation Resource (AWS::DataPipeline::Pipeline.PipelineObject) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects.html @@ -20,7 +22,7 @@ type AWSDataPipelinePipeline_PipelineObject struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSDataPipelinePipeline_PipelineObject) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDataPipelinePipeline_PipelineObject) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDataPipelinePipeline_PipelineObject) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-datapipeline-pipeline_pipelinetag.go b/cloudformation/resources/aws-datapipeline-pipeline_pipelinetag.go similarity index 94% rename from cloudformation/aws-datapipeline-pipeline_pipelinetag.go rename to cloudformation/resources/aws-datapipeline-pipeline_pipelinetag.go index cae30815c3..a8d62a75b3 100644 --- a/cloudformation/aws-datapipeline-pipeline_pipelinetag.go +++ b/cloudformation/resources/aws-datapipeline-pipeline_pipelinetag.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDataPipelinePipeline_PipelineTag AWS CloudFormation Resource (AWS::DataPipeline::Pipeline.PipelineTag) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelinetags.html @@ -15,7 +17,7 @@ type AWSDataPipelinePipeline_PipelineTag struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSDataPipelinePipeline_PipelineTag) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDataPipelinePipeline_PipelineTag) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDataPipelinePipeline_PipelineTag) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-dax-cluster.go b/cloudformation/resources/aws-dax-cluster.go similarity index 94% rename from cloudformation/aws-dax-cluster.go rename to cloudformation/resources/aws-dax-cluster.go index 398b25dd0c..82158db883 100644 --- a/cloudformation/aws-dax-cluster.go +++ b/cloudformation/resources/aws-dax-cluster.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSDAXCluster AWS CloudFormation Resource (AWS::DAX::Cluster) @@ -76,7 +77,7 @@ type AWSDAXCluster struct { Tags interface{} `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -116,7 +117,7 @@ func (r *AWSDAXCluster) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDAXCluster) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDAXCluster) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -127,9 +128,9 @@ func (r AWSDAXCluster) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-dax-cluster_ssespecification.go b/cloudformation/resources/aws-dax-cluster_ssespecification.go similarity index 93% rename from cloudformation/aws-dax-cluster_ssespecification.go rename to cloudformation/resources/aws-dax-cluster_ssespecification.go index 0a99297d7f..0a41206227 100644 --- a/cloudformation/aws-dax-cluster_ssespecification.go +++ b/cloudformation/resources/aws-dax-cluster_ssespecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDAXCluster_SSESpecification AWS CloudFormation Resource (AWS::DAX::Cluster.SSESpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dax-cluster-ssespecification.html @@ -10,7 +12,7 @@ type AWSDAXCluster_SSESpecification struct { SSEEnabled bool `json:"SSEEnabled,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSDAXCluster_SSESpecification) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDAXCluster_SSESpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDAXCluster_SSESpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-dax-parametergroup.go b/cloudformation/resources/aws-dax-parametergroup.go similarity index 91% rename from cloudformation/aws-dax-parametergroup.go rename to cloudformation/resources/aws-dax-parametergroup.go index 1caa9013c2..dd159ea2ea 100644 --- a/cloudformation/aws-dax-parametergroup.go +++ b/cloudformation/resources/aws-dax-parametergroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSDAXParameterGroup AWS CloudFormation Resource (AWS::DAX::ParameterGroup) @@ -26,7 +27,7 @@ type AWSDAXParameterGroup struct { ParameterNameValues interface{} `json:"ParameterNameValues,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSDAXParameterGroup) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDAXParameterGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDAXParameterGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSDAXParameterGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-dax-subnetgroup.go b/cloudformation/resources/aws-dax-subnetgroup.go similarity index 91% rename from cloudformation/aws-dax-subnetgroup.go rename to cloudformation/resources/aws-dax-subnetgroup.go index a97b43b879..07ea29fadf 100644 --- a/cloudformation/aws-dax-subnetgroup.go +++ b/cloudformation/resources/aws-dax-subnetgroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSDAXSubnetGroup AWS CloudFormation Resource (AWS::DAX::SubnetGroup) @@ -26,7 +27,7 @@ type AWSDAXSubnetGroup struct { SubnetIds []string `json:"SubnetIds,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSDAXSubnetGroup) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDAXSubnetGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDAXSubnetGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSDAXSubnetGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-directoryservice-microsoftad.go b/cloudformation/resources/aws-directoryservice-microsoftad.go similarity index 93% rename from cloudformation/aws-directoryservice-microsoftad.go rename to cloudformation/resources/aws-directoryservice-microsoftad.go index 7a2bba20dc..be7d5eac4b 100644 --- a/cloudformation/aws-directoryservice-microsoftad.go +++ b/cloudformation/resources/aws-directoryservice-microsoftad.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSDirectoryServiceMicrosoftAD AWS CloudFormation Resource (AWS::DirectoryService::MicrosoftAD) @@ -46,7 +47,7 @@ type AWSDirectoryServiceMicrosoftAD struct { VpcSettings *AWSDirectoryServiceMicrosoftAD_VpcSettings `json:"VpcSettings,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSDirectoryServiceMicrosoftAD) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDirectoryServiceMicrosoftAD) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDirectoryServiceMicrosoftAD) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSDirectoryServiceMicrosoftAD) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-directoryservice-microsoftad_vpcsettings.go b/cloudformation/resources/aws-directoryservice-microsoftad_vpcsettings.go similarity index 94% rename from cloudformation/aws-directoryservice-microsoftad_vpcsettings.go rename to cloudformation/resources/aws-directoryservice-microsoftad_vpcsettings.go index afb66ba1e0..9343a48293 100644 --- a/cloudformation/aws-directoryservice-microsoftad_vpcsettings.go +++ b/cloudformation/resources/aws-directoryservice-microsoftad_vpcsettings.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDirectoryServiceMicrosoftAD_VpcSettings AWS CloudFormation Resource (AWS::DirectoryService::MicrosoftAD.VpcSettings) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-microsoftad-vpcsettings.html @@ -15,7 +17,7 @@ type AWSDirectoryServiceMicrosoftAD_VpcSettings struct { VpcId string `json:"VpcId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSDirectoryServiceMicrosoftAD_VpcSettings) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDirectoryServiceMicrosoftAD_VpcSettings) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDirectoryServiceMicrosoftAD_VpcSettings) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-directoryservice-simplead.go b/cloudformation/resources/aws-directoryservice-simplead.go similarity index 93% rename from cloudformation/aws-directoryservice-simplead.go rename to cloudformation/resources/aws-directoryservice-simplead.go index 40775060af..dffebca4a2 100644 --- a/cloudformation/aws-directoryservice-simplead.go +++ b/cloudformation/resources/aws-directoryservice-simplead.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSDirectoryServiceSimpleAD AWS CloudFormation Resource (AWS::DirectoryService::SimpleAD) @@ -51,7 +52,7 @@ type AWSDirectoryServiceSimpleAD struct { VpcSettings *AWSDirectoryServiceSimpleAD_VpcSettings `json:"VpcSettings,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -91,7 +92,7 @@ func (r *AWSDirectoryServiceSimpleAD) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDirectoryServiceSimpleAD) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDirectoryServiceSimpleAD) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -102,9 +103,9 @@ func (r AWSDirectoryServiceSimpleAD) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-directoryservice-simplead_vpcsettings.go b/cloudformation/resources/aws-directoryservice-simplead_vpcsettings.go similarity index 94% rename from cloudformation/aws-directoryservice-simplead_vpcsettings.go rename to cloudformation/resources/aws-directoryservice-simplead_vpcsettings.go index cd92465f6a..54a95cd29f 100644 --- a/cloudformation/aws-directoryservice-simplead_vpcsettings.go +++ b/cloudformation/resources/aws-directoryservice-simplead_vpcsettings.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDirectoryServiceSimpleAD_VpcSettings AWS CloudFormation Resource (AWS::DirectoryService::SimpleAD.VpcSettings) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-simplead-vpcsettings.html @@ -15,7 +17,7 @@ type AWSDirectoryServiceSimpleAD_VpcSettings struct { VpcId string `json:"VpcId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSDirectoryServiceSimpleAD_VpcSettings) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDirectoryServiceSimpleAD_VpcSettings) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDirectoryServiceSimpleAD_VpcSettings) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-dlm-lifecyclepolicy.go b/cloudformation/resources/aws-dlm-lifecyclepolicy.go similarity index 91% rename from cloudformation/aws-dlm-lifecyclepolicy.go rename to cloudformation/resources/aws-dlm-lifecyclepolicy.go index 82e1b9f41f..3c9b79dc43 100644 --- a/cloudformation/aws-dlm-lifecyclepolicy.go +++ b/cloudformation/resources/aws-dlm-lifecyclepolicy.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSDLMLifecyclePolicy AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy) @@ -31,7 +32,7 @@ type AWSDLMLifecyclePolicy struct { State string `json:"State,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSDLMLifecyclePolicy) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDLMLifecyclePolicy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDLMLifecyclePolicy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSDLMLifecyclePolicy) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-dlm-lifecyclepolicy_createrule.go b/cloudformation/resources/aws-dlm-lifecyclepolicy_createrule.go similarity index 95% rename from cloudformation/aws-dlm-lifecyclepolicy_createrule.go rename to cloudformation/resources/aws-dlm-lifecyclepolicy_createrule.go index e5153d8688..3332a5d1b1 100644 --- a/cloudformation/aws-dlm-lifecyclepolicy_createrule.go +++ b/cloudformation/resources/aws-dlm-lifecyclepolicy_createrule.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDLMLifecyclePolicy_CreateRule AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.CreateRule) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-createrule.html @@ -20,7 +22,7 @@ type AWSDLMLifecyclePolicy_CreateRule struct { Times []string `json:"Times,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSDLMLifecyclePolicy_CreateRule) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDLMLifecyclePolicy_CreateRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDLMLifecyclePolicy_CreateRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-dlm-lifecyclepolicy_policydetails.go b/cloudformation/resources/aws-dlm-lifecyclepolicy_policydetails.go similarity index 95% rename from cloudformation/aws-dlm-lifecyclepolicy_policydetails.go rename to cloudformation/resources/aws-dlm-lifecyclepolicy_policydetails.go index 39f3d81c21..4c7328db89 100644 --- a/cloudformation/aws-dlm-lifecyclepolicy_policydetails.go +++ b/cloudformation/resources/aws-dlm-lifecyclepolicy_policydetails.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDLMLifecyclePolicy_PolicyDetails AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.PolicyDetails) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html @@ -20,7 +22,7 @@ type AWSDLMLifecyclePolicy_PolicyDetails struct { TargetTags []Tag `json:"TargetTags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSDLMLifecyclePolicy_PolicyDetails) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDLMLifecyclePolicy_PolicyDetails) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDLMLifecyclePolicy_PolicyDetails) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-dlm-lifecyclepolicy_retainrule.go b/cloudformation/resources/aws-dlm-lifecyclepolicy_retainrule.go similarity index 93% rename from cloudformation/aws-dlm-lifecyclepolicy_retainrule.go rename to cloudformation/resources/aws-dlm-lifecyclepolicy_retainrule.go index 7355704e97..f186b6f424 100644 --- a/cloudformation/aws-dlm-lifecyclepolicy_retainrule.go +++ b/cloudformation/resources/aws-dlm-lifecyclepolicy_retainrule.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDLMLifecyclePolicy_RetainRule AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.RetainRule) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-retainrule.html @@ -10,7 +12,7 @@ type AWSDLMLifecyclePolicy_RetainRule struct { Count int `json:"Count"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSDLMLifecyclePolicy_RetainRule) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDLMLifecyclePolicy_RetainRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDLMLifecyclePolicy_RetainRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-dlm-lifecyclepolicy_schedule.go b/cloudformation/resources/aws-dlm-lifecyclepolicy_schedule.go similarity index 95% rename from cloudformation/aws-dlm-lifecyclepolicy_schedule.go rename to cloudformation/resources/aws-dlm-lifecyclepolicy_schedule.go index d2d1d85bbc..8ff93799f5 100644 --- a/cloudformation/aws-dlm-lifecyclepolicy_schedule.go +++ b/cloudformation/resources/aws-dlm-lifecyclepolicy_schedule.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDLMLifecyclePolicy_Schedule AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.Schedule) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html @@ -30,7 +32,7 @@ type AWSDLMLifecyclePolicy_Schedule struct { TagsToAdd []Tag `json:"TagsToAdd,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSDLMLifecyclePolicy_Schedule) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDLMLifecyclePolicy_Schedule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDLMLifecyclePolicy_Schedule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-dms-certificate.go b/cloudformation/resources/aws-dms-certificate.go similarity index 91% rename from cloudformation/aws-dms-certificate.go rename to cloudformation/resources/aws-dms-certificate.go index f46e3edad0..174748df29 100644 --- a/cloudformation/aws-dms-certificate.go +++ b/cloudformation/resources/aws-dms-certificate.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSDMSCertificate AWS CloudFormation Resource (AWS::DMS::Certificate) @@ -26,7 +27,7 @@ type AWSDMSCertificate struct { CertificateWallet string `json:"CertificateWallet,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSDMSCertificate) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDMSCertificate) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDMSCertificate) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSDMSCertificate) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-dms-endpoint.go b/cloudformation/resources/aws-dms-endpoint.go similarity index 95% rename from cloudformation/aws-dms-endpoint.go rename to cloudformation/resources/aws-dms-endpoint.go index fffb25fbf7..4a22f1e68c 100644 --- a/cloudformation/aws-dms-endpoint.go +++ b/cloudformation/resources/aws-dms-endpoint.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSDMSEndpoint AWS CloudFormation Resource (AWS::DMS::Endpoint) @@ -101,7 +102,7 @@ type AWSDMSEndpoint struct { Username string `json:"Username,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -141,7 +142,7 @@ func (r *AWSDMSEndpoint) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDMSEndpoint) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDMSEndpoint) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -152,9 +153,9 @@ func (r AWSDMSEndpoint) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-dms-endpoint_dynamodbsettings.go b/cloudformation/resources/aws-dms-endpoint_dynamodbsettings.go similarity index 94% rename from cloudformation/aws-dms-endpoint_dynamodbsettings.go rename to cloudformation/resources/aws-dms-endpoint_dynamodbsettings.go index 14d1b30d4c..9b995832f4 100644 --- a/cloudformation/aws-dms-endpoint_dynamodbsettings.go +++ b/cloudformation/resources/aws-dms-endpoint_dynamodbsettings.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDMSEndpoint_DynamoDbSettings AWS CloudFormation Resource (AWS::DMS::Endpoint.DynamoDbSettings) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-dynamodbsettings.html @@ -10,7 +12,7 @@ type AWSDMSEndpoint_DynamoDbSettings struct { ServiceAccessRoleArn string `json:"ServiceAccessRoleArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSDMSEndpoint_DynamoDbSettings) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDMSEndpoint_DynamoDbSettings) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDMSEndpoint_DynamoDbSettings) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-dms-endpoint_elasticsearchsettings.go b/cloudformation/resources/aws-dms-endpoint_elasticsearchsettings.go similarity index 95% rename from cloudformation/aws-dms-endpoint_elasticsearchsettings.go rename to cloudformation/resources/aws-dms-endpoint_elasticsearchsettings.go index eb1b17a9a7..10b6f2a0fb 100644 --- a/cloudformation/aws-dms-endpoint_elasticsearchsettings.go +++ b/cloudformation/resources/aws-dms-endpoint_elasticsearchsettings.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDMSEndpoint_ElasticsearchSettings AWS CloudFormation Resource (AWS::DMS::Endpoint.ElasticsearchSettings) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html @@ -25,7 +27,7 @@ type AWSDMSEndpoint_ElasticsearchSettings struct { ServiceAccessRoleArn string `json:"ServiceAccessRoleArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSDMSEndpoint_ElasticsearchSettings) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDMSEndpoint_ElasticsearchSettings) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDMSEndpoint_ElasticsearchSettings) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-dms-endpoint_kinesissettings.go b/cloudformation/resources/aws-dms-endpoint_kinesissettings.go similarity index 95% rename from cloudformation/aws-dms-endpoint_kinesissettings.go rename to cloudformation/resources/aws-dms-endpoint_kinesissettings.go index ac9d123ecd..f1a8e75b4f 100644 --- a/cloudformation/aws-dms-endpoint_kinesissettings.go +++ b/cloudformation/resources/aws-dms-endpoint_kinesissettings.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDMSEndpoint_KinesisSettings AWS CloudFormation Resource (AWS::DMS::Endpoint.KinesisSettings) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html @@ -20,7 +22,7 @@ type AWSDMSEndpoint_KinesisSettings struct { StreamArn string `json:"StreamArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSDMSEndpoint_KinesisSettings) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDMSEndpoint_KinesisSettings) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDMSEndpoint_KinesisSettings) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-dms-endpoint_mongodbsettings.go b/cloudformation/resources/aws-dms-endpoint_mongodbsettings.go similarity index 97% rename from cloudformation/aws-dms-endpoint_mongodbsettings.go rename to cloudformation/resources/aws-dms-endpoint_mongodbsettings.go index cbb9d37f77..769350a07e 100644 --- a/cloudformation/aws-dms-endpoint_mongodbsettings.go +++ b/cloudformation/resources/aws-dms-endpoint_mongodbsettings.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDMSEndpoint_MongoDbSettings AWS CloudFormation Resource (AWS::DMS::Endpoint.MongoDbSettings) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html @@ -60,7 +62,7 @@ type AWSDMSEndpoint_MongoDbSettings struct { Username string `json:"Username,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -100,6 +102,6 @@ func (r *AWSDMSEndpoint_MongoDbSettings) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDMSEndpoint_MongoDbSettings) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDMSEndpoint_MongoDbSettings) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-dms-endpoint_s3settings.go b/cloudformation/resources/aws-dms-endpoint_s3settings.go similarity index 94% rename from cloudformation/aws-dms-endpoint_s3settings.go rename to cloudformation/resources/aws-dms-endpoint_s3settings.go index 2cd4421cce..e52f518062 100644 --- a/cloudformation/aws-dms-endpoint_s3settings.go +++ b/cloudformation/resources/aws-dms-endpoint_s3settings.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDMSEndpoint_S3Settings AWS CloudFormation Resource (AWS::DMS::Endpoint.S3Settings) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html @@ -40,7 +42,7 @@ type AWSDMSEndpoint_S3Settings struct { ServiceAccessRoleArn string `json:"ServiceAccessRoleArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -80,6 +82,6 @@ func (r *AWSDMSEndpoint_S3Settings) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDMSEndpoint_S3Settings) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDMSEndpoint_S3Settings) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-dms-eventsubscription.go b/cloudformation/resources/aws-dms-eventsubscription.go similarity index 92% rename from cloudformation/aws-dms-eventsubscription.go rename to cloudformation/resources/aws-dms-eventsubscription.go index 2118551b9e..4a4d458cf6 100644 --- a/cloudformation/aws-dms-eventsubscription.go +++ b/cloudformation/resources/aws-dms-eventsubscription.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSDMSEventSubscription AWS CloudFormation Resource (AWS::DMS::EventSubscription) @@ -46,7 +47,7 @@ type AWSDMSEventSubscription struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSDMSEventSubscription) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDMSEventSubscription) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDMSEventSubscription) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSDMSEventSubscription) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-dms-replicationinstance.go b/cloudformation/resources/aws-dms-replicationinstance.go similarity index 94% rename from cloudformation/aws-dms-replicationinstance.go rename to cloudformation/resources/aws-dms-replicationinstance.go index 0e2078088c..e1eb6c580a 100644 --- a/cloudformation/aws-dms-replicationinstance.go +++ b/cloudformation/resources/aws-dms-replicationinstance.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSDMSReplicationInstance AWS CloudFormation Resource (AWS::DMS::ReplicationInstance) @@ -81,7 +82,7 @@ type AWSDMSReplicationInstance struct { VpcSecurityGroupIds []string `json:"VpcSecurityGroupIds,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -121,7 +122,7 @@ func (r *AWSDMSReplicationInstance) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDMSReplicationInstance) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDMSReplicationInstance) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -132,9 +133,9 @@ func (r AWSDMSReplicationInstance) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-dms-replicationsubnetgroup.go b/cloudformation/resources/aws-dms-replicationsubnetgroup.go similarity index 93% rename from cloudformation/aws-dms-replicationsubnetgroup.go rename to cloudformation/resources/aws-dms-replicationsubnetgroup.go index 8041561bd8..86f50bacfd 100644 --- a/cloudformation/aws-dms-replicationsubnetgroup.go +++ b/cloudformation/resources/aws-dms-replicationsubnetgroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSDMSReplicationSubnetGroup AWS CloudFormation Resource (AWS::DMS::ReplicationSubnetGroup) @@ -31,7 +32,7 @@ type AWSDMSReplicationSubnetGroup struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSDMSReplicationSubnetGroup) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDMSReplicationSubnetGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDMSReplicationSubnetGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSDMSReplicationSubnetGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-dms-replicationtask.go b/cloudformation/resources/aws-dms-replicationtask.go similarity index 93% rename from cloudformation/aws-dms-replicationtask.go rename to cloudformation/resources/aws-dms-replicationtask.go index 8651255260..fe04789e7b 100644 --- a/cloudformation/aws-dms-replicationtask.go +++ b/cloudformation/resources/aws-dms-replicationtask.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSDMSReplicationTask AWS CloudFormation Resource (AWS::DMS::ReplicationTask) @@ -56,7 +57,7 @@ type AWSDMSReplicationTask struct { TargetEndpointArn string `json:"TargetEndpointArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -96,7 +97,7 @@ func (r *AWSDMSReplicationTask) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDMSReplicationTask) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDMSReplicationTask) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -107,9 +108,9 @@ func (r AWSDMSReplicationTask) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-docdb-dbcluster.go b/cloudformation/resources/aws-docdb-dbcluster.go similarity index 95% rename from cloudformation/aws-docdb-dbcluster.go rename to cloudformation/resources/aws-docdb-dbcluster.go index d91712d8a6..c5fb96eebb 100644 --- a/cloudformation/aws-docdb-dbcluster.go +++ b/cloudformation/resources/aws-docdb-dbcluster.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSDocDBDBCluster AWS CloudFormation Resource (AWS::DocDB::DBCluster) @@ -91,7 +92,7 @@ type AWSDocDBDBCluster struct { VpcSecurityGroupIds []string `json:"VpcSecurityGroupIds,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -131,7 +132,7 @@ func (r *AWSDocDBDBCluster) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDocDBDBCluster) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDocDBDBCluster) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -142,9 +143,9 @@ func (r AWSDocDBDBCluster) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-docdb-dbclusterparametergroup.go b/cloudformation/resources/aws-docdb-dbclusterparametergroup.go similarity index 93% rename from cloudformation/aws-docdb-dbclusterparametergroup.go rename to cloudformation/resources/aws-docdb-dbclusterparametergroup.go index cece8f1ff6..e8b83040c0 100644 --- a/cloudformation/aws-docdb-dbclusterparametergroup.go +++ b/cloudformation/resources/aws-docdb-dbclusterparametergroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSDocDBDBClusterParameterGroup AWS CloudFormation Resource (AWS::DocDB::DBClusterParameterGroup) @@ -36,7 +37,7 @@ type AWSDocDBDBClusterParameterGroup struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSDocDBDBClusterParameterGroup) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDocDBDBClusterParameterGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDocDBDBClusterParameterGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSDocDBDBClusterParameterGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-docdb-dbinstance.go b/cloudformation/resources/aws-docdb-dbinstance.go similarity index 92% rename from cloudformation/aws-docdb-dbinstance.go rename to cloudformation/resources/aws-docdb-dbinstance.go index 00d88b79fb..846c7827cf 100644 --- a/cloudformation/aws-docdb-dbinstance.go +++ b/cloudformation/resources/aws-docdb-dbinstance.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSDocDBDBInstance AWS CloudFormation Resource (AWS::DocDB::DBInstance) @@ -46,7 +47,7 @@ type AWSDocDBDBInstance struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSDocDBDBInstance) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDocDBDBInstance) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDocDBDBInstance) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSDocDBDBInstance) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-docdb-dbsubnetgroup.go b/cloudformation/resources/aws-docdb-dbsubnetgroup.go similarity index 91% rename from cloudformation/aws-docdb-dbsubnetgroup.go rename to cloudformation/resources/aws-docdb-dbsubnetgroup.go index b15acb49ab..e6fdce5f12 100644 --- a/cloudformation/aws-docdb-dbsubnetgroup.go +++ b/cloudformation/resources/aws-docdb-dbsubnetgroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSDocDBDBSubnetGroup AWS CloudFormation Resource (AWS::DocDB::DBSubnetGroup) @@ -31,7 +32,7 @@ type AWSDocDBDBSubnetGroup struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSDocDBDBSubnetGroup) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDocDBDBSubnetGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDocDBDBSubnetGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSDocDBDBSubnetGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-dynamodb-table.go b/cloudformation/resources/aws-dynamodb-table.go similarity index 94% rename from cloudformation/aws-dynamodb-table.go rename to cloudformation/resources/aws-dynamodb-table.go index 61d23ea3ed..5e4fd2b852 100644 --- a/cloudformation/aws-dynamodb-table.go +++ b/cloudformation/resources/aws-dynamodb-table.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSDynamoDBTable AWS CloudFormation Resource (AWS::DynamoDB::Table) @@ -71,7 +72,7 @@ type AWSDynamoDBTable struct { TimeToLiveSpecification *AWSDynamoDBTable_TimeToLiveSpecification `json:"TimeToLiveSpecification,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -111,7 +112,7 @@ func (r *AWSDynamoDBTable) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDynamoDBTable) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDynamoDBTable) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -122,9 +123,9 @@ func (r AWSDynamoDBTable) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-dynamodb-table_attributedefinition.go b/cloudformation/resources/aws-dynamodb-table_attributedefinition.go similarity index 94% rename from cloudformation/aws-dynamodb-table_attributedefinition.go rename to cloudformation/resources/aws-dynamodb-table_attributedefinition.go index 736e123a9e..22a8b12f07 100644 --- a/cloudformation/aws-dynamodb-table_attributedefinition.go +++ b/cloudformation/resources/aws-dynamodb-table_attributedefinition.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDynamoDBTable_AttributeDefinition AWS CloudFormation Resource (AWS::DynamoDB::Table.AttributeDefinition) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html @@ -15,7 +17,7 @@ type AWSDynamoDBTable_AttributeDefinition struct { AttributeType string `json:"AttributeType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSDynamoDBTable_AttributeDefinition) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDynamoDBTable_AttributeDefinition) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDynamoDBTable_AttributeDefinition) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-dynamodb-table_globalsecondaryindex.go b/cloudformation/resources/aws-dynamodb-table_globalsecondaryindex.go similarity index 95% rename from cloudformation/aws-dynamodb-table_globalsecondaryindex.go rename to cloudformation/resources/aws-dynamodb-table_globalsecondaryindex.go index 950d0d3cab..078473c760 100644 --- a/cloudformation/aws-dynamodb-table_globalsecondaryindex.go +++ b/cloudformation/resources/aws-dynamodb-table_globalsecondaryindex.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDynamoDBTable_GlobalSecondaryIndex AWS CloudFormation Resource (AWS::DynamoDB::Table.GlobalSecondaryIndex) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html @@ -25,7 +27,7 @@ type AWSDynamoDBTable_GlobalSecondaryIndex struct { ProvisionedThroughput *AWSDynamoDBTable_ProvisionedThroughput `json:"ProvisionedThroughput,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSDynamoDBTable_GlobalSecondaryIndex) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDynamoDBTable_GlobalSecondaryIndex) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDynamoDBTable_GlobalSecondaryIndex) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-dynamodb-table_keyschema.go b/cloudformation/resources/aws-dynamodb-table_keyschema.go similarity index 92% rename from cloudformation/aws-dynamodb-table_keyschema.go rename to cloudformation/resources/aws-dynamodb-table_keyschema.go index b0db243b00..f792a095b9 100644 --- a/cloudformation/aws-dynamodb-table_keyschema.go +++ b/cloudformation/resources/aws-dynamodb-table_keyschema.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDynamoDBTable_KeySchema AWS CloudFormation Resource (AWS::DynamoDB::Table.KeySchema) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html @@ -15,7 +17,7 @@ type AWSDynamoDBTable_KeySchema struct { KeyType string `json:"KeyType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSDynamoDBTable_KeySchema) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDynamoDBTable_KeySchema) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDynamoDBTable_KeySchema) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-dynamodb-table_localsecondaryindex.go b/cloudformation/resources/aws-dynamodb-table_localsecondaryindex.go similarity index 94% rename from cloudformation/aws-dynamodb-table_localsecondaryindex.go rename to cloudformation/resources/aws-dynamodb-table_localsecondaryindex.go index 2e27004d50..1fb002a9a2 100644 --- a/cloudformation/aws-dynamodb-table_localsecondaryindex.go +++ b/cloudformation/resources/aws-dynamodb-table_localsecondaryindex.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDynamoDBTable_LocalSecondaryIndex AWS CloudFormation Resource (AWS::DynamoDB::Table.LocalSecondaryIndex) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-lsi.html @@ -20,7 +22,7 @@ type AWSDynamoDBTable_LocalSecondaryIndex struct { Projection *AWSDynamoDBTable_Projection `json:"Projection,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSDynamoDBTable_LocalSecondaryIndex) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDynamoDBTable_LocalSecondaryIndex) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDynamoDBTable_LocalSecondaryIndex) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-dynamodb-table_pointintimerecoveryspecification.go b/cloudformation/resources/aws-dynamodb-table_pointintimerecoveryspecification.go similarity index 93% rename from cloudformation/aws-dynamodb-table_pointintimerecoveryspecification.go rename to cloudformation/resources/aws-dynamodb-table_pointintimerecoveryspecification.go index 2e185b578b..4c6076d7d6 100644 --- a/cloudformation/aws-dynamodb-table_pointintimerecoveryspecification.go +++ b/cloudformation/resources/aws-dynamodb-table_pointintimerecoveryspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDynamoDBTable_PointInTimeRecoverySpecification AWS CloudFormation Resource (AWS::DynamoDB::Table.PointInTimeRecoverySpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-pointintimerecoveryspecification.html @@ -10,7 +12,7 @@ type AWSDynamoDBTable_PointInTimeRecoverySpecification struct { PointInTimeRecoveryEnabled bool `json:"PointInTimeRecoveryEnabled,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSDynamoDBTable_PointInTimeRecoverySpecification) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDynamoDBTable_PointInTimeRecoverySpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDynamoDBTable_PointInTimeRecoverySpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-dynamodb-table_projection.go b/cloudformation/resources/aws-dynamodb-table_projection.go similarity index 92% rename from cloudformation/aws-dynamodb-table_projection.go rename to cloudformation/resources/aws-dynamodb-table_projection.go index f0ea8188dd..2537fec984 100644 --- a/cloudformation/aws-dynamodb-table_projection.go +++ b/cloudformation/resources/aws-dynamodb-table_projection.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDynamoDBTable_Projection AWS CloudFormation Resource (AWS::DynamoDB::Table.Projection) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-projectionobject.html @@ -15,7 +17,7 @@ type AWSDynamoDBTable_Projection struct { ProjectionType string `json:"ProjectionType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSDynamoDBTable_Projection) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDynamoDBTable_Projection) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDynamoDBTable_Projection) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-dynamodb-table_provisionedthroughput.go b/cloudformation/resources/aws-dynamodb-table_provisionedthroughput.go similarity index 94% rename from cloudformation/aws-dynamodb-table_provisionedthroughput.go rename to cloudformation/resources/aws-dynamodb-table_provisionedthroughput.go index c9b6cadadc..6ed9e861fb 100644 --- a/cloudformation/aws-dynamodb-table_provisionedthroughput.go +++ b/cloudformation/resources/aws-dynamodb-table_provisionedthroughput.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDynamoDBTable_ProvisionedThroughput AWS CloudFormation Resource (AWS::DynamoDB::Table.ProvisionedThroughput) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html @@ -15,7 +17,7 @@ type AWSDynamoDBTable_ProvisionedThroughput struct { WriteCapacityUnits int64 `json:"WriteCapacityUnits"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSDynamoDBTable_ProvisionedThroughput) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDynamoDBTable_ProvisionedThroughput) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDynamoDBTable_ProvisionedThroughput) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-dynamodb-table_ssespecification.go b/cloudformation/resources/aws-dynamodb-table_ssespecification.go similarity index 93% rename from cloudformation/aws-dynamodb-table_ssespecification.go rename to cloudformation/resources/aws-dynamodb-table_ssespecification.go index be6f60f43c..5455366279 100644 --- a/cloudformation/aws-dynamodb-table_ssespecification.go +++ b/cloudformation/resources/aws-dynamodb-table_ssespecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDynamoDBTable_SSESpecification AWS CloudFormation Resource (AWS::DynamoDB::Table.SSESpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html @@ -10,7 +12,7 @@ type AWSDynamoDBTable_SSESpecification struct { SSEEnabled bool `json:"SSEEnabled"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSDynamoDBTable_SSESpecification) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDynamoDBTable_SSESpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDynamoDBTable_SSESpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-dynamodb-table_streamspecification.go b/cloudformation/resources/aws-dynamodb-table_streamspecification.go similarity index 93% rename from cloudformation/aws-dynamodb-table_streamspecification.go rename to cloudformation/resources/aws-dynamodb-table_streamspecification.go index e98b5c64ee..bc6d6b6b82 100644 --- a/cloudformation/aws-dynamodb-table_streamspecification.go +++ b/cloudformation/resources/aws-dynamodb-table_streamspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDynamoDBTable_StreamSpecification AWS CloudFormation Resource (AWS::DynamoDB::Table.StreamSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-streamspecification.html @@ -10,7 +12,7 @@ type AWSDynamoDBTable_StreamSpecification struct { StreamViewType string `json:"StreamViewType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSDynamoDBTable_StreamSpecification) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDynamoDBTable_StreamSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDynamoDBTable_StreamSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-dynamodb-table_timetolivespecification.go b/cloudformation/resources/aws-dynamodb-table_timetolivespecification.go similarity index 94% rename from cloudformation/aws-dynamodb-table_timetolivespecification.go rename to cloudformation/resources/aws-dynamodb-table_timetolivespecification.go index 678240207c..146f8001e4 100644 --- a/cloudformation/aws-dynamodb-table_timetolivespecification.go +++ b/cloudformation/resources/aws-dynamodb-table_timetolivespecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSDynamoDBTable_TimeToLiveSpecification AWS CloudFormation Resource (AWS::DynamoDB::Table.TimeToLiveSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-timetolivespecification.html @@ -15,7 +17,7 @@ type AWSDynamoDBTable_TimeToLiveSpecification struct { Enabled bool `json:"Enabled"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSDynamoDBTable_TimeToLiveSpecification) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSDynamoDBTable_TimeToLiveSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSDynamoDBTable_TimeToLiveSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-customergateway.go b/cloudformation/resources/aws-ec2-customergateway.go similarity index 91% rename from cloudformation/aws-ec2-customergateway.go rename to cloudformation/resources/aws-ec2-customergateway.go index 38fdbc5cd3..d1558825d9 100644 --- a/cloudformation/aws-ec2-customergateway.go +++ b/cloudformation/resources/aws-ec2-customergateway.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2CustomerGateway AWS CloudFormation Resource (AWS::EC2::CustomerGateway) @@ -31,7 +32,7 @@ type AWSEC2CustomerGateway struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSEC2CustomerGateway) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2CustomerGateway) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2CustomerGateway) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSEC2CustomerGateway) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-dhcpoptions.go b/cloudformation/resources/aws-ec2-dhcpoptions.go similarity index 92% rename from cloudformation/aws-ec2-dhcpoptions.go rename to cloudformation/resources/aws-ec2-dhcpoptions.go index 7f756844c8..f918b2bf2e 100644 --- a/cloudformation/aws-ec2-dhcpoptions.go +++ b/cloudformation/resources/aws-ec2-dhcpoptions.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2DHCPOptions AWS CloudFormation Resource (AWS::EC2::DHCPOptions) @@ -41,7 +42,7 @@ type AWSEC2DHCPOptions struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -81,7 +82,7 @@ func (r *AWSEC2DHCPOptions) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2DHCPOptions) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2DHCPOptions) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -92,9 +93,9 @@ func (r AWSEC2DHCPOptions) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-ec2fleet.go b/cloudformation/resources/aws-ec2-ec2fleet.go similarity index 94% rename from cloudformation/aws-ec2-ec2fleet.go rename to cloudformation/resources/aws-ec2-ec2fleet.go index a84813eb4f..b5d40299ad 100644 --- a/cloudformation/aws-ec2-ec2fleet.go +++ b/cloudformation/resources/aws-ec2-ec2fleet.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2EC2Fleet AWS CloudFormation Resource (AWS::EC2::EC2Fleet) @@ -66,7 +67,7 @@ type AWSEC2EC2Fleet struct { ValidUntil string `json:"ValidUntil,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -106,7 +107,7 @@ func (r *AWSEC2EC2Fleet) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2EC2Fleet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2EC2Fleet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -117,9 +118,9 @@ func (r AWSEC2EC2Fleet) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-ec2fleet_fleetlaunchtemplateconfigrequest.go b/cloudformation/resources/aws-ec2-ec2fleet_fleetlaunchtemplateconfigrequest.go similarity index 94% rename from cloudformation/aws-ec2-ec2fleet_fleetlaunchtemplateconfigrequest.go rename to cloudformation/resources/aws-ec2-ec2fleet_fleetlaunchtemplateconfigrequest.go index 88b7c0ce86..1342e7eac6 100644 --- a/cloudformation/aws-ec2-ec2fleet_fleetlaunchtemplateconfigrequest.go +++ b/cloudformation/resources/aws-ec2-ec2fleet_fleetlaunchtemplateconfigrequest.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2EC2Fleet_FleetLaunchTemplateConfigRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateconfigrequest.html @@ -15,7 +17,7 @@ type AWSEC2EC2Fleet_FleetLaunchTemplateConfigRequest struct { Overrides []AWSEC2EC2Fleet_FleetLaunchTemplateOverridesRequest `json:"Overrides,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEC2EC2Fleet_FleetLaunchTemplateConfigRequest) SetMetadata(metadata m // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2EC2Fleet_FleetLaunchTemplateConfigRequest) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2EC2Fleet_FleetLaunchTemplateConfigRequest) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-ec2fleet_fleetlaunchtemplateoverridesrequest.go b/cloudformation/resources/aws-ec2-ec2fleet_fleetlaunchtemplateoverridesrequest.go similarity index 96% rename from cloudformation/aws-ec2-ec2fleet_fleetlaunchtemplateoverridesrequest.go rename to cloudformation/resources/aws-ec2-ec2fleet_fleetlaunchtemplateoverridesrequest.go index 945ee61713..80a8851b51 100644 --- a/cloudformation/aws-ec2-ec2fleet_fleetlaunchtemplateoverridesrequest.go +++ b/cloudformation/resources/aws-ec2-ec2fleet_fleetlaunchtemplateoverridesrequest.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2EC2Fleet_FleetLaunchTemplateOverridesRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest.html @@ -35,7 +37,7 @@ type AWSEC2EC2Fleet_FleetLaunchTemplateOverridesRequest struct { WeightedCapacity float64 `json:"WeightedCapacity,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSEC2EC2Fleet_FleetLaunchTemplateOverridesRequest) SetMetadata(metadat // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2EC2Fleet_FleetLaunchTemplateOverridesRequest) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2EC2Fleet_FleetLaunchTemplateOverridesRequest) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-ec2fleet_fleetlaunchtemplatespecificationrequest.go b/cloudformation/resources/aws-ec2-ec2fleet_fleetlaunchtemplatespecificationrequest.go similarity index 95% rename from cloudformation/aws-ec2-ec2fleet_fleetlaunchtemplatespecificationrequest.go rename to cloudformation/resources/aws-ec2-ec2fleet_fleetlaunchtemplatespecificationrequest.go index 3569b4775b..6ffefea552 100644 --- a/cloudformation/aws-ec2-ec2fleet_fleetlaunchtemplatespecificationrequest.go +++ b/cloudformation/resources/aws-ec2-ec2fleet_fleetlaunchtemplatespecificationrequest.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2EC2Fleet_FleetLaunchTemplateSpecificationRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplatespecificationrequest.html @@ -20,7 +22,7 @@ type AWSEC2EC2Fleet_FleetLaunchTemplateSpecificationRequest struct { Version string `json:"Version,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSEC2EC2Fleet_FleetLaunchTemplateSpecificationRequest) SetMetadata(met // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2EC2Fleet_FleetLaunchTemplateSpecificationRequest) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2EC2Fleet_FleetLaunchTemplateSpecificationRequest) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-ec2fleet_ondemandoptionsrequest.go b/cloudformation/resources/aws-ec2-ec2fleet_ondemandoptionsrequest.go similarity index 94% rename from cloudformation/aws-ec2-ec2fleet_ondemandoptionsrequest.go rename to cloudformation/resources/aws-ec2-ec2fleet_ondemandoptionsrequest.go index cc0cb0c3eb..ab7d4b6797 100644 --- a/cloudformation/aws-ec2-ec2fleet_ondemandoptionsrequest.go +++ b/cloudformation/resources/aws-ec2-ec2fleet_ondemandoptionsrequest.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2EC2Fleet_OnDemandOptionsRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.OnDemandOptionsRequest) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ondemandoptionsrequest.html @@ -10,7 +12,7 @@ type AWSEC2EC2Fleet_OnDemandOptionsRequest struct { AllocationStrategy string `json:"AllocationStrategy,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2EC2Fleet_OnDemandOptionsRequest) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2EC2Fleet_OnDemandOptionsRequest) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2EC2Fleet_OnDemandOptionsRequest) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-ec2fleet_spotoptionsrequest.go b/cloudformation/resources/aws-ec2-ec2fleet_spotoptionsrequest.go similarity index 95% rename from cloudformation/aws-ec2-ec2fleet_spotoptionsrequest.go rename to cloudformation/resources/aws-ec2-ec2fleet_spotoptionsrequest.go index a4fdee99a0..328f3866d2 100644 --- a/cloudformation/aws-ec2-ec2fleet_spotoptionsrequest.go +++ b/cloudformation/resources/aws-ec2-ec2fleet_spotoptionsrequest.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2EC2Fleet_SpotOptionsRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.SpotOptionsRequest) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html @@ -20,7 +22,7 @@ type AWSEC2EC2Fleet_SpotOptionsRequest struct { InstancePoolsToUseCount int `json:"InstancePoolsToUseCount,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSEC2EC2Fleet_SpotOptionsRequest) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2EC2Fleet_SpotOptionsRequest) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2EC2Fleet_SpotOptionsRequest) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-ec2fleet_tagrequest.go b/cloudformation/resources/aws-ec2-ec2fleet_tagrequest.go similarity index 92% rename from cloudformation/aws-ec2-ec2fleet_tagrequest.go rename to cloudformation/resources/aws-ec2-ec2fleet_tagrequest.go index 84ed6d2314..91514ccbfc 100644 --- a/cloudformation/aws-ec2-ec2fleet_tagrequest.go +++ b/cloudformation/resources/aws-ec2-ec2fleet_tagrequest.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2EC2Fleet_TagRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.TagRequest) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-tagrequest.html @@ -15,7 +17,7 @@ type AWSEC2EC2Fleet_TagRequest struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEC2EC2Fleet_TagRequest) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2EC2Fleet_TagRequest) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2EC2Fleet_TagRequest) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-ec2fleet_tagspecification.go b/cloudformation/resources/aws-ec2-ec2fleet_tagspecification.go similarity index 94% rename from cloudformation/aws-ec2-ec2fleet_tagspecification.go rename to cloudformation/resources/aws-ec2-ec2fleet_tagspecification.go index 3624485744..63037f9a1c 100644 --- a/cloudformation/aws-ec2-ec2fleet_tagspecification.go +++ b/cloudformation/resources/aws-ec2-ec2fleet_tagspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2EC2Fleet_TagSpecification AWS CloudFormation Resource (AWS::EC2::EC2Fleet.TagSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-tagspecification.html @@ -15,7 +17,7 @@ type AWSEC2EC2Fleet_TagSpecification struct { Tags []AWSEC2EC2Fleet_TagRequest `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEC2EC2Fleet_TagSpecification) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2EC2Fleet_TagSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2EC2Fleet_TagSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-ec2fleet_targetcapacityspecificationrequest.go b/cloudformation/resources/aws-ec2-ec2fleet_targetcapacityspecificationrequest.go similarity index 95% rename from cloudformation/aws-ec2-ec2fleet_targetcapacityspecificationrequest.go rename to cloudformation/resources/aws-ec2-ec2fleet_targetcapacityspecificationrequest.go index 650b74207b..642313eb54 100644 --- a/cloudformation/aws-ec2-ec2fleet_targetcapacityspecificationrequest.go +++ b/cloudformation/resources/aws-ec2-ec2fleet_targetcapacityspecificationrequest.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2EC2Fleet_TargetCapacitySpecificationRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-targetcapacityspecificationrequest.html @@ -25,7 +27,7 @@ type AWSEC2EC2Fleet_TargetCapacitySpecificationRequest struct { TotalTargetCapacity int `json:"TotalTargetCapacity"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSEC2EC2Fleet_TargetCapacitySpecificationRequest) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2EC2Fleet_TargetCapacitySpecificationRequest) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2EC2Fleet_TargetCapacitySpecificationRequest) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-egressonlyinternetgateway.go b/cloudformation/resources/aws-ec2-egressonlyinternetgateway.go similarity index 91% rename from cloudformation/aws-ec2-egressonlyinternetgateway.go rename to cloudformation/resources/aws-ec2-egressonlyinternetgateway.go index eb251b73f1..35b3707b66 100644 --- a/cloudformation/aws-ec2-egressonlyinternetgateway.go +++ b/cloudformation/resources/aws-ec2-egressonlyinternetgateway.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2EgressOnlyInternetGateway AWS CloudFormation Resource (AWS::EC2::EgressOnlyInternetGateway) @@ -16,7 +17,7 @@ type AWSEC2EgressOnlyInternetGateway struct { VpcId string `json:"VpcId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -56,7 +57,7 @@ func (r *AWSEC2EgressOnlyInternetGateway) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2EgressOnlyInternetGateway) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2EgressOnlyInternetGateway) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -67,9 +68,9 @@ func (r AWSEC2EgressOnlyInternetGateway) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-eip.go b/cloudformation/resources/aws-ec2-eip.go similarity index 90% rename from cloudformation/aws-ec2-eip.go rename to cloudformation/resources/aws-ec2-eip.go index 2c06f94772..5aa41241f9 100644 --- a/cloudformation/aws-ec2-eip.go +++ b/cloudformation/resources/aws-ec2-eip.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2EIP AWS CloudFormation Resource (AWS::EC2::EIP) @@ -26,7 +27,7 @@ type AWSEC2EIP struct { PublicIpv4Pool string `json:"PublicIpv4Pool,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSEC2EIP) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2EIP) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2EIP) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSEC2EIP) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-eipassociation.go b/cloudformation/resources/aws-ec2-eipassociation.go similarity index 92% rename from cloudformation/aws-ec2-eipassociation.go rename to cloudformation/resources/aws-ec2-eipassociation.go index 225d2679a4..9dfccc72e3 100644 --- a/cloudformation/aws-ec2-eipassociation.go +++ b/cloudformation/resources/aws-ec2-eipassociation.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2EIPAssociation AWS CloudFormation Resource (AWS::EC2::EIPAssociation) @@ -36,7 +37,7 @@ type AWSEC2EIPAssociation struct { PrivateIpAddress string `json:"PrivateIpAddress,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSEC2EIPAssociation) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2EIPAssociation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2EIPAssociation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSEC2EIPAssociation) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-flowlog.go b/cloudformation/resources/aws-ec2-flowlog.go similarity index 92% rename from cloudformation/aws-ec2-flowlog.go rename to cloudformation/resources/aws-ec2-flowlog.go index 8514977e1d..12c298d96e 100644 --- a/cloudformation/aws-ec2-flowlog.go +++ b/cloudformation/resources/aws-ec2-flowlog.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2FlowLog AWS CloudFormation Resource (AWS::EC2::FlowLog) @@ -46,7 +47,7 @@ type AWSEC2FlowLog struct { TrafficType string `json:"TrafficType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSEC2FlowLog) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2FlowLog) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2FlowLog) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSEC2FlowLog) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-host.go b/cloudformation/resources/aws-ec2-host.go similarity index 90% rename from cloudformation/aws-ec2-host.go rename to cloudformation/resources/aws-ec2-host.go index 2b8c638c76..0489016860 100644 --- a/cloudformation/aws-ec2-host.go +++ b/cloudformation/resources/aws-ec2-host.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2Host AWS CloudFormation Resource (AWS::EC2::Host) @@ -26,7 +27,7 @@ type AWSEC2Host struct { InstanceType string `json:"InstanceType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSEC2Host) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2Host) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2Host) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSEC2Host) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-instance.go b/cloudformation/resources/aws-ec2-instance.go similarity index 95% rename from cloudformation/aws-ec2-instance.go rename to cloudformation/resources/aws-ec2-instance.go index e9c38b8447..5cb82db097 100644 --- a/cloudformation/aws-ec2-instance.go +++ b/cloudformation/resources/aws-ec2-instance.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2Instance AWS CloudFormation Resource (AWS::EC2::Instance) @@ -181,10 +182,10 @@ type AWSEC2Instance struct { Volumes []AWSEC2Instance_Volume `json:"Volumes,omitempty"` // _creationPolicy represents a CloudFormation CreationPolicy - _creationPolicy *CreationPolicy + _creationPolicy *policies.CreationPolicy // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -224,13 +225,13 @@ func (r *AWSEC2Instance) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2Instance) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2Instance) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } // SetCreationPolicy applies an AWS CloudFormation CreationPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-creationpolicy.html -func (r *AWSEC2Instance) SetCreationPolicy(policy *CreationPolicy) { +func (r *AWSEC2Instance) SetCreationPolicy(policy *policies.CreationPolicy) { r._creationPolicy = policy } @@ -241,11 +242,11 @@ func (r AWSEC2Instance) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` - CreationPolicy *CreationPolicy `json:"CreationPolicy,omitempty"` + CreationPolicy *policies.CreationPolicy `json:"CreationPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-instance_associationparameter.go b/cloudformation/resources/aws-ec2-instance_associationparameter.go similarity index 94% rename from cloudformation/aws-ec2-instance_associationparameter.go rename to cloudformation/resources/aws-ec2-instance_associationparameter.go index a521d6ee72..08af213051 100644 --- a/cloudformation/aws-ec2-instance_associationparameter.go +++ b/cloudformation/resources/aws-ec2-instance_associationparameter.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2Instance_AssociationParameter AWS CloudFormation Resource (AWS::EC2::Instance.AssociationParameter) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations-associationparameters.html @@ -15,7 +17,7 @@ type AWSEC2Instance_AssociationParameter struct { Value []string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEC2Instance_AssociationParameter) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2Instance_AssociationParameter) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2Instance_AssociationParameter) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-instance_blockdevicemapping.go b/cloudformation/resources/aws-ec2-instance_blockdevicemapping.go similarity index 95% rename from cloudformation/aws-ec2-instance_blockdevicemapping.go rename to cloudformation/resources/aws-ec2-instance_blockdevicemapping.go index a804e92a3c..66ad981654 100644 --- a/cloudformation/aws-ec2-instance_blockdevicemapping.go +++ b/cloudformation/resources/aws-ec2-instance_blockdevicemapping.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2Instance_BlockDeviceMapping AWS CloudFormation Resource (AWS::EC2::Instance.BlockDeviceMapping) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-mapping.html @@ -25,7 +27,7 @@ type AWSEC2Instance_BlockDeviceMapping struct { VirtualName string `json:"VirtualName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSEC2Instance_BlockDeviceMapping) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2Instance_BlockDeviceMapping) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2Instance_BlockDeviceMapping) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-instance_creditspecification.go b/cloudformation/resources/aws-ec2-instance_creditspecification.go similarity index 93% rename from cloudformation/aws-ec2-instance_creditspecification.go rename to cloudformation/resources/aws-ec2-instance_creditspecification.go index dac1119ec1..9a22ac3ec5 100644 --- a/cloudformation/aws-ec2-instance_creditspecification.go +++ b/cloudformation/resources/aws-ec2-instance_creditspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2Instance_CreditSpecification AWS CloudFormation Resource (AWS::EC2::Instance.CreditSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-creditspecification.html @@ -10,7 +12,7 @@ type AWSEC2Instance_CreditSpecification struct { CPUCredits string `json:"CPUCredits,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2Instance_CreditSpecification) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2Instance_CreditSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2Instance_CreditSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-instance_ebs.go b/cloudformation/resources/aws-ec2-instance_ebs.go similarity index 94% rename from cloudformation/aws-ec2-instance_ebs.go rename to cloudformation/resources/aws-ec2-instance_ebs.go index 30f8cb2d1c..66be16ed87 100644 --- a/cloudformation/aws-ec2-instance_ebs.go +++ b/cloudformation/resources/aws-ec2-instance_ebs.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2Instance_Ebs AWS CloudFormation Resource (AWS::EC2::Instance.Ebs) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html @@ -35,7 +37,7 @@ type AWSEC2Instance_Ebs struct { VolumeType string `json:"VolumeType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSEC2Instance_Ebs) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2Instance_Ebs) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2Instance_Ebs) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-instance_elasticgpuspecification.go b/cloudformation/resources/aws-ec2-instance_elasticgpuspecification.go similarity index 93% rename from cloudformation/aws-ec2-instance_elasticgpuspecification.go rename to cloudformation/resources/aws-ec2-instance_elasticgpuspecification.go index 88b00a9332..79a15a78b8 100644 --- a/cloudformation/aws-ec2-instance_elasticgpuspecification.go +++ b/cloudformation/resources/aws-ec2-instance_elasticgpuspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2Instance_ElasticGpuSpecification AWS CloudFormation Resource (AWS::EC2::Instance.ElasticGpuSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-elasticgpuspecification.html @@ -10,7 +12,7 @@ type AWSEC2Instance_ElasticGpuSpecification struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2Instance_ElasticGpuSpecification) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2Instance_ElasticGpuSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2Instance_ElasticGpuSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-instance_elasticinferenceaccelerator.go b/cloudformation/resources/aws-ec2-instance_elasticinferenceaccelerator.go similarity index 93% rename from cloudformation/aws-ec2-instance_elasticinferenceaccelerator.go rename to cloudformation/resources/aws-ec2-instance_elasticinferenceaccelerator.go index 6f03e2a47d..cc5815936b 100644 --- a/cloudformation/aws-ec2-instance_elasticinferenceaccelerator.go +++ b/cloudformation/resources/aws-ec2-instance_elasticinferenceaccelerator.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2Instance_ElasticInferenceAccelerator AWS CloudFormation Resource (AWS::EC2::Instance.ElasticInferenceAccelerator) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-elasticinferenceaccelerator.html @@ -10,7 +12,7 @@ type AWSEC2Instance_ElasticInferenceAccelerator struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2Instance_ElasticInferenceAccelerator) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2Instance_ElasticInferenceAccelerator) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2Instance_ElasticInferenceAccelerator) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-instance_instanceipv6address.go b/cloudformation/resources/aws-ec2-instance_instanceipv6address.go similarity index 93% rename from cloudformation/aws-ec2-instance_instanceipv6address.go rename to cloudformation/resources/aws-ec2-instance_instanceipv6address.go index af96f56e63..b60b470360 100644 --- a/cloudformation/aws-ec2-instance_instanceipv6address.go +++ b/cloudformation/resources/aws-ec2-instance_instanceipv6address.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2Instance_InstanceIpv6Address AWS CloudFormation Resource (AWS::EC2::Instance.InstanceIpv6Address) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-instanceipv6address.html @@ -10,7 +12,7 @@ type AWSEC2Instance_InstanceIpv6Address struct { Ipv6Address string `json:"Ipv6Address,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2Instance_InstanceIpv6Address) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2Instance_InstanceIpv6Address) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2Instance_InstanceIpv6Address) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-instance_launchtemplatespecification.go b/cloudformation/resources/aws-ec2-instance_launchtemplatespecification.go similarity index 95% rename from cloudformation/aws-ec2-instance_launchtemplatespecification.go rename to cloudformation/resources/aws-ec2-instance_launchtemplatespecification.go index 7e57308fc5..58fed0b0dd 100644 --- a/cloudformation/aws-ec2-instance_launchtemplatespecification.go +++ b/cloudformation/resources/aws-ec2-instance_launchtemplatespecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2Instance_LaunchTemplateSpecification AWS CloudFormation Resource (AWS::EC2::Instance.LaunchTemplateSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-launchtemplatespecification.html @@ -20,7 +22,7 @@ type AWSEC2Instance_LaunchTemplateSpecification struct { Version string `json:"Version,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSEC2Instance_LaunchTemplateSpecification) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2Instance_LaunchTemplateSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2Instance_LaunchTemplateSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-instance_licensespecification.go b/cloudformation/resources/aws-ec2-instance_licensespecification.go similarity index 94% rename from cloudformation/aws-ec2-instance_licensespecification.go rename to cloudformation/resources/aws-ec2-instance_licensespecification.go index 49cac4c623..08960a9772 100644 --- a/cloudformation/aws-ec2-instance_licensespecification.go +++ b/cloudformation/resources/aws-ec2-instance_licensespecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2Instance_LicenseSpecification AWS CloudFormation Resource (AWS::EC2::Instance.LicenseSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-licensespecification.html @@ -10,7 +12,7 @@ type AWSEC2Instance_LicenseSpecification struct { LicenseConfigurationArn string `json:"LicenseConfigurationArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2Instance_LicenseSpecification) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2Instance_LicenseSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2Instance_LicenseSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-instance_networkinterface.go b/cloudformation/resources/aws-ec2-instance_networkinterface.go similarity index 97% rename from cloudformation/aws-ec2-instance_networkinterface.go rename to cloudformation/resources/aws-ec2-instance_networkinterface.go index dbb64b9aef..4bdeb3e175 100644 --- a/cloudformation/aws-ec2-instance_networkinterface.go +++ b/cloudformation/resources/aws-ec2-instance_networkinterface.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2Instance_NetworkInterface AWS CloudFormation Resource (AWS::EC2::Instance.NetworkInterface) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html @@ -65,7 +67,7 @@ type AWSEC2Instance_NetworkInterface struct { SubnetId string `json:"SubnetId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -105,6 +107,6 @@ func (r *AWSEC2Instance_NetworkInterface) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2Instance_NetworkInterface) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2Instance_NetworkInterface) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-instance_nodevice.go b/cloudformation/resources/aws-ec2-instance_nodevice.go similarity index 90% rename from cloudformation/aws-ec2-instance_nodevice.go rename to cloudformation/resources/aws-ec2-instance_nodevice.go index 69100e9e65..c96781b5c0 100644 --- a/cloudformation/aws-ec2-instance_nodevice.go +++ b/cloudformation/resources/aws-ec2-instance_nodevice.go @@ -1,11 +1,13 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2Instance_NoDevice AWS CloudFormation Resource (AWS::EC2::Instance.NoDevice) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-nodevice.html type AWSEC2Instance_NoDevice struct { // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -45,6 +47,6 @@ func (r *AWSEC2Instance_NoDevice) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2Instance_NoDevice) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2Instance_NoDevice) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-instance_privateipaddressspecification.go b/cloudformation/resources/aws-ec2-instance_privateipaddressspecification.go similarity index 94% rename from cloudformation/aws-ec2-instance_privateipaddressspecification.go rename to cloudformation/resources/aws-ec2-instance_privateipaddressspecification.go index 97ad10b59f..68a575cc68 100644 --- a/cloudformation/aws-ec2-instance_privateipaddressspecification.go +++ b/cloudformation/resources/aws-ec2-instance_privateipaddressspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2Instance_PrivateIpAddressSpecification AWS CloudFormation Resource (AWS::EC2::Instance.PrivateIpAddressSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-interface-privateipspec.html @@ -15,7 +17,7 @@ type AWSEC2Instance_PrivateIpAddressSpecification struct { PrivateIpAddress string `json:"PrivateIpAddress,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEC2Instance_PrivateIpAddressSpecification) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2Instance_PrivateIpAddressSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2Instance_PrivateIpAddressSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-instance_ssmassociation.go b/cloudformation/resources/aws-ec2-instance_ssmassociation.go similarity index 94% rename from cloudformation/aws-ec2-instance_ssmassociation.go rename to cloudformation/resources/aws-ec2-instance_ssmassociation.go index cd55ac6ea5..6eb3f6aae8 100644 --- a/cloudformation/aws-ec2-instance_ssmassociation.go +++ b/cloudformation/resources/aws-ec2-instance_ssmassociation.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2Instance_SsmAssociation AWS CloudFormation Resource (AWS::EC2::Instance.SsmAssociation) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations.html @@ -15,7 +17,7 @@ type AWSEC2Instance_SsmAssociation struct { DocumentName string `json:"DocumentName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEC2Instance_SsmAssociation) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2Instance_SsmAssociation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2Instance_SsmAssociation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-instance_volume.go b/cloudformation/resources/aws-ec2-instance_volume.go similarity index 92% rename from cloudformation/aws-ec2-instance_volume.go rename to cloudformation/resources/aws-ec2-instance_volume.go index 006d45e38b..ea77904e40 100644 --- a/cloudformation/aws-ec2-instance_volume.go +++ b/cloudformation/resources/aws-ec2-instance_volume.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2Instance_Volume AWS CloudFormation Resource (AWS::EC2::Instance.Volume) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-mount-point.html @@ -15,7 +17,7 @@ type AWSEC2Instance_Volume struct { VolumeId string `json:"VolumeId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEC2Instance_Volume) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2Instance_Volume) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2Instance_Volume) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-internetgateway.go b/cloudformation/resources/aws-ec2-internetgateway.go similarity index 89% rename from cloudformation/aws-ec2-internetgateway.go rename to cloudformation/resources/aws-ec2-internetgateway.go index 483490f8f5..50903742cf 100644 --- a/cloudformation/aws-ec2-internetgateway.go +++ b/cloudformation/resources/aws-ec2-internetgateway.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2InternetGateway AWS CloudFormation Resource (AWS::EC2::InternetGateway) @@ -16,7 +17,7 @@ type AWSEC2InternetGateway struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -56,7 +57,7 @@ func (r *AWSEC2InternetGateway) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2InternetGateway) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2InternetGateway) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -67,9 +68,9 @@ func (r AWSEC2InternetGateway) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-launchtemplate.go b/cloudformation/resources/aws-ec2-launchtemplate.go similarity index 90% rename from cloudformation/aws-ec2-launchtemplate.go rename to cloudformation/resources/aws-ec2-launchtemplate.go index b38d4a1a48..79bf050af6 100644 --- a/cloudformation/aws-ec2-launchtemplate.go +++ b/cloudformation/resources/aws-ec2-launchtemplate.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2LaunchTemplate AWS CloudFormation Resource (AWS::EC2::LaunchTemplate) @@ -21,7 +22,7 @@ type AWSEC2LaunchTemplate struct { LaunchTemplateName string `json:"LaunchTemplateName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSEC2LaunchTemplate) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2LaunchTemplate) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2LaunchTemplate) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSEC2LaunchTemplate) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-launchtemplate_blockdevicemapping.go b/cloudformation/resources/aws-ec2-launchtemplate_blockdevicemapping.go similarity index 95% rename from cloudformation/aws-ec2-launchtemplate_blockdevicemapping.go rename to cloudformation/resources/aws-ec2-launchtemplate_blockdevicemapping.go index 9a784ac9a4..90d101c9e3 100644 --- a/cloudformation/aws-ec2-launchtemplate_blockdevicemapping.go +++ b/cloudformation/resources/aws-ec2-launchtemplate_blockdevicemapping.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2LaunchTemplate_BlockDeviceMapping AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.BlockDeviceMapping) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping.html @@ -25,7 +27,7 @@ type AWSEC2LaunchTemplate_BlockDeviceMapping struct { VirtualName string `json:"VirtualName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSEC2LaunchTemplate_BlockDeviceMapping) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2LaunchTemplate_BlockDeviceMapping) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2LaunchTemplate_BlockDeviceMapping) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-launchtemplate_capacityreservationpreference.go b/cloudformation/resources/aws-ec2-launchtemplate_capacityreservationpreference.go similarity index 92% rename from cloudformation/aws-ec2-launchtemplate_capacityreservationpreference.go rename to cloudformation/resources/aws-ec2-launchtemplate_capacityreservationpreference.go index 5e08753992..c1d43541d6 100644 --- a/cloudformation/aws-ec2-launchtemplate_capacityreservationpreference.go +++ b/cloudformation/resources/aws-ec2-launchtemplate_capacityreservationpreference.go @@ -1,11 +1,13 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2LaunchTemplate_CapacityReservationPreference AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.CapacityReservationPreference) // See: type AWSEC2LaunchTemplate_CapacityReservationPreference struct { // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -45,6 +47,6 @@ func (r *AWSEC2LaunchTemplate_CapacityReservationPreference) SetMetadata(metadat // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2LaunchTemplate_CapacityReservationPreference) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2LaunchTemplate_CapacityReservationPreference) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-launchtemplate_capacityreservationspecification.go b/cloudformation/resources/aws-ec2-launchtemplate_capacityreservationspecification.go similarity index 94% rename from cloudformation/aws-ec2-launchtemplate_capacityreservationspecification.go rename to cloudformation/resources/aws-ec2-launchtemplate_capacityreservationspecification.go index 423cedf18b..8e40c5800e 100644 --- a/cloudformation/aws-ec2-launchtemplate_capacityreservationspecification.go +++ b/cloudformation/resources/aws-ec2-launchtemplate_capacityreservationspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2LaunchTemplate_CapacityReservationSpecification AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.CapacityReservationSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-capacityreservationspecification.html @@ -15,7 +17,7 @@ type AWSEC2LaunchTemplate_CapacityReservationSpecification struct { CapacityReservationTarget *AWSEC2LaunchTemplate_CapacityReservationTarget `json:"CapacityReservationTarget,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEC2LaunchTemplate_CapacityReservationSpecification) SetMetadata(meta // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2LaunchTemplate_CapacityReservationSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2LaunchTemplate_CapacityReservationSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-launchtemplate_capacityreservationtarget.go b/cloudformation/resources/aws-ec2-launchtemplate_capacityreservationtarget.go similarity index 93% rename from cloudformation/aws-ec2-launchtemplate_capacityreservationtarget.go rename to cloudformation/resources/aws-ec2-launchtemplate_capacityreservationtarget.go index f2bb883d02..f069d551e1 100644 --- a/cloudformation/aws-ec2-launchtemplate_capacityreservationtarget.go +++ b/cloudformation/resources/aws-ec2-launchtemplate_capacityreservationtarget.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2LaunchTemplate_CapacityReservationTarget AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.CapacityReservationTarget) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-capacityreservationtarget.html @@ -10,7 +12,7 @@ type AWSEC2LaunchTemplate_CapacityReservationTarget struct { CapacityReservationId string `json:"CapacityReservationId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2LaunchTemplate_CapacityReservationTarget) SetMetadata(metadata ma // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2LaunchTemplate_CapacityReservationTarget) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2LaunchTemplate_CapacityReservationTarget) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-launchtemplate_cpuoptions.go b/cloudformation/resources/aws-ec2-launchtemplate_cpuoptions.go similarity index 94% rename from cloudformation/aws-ec2-launchtemplate_cpuoptions.go rename to cloudformation/resources/aws-ec2-launchtemplate_cpuoptions.go index 13a1ac646d..8cfc76e6d5 100644 --- a/cloudformation/aws-ec2-launchtemplate_cpuoptions.go +++ b/cloudformation/resources/aws-ec2-launchtemplate_cpuoptions.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2LaunchTemplate_CpuOptions AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.CpuOptions) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-cpuoptions.html @@ -15,7 +17,7 @@ type AWSEC2LaunchTemplate_CpuOptions struct { ThreadsPerCore int `json:"ThreadsPerCore,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEC2LaunchTemplate_CpuOptions) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2LaunchTemplate_CpuOptions) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2LaunchTemplate_CpuOptions) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-launchtemplate_creditspecification.go b/cloudformation/resources/aws-ec2-launchtemplate_creditspecification.go similarity index 94% rename from cloudformation/aws-ec2-launchtemplate_creditspecification.go rename to cloudformation/resources/aws-ec2-launchtemplate_creditspecification.go index a06b2589ad..4de017b85b 100644 --- a/cloudformation/aws-ec2-launchtemplate_creditspecification.go +++ b/cloudformation/resources/aws-ec2-launchtemplate_creditspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2LaunchTemplate_CreditSpecification AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.CreditSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-creditspecification.html @@ -10,7 +12,7 @@ type AWSEC2LaunchTemplate_CreditSpecification struct { CpuCredits string `json:"CpuCredits,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2LaunchTemplate_CreditSpecification) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2LaunchTemplate_CreditSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2LaunchTemplate_CreditSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-launchtemplate_ebs.go b/cloudformation/resources/aws-ec2-launchtemplate_ebs.go similarity index 95% rename from cloudformation/aws-ec2-launchtemplate_ebs.go rename to cloudformation/resources/aws-ec2-launchtemplate_ebs.go index 2e23b21375..78bbce9e85 100644 --- a/cloudformation/aws-ec2-launchtemplate_ebs.go +++ b/cloudformation/resources/aws-ec2-launchtemplate_ebs.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2LaunchTemplate_Ebs AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.Ebs) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping-ebs.html @@ -40,7 +42,7 @@ type AWSEC2LaunchTemplate_Ebs struct { VolumeType string `json:"VolumeType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -80,6 +82,6 @@ func (r *AWSEC2LaunchTemplate_Ebs) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2LaunchTemplate_Ebs) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2LaunchTemplate_Ebs) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-launchtemplate_elasticgpuspecification.go b/cloudformation/resources/aws-ec2-launchtemplate_elasticgpuspecification.go similarity index 93% rename from cloudformation/aws-ec2-launchtemplate_elasticgpuspecification.go rename to cloudformation/resources/aws-ec2-launchtemplate_elasticgpuspecification.go index 2ed889ebc1..cc428b9d15 100644 --- a/cloudformation/aws-ec2-launchtemplate_elasticgpuspecification.go +++ b/cloudformation/resources/aws-ec2-launchtemplate_elasticgpuspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2LaunchTemplate_ElasticGpuSpecification AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.ElasticGpuSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-elasticgpuspecification.html @@ -10,7 +12,7 @@ type AWSEC2LaunchTemplate_ElasticGpuSpecification struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2LaunchTemplate_ElasticGpuSpecification) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2LaunchTemplate_ElasticGpuSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2LaunchTemplate_ElasticGpuSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-launchtemplate_hibernationoptions.go b/cloudformation/resources/aws-ec2-launchtemplate_hibernationoptions.go similarity index 94% rename from cloudformation/aws-ec2-launchtemplate_hibernationoptions.go rename to cloudformation/resources/aws-ec2-launchtemplate_hibernationoptions.go index 39383a650d..b08de4dcfc 100644 --- a/cloudformation/aws-ec2-launchtemplate_hibernationoptions.go +++ b/cloudformation/resources/aws-ec2-launchtemplate_hibernationoptions.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2LaunchTemplate_HibernationOptions AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.HibernationOptions) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-hibernationoptions.html @@ -10,7 +12,7 @@ type AWSEC2LaunchTemplate_HibernationOptions struct { Configured bool `json:"Configured,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2LaunchTemplate_HibernationOptions) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2LaunchTemplate_HibernationOptions) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2LaunchTemplate_HibernationOptions) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-launchtemplate_iaminstanceprofile.go b/cloudformation/resources/aws-ec2-launchtemplate_iaminstanceprofile.go similarity index 94% rename from cloudformation/aws-ec2-launchtemplate_iaminstanceprofile.go rename to cloudformation/resources/aws-ec2-launchtemplate_iaminstanceprofile.go index 475fc688f1..7447c76f0a 100644 --- a/cloudformation/aws-ec2-launchtemplate_iaminstanceprofile.go +++ b/cloudformation/resources/aws-ec2-launchtemplate_iaminstanceprofile.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2LaunchTemplate_IamInstanceProfile AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.IamInstanceProfile) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-iaminstanceprofile.html @@ -15,7 +17,7 @@ type AWSEC2LaunchTemplate_IamInstanceProfile struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEC2LaunchTemplate_IamInstanceProfile) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2LaunchTemplate_IamInstanceProfile) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2LaunchTemplate_IamInstanceProfile) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-launchtemplate_instancemarketoptions.go b/cloudformation/resources/aws-ec2-launchtemplate_instancemarketoptions.go similarity index 94% rename from cloudformation/aws-ec2-launchtemplate_instancemarketoptions.go rename to cloudformation/resources/aws-ec2-launchtemplate_instancemarketoptions.go index 2c174ec33f..d915f924b0 100644 --- a/cloudformation/aws-ec2-launchtemplate_instancemarketoptions.go +++ b/cloudformation/resources/aws-ec2-launchtemplate_instancemarketoptions.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2LaunchTemplate_InstanceMarketOptions AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.InstanceMarketOptions) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions.html @@ -15,7 +17,7 @@ type AWSEC2LaunchTemplate_InstanceMarketOptions struct { SpotOptions *AWSEC2LaunchTemplate_SpotOptions `json:"SpotOptions,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEC2LaunchTemplate_InstanceMarketOptions) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2LaunchTemplate_InstanceMarketOptions) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2LaunchTemplate_InstanceMarketOptions) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-launchtemplate_ipv6add.go b/cloudformation/resources/aws-ec2-launchtemplate_ipv6add.go similarity index 94% rename from cloudformation/aws-ec2-launchtemplate_ipv6add.go rename to cloudformation/resources/aws-ec2-launchtemplate_ipv6add.go index f00b26c534..d711cdc318 100644 --- a/cloudformation/aws-ec2-launchtemplate_ipv6add.go +++ b/cloudformation/resources/aws-ec2-launchtemplate_ipv6add.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2LaunchTemplate_Ipv6Add AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.Ipv6Add) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ipv6add.html @@ -10,7 +12,7 @@ type AWSEC2LaunchTemplate_Ipv6Add struct { Ipv6Address string `json:"Ipv6Address,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2LaunchTemplate_Ipv6Add) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2LaunchTemplate_Ipv6Add) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2LaunchTemplate_Ipv6Add) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-launchtemplate_launchtemplatedata.go b/cloudformation/resources/aws-ec2-launchtemplate_launchtemplatedata.go similarity index 98% rename from cloudformation/aws-ec2-launchtemplate_launchtemplatedata.go rename to cloudformation/resources/aws-ec2-launchtemplate_launchtemplatedata.go index 77b1c5dd81..7c31bbac99 100644 --- a/cloudformation/aws-ec2-launchtemplate_launchtemplatedata.go +++ b/cloudformation/resources/aws-ec2-launchtemplate_launchtemplatedata.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2LaunchTemplate_LaunchTemplateData AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.LaunchTemplateData) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html @@ -130,7 +132,7 @@ type AWSEC2LaunchTemplate_LaunchTemplateData struct { UserData string `json:"UserData,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -170,6 +172,6 @@ func (r *AWSEC2LaunchTemplate_LaunchTemplateData) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2LaunchTemplate_LaunchTemplateData) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2LaunchTemplate_LaunchTemplateData) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-launchtemplate_launchtemplateelasticinferenceaccelerator.go b/cloudformation/resources/aws-ec2-launchtemplate_launchtemplateelasticinferenceaccelerator.go similarity index 93% rename from cloudformation/aws-ec2-launchtemplate_launchtemplateelasticinferenceaccelerator.go rename to cloudformation/resources/aws-ec2-launchtemplate_launchtemplateelasticinferenceaccelerator.go index b711bfb919..78ce0795d1 100644 --- a/cloudformation/aws-ec2-launchtemplate_launchtemplateelasticinferenceaccelerator.go +++ b/cloudformation/resources/aws-ec2-launchtemplate_launchtemplateelasticinferenceaccelerator.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2LaunchTemplate_LaunchTemplateElasticInferenceAccelerator AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.LaunchTemplateElasticInferenceAccelerator) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplateelasticinferenceaccelerator.html @@ -10,7 +12,7 @@ type AWSEC2LaunchTemplate_LaunchTemplateElasticInferenceAccelerator struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2LaunchTemplate_LaunchTemplateElasticInferenceAccelerator) SetMeta // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2LaunchTemplate_LaunchTemplateElasticInferenceAccelerator) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2LaunchTemplate_LaunchTemplateElasticInferenceAccelerator) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-launchtemplate_licensespecification.go b/cloudformation/resources/aws-ec2-launchtemplate_licensespecification.go similarity index 94% rename from cloudformation/aws-ec2-launchtemplate_licensespecification.go rename to cloudformation/resources/aws-ec2-launchtemplate_licensespecification.go index 85c34fbd9a..8ed69d2f3b 100644 --- a/cloudformation/aws-ec2-launchtemplate_licensespecification.go +++ b/cloudformation/resources/aws-ec2-launchtemplate_licensespecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2LaunchTemplate_LicenseSpecification AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.LicenseSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-licensespecification.html @@ -10,7 +12,7 @@ type AWSEC2LaunchTemplate_LicenseSpecification struct { LicenseConfigurationArn string `json:"LicenseConfigurationArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2LaunchTemplate_LicenseSpecification) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2LaunchTemplate_LicenseSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2LaunchTemplate_LicenseSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-launchtemplate_monitoring.go b/cloudformation/resources/aws-ec2-launchtemplate_monitoring.go similarity index 94% rename from cloudformation/aws-ec2-launchtemplate_monitoring.go rename to cloudformation/resources/aws-ec2-launchtemplate_monitoring.go index 4eedc30692..cfcd71cdac 100644 --- a/cloudformation/aws-ec2-launchtemplate_monitoring.go +++ b/cloudformation/resources/aws-ec2-launchtemplate_monitoring.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2LaunchTemplate_Monitoring AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.Monitoring) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-monitoring.html @@ -10,7 +12,7 @@ type AWSEC2LaunchTemplate_Monitoring struct { Enabled bool `json:"Enabled,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2LaunchTemplate_Monitoring) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2LaunchTemplate_Monitoring) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2LaunchTemplate_Monitoring) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-launchtemplate_networkinterface.go b/cloudformation/resources/aws-ec2-launchtemplate_networkinterface.go similarity index 97% rename from cloudformation/aws-ec2-launchtemplate_networkinterface.go rename to cloudformation/resources/aws-ec2-launchtemplate_networkinterface.go index 8fb32cbd5c..c20d331385 100644 --- a/cloudformation/aws-ec2-launchtemplate_networkinterface.go +++ b/cloudformation/resources/aws-ec2-launchtemplate_networkinterface.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2LaunchTemplate_NetworkInterface AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.NetworkInterface) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html @@ -65,7 +67,7 @@ type AWSEC2LaunchTemplate_NetworkInterface struct { SubnetId string `json:"SubnetId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -105,6 +107,6 @@ func (r *AWSEC2LaunchTemplate_NetworkInterface) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2LaunchTemplate_NetworkInterface) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2LaunchTemplate_NetworkInterface) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-launchtemplate_placement.go b/cloudformation/resources/aws-ec2-launchtemplate_placement.go similarity index 96% rename from cloudformation/aws-ec2-launchtemplate_placement.go rename to cloudformation/resources/aws-ec2-launchtemplate_placement.go index 7ef237efa9..f90a0f27bf 100644 --- a/cloudformation/aws-ec2-launchtemplate_placement.go +++ b/cloudformation/resources/aws-ec2-launchtemplate_placement.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2LaunchTemplate_Placement AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.Placement) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-placement.html @@ -30,7 +32,7 @@ type AWSEC2LaunchTemplate_Placement struct { Tenancy string `json:"Tenancy,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSEC2LaunchTemplate_Placement) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2LaunchTemplate_Placement) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2LaunchTemplate_Placement) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-launchtemplate_privateipadd.go b/cloudformation/resources/aws-ec2-launchtemplate_privateipadd.go similarity index 94% rename from cloudformation/aws-ec2-launchtemplate_privateipadd.go rename to cloudformation/resources/aws-ec2-launchtemplate_privateipadd.go index a90ba9fd19..7d9f2d6fa1 100644 --- a/cloudformation/aws-ec2-launchtemplate_privateipadd.go +++ b/cloudformation/resources/aws-ec2-launchtemplate_privateipadd.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2LaunchTemplate_PrivateIpAdd AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.PrivateIpAdd) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-privateipadd.html @@ -15,7 +17,7 @@ type AWSEC2LaunchTemplate_PrivateIpAdd struct { PrivateIpAddress string `json:"PrivateIpAddress,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEC2LaunchTemplate_PrivateIpAdd) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2LaunchTemplate_PrivateIpAdd) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2LaunchTemplate_PrivateIpAdd) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-launchtemplate_spotoptions.go b/cloudformation/resources/aws-ec2-launchtemplate_spotoptions.go similarity index 95% rename from cloudformation/aws-ec2-launchtemplate_spotoptions.go rename to cloudformation/resources/aws-ec2-launchtemplate_spotoptions.go index 82e575333b..bb8a716f44 100644 --- a/cloudformation/aws-ec2-launchtemplate_spotoptions.go +++ b/cloudformation/resources/aws-ec2-launchtemplate_spotoptions.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2LaunchTemplate_SpotOptions AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.SpotOptions) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions.html @@ -20,7 +22,7 @@ type AWSEC2LaunchTemplate_SpotOptions struct { SpotInstanceType string `json:"SpotInstanceType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSEC2LaunchTemplate_SpotOptions) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2LaunchTemplate_SpotOptions) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2LaunchTemplate_SpotOptions) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-launchtemplate_tagspecification.go b/cloudformation/resources/aws-ec2-launchtemplate_tagspecification.go similarity index 94% rename from cloudformation/aws-ec2-launchtemplate_tagspecification.go rename to cloudformation/resources/aws-ec2-launchtemplate_tagspecification.go index be876d6c3f..cb753136ac 100644 --- a/cloudformation/aws-ec2-launchtemplate_tagspecification.go +++ b/cloudformation/resources/aws-ec2-launchtemplate_tagspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2LaunchTemplate_TagSpecification AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.TagSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-tagspecification.html @@ -15,7 +17,7 @@ type AWSEC2LaunchTemplate_TagSpecification struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEC2LaunchTemplate_TagSpecification) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2LaunchTemplate_TagSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2LaunchTemplate_TagSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-natgateway.go b/cloudformation/resources/aws-ec2-natgateway.go similarity index 90% rename from cloudformation/aws-ec2-natgateway.go rename to cloudformation/resources/aws-ec2-natgateway.go index 03716beb9f..7396f7a3b6 100644 --- a/cloudformation/aws-ec2-natgateway.go +++ b/cloudformation/resources/aws-ec2-natgateway.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2NatGateway AWS CloudFormation Resource (AWS::EC2::NatGateway) @@ -26,7 +27,7 @@ type AWSEC2NatGateway struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSEC2NatGateway) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2NatGateway) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2NatGateway) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSEC2NatGateway) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-networkacl.go b/cloudformation/resources/aws-ec2-networkacl.go similarity index 90% rename from cloudformation/aws-ec2-networkacl.go rename to cloudformation/resources/aws-ec2-networkacl.go index 645394b02b..2d94ba7ed9 100644 --- a/cloudformation/aws-ec2-networkacl.go +++ b/cloudformation/resources/aws-ec2-networkacl.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2NetworkAcl AWS CloudFormation Resource (AWS::EC2::NetworkAcl) @@ -21,7 +22,7 @@ type AWSEC2NetworkAcl struct { VpcId string `json:"VpcId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSEC2NetworkAcl) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2NetworkAcl) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2NetworkAcl) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSEC2NetworkAcl) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-networkaclentry.go b/cloudformation/resources/aws-ec2-networkaclentry.go similarity index 93% rename from cloudformation/aws-ec2-networkaclentry.go rename to cloudformation/resources/aws-ec2-networkaclentry.go index 10963e95f9..ca2d8eb1ca 100644 --- a/cloudformation/aws-ec2-networkaclentry.go +++ b/cloudformation/resources/aws-ec2-networkaclentry.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2NetworkAclEntry AWS CloudFormation Resource (AWS::EC2::NetworkAclEntry) @@ -56,7 +57,7 @@ type AWSEC2NetworkAclEntry struct { RuleNumber int `json:"RuleNumber"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -96,7 +97,7 @@ func (r *AWSEC2NetworkAclEntry) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2NetworkAclEntry) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2NetworkAclEntry) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -107,9 +108,9 @@ func (r AWSEC2NetworkAclEntry) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-networkaclentry_icmp.go b/cloudformation/resources/aws-ec2-networkaclentry_icmp.go similarity index 92% rename from cloudformation/aws-ec2-networkaclentry_icmp.go rename to cloudformation/resources/aws-ec2-networkaclentry_icmp.go index a4aa1b098e..a266492b9d 100644 --- a/cloudformation/aws-ec2-networkaclentry_icmp.go +++ b/cloudformation/resources/aws-ec2-networkaclentry_icmp.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2NetworkAclEntry_Icmp AWS CloudFormation Resource (AWS::EC2::NetworkAclEntry.Icmp) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-icmp.html @@ -15,7 +17,7 @@ type AWSEC2NetworkAclEntry_Icmp struct { Type int `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEC2NetworkAclEntry_Icmp) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2NetworkAclEntry_Icmp) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2NetworkAclEntry_Icmp) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-networkaclentry_portrange.go b/cloudformation/resources/aws-ec2-networkaclentry_portrange.go similarity index 94% rename from cloudformation/aws-ec2-networkaclentry_portrange.go rename to cloudformation/resources/aws-ec2-networkaclentry_portrange.go index ca58770229..4392278e46 100644 --- a/cloudformation/aws-ec2-networkaclentry_portrange.go +++ b/cloudformation/resources/aws-ec2-networkaclentry_portrange.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2NetworkAclEntry_PortRange AWS CloudFormation Resource (AWS::EC2::NetworkAclEntry.PortRange) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-portrange.html @@ -15,7 +17,7 @@ type AWSEC2NetworkAclEntry_PortRange struct { To int `json:"To,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEC2NetworkAclEntry_PortRange) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2NetworkAclEntry_PortRange) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2NetworkAclEntry_PortRange) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-networkinterface.go b/cloudformation/resources/aws-ec2-networkinterface.go similarity index 94% rename from cloudformation/aws-ec2-networkinterface.go rename to cloudformation/resources/aws-ec2-networkinterface.go index c34e6a874f..7153eccf5b 100644 --- a/cloudformation/aws-ec2-networkinterface.go +++ b/cloudformation/resources/aws-ec2-networkinterface.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2NetworkInterface AWS CloudFormation Resource (AWS::EC2::NetworkInterface) @@ -66,7 +67,7 @@ type AWSEC2NetworkInterface struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -106,7 +107,7 @@ func (r *AWSEC2NetworkInterface) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2NetworkInterface) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2NetworkInterface) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -117,9 +118,9 @@ func (r AWSEC2NetworkInterface) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-networkinterface_instanceipv6address.go b/cloudformation/resources/aws-ec2-networkinterface_instanceipv6address.go similarity index 93% rename from cloudformation/aws-ec2-networkinterface_instanceipv6address.go rename to cloudformation/resources/aws-ec2-networkinterface_instanceipv6address.go index 151429be41..bc72138a2c 100644 --- a/cloudformation/aws-ec2-networkinterface_instanceipv6address.go +++ b/cloudformation/resources/aws-ec2-networkinterface_instanceipv6address.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2NetworkInterface_InstanceIpv6Address AWS CloudFormation Resource (AWS::EC2::NetworkInterface.InstanceIpv6Address) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinterface-instanceipv6address.html @@ -10,7 +12,7 @@ type AWSEC2NetworkInterface_InstanceIpv6Address struct { Ipv6Address string `json:"Ipv6Address,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2NetworkInterface_InstanceIpv6Address) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2NetworkInterface_InstanceIpv6Address) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2NetworkInterface_InstanceIpv6Address) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-networkinterface_privateipaddressspecification.go b/cloudformation/resources/aws-ec2-networkinterface_privateipaddressspecification.go similarity index 94% rename from cloudformation/aws-ec2-networkinterface_privateipaddressspecification.go rename to cloudformation/resources/aws-ec2-networkinterface_privateipaddressspecification.go index ee155c8b97..09f68bd820 100644 --- a/cloudformation/aws-ec2-networkinterface_privateipaddressspecification.go +++ b/cloudformation/resources/aws-ec2-networkinterface_privateipaddressspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2NetworkInterface_PrivateIpAddressSpecification AWS CloudFormation Resource (AWS::EC2::NetworkInterface.PrivateIpAddressSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-interface-privateipspec.html @@ -15,7 +17,7 @@ type AWSEC2NetworkInterface_PrivateIpAddressSpecification struct { PrivateIpAddress string `json:"PrivateIpAddress,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEC2NetworkInterface_PrivateIpAddressSpecification) SetMetadata(metad // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2NetworkInterface_PrivateIpAddressSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2NetworkInterface_PrivateIpAddressSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-networkinterfaceattachment.go b/cloudformation/resources/aws-ec2-networkinterfaceattachment.go similarity index 93% rename from cloudformation/aws-ec2-networkinterfaceattachment.go rename to cloudformation/resources/aws-ec2-networkinterfaceattachment.go index 987b7a6cce..debbedf320 100644 --- a/cloudformation/aws-ec2-networkinterfaceattachment.go +++ b/cloudformation/resources/aws-ec2-networkinterfaceattachment.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2NetworkInterfaceAttachment AWS CloudFormation Resource (AWS::EC2::NetworkInterfaceAttachment) @@ -31,7 +32,7 @@ type AWSEC2NetworkInterfaceAttachment struct { NetworkInterfaceId string `json:"NetworkInterfaceId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSEC2NetworkInterfaceAttachment) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2NetworkInterfaceAttachment) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2NetworkInterfaceAttachment) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSEC2NetworkInterfaceAttachment) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-networkinterfacepermission.go b/cloudformation/resources/aws-ec2-networkinterfacepermission.go similarity index 92% rename from cloudformation/aws-ec2-networkinterfacepermission.go rename to cloudformation/resources/aws-ec2-networkinterfacepermission.go index 3ff5e38944..abd71f9068 100644 --- a/cloudformation/aws-ec2-networkinterfacepermission.go +++ b/cloudformation/resources/aws-ec2-networkinterfacepermission.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2NetworkInterfacePermission AWS CloudFormation Resource (AWS::EC2::NetworkInterfacePermission) @@ -26,7 +27,7 @@ type AWSEC2NetworkInterfacePermission struct { Permission string `json:"Permission,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSEC2NetworkInterfacePermission) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2NetworkInterfacePermission) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2NetworkInterfacePermission) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSEC2NetworkInterfacePermission) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-placementgroup.go b/cloudformation/resources/aws-ec2-placementgroup.go similarity index 89% rename from cloudformation/aws-ec2-placementgroup.go rename to cloudformation/resources/aws-ec2-placementgroup.go index 1ef20d4c9d..da6e62358d 100644 --- a/cloudformation/aws-ec2-placementgroup.go +++ b/cloudformation/resources/aws-ec2-placementgroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2PlacementGroup AWS CloudFormation Resource (AWS::EC2::PlacementGroup) @@ -16,7 +17,7 @@ type AWSEC2PlacementGroup struct { Strategy string `json:"Strategy,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -56,7 +57,7 @@ func (r *AWSEC2PlacementGroup) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2PlacementGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2PlacementGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -67,9 +68,9 @@ func (r AWSEC2PlacementGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-route.go b/cloudformation/resources/aws-ec2-route.go similarity index 93% rename from cloudformation/aws-ec2-route.go rename to cloudformation/resources/aws-ec2-route.go index e9752f0c03..40af497fe5 100644 --- a/cloudformation/aws-ec2-route.go +++ b/cloudformation/resources/aws-ec2-route.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2Route AWS CloudFormation Resource (AWS::EC2::Route) @@ -56,7 +57,7 @@ type AWSEC2Route struct { VpcPeeringConnectionId string `json:"VpcPeeringConnectionId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -96,7 +97,7 @@ func (r *AWSEC2Route) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2Route) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2Route) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -107,9 +108,9 @@ func (r AWSEC2Route) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-routetable.go b/cloudformation/resources/aws-ec2-routetable.go similarity index 90% rename from cloudformation/aws-ec2-routetable.go rename to cloudformation/resources/aws-ec2-routetable.go index 6f7ae1a34e..107c74ba56 100644 --- a/cloudformation/aws-ec2-routetable.go +++ b/cloudformation/resources/aws-ec2-routetable.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2RouteTable AWS CloudFormation Resource (AWS::EC2::RouteTable) @@ -21,7 +22,7 @@ type AWSEC2RouteTable struct { VpcId string `json:"VpcId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSEC2RouteTable) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2RouteTable) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2RouteTable) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSEC2RouteTable) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-securitygroup.go b/cloudformation/resources/aws-ec2-securitygroup.go similarity index 92% rename from cloudformation/aws-ec2-securitygroup.go rename to cloudformation/resources/aws-ec2-securitygroup.go index 62d5fd07df..a566c25611 100644 --- a/cloudformation/aws-ec2-securitygroup.go +++ b/cloudformation/resources/aws-ec2-securitygroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2SecurityGroup AWS CloudFormation Resource (AWS::EC2::SecurityGroup) @@ -41,7 +42,7 @@ type AWSEC2SecurityGroup struct { VpcId string `json:"VpcId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -81,7 +82,7 @@ func (r *AWSEC2SecurityGroup) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SecurityGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SecurityGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -92,9 +93,9 @@ func (r AWSEC2SecurityGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-securitygroup_egress.go b/cloudformation/resources/aws-ec2-securitygroup_egress.go similarity index 95% rename from cloudformation/aws-ec2-securitygroup_egress.go rename to cloudformation/resources/aws-ec2-securitygroup_egress.go index 91beee2c2a..639c796a52 100644 --- a/cloudformation/aws-ec2-securitygroup_egress.go +++ b/cloudformation/resources/aws-ec2-securitygroup_egress.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2SecurityGroup_Egress AWS CloudFormation Resource (AWS::EC2::SecurityGroup.Egress) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html @@ -45,7 +47,7 @@ type AWSEC2SecurityGroup_Egress struct { ToPort int `json:"ToPort,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -85,6 +87,6 @@ func (r *AWSEC2SecurityGroup_Egress) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SecurityGroup_Egress) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SecurityGroup_Egress) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-securitygroup_ingress.go b/cloudformation/resources/aws-ec2-securitygroup_ingress.go similarity index 95% rename from cloudformation/aws-ec2-securitygroup_ingress.go rename to cloudformation/resources/aws-ec2-securitygroup_ingress.go index 3683514bce..df7aa2db28 100644 --- a/cloudformation/aws-ec2-securitygroup_ingress.go +++ b/cloudformation/resources/aws-ec2-securitygroup_ingress.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2SecurityGroup_Ingress AWS CloudFormation Resource (AWS::EC2::SecurityGroup.Ingress) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html @@ -55,7 +57,7 @@ type AWSEC2SecurityGroup_Ingress struct { ToPort int `json:"ToPort,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -95,6 +97,6 @@ func (r *AWSEC2SecurityGroup_Ingress) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SecurityGroup_Ingress) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SecurityGroup_Ingress) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-securitygroupegress.go b/cloudformation/resources/aws-ec2-securitygroupegress.go similarity index 93% rename from cloudformation/aws-ec2-securitygroupegress.go rename to cloudformation/resources/aws-ec2-securitygroupegress.go index 7927d8291d..5ad715a671 100644 --- a/cloudformation/aws-ec2-securitygroupegress.go +++ b/cloudformation/resources/aws-ec2-securitygroupegress.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2SecurityGroupEgress AWS CloudFormation Resource (AWS::EC2::SecurityGroupEgress) @@ -56,7 +57,7 @@ type AWSEC2SecurityGroupEgress struct { ToPort int `json:"ToPort,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -96,7 +97,7 @@ func (r *AWSEC2SecurityGroupEgress) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SecurityGroupEgress) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SecurityGroupEgress) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -107,9 +108,9 @@ func (r AWSEC2SecurityGroupEgress) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-securitygroupingress.go b/cloudformation/resources/aws-ec2-securitygroupingress.go similarity index 94% rename from cloudformation/aws-ec2-securitygroupingress.go rename to cloudformation/resources/aws-ec2-securitygroupingress.go index 075f4a7a39..cbebce3b95 100644 --- a/cloudformation/aws-ec2-securitygroupingress.go +++ b/cloudformation/resources/aws-ec2-securitygroupingress.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2SecurityGroupIngress AWS CloudFormation Resource (AWS::EC2::SecurityGroupIngress) @@ -71,7 +72,7 @@ type AWSEC2SecurityGroupIngress struct { ToPort int `json:"ToPort,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -111,7 +112,7 @@ func (r *AWSEC2SecurityGroupIngress) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SecurityGroupIngress) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SecurityGroupIngress) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -122,9 +123,9 @@ func (r AWSEC2SecurityGroupIngress) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-spotfleet.go b/cloudformation/resources/aws-ec2-spotfleet.go similarity index 90% rename from cloudformation/aws-ec2-spotfleet.go rename to cloudformation/resources/aws-ec2-spotfleet.go index 60133755df..3dc7d979be 100644 --- a/cloudformation/aws-ec2-spotfleet.go +++ b/cloudformation/resources/aws-ec2-spotfleet.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2SpotFleet AWS CloudFormation Resource (AWS::EC2::SpotFleet) @@ -16,7 +17,7 @@ type AWSEC2SpotFleet struct { SpotFleetRequestConfigData *AWSEC2SpotFleet_SpotFleetRequestConfigData `json:"SpotFleetRequestConfigData,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -56,7 +57,7 @@ func (r *AWSEC2SpotFleet) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SpotFleet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SpotFleet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -67,9 +68,9 @@ func (r AWSEC2SpotFleet) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-spotfleet_blockdevicemapping.go b/cloudformation/resources/aws-ec2-spotfleet_blockdevicemapping.go similarity index 95% rename from cloudformation/aws-ec2-spotfleet_blockdevicemapping.go rename to cloudformation/resources/aws-ec2-spotfleet_blockdevicemapping.go index df6f5fdbd2..31378736df 100644 --- a/cloudformation/aws-ec2-spotfleet_blockdevicemapping.go +++ b/cloudformation/resources/aws-ec2-spotfleet_blockdevicemapping.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2SpotFleet_BlockDeviceMapping AWS CloudFormation Resource (AWS::EC2::SpotFleet.BlockDeviceMapping) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-blockdevicemappings.html @@ -25,7 +27,7 @@ type AWSEC2SpotFleet_BlockDeviceMapping struct { VirtualName string `json:"VirtualName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSEC2SpotFleet_BlockDeviceMapping) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SpotFleet_BlockDeviceMapping) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SpotFleet_BlockDeviceMapping) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-spotfleet_classicloadbalancer.go b/cloudformation/resources/aws-ec2-spotfleet_classicloadbalancer.go similarity index 93% rename from cloudformation/aws-ec2-spotfleet_classicloadbalancer.go rename to cloudformation/resources/aws-ec2-spotfleet_classicloadbalancer.go index 405372f5c4..8344b2671e 100644 --- a/cloudformation/aws-ec2-spotfleet_classicloadbalancer.go +++ b/cloudformation/resources/aws-ec2-spotfleet_classicloadbalancer.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2SpotFleet_ClassicLoadBalancer AWS CloudFormation Resource (AWS::EC2::SpotFleet.ClassicLoadBalancer) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-classicloadbalancer.html @@ -10,7 +12,7 @@ type AWSEC2SpotFleet_ClassicLoadBalancer struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2SpotFleet_ClassicLoadBalancer) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SpotFleet_ClassicLoadBalancer) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SpotFleet_ClassicLoadBalancer) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-spotfleet_classicloadbalancersconfig.go b/cloudformation/resources/aws-ec2-spotfleet_classicloadbalancersconfig.go similarity index 94% rename from cloudformation/aws-ec2-spotfleet_classicloadbalancersconfig.go rename to cloudformation/resources/aws-ec2-spotfleet_classicloadbalancersconfig.go index dc517017c3..b44384b573 100644 --- a/cloudformation/aws-ec2-spotfleet_classicloadbalancersconfig.go +++ b/cloudformation/resources/aws-ec2-spotfleet_classicloadbalancersconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2SpotFleet_ClassicLoadBalancersConfig AWS CloudFormation Resource (AWS::EC2::SpotFleet.ClassicLoadBalancersConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-classicloadbalancersconfig.html @@ -10,7 +12,7 @@ type AWSEC2SpotFleet_ClassicLoadBalancersConfig struct { ClassicLoadBalancers []AWSEC2SpotFleet_ClassicLoadBalancer `json:"ClassicLoadBalancers,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2SpotFleet_ClassicLoadBalancersConfig) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SpotFleet_ClassicLoadBalancersConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SpotFleet_ClassicLoadBalancersConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-spotfleet_ebsblockdevice.go b/cloudformation/resources/aws-ec2-spotfleet_ebsblockdevice.go similarity index 96% rename from cloudformation/aws-ec2-spotfleet_ebsblockdevice.go rename to cloudformation/resources/aws-ec2-spotfleet_ebsblockdevice.go index 2574a47e04..997ba573c5 100644 --- a/cloudformation/aws-ec2-spotfleet_ebsblockdevice.go +++ b/cloudformation/resources/aws-ec2-spotfleet_ebsblockdevice.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2SpotFleet_EbsBlockDevice AWS CloudFormation Resource (AWS::EC2::SpotFleet.EbsBlockDevice) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-blockdevicemappings-ebs.html @@ -35,7 +37,7 @@ type AWSEC2SpotFleet_EbsBlockDevice struct { VolumeType string `json:"VolumeType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSEC2SpotFleet_EbsBlockDevice) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SpotFleet_EbsBlockDevice) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SpotFleet_EbsBlockDevice) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-spotfleet_fleetlaunchtemplatespecification.go b/cloudformation/resources/aws-ec2-spotfleet_fleetlaunchtemplatespecification.go similarity index 95% rename from cloudformation/aws-ec2-spotfleet_fleetlaunchtemplatespecification.go rename to cloudformation/resources/aws-ec2-spotfleet_fleetlaunchtemplatespecification.go index c9532165e4..b70248f125 100644 --- a/cloudformation/aws-ec2-spotfleet_fleetlaunchtemplatespecification.go +++ b/cloudformation/resources/aws-ec2-spotfleet_fleetlaunchtemplatespecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2SpotFleet_FleetLaunchTemplateSpecification AWS CloudFormation Resource (AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-fleetlaunchtemplatespecification.html @@ -20,7 +22,7 @@ type AWSEC2SpotFleet_FleetLaunchTemplateSpecification struct { Version string `json:"Version,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSEC2SpotFleet_FleetLaunchTemplateSpecification) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SpotFleet_FleetLaunchTemplateSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SpotFleet_FleetLaunchTemplateSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-spotfleet_groupidentifier.go b/cloudformation/resources/aws-ec2-spotfleet_groupidentifier.go similarity index 94% rename from cloudformation/aws-ec2-spotfleet_groupidentifier.go rename to cloudformation/resources/aws-ec2-spotfleet_groupidentifier.go index 9c95154d0f..327c56d290 100644 --- a/cloudformation/aws-ec2-spotfleet_groupidentifier.go +++ b/cloudformation/resources/aws-ec2-spotfleet_groupidentifier.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2SpotFleet_GroupIdentifier AWS CloudFormation Resource (AWS::EC2::SpotFleet.GroupIdentifier) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-securitygroups.html @@ -10,7 +12,7 @@ type AWSEC2SpotFleet_GroupIdentifier struct { GroupId string `json:"GroupId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2SpotFleet_GroupIdentifier) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SpotFleet_GroupIdentifier) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SpotFleet_GroupIdentifier) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-spotfleet_iaminstanceprofilespecification.go b/cloudformation/resources/aws-ec2-spotfleet_iaminstanceprofilespecification.go similarity index 93% rename from cloudformation/aws-ec2-spotfleet_iaminstanceprofilespecification.go rename to cloudformation/resources/aws-ec2-spotfleet_iaminstanceprofilespecification.go index 8e0edd1bc6..3cfb0859dc 100644 --- a/cloudformation/aws-ec2-spotfleet_iaminstanceprofilespecification.go +++ b/cloudformation/resources/aws-ec2-spotfleet_iaminstanceprofilespecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2SpotFleet_IamInstanceProfileSpecification AWS CloudFormation Resource (AWS::EC2::SpotFleet.IamInstanceProfileSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-iaminstanceprofile.html @@ -10,7 +12,7 @@ type AWSEC2SpotFleet_IamInstanceProfileSpecification struct { Arn string `json:"Arn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2SpotFleet_IamInstanceProfileSpecification) SetMetadata(metadata m // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SpotFleet_IamInstanceProfileSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SpotFleet_IamInstanceProfileSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-spotfleet_instanceipv6address.go b/cloudformation/resources/aws-ec2-spotfleet_instanceipv6address.go similarity index 93% rename from cloudformation/aws-ec2-spotfleet_instanceipv6address.go rename to cloudformation/resources/aws-ec2-spotfleet_instanceipv6address.go index a83b9f1593..bde7c72e67 100644 --- a/cloudformation/aws-ec2-spotfleet_instanceipv6address.go +++ b/cloudformation/resources/aws-ec2-spotfleet_instanceipv6address.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2SpotFleet_InstanceIpv6Address AWS CloudFormation Resource (AWS::EC2::SpotFleet.InstanceIpv6Address) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instanceipv6address.html @@ -10,7 +12,7 @@ type AWSEC2SpotFleet_InstanceIpv6Address struct { Ipv6Address string `json:"Ipv6Address,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2SpotFleet_InstanceIpv6Address) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SpotFleet_InstanceIpv6Address) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SpotFleet_InstanceIpv6Address) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-spotfleet_instancenetworkinterfacespecification.go b/cloudformation/resources/aws-ec2-spotfleet_instancenetworkinterfacespecification.go similarity index 97% rename from cloudformation/aws-ec2-spotfleet_instancenetworkinterfacespecification.go rename to cloudformation/resources/aws-ec2-spotfleet_instancenetworkinterfacespecification.go index 8ddbe65ac0..a864a6430a 100644 --- a/cloudformation/aws-ec2-spotfleet_instancenetworkinterfacespecification.go +++ b/cloudformation/resources/aws-ec2-spotfleet_instancenetworkinterfacespecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2SpotFleet_InstanceNetworkInterfaceSpecification AWS CloudFormation Resource (AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-networkinterfaces.html @@ -60,7 +62,7 @@ type AWSEC2SpotFleet_InstanceNetworkInterfaceSpecification struct { SubnetId string `json:"SubnetId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -100,6 +102,6 @@ func (r *AWSEC2SpotFleet_InstanceNetworkInterfaceSpecification) SetMetadata(meta // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SpotFleet_InstanceNetworkInterfaceSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SpotFleet_InstanceNetworkInterfaceSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-spotfleet_launchtemplateconfig.go b/cloudformation/resources/aws-ec2-spotfleet_launchtemplateconfig.go similarity index 94% rename from cloudformation/aws-ec2-spotfleet_launchtemplateconfig.go rename to cloudformation/resources/aws-ec2-spotfleet_launchtemplateconfig.go index f2afafaf44..0ead8d9c1a 100644 --- a/cloudformation/aws-ec2-spotfleet_launchtemplateconfig.go +++ b/cloudformation/resources/aws-ec2-spotfleet_launchtemplateconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2SpotFleet_LaunchTemplateConfig AWS CloudFormation Resource (AWS::EC2::SpotFleet.LaunchTemplateConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateconfig.html @@ -15,7 +17,7 @@ type AWSEC2SpotFleet_LaunchTemplateConfig struct { Overrides []AWSEC2SpotFleet_LaunchTemplateOverrides `json:"Overrides,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEC2SpotFleet_LaunchTemplateConfig) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SpotFleet_LaunchTemplateConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SpotFleet_LaunchTemplateConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-spotfleet_launchtemplateoverrides.go b/cloudformation/resources/aws-ec2-spotfleet_launchtemplateoverrides.go similarity index 95% rename from cloudformation/aws-ec2-spotfleet_launchtemplateoverrides.go rename to cloudformation/resources/aws-ec2-spotfleet_launchtemplateoverrides.go index 07dd00f81c..af8ebf40a0 100644 --- a/cloudformation/aws-ec2-spotfleet_launchtemplateoverrides.go +++ b/cloudformation/resources/aws-ec2-spotfleet_launchtemplateoverrides.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2SpotFleet_LaunchTemplateOverrides AWS CloudFormation Resource (AWS::EC2::SpotFleet.LaunchTemplateOverrides) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateoverrides.html @@ -30,7 +32,7 @@ type AWSEC2SpotFleet_LaunchTemplateOverrides struct { WeightedCapacity float64 `json:"WeightedCapacity,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSEC2SpotFleet_LaunchTemplateOverrides) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SpotFleet_LaunchTemplateOverrides) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SpotFleet_LaunchTemplateOverrides) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-spotfleet_loadbalancersconfig.go b/cloudformation/resources/aws-ec2-spotfleet_loadbalancersconfig.go similarity index 94% rename from cloudformation/aws-ec2-spotfleet_loadbalancersconfig.go rename to cloudformation/resources/aws-ec2-spotfleet_loadbalancersconfig.go index 3b64252b4c..9c40970c01 100644 --- a/cloudformation/aws-ec2-spotfleet_loadbalancersconfig.go +++ b/cloudformation/resources/aws-ec2-spotfleet_loadbalancersconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2SpotFleet_LoadBalancersConfig AWS CloudFormation Resource (AWS::EC2::SpotFleet.LoadBalancersConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-loadbalancersconfig.html @@ -15,7 +17,7 @@ type AWSEC2SpotFleet_LoadBalancersConfig struct { TargetGroupsConfig *AWSEC2SpotFleet_TargetGroupsConfig `json:"TargetGroupsConfig,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEC2SpotFleet_LoadBalancersConfig) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SpotFleet_LoadBalancersConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SpotFleet_LoadBalancersConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-spotfleet_privateipaddressspecification.go b/cloudformation/resources/aws-ec2-spotfleet_privateipaddressspecification.go similarity index 94% rename from cloudformation/aws-ec2-spotfleet_privateipaddressspecification.go rename to cloudformation/resources/aws-ec2-spotfleet_privateipaddressspecification.go index 63389d60cb..91c99c7953 100644 --- a/cloudformation/aws-ec2-spotfleet_privateipaddressspecification.go +++ b/cloudformation/resources/aws-ec2-spotfleet_privateipaddressspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2SpotFleet_PrivateIpAddressSpecification AWS CloudFormation Resource (AWS::EC2::SpotFleet.PrivateIpAddressSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-networkinterfaces-privateipaddresses.html @@ -15,7 +17,7 @@ type AWSEC2SpotFleet_PrivateIpAddressSpecification struct { PrivateIpAddress string `json:"PrivateIpAddress,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEC2SpotFleet_PrivateIpAddressSpecification) SetMetadata(metadata map // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SpotFleet_PrivateIpAddressSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SpotFleet_PrivateIpAddressSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-spotfleet_spotfleetlaunchspecification.go b/cloudformation/resources/aws-ec2-spotfleet_spotfleetlaunchspecification.go similarity index 97% rename from cloudformation/aws-ec2-spotfleet_spotfleetlaunchspecification.go rename to cloudformation/resources/aws-ec2-spotfleet_spotfleetlaunchspecification.go index ab606c707e..7ed3c1e956 100644 --- a/cloudformation/aws-ec2-spotfleet_spotfleetlaunchspecification.go +++ b/cloudformation/resources/aws-ec2-spotfleet_spotfleetlaunchspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2SpotFleet_SpotFleetLaunchSpecification AWS CloudFormation Resource (AWS::EC2::SpotFleet.SpotFleetLaunchSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html @@ -90,7 +92,7 @@ type AWSEC2SpotFleet_SpotFleetLaunchSpecification struct { WeightedCapacity float64 `json:"WeightedCapacity,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -130,6 +132,6 @@ func (r *AWSEC2SpotFleet_SpotFleetLaunchSpecification) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SpotFleet_SpotFleetLaunchSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SpotFleet_SpotFleetLaunchSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-spotfleet_spotfleetmonitoring.go b/cloudformation/resources/aws-ec2-spotfleet_spotfleetmonitoring.go similarity index 94% rename from cloudformation/aws-ec2-spotfleet_spotfleetmonitoring.go rename to cloudformation/resources/aws-ec2-spotfleet_spotfleetmonitoring.go index 579805227b..4a5b3f5494 100644 --- a/cloudformation/aws-ec2-spotfleet_spotfleetmonitoring.go +++ b/cloudformation/resources/aws-ec2-spotfleet_spotfleetmonitoring.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2SpotFleet_SpotFleetMonitoring AWS CloudFormation Resource (AWS::EC2::SpotFleet.SpotFleetMonitoring) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-monitoring.html @@ -10,7 +12,7 @@ type AWSEC2SpotFleet_SpotFleetMonitoring struct { Enabled bool `json:"Enabled,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2SpotFleet_SpotFleetMonitoring) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SpotFleet_SpotFleetMonitoring) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SpotFleet_SpotFleetMonitoring) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-spotfleet_spotfleetrequestconfigdata.go b/cloudformation/resources/aws-ec2-spotfleet_spotfleetrequestconfigdata.go similarity index 97% rename from cloudformation/aws-ec2-spotfleet_spotfleetrequestconfigdata.go rename to cloudformation/resources/aws-ec2-spotfleet_spotfleetrequestconfigdata.go index 77c0c4fa28..eadf5eecc8 100644 --- a/cloudformation/aws-ec2-spotfleet_spotfleetrequestconfigdata.go +++ b/cloudformation/resources/aws-ec2-spotfleet_spotfleetrequestconfigdata.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2SpotFleet_SpotFleetRequestConfigData AWS CloudFormation Resource (AWS::EC2::SpotFleet.SpotFleetRequestConfigData) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html @@ -75,7 +77,7 @@ type AWSEC2SpotFleet_SpotFleetRequestConfigData struct { ValidUntil string `json:"ValidUntil,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -115,6 +117,6 @@ func (r *AWSEC2SpotFleet_SpotFleetRequestConfigData) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SpotFleet_SpotFleetRequestConfigData) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SpotFleet_SpotFleetRequestConfigData) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-spotfleet_spotfleettagspecification.go b/cloudformation/resources/aws-ec2-spotfleet_spotfleettagspecification.go similarity index 94% rename from cloudformation/aws-ec2-spotfleet_spotfleettagspecification.go rename to cloudformation/resources/aws-ec2-spotfleet_spotfleettagspecification.go index e3f0a79246..909916ce5e 100644 --- a/cloudformation/aws-ec2-spotfleet_spotfleettagspecification.go +++ b/cloudformation/resources/aws-ec2-spotfleet_spotfleettagspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2SpotFleet_SpotFleetTagSpecification AWS CloudFormation Resource (AWS::EC2::SpotFleet.SpotFleetTagSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-tagspecifications.html @@ -15,7 +17,7 @@ type AWSEC2SpotFleet_SpotFleetTagSpecification struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEC2SpotFleet_SpotFleetTagSpecification) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SpotFleet_SpotFleetTagSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SpotFleet_SpotFleetTagSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-spotfleet_spotplacement.go b/cloudformation/resources/aws-ec2-spotfleet_spotplacement.go similarity index 95% rename from cloudformation/aws-ec2-spotfleet_spotplacement.go rename to cloudformation/resources/aws-ec2-spotfleet_spotplacement.go index 1e0f29c9ae..745776229f 100644 --- a/cloudformation/aws-ec2-spotfleet_spotplacement.go +++ b/cloudformation/resources/aws-ec2-spotfleet_spotplacement.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2SpotFleet_SpotPlacement AWS CloudFormation Resource (AWS::EC2::SpotFleet.SpotPlacement) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications-placement.html @@ -20,7 +22,7 @@ type AWSEC2SpotFleet_SpotPlacement struct { Tenancy string `json:"Tenancy,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSEC2SpotFleet_SpotPlacement) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SpotFleet_SpotPlacement) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SpotFleet_SpotPlacement) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-spotfleet_targetgroup.go b/cloudformation/resources/aws-ec2-spotfleet_targetgroup.go similarity index 91% rename from cloudformation/aws-ec2-spotfleet_targetgroup.go rename to cloudformation/resources/aws-ec2-spotfleet_targetgroup.go index 93d03c189e..3420aea78f 100644 --- a/cloudformation/aws-ec2-spotfleet_targetgroup.go +++ b/cloudformation/resources/aws-ec2-spotfleet_targetgroup.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2SpotFleet_TargetGroup AWS CloudFormation Resource (AWS::EC2::SpotFleet.TargetGroup) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-targetgroup.html @@ -10,7 +12,7 @@ type AWSEC2SpotFleet_TargetGroup struct { Arn string `json:"Arn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2SpotFleet_TargetGroup) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SpotFleet_TargetGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SpotFleet_TargetGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-spotfleet_targetgroupsconfig.go b/cloudformation/resources/aws-ec2-spotfleet_targetgroupsconfig.go similarity index 94% rename from cloudformation/aws-ec2-spotfleet_targetgroupsconfig.go rename to cloudformation/resources/aws-ec2-spotfleet_targetgroupsconfig.go index 361c967d42..13a70ff2e7 100644 --- a/cloudformation/aws-ec2-spotfleet_targetgroupsconfig.go +++ b/cloudformation/resources/aws-ec2-spotfleet_targetgroupsconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2SpotFleet_TargetGroupsConfig AWS CloudFormation Resource (AWS::EC2::SpotFleet.TargetGroupsConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-targetgroupsconfig.html @@ -10,7 +12,7 @@ type AWSEC2SpotFleet_TargetGroupsConfig struct { TargetGroups []AWSEC2SpotFleet_TargetGroup `json:"TargetGroups,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEC2SpotFleet_TargetGroupsConfig) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SpotFleet_TargetGroupsConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SpotFleet_TargetGroupsConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-subnet.go b/cloudformation/resources/aws-ec2-subnet.go similarity index 92% rename from cloudformation/aws-ec2-subnet.go rename to cloudformation/resources/aws-ec2-subnet.go index 8b0ebd788d..c9245d9245 100644 --- a/cloudformation/aws-ec2-subnet.go +++ b/cloudformation/resources/aws-ec2-subnet.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2Subnet AWS CloudFormation Resource (AWS::EC2::Subnet) @@ -46,7 +47,7 @@ type AWSEC2Subnet struct { VpcId string `json:"VpcId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSEC2Subnet) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2Subnet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2Subnet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSEC2Subnet) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-subnetcidrblock.go b/cloudformation/resources/aws-ec2-subnetcidrblock.go similarity index 90% rename from cloudformation/aws-ec2-subnetcidrblock.go rename to cloudformation/resources/aws-ec2-subnetcidrblock.go index ce050df904..ecbef34383 100644 --- a/cloudformation/aws-ec2-subnetcidrblock.go +++ b/cloudformation/resources/aws-ec2-subnetcidrblock.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2SubnetCidrBlock AWS CloudFormation Resource (AWS::EC2::SubnetCidrBlock) @@ -21,7 +22,7 @@ type AWSEC2SubnetCidrBlock struct { SubnetId string `json:"SubnetId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSEC2SubnetCidrBlock) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SubnetCidrBlock) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SubnetCidrBlock) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSEC2SubnetCidrBlock) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-subnetnetworkaclassociation.go b/cloudformation/resources/aws-ec2-subnetnetworkaclassociation.go similarity index 92% rename from cloudformation/aws-ec2-subnetnetworkaclassociation.go rename to cloudformation/resources/aws-ec2-subnetnetworkaclassociation.go index 290a8902b3..c26afeec8d 100644 --- a/cloudformation/aws-ec2-subnetnetworkaclassociation.go +++ b/cloudformation/resources/aws-ec2-subnetnetworkaclassociation.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2SubnetNetworkAclAssociation AWS CloudFormation Resource (AWS::EC2::SubnetNetworkAclAssociation) @@ -21,7 +22,7 @@ type AWSEC2SubnetNetworkAclAssociation struct { SubnetId string `json:"SubnetId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSEC2SubnetNetworkAclAssociation) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SubnetNetworkAclAssociation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SubnetNetworkAclAssociation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSEC2SubnetNetworkAclAssociation) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-subnetroutetableassociation.go b/cloudformation/resources/aws-ec2-subnetroutetableassociation.go similarity index 92% rename from cloudformation/aws-ec2-subnetroutetableassociation.go rename to cloudformation/resources/aws-ec2-subnetroutetableassociation.go index c9418d4c11..2f573087e4 100644 --- a/cloudformation/aws-ec2-subnetroutetableassociation.go +++ b/cloudformation/resources/aws-ec2-subnetroutetableassociation.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2SubnetRouteTableAssociation AWS CloudFormation Resource (AWS::EC2::SubnetRouteTableAssociation) @@ -21,7 +22,7 @@ type AWSEC2SubnetRouteTableAssociation struct { SubnetId string `json:"SubnetId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSEC2SubnetRouteTableAssociation) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2SubnetRouteTableAssociation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2SubnetRouteTableAssociation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSEC2SubnetRouteTableAssociation) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-transitgateway.go b/cloudformation/resources/aws-ec2-transitgateway.go similarity index 93% rename from cloudformation/aws-ec2-transitgateway.go rename to cloudformation/resources/aws-ec2-transitgateway.go index 64e61eaf65..f119644532 100644 --- a/cloudformation/aws-ec2-transitgateway.go +++ b/cloudformation/resources/aws-ec2-transitgateway.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2TransitGateway AWS CloudFormation Resource (AWS::EC2::TransitGateway) @@ -51,7 +52,7 @@ type AWSEC2TransitGateway struct { VpnEcmpSupport string `json:"VpnEcmpSupport,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -91,7 +92,7 @@ func (r *AWSEC2TransitGateway) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2TransitGateway) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2TransitGateway) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -102,9 +103,9 @@ func (r AWSEC2TransitGateway) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-transitgatewayattachment.go b/cloudformation/resources/aws-ec2-transitgatewayattachment.go similarity index 92% rename from cloudformation/aws-ec2-transitgatewayattachment.go rename to cloudformation/resources/aws-ec2-transitgatewayattachment.go index 419ea27327..0ba1ac277c 100644 --- a/cloudformation/aws-ec2-transitgatewayattachment.go +++ b/cloudformation/resources/aws-ec2-transitgatewayattachment.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2TransitGatewayAttachment AWS CloudFormation Resource (AWS::EC2::TransitGatewayAttachment) @@ -31,7 +32,7 @@ type AWSEC2TransitGatewayAttachment struct { VpcId string `json:"VpcId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSEC2TransitGatewayAttachment) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2TransitGatewayAttachment) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2TransitGatewayAttachment) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSEC2TransitGatewayAttachment) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-transitgatewayroute.go b/cloudformation/resources/aws-ec2-transitgatewayroute.go similarity index 91% rename from cloudformation/aws-ec2-transitgatewayroute.go rename to cloudformation/resources/aws-ec2-transitgatewayroute.go index 24e6abce3f..04ac9986e9 100644 --- a/cloudformation/aws-ec2-transitgatewayroute.go +++ b/cloudformation/resources/aws-ec2-transitgatewayroute.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2TransitGatewayRoute AWS CloudFormation Resource (AWS::EC2::TransitGatewayRoute) @@ -31,7 +32,7 @@ type AWSEC2TransitGatewayRoute struct { TransitGatewayRouteTableId string `json:"TransitGatewayRouteTableId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSEC2TransitGatewayRoute) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2TransitGatewayRoute) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2TransitGatewayRoute) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSEC2TransitGatewayRoute) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-transitgatewayroutetable.go b/cloudformation/resources/aws-ec2-transitgatewayroutetable.go similarity index 92% rename from cloudformation/aws-ec2-transitgatewayroutetable.go rename to cloudformation/resources/aws-ec2-transitgatewayroutetable.go index d5180473fe..5433982bc5 100644 --- a/cloudformation/aws-ec2-transitgatewayroutetable.go +++ b/cloudformation/resources/aws-ec2-transitgatewayroutetable.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2TransitGatewayRouteTable AWS CloudFormation Resource (AWS::EC2::TransitGatewayRouteTable) @@ -21,7 +22,7 @@ type AWSEC2TransitGatewayRouteTable struct { TransitGatewayId string `json:"TransitGatewayId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSEC2TransitGatewayRouteTable) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2TransitGatewayRouteTable) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2TransitGatewayRouteTable) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSEC2TransitGatewayRouteTable) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-transitgatewayroutetableassociation.go b/cloudformation/resources/aws-ec2-transitgatewayroutetableassociation.go similarity index 92% rename from cloudformation/aws-ec2-transitgatewayroutetableassociation.go rename to cloudformation/resources/aws-ec2-transitgatewayroutetableassociation.go index 674e305e7b..c93b5033dd 100644 --- a/cloudformation/aws-ec2-transitgatewayroutetableassociation.go +++ b/cloudformation/resources/aws-ec2-transitgatewayroutetableassociation.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2TransitGatewayRouteTableAssociation AWS CloudFormation Resource (AWS::EC2::TransitGatewayRouteTableAssociation) @@ -21,7 +22,7 @@ type AWSEC2TransitGatewayRouteTableAssociation struct { TransitGatewayRouteTableId string `json:"TransitGatewayRouteTableId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSEC2TransitGatewayRouteTableAssociation) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2TransitGatewayRouteTableAssociation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2TransitGatewayRouteTableAssociation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSEC2TransitGatewayRouteTableAssociation) MarshalJSON() ([]byte, error) return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-transitgatewayroutetablepropagation.go b/cloudformation/resources/aws-ec2-transitgatewayroutetablepropagation.go similarity index 92% rename from cloudformation/aws-ec2-transitgatewayroutetablepropagation.go rename to cloudformation/resources/aws-ec2-transitgatewayroutetablepropagation.go index dc3191bd83..1c365ee001 100644 --- a/cloudformation/aws-ec2-transitgatewayroutetablepropagation.go +++ b/cloudformation/resources/aws-ec2-transitgatewayroutetablepropagation.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2TransitGatewayRouteTablePropagation AWS CloudFormation Resource (AWS::EC2::TransitGatewayRouteTablePropagation) @@ -21,7 +22,7 @@ type AWSEC2TransitGatewayRouteTablePropagation struct { TransitGatewayRouteTableId string `json:"TransitGatewayRouteTableId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSEC2TransitGatewayRouteTablePropagation) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2TransitGatewayRouteTablePropagation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2TransitGatewayRouteTablePropagation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSEC2TransitGatewayRouteTablePropagation) MarshalJSON() ([]byte, error) return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-trunkinterfaceassociation.go b/cloudformation/resources/aws-ec2-trunkinterfaceassociation.go similarity index 93% rename from cloudformation/aws-ec2-trunkinterfaceassociation.go rename to cloudformation/resources/aws-ec2-trunkinterfaceassociation.go index 94169f87f3..6174811718 100644 --- a/cloudformation/aws-ec2-trunkinterfaceassociation.go +++ b/cloudformation/resources/aws-ec2-trunkinterfaceassociation.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2TrunkInterfaceAssociation AWS CloudFormation Resource (AWS::EC2::TrunkInterfaceAssociation) @@ -31,7 +32,7 @@ type AWSEC2TrunkInterfaceAssociation struct { VLANId int `json:"VLANId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSEC2TrunkInterfaceAssociation) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2TrunkInterfaceAssociation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2TrunkInterfaceAssociation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSEC2TrunkInterfaceAssociation) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-volume.go b/cloudformation/resources/aws-ec2-volume.go similarity index 93% rename from cloudformation/aws-ec2-volume.go rename to cloudformation/resources/aws-ec2-volume.go index 3233a0a4ef..fb7ab06527 100644 --- a/cloudformation/aws-ec2-volume.go +++ b/cloudformation/resources/aws-ec2-volume.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2Volume AWS CloudFormation Resource (AWS::EC2::Volume) @@ -56,7 +57,7 @@ type AWSEC2Volume struct { VolumeType string `json:"VolumeType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -96,7 +97,7 @@ func (r *AWSEC2Volume) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2Volume) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2Volume) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -107,9 +108,9 @@ func (r AWSEC2Volume) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-volumeattachment.go b/cloudformation/resources/aws-ec2-volumeattachment.go similarity index 91% rename from cloudformation/aws-ec2-volumeattachment.go rename to cloudformation/resources/aws-ec2-volumeattachment.go index ca7fa7bea4..ab5d9f5043 100644 --- a/cloudformation/aws-ec2-volumeattachment.go +++ b/cloudformation/resources/aws-ec2-volumeattachment.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2VolumeAttachment AWS CloudFormation Resource (AWS::EC2::VolumeAttachment) @@ -26,7 +27,7 @@ type AWSEC2VolumeAttachment struct { VolumeId string `json:"VolumeId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSEC2VolumeAttachment) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2VolumeAttachment) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2VolumeAttachment) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSEC2VolumeAttachment) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-vpc.go b/cloudformation/resources/aws-ec2-vpc.go similarity index 91% rename from cloudformation/aws-ec2-vpc.go rename to cloudformation/resources/aws-ec2-vpc.go index 308bcc2fe3..095b3aa4e4 100644 --- a/cloudformation/aws-ec2-vpc.go +++ b/cloudformation/resources/aws-ec2-vpc.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2VPC AWS CloudFormation Resource (AWS::EC2::VPC) @@ -36,7 +37,7 @@ type AWSEC2VPC struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSEC2VPC) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2VPC) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2VPC) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSEC2VPC) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-vpccidrblock.go b/cloudformation/resources/aws-ec2-vpccidrblock.go similarity index 91% rename from cloudformation/aws-ec2-vpccidrblock.go rename to cloudformation/resources/aws-ec2-vpccidrblock.go index 269dd070fb..31444248c8 100644 --- a/cloudformation/aws-ec2-vpccidrblock.go +++ b/cloudformation/resources/aws-ec2-vpccidrblock.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2VPCCidrBlock AWS CloudFormation Resource (AWS::EC2::VPCCidrBlock) @@ -26,7 +27,7 @@ type AWSEC2VPCCidrBlock struct { VpcId string `json:"VpcId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSEC2VPCCidrBlock) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2VPCCidrBlock) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2VPCCidrBlock) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSEC2VPCCidrBlock) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-vpcdhcpoptionsassociation.go b/cloudformation/resources/aws-ec2-vpcdhcpoptionsassociation.go similarity index 92% rename from cloudformation/aws-ec2-vpcdhcpoptionsassociation.go rename to cloudformation/resources/aws-ec2-vpcdhcpoptionsassociation.go index 8cc8ab81f7..32bb2118a4 100644 --- a/cloudformation/aws-ec2-vpcdhcpoptionsassociation.go +++ b/cloudformation/resources/aws-ec2-vpcdhcpoptionsassociation.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2VPCDHCPOptionsAssociation AWS CloudFormation Resource (AWS::EC2::VPCDHCPOptionsAssociation) @@ -21,7 +22,7 @@ type AWSEC2VPCDHCPOptionsAssociation struct { VpcId string `json:"VpcId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSEC2VPCDHCPOptionsAssociation) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2VPCDHCPOptionsAssociation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2VPCDHCPOptionsAssociation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSEC2VPCDHCPOptionsAssociation) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-vpcendpoint.go b/cloudformation/resources/aws-ec2-vpcendpoint.go similarity index 93% rename from cloudformation/aws-ec2-vpcendpoint.go rename to cloudformation/resources/aws-ec2-vpcendpoint.go index 6f2a62bc62..84e288852a 100644 --- a/cloudformation/aws-ec2-vpcendpoint.go +++ b/cloudformation/resources/aws-ec2-vpcendpoint.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2VPCEndpoint AWS CloudFormation Resource (AWS::EC2::VPCEndpoint) @@ -51,7 +52,7 @@ type AWSEC2VPCEndpoint struct { VpcId string `json:"VpcId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -91,7 +92,7 @@ func (r *AWSEC2VPCEndpoint) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2VPCEndpoint) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2VPCEndpoint) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -102,9 +103,9 @@ func (r AWSEC2VPCEndpoint) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-vpcendpointconnectionnotification.go b/cloudformation/resources/aws-ec2-vpcendpointconnectionnotification.go similarity index 93% rename from cloudformation/aws-ec2-vpcendpointconnectionnotification.go rename to cloudformation/resources/aws-ec2-vpcendpointconnectionnotification.go index 4ea557d973..61bdb04892 100644 --- a/cloudformation/aws-ec2-vpcendpointconnectionnotification.go +++ b/cloudformation/resources/aws-ec2-vpcendpointconnectionnotification.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2VPCEndpointConnectionNotification AWS CloudFormation Resource (AWS::EC2::VPCEndpointConnectionNotification) @@ -31,7 +32,7 @@ type AWSEC2VPCEndpointConnectionNotification struct { VPCEndpointId string `json:"VPCEndpointId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSEC2VPCEndpointConnectionNotification) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2VPCEndpointConnectionNotification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2VPCEndpointConnectionNotification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSEC2VPCEndpointConnectionNotification) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-vpcendpointservicepermissions.go b/cloudformation/resources/aws-ec2-vpcendpointservicepermissions.go similarity index 92% rename from cloudformation/aws-ec2-vpcendpointservicepermissions.go rename to cloudformation/resources/aws-ec2-vpcendpointservicepermissions.go index 8fb40b2222..562674997a 100644 --- a/cloudformation/aws-ec2-vpcendpointservicepermissions.go +++ b/cloudformation/resources/aws-ec2-vpcendpointservicepermissions.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2VPCEndpointServicePermissions AWS CloudFormation Resource (AWS::EC2::VPCEndpointServicePermissions) @@ -21,7 +22,7 @@ type AWSEC2VPCEndpointServicePermissions struct { ServiceId string `json:"ServiceId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSEC2VPCEndpointServicePermissions) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2VPCEndpointServicePermissions) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2VPCEndpointServicePermissions) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSEC2VPCEndpointServicePermissions) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-vpcgatewayattachment.go b/cloudformation/resources/aws-ec2-vpcgatewayattachment.go similarity index 91% rename from cloudformation/aws-ec2-vpcgatewayattachment.go rename to cloudformation/resources/aws-ec2-vpcgatewayattachment.go index b79594deda..41fad5f8b8 100644 --- a/cloudformation/aws-ec2-vpcgatewayattachment.go +++ b/cloudformation/resources/aws-ec2-vpcgatewayattachment.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2VPCGatewayAttachment AWS CloudFormation Resource (AWS::EC2::VPCGatewayAttachment) @@ -26,7 +27,7 @@ type AWSEC2VPCGatewayAttachment struct { VpnGatewayId string `json:"VpnGatewayId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSEC2VPCGatewayAttachment) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2VPCGatewayAttachment) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2VPCGatewayAttachment) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSEC2VPCGatewayAttachment) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-vpcpeeringconnection.go b/cloudformation/resources/aws-ec2-vpcpeeringconnection.go similarity index 92% rename from cloudformation/aws-ec2-vpcpeeringconnection.go rename to cloudformation/resources/aws-ec2-vpcpeeringconnection.go index 0b39d1ecc9..e992d7b54d 100644 --- a/cloudformation/aws-ec2-vpcpeeringconnection.go +++ b/cloudformation/resources/aws-ec2-vpcpeeringconnection.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2VPCPeeringConnection AWS CloudFormation Resource (AWS::EC2::VPCPeeringConnection) @@ -41,7 +42,7 @@ type AWSEC2VPCPeeringConnection struct { VpcId string `json:"VpcId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -81,7 +82,7 @@ func (r *AWSEC2VPCPeeringConnection) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2VPCPeeringConnection) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2VPCPeeringConnection) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -92,9 +93,9 @@ func (r AWSEC2VPCPeeringConnection) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-vpnconnection.go b/cloudformation/resources/aws-ec2-vpnconnection.go similarity index 92% rename from cloudformation/aws-ec2-vpnconnection.go rename to cloudformation/resources/aws-ec2-vpnconnection.go index 5d8f33700d..01c1ba1895 100644 --- a/cloudformation/aws-ec2-vpnconnection.go +++ b/cloudformation/resources/aws-ec2-vpnconnection.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2VPNConnection AWS CloudFormation Resource (AWS::EC2::VPNConnection) @@ -41,7 +42,7 @@ type AWSEC2VPNConnection struct { VpnTunnelOptionsSpecifications []AWSEC2VPNConnection_VpnTunnelOptionsSpecification `json:"VpnTunnelOptionsSpecifications,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -81,7 +82,7 @@ func (r *AWSEC2VPNConnection) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2VPNConnection) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2VPNConnection) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -92,9 +93,9 @@ func (r AWSEC2VPNConnection) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-vpnconnection_vpntunneloptionsspecification.go b/cloudformation/resources/aws-ec2-vpnconnection_vpntunneloptionsspecification.go similarity index 94% rename from cloudformation/aws-ec2-vpnconnection_vpntunneloptionsspecification.go rename to cloudformation/resources/aws-ec2-vpnconnection_vpntunneloptionsspecification.go index 5fb4df5f05..56fa15cd00 100644 --- a/cloudformation/aws-ec2-vpnconnection_vpntunneloptionsspecification.go +++ b/cloudformation/resources/aws-ec2-vpnconnection_vpntunneloptionsspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEC2VPNConnection_VpnTunnelOptionsSpecification AWS CloudFormation Resource (AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html @@ -15,7 +17,7 @@ type AWSEC2VPNConnection_VpnTunnelOptionsSpecification struct { TunnelInsideCidr string `json:"TunnelInsideCidr,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEC2VPNConnection_VpnTunnelOptionsSpecification) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2VPNConnection_VpnTunnelOptionsSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2VPNConnection_VpnTunnelOptionsSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ec2-vpnconnectionroute.go b/cloudformation/resources/aws-ec2-vpnconnectionroute.go similarity index 90% rename from cloudformation/aws-ec2-vpnconnectionroute.go rename to cloudformation/resources/aws-ec2-vpnconnectionroute.go index 7206e57b0a..530ebcb5f9 100644 --- a/cloudformation/aws-ec2-vpnconnectionroute.go +++ b/cloudformation/resources/aws-ec2-vpnconnectionroute.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2VPNConnectionRoute AWS CloudFormation Resource (AWS::EC2::VPNConnectionRoute) @@ -21,7 +22,7 @@ type AWSEC2VPNConnectionRoute struct { VpnConnectionId string `json:"VpnConnectionId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSEC2VPNConnectionRoute) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2VPNConnectionRoute) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2VPNConnectionRoute) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSEC2VPNConnectionRoute) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-vpngateway.go b/cloudformation/resources/aws-ec2-vpngateway.go similarity index 90% rename from cloudformation/aws-ec2-vpngateway.go rename to cloudformation/resources/aws-ec2-vpngateway.go index 1a3d4824ea..27cd632e4b 100644 --- a/cloudformation/aws-ec2-vpngateway.go +++ b/cloudformation/resources/aws-ec2-vpngateway.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2VPNGateway AWS CloudFormation Resource (AWS::EC2::VPNGateway) @@ -26,7 +27,7 @@ type AWSEC2VPNGateway struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSEC2VPNGateway) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2VPNGateway) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2VPNGateway) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSEC2VPNGateway) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ec2-vpngatewayroutepropagation.go b/cloudformation/resources/aws-ec2-vpngatewayroutepropagation.go similarity index 92% rename from cloudformation/aws-ec2-vpngatewayroutepropagation.go rename to cloudformation/resources/aws-ec2-vpngatewayroutepropagation.go index b85127aba3..da3f7ce9ec 100644 --- a/cloudformation/aws-ec2-vpngatewayroutepropagation.go +++ b/cloudformation/resources/aws-ec2-vpngatewayroutepropagation.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEC2VPNGatewayRoutePropagation AWS CloudFormation Resource (AWS::EC2::VPNGatewayRoutePropagation) @@ -21,7 +22,7 @@ type AWSEC2VPNGatewayRoutePropagation struct { VpnGatewayId string `json:"VpnGatewayId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSEC2VPNGatewayRoutePropagation) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEC2VPNGatewayRoutePropagation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEC2VPNGatewayRoutePropagation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSEC2VPNGatewayRoutePropagation) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ecr-repository.go b/cloudformation/resources/aws-ecr-repository.go similarity index 91% rename from cloudformation/aws-ecr-repository.go rename to cloudformation/resources/aws-ecr-repository.go index da0471aff2..673464d411 100644 --- a/cloudformation/aws-ecr-repository.go +++ b/cloudformation/resources/aws-ecr-repository.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSECRRepository AWS CloudFormation Resource (AWS::ECR::Repository) @@ -26,7 +27,7 @@ type AWSECRRepository struct { RepositoryPolicyText interface{} `json:"RepositoryPolicyText,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSECRRepository) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECRRepository) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECRRepository) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSECRRepository) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ecr-repository_lifecyclepolicy.go b/cloudformation/resources/aws-ecr-repository_lifecyclepolicy.go similarity index 94% rename from cloudformation/aws-ecr-repository_lifecyclepolicy.go rename to cloudformation/resources/aws-ecr-repository_lifecyclepolicy.go index 6360d19c1e..6e5678b107 100644 --- a/cloudformation/aws-ecr-repository_lifecyclepolicy.go +++ b/cloudformation/resources/aws-ecr-repository_lifecyclepolicy.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECRRepository_LifecyclePolicy AWS CloudFormation Resource (AWS::ECR::Repository.LifecyclePolicy) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-lifecyclepolicy.html @@ -15,7 +17,7 @@ type AWSECRRepository_LifecyclePolicy struct { RegistryId string `json:"RegistryId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSECRRepository_LifecyclePolicy) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECRRepository_LifecyclePolicy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECRRepository_LifecyclePolicy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-cluster.go b/cloudformation/resources/aws-ecs-cluster.go similarity index 89% rename from cloudformation/aws-ecs-cluster.go rename to cloudformation/resources/aws-ecs-cluster.go index cdca3142b7..e7796a8b1a 100644 --- a/cloudformation/aws-ecs-cluster.go +++ b/cloudformation/resources/aws-ecs-cluster.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSECSCluster AWS CloudFormation Resource (AWS::ECS::Cluster) @@ -16,7 +17,7 @@ type AWSECSCluster struct { ClusterName string `json:"ClusterName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -56,7 +57,7 @@ func (r *AWSECSCluster) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSCluster) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSCluster) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -67,9 +68,9 @@ func (r AWSECSCluster) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ecs-service.go b/cloudformation/resources/aws-ecs-service.go similarity index 94% rename from cloudformation/aws-ecs-service.go rename to cloudformation/resources/aws-ecs-service.go index 858eab1a49..1114ee198c 100644 --- a/cloudformation/aws-ecs-service.go +++ b/cloudformation/resources/aws-ecs-service.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSECSService AWS CloudFormation Resource (AWS::ECS::Service) @@ -86,7 +87,7 @@ type AWSECSService struct { TaskDefinition string `json:"TaskDefinition,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -126,7 +127,7 @@ func (r *AWSECSService) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSService) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSService) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -137,9 +138,9 @@ func (r AWSECSService) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ecs-service_awsvpcconfiguration.go b/cloudformation/resources/aws-ecs-service_awsvpcconfiguration.go similarity index 95% rename from cloudformation/aws-ecs-service_awsvpcconfiguration.go rename to cloudformation/resources/aws-ecs-service_awsvpcconfiguration.go index f276bcdc38..211386b8fc 100644 --- a/cloudformation/aws-ecs-service_awsvpcconfiguration.go +++ b/cloudformation/resources/aws-ecs-service_awsvpcconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSService_AwsVpcConfiguration AWS CloudFormation Resource (AWS::ECS::Service.AwsVpcConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-awsvpcconfiguration.html @@ -20,7 +22,7 @@ type AWSECSService_AwsVpcConfiguration struct { Subnets []string `json:"Subnets,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSECSService_AwsVpcConfiguration) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSService_AwsVpcConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSService_AwsVpcConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-service_deploymentconfiguration.go b/cloudformation/resources/aws-ecs-service_deploymentconfiguration.go similarity index 94% rename from cloudformation/aws-ecs-service_deploymentconfiguration.go rename to cloudformation/resources/aws-ecs-service_deploymentconfiguration.go index 362f2f1914..66abde1f9d 100644 --- a/cloudformation/aws-ecs-service_deploymentconfiguration.go +++ b/cloudformation/resources/aws-ecs-service_deploymentconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSService_DeploymentConfiguration AWS CloudFormation Resource (AWS::ECS::Service.DeploymentConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentconfiguration.html @@ -15,7 +17,7 @@ type AWSECSService_DeploymentConfiguration struct { MinimumHealthyPercent int `json:"MinimumHealthyPercent,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSECSService_DeploymentConfiguration) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSService_DeploymentConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSService_DeploymentConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-service_loadbalancer.go b/cloudformation/resources/aws-ecs-service_loadbalancer.go similarity index 93% rename from cloudformation/aws-ecs-service_loadbalancer.go rename to cloudformation/resources/aws-ecs-service_loadbalancer.go index 8955c1d547..fd4774c95a 100644 --- a/cloudformation/aws-ecs-service_loadbalancer.go +++ b/cloudformation/resources/aws-ecs-service_loadbalancer.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSService_LoadBalancer AWS CloudFormation Resource (AWS::ECS::Service.LoadBalancer) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-loadbalancers.html @@ -25,7 +27,7 @@ type AWSECSService_LoadBalancer struct { TargetGroupArn string `json:"TargetGroupArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSECSService_LoadBalancer) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSService_LoadBalancer) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSService_LoadBalancer) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-service_networkconfiguration.go b/cloudformation/resources/aws-ecs-service_networkconfiguration.go similarity index 94% rename from cloudformation/aws-ecs-service_networkconfiguration.go rename to cloudformation/resources/aws-ecs-service_networkconfiguration.go index 693d99911c..5717b45c55 100644 --- a/cloudformation/aws-ecs-service_networkconfiguration.go +++ b/cloudformation/resources/aws-ecs-service_networkconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSService_NetworkConfiguration AWS CloudFormation Resource (AWS::ECS::Service.NetworkConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-networkconfiguration.html @@ -10,7 +12,7 @@ type AWSECSService_NetworkConfiguration struct { AwsvpcConfiguration *AWSECSService_AwsVpcConfiguration `json:"AwsvpcConfiguration,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSECSService_NetworkConfiguration) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSService_NetworkConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSService_NetworkConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-service_placementconstraint.go b/cloudformation/resources/aws-ecs-service_placementconstraint.go similarity index 94% rename from cloudformation/aws-ecs-service_placementconstraint.go rename to cloudformation/resources/aws-ecs-service_placementconstraint.go index 05b35d804b..901728bd22 100644 --- a/cloudformation/aws-ecs-service_placementconstraint.go +++ b/cloudformation/resources/aws-ecs-service_placementconstraint.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSService_PlacementConstraint AWS CloudFormation Resource (AWS::ECS::Service.PlacementConstraint) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementconstraint.html @@ -15,7 +17,7 @@ type AWSECSService_PlacementConstraint struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSECSService_PlacementConstraint) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSService_PlacementConstraint) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSService_PlacementConstraint) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-service_placementstrategy.go b/cloudformation/resources/aws-ecs-service_placementstrategy.go similarity index 94% rename from cloudformation/aws-ecs-service_placementstrategy.go rename to cloudformation/resources/aws-ecs-service_placementstrategy.go index 3914580043..f6a78f61c3 100644 --- a/cloudformation/aws-ecs-service_placementstrategy.go +++ b/cloudformation/resources/aws-ecs-service_placementstrategy.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSService_PlacementStrategy AWS CloudFormation Resource (AWS::ECS::Service.PlacementStrategy) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementstrategy.html @@ -15,7 +17,7 @@ type AWSECSService_PlacementStrategy struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSECSService_PlacementStrategy) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSService_PlacementStrategy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSService_PlacementStrategy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-service_serviceregistry.go b/cloudformation/resources/aws-ecs-service_serviceregistry.go similarity index 95% rename from cloudformation/aws-ecs-service_serviceregistry.go rename to cloudformation/resources/aws-ecs-service_serviceregistry.go index 2465a83912..bbb217d152 100644 --- a/cloudformation/aws-ecs-service_serviceregistry.go +++ b/cloudformation/resources/aws-ecs-service_serviceregistry.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSService_ServiceRegistry AWS CloudFormation Resource (AWS::ECS::Service.ServiceRegistry) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceregistry.html @@ -25,7 +27,7 @@ type AWSECSService_ServiceRegistry struct { RegistryArn string `json:"RegistryArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSECSService_ServiceRegistry) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSService_ServiceRegistry) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSService_ServiceRegistry) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-taskdefinition.go b/cloudformation/resources/aws-ecs-taskdefinition.go similarity index 93% rename from cloudformation/aws-ecs-taskdefinition.go rename to cloudformation/resources/aws-ecs-taskdefinition.go index c3d103bb16..9c6e33e8bb 100644 --- a/cloudformation/aws-ecs-taskdefinition.go +++ b/cloudformation/resources/aws-ecs-taskdefinition.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSECSTaskDefinition AWS CloudFormation Resource (AWS::ECS::TaskDefinition) @@ -61,7 +62,7 @@ type AWSECSTaskDefinition struct { Volumes []AWSECSTaskDefinition_Volume `json:"Volumes,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -101,7 +102,7 @@ func (r *AWSECSTaskDefinition) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSTaskDefinition) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSTaskDefinition) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -112,9 +113,9 @@ func (r AWSECSTaskDefinition) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ecs-taskdefinition_containerdefinition.go b/cloudformation/resources/aws-ecs-taskdefinition_containerdefinition.go similarity index 98% rename from cloudformation/aws-ecs-taskdefinition_containerdefinition.go rename to cloudformation/resources/aws-ecs-taskdefinition_containerdefinition.go index 744837a634..9cbd93ef49 100644 --- a/cloudformation/aws-ecs-taskdefinition_containerdefinition.go +++ b/cloudformation/resources/aws-ecs-taskdefinition_containerdefinition.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSTaskDefinition_ContainerDefinition AWS CloudFormation Resource (AWS::ECS::TaskDefinition.ContainerDefinition) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html @@ -150,7 +152,7 @@ type AWSECSTaskDefinition_ContainerDefinition struct { WorkingDirectory string `json:"WorkingDirectory,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -190,6 +192,6 @@ func (r *AWSECSTaskDefinition_ContainerDefinition) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSTaskDefinition_ContainerDefinition) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSTaskDefinition_ContainerDefinition) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-taskdefinition_device.go b/cloudformation/resources/aws-ecs-taskdefinition_device.go similarity index 93% rename from cloudformation/aws-ecs-taskdefinition_device.go rename to cloudformation/resources/aws-ecs-taskdefinition_device.go index cd88f64674..df2211dc62 100644 --- a/cloudformation/aws-ecs-taskdefinition_device.go +++ b/cloudformation/resources/aws-ecs-taskdefinition_device.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSTaskDefinition_Device AWS CloudFormation Resource (AWS::ECS::TaskDefinition.Device) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-device.html @@ -20,7 +22,7 @@ type AWSECSTaskDefinition_Device struct { Permissions []string `json:"Permissions,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSECSTaskDefinition_Device) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSTaskDefinition_Device) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSTaskDefinition_Device) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-taskdefinition_dockervolumeconfiguration.go b/cloudformation/resources/aws-ecs-taskdefinition_dockervolumeconfiguration.go similarity index 95% rename from cloudformation/aws-ecs-taskdefinition_dockervolumeconfiguration.go rename to cloudformation/resources/aws-ecs-taskdefinition_dockervolumeconfiguration.go index 2e22af5fd6..224bdd87f6 100644 --- a/cloudformation/aws-ecs-taskdefinition_dockervolumeconfiguration.go +++ b/cloudformation/resources/aws-ecs-taskdefinition_dockervolumeconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSTaskDefinition_DockerVolumeConfiguration AWS CloudFormation Resource (AWS::ECS::TaskDefinition.DockerVolumeConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html @@ -30,7 +32,7 @@ type AWSECSTaskDefinition_DockerVolumeConfiguration struct { Scope string `json:"Scope,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSECSTaskDefinition_DockerVolumeConfiguration) SetMetadata(metadata ma // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSTaskDefinition_DockerVolumeConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSTaskDefinition_DockerVolumeConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-taskdefinition_healthcheck.go b/cloudformation/resources/aws-ecs-taskdefinition_healthcheck.go similarity index 95% rename from cloudformation/aws-ecs-taskdefinition_healthcheck.go rename to cloudformation/resources/aws-ecs-taskdefinition_healthcheck.go index a85f4c887a..156b12a230 100644 --- a/cloudformation/aws-ecs-taskdefinition_healthcheck.go +++ b/cloudformation/resources/aws-ecs-taskdefinition_healthcheck.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSTaskDefinition_HealthCheck AWS CloudFormation Resource (AWS::ECS::TaskDefinition.HealthCheck) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html @@ -30,7 +32,7 @@ type AWSECSTaskDefinition_HealthCheck struct { Timeout int `json:"Timeout,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSECSTaskDefinition_HealthCheck) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSTaskDefinition_HealthCheck) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSTaskDefinition_HealthCheck) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-taskdefinition_hostentry.go b/cloudformation/resources/aws-ecs-taskdefinition_hostentry.go similarity index 94% rename from cloudformation/aws-ecs-taskdefinition_hostentry.go rename to cloudformation/resources/aws-ecs-taskdefinition_hostentry.go index 29e922aab8..7ec2ccbff9 100644 --- a/cloudformation/aws-ecs-taskdefinition_hostentry.go +++ b/cloudformation/resources/aws-ecs-taskdefinition_hostentry.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSTaskDefinition_HostEntry AWS CloudFormation Resource (AWS::ECS::TaskDefinition.HostEntry) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-hostentry.html @@ -15,7 +17,7 @@ type AWSECSTaskDefinition_HostEntry struct { IpAddress string `json:"IpAddress,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSECSTaskDefinition_HostEntry) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSTaskDefinition_HostEntry) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSTaskDefinition_HostEntry) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-taskdefinition_hostvolumeproperties.go b/cloudformation/resources/aws-ecs-taskdefinition_hostvolumeproperties.go similarity index 93% rename from cloudformation/aws-ecs-taskdefinition_hostvolumeproperties.go rename to cloudformation/resources/aws-ecs-taskdefinition_hostvolumeproperties.go index a74dd2aeb0..94dddc1264 100644 --- a/cloudformation/aws-ecs-taskdefinition_hostvolumeproperties.go +++ b/cloudformation/resources/aws-ecs-taskdefinition_hostvolumeproperties.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSTaskDefinition_HostVolumeProperties AWS CloudFormation Resource (AWS::ECS::TaskDefinition.HostVolumeProperties) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes-host.html @@ -10,7 +12,7 @@ type AWSECSTaskDefinition_HostVolumeProperties struct { SourcePath string `json:"SourcePath,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSECSTaskDefinition_HostVolumeProperties) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSTaskDefinition_HostVolumeProperties) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSTaskDefinition_HostVolumeProperties) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-taskdefinition_kernelcapabilities.go b/cloudformation/resources/aws-ecs-taskdefinition_kernelcapabilities.go similarity index 94% rename from cloudformation/aws-ecs-taskdefinition_kernelcapabilities.go rename to cloudformation/resources/aws-ecs-taskdefinition_kernelcapabilities.go index 1dcab14520..2cc1e1722f 100644 --- a/cloudformation/aws-ecs-taskdefinition_kernelcapabilities.go +++ b/cloudformation/resources/aws-ecs-taskdefinition_kernelcapabilities.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSTaskDefinition_KernelCapabilities AWS CloudFormation Resource (AWS::ECS::TaskDefinition.KernelCapabilities) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-kernelcapabilities.html @@ -15,7 +17,7 @@ type AWSECSTaskDefinition_KernelCapabilities struct { Drop []string `json:"Drop,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSECSTaskDefinition_KernelCapabilities) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSTaskDefinition_KernelCapabilities) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSTaskDefinition_KernelCapabilities) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-taskdefinition_keyvaluepair.go b/cloudformation/resources/aws-ecs-taskdefinition_keyvaluepair.go similarity index 94% rename from cloudformation/aws-ecs-taskdefinition_keyvaluepair.go rename to cloudformation/resources/aws-ecs-taskdefinition_keyvaluepair.go index 78654ab1de..b14754e781 100644 --- a/cloudformation/aws-ecs-taskdefinition_keyvaluepair.go +++ b/cloudformation/resources/aws-ecs-taskdefinition_keyvaluepair.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSTaskDefinition_KeyValuePair AWS CloudFormation Resource (AWS::ECS::TaskDefinition.KeyValuePair) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-environment.html @@ -15,7 +17,7 @@ type AWSECSTaskDefinition_KeyValuePair struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSECSTaskDefinition_KeyValuePair) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSTaskDefinition_KeyValuePair) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSTaskDefinition_KeyValuePair) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-taskdefinition_linuxparameters.go b/cloudformation/resources/aws-ecs-taskdefinition_linuxparameters.go similarity index 95% rename from cloudformation/aws-ecs-taskdefinition_linuxparameters.go rename to cloudformation/resources/aws-ecs-taskdefinition_linuxparameters.go index 56655404c2..8d5f04aa39 100644 --- a/cloudformation/aws-ecs-taskdefinition_linuxparameters.go +++ b/cloudformation/resources/aws-ecs-taskdefinition_linuxparameters.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSTaskDefinition_LinuxParameters AWS CloudFormation Resource (AWS::ECS::TaskDefinition.LinuxParameters) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html @@ -30,7 +32,7 @@ type AWSECSTaskDefinition_LinuxParameters struct { Tmpfs []AWSECSTaskDefinition_Tmpfs `json:"Tmpfs,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSECSTaskDefinition_LinuxParameters) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSTaskDefinition_LinuxParameters) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSTaskDefinition_LinuxParameters) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-taskdefinition_logconfiguration.go b/cloudformation/resources/aws-ecs-taskdefinition_logconfiguration.go similarity index 94% rename from cloudformation/aws-ecs-taskdefinition_logconfiguration.go rename to cloudformation/resources/aws-ecs-taskdefinition_logconfiguration.go index f9f21ca7bf..6f29b6e582 100644 --- a/cloudformation/aws-ecs-taskdefinition_logconfiguration.go +++ b/cloudformation/resources/aws-ecs-taskdefinition_logconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSTaskDefinition_LogConfiguration AWS CloudFormation Resource (AWS::ECS::TaskDefinition.LogConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-logconfiguration.html @@ -15,7 +17,7 @@ type AWSECSTaskDefinition_LogConfiguration struct { Options map[string]string `json:"Options,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSECSTaskDefinition_LogConfiguration) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSTaskDefinition_LogConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSTaskDefinition_LogConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-taskdefinition_mountpoint.go b/cloudformation/resources/aws-ecs-taskdefinition_mountpoint.go similarity index 95% rename from cloudformation/aws-ecs-taskdefinition_mountpoint.go rename to cloudformation/resources/aws-ecs-taskdefinition_mountpoint.go index aa8f27d5b6..5b1978b9a0 100644 --- a/cloudformation/aws-ecs-taskdefinition_mountpoint.go +++ b/cloudformation/resources/aws-ecs-taskdefinition_mountpoint.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSTaskDefinition_MountPoint AWS CloudFormation Resource (AWS::ECS::TaskDefinition.MountPoint) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-mountpoints.html @@ -20,7 +22,7 @@ type AWSECSTaskDefinition_MountPoint struct { SourceVolume string `json:"SourceVolume,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSECSTaskDefinition_MountPoint) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSTaskDefinition_MountPoint) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSTaskDefinition_MountPoint) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-taskdefinition_portmapping.go b/cloudformation/resources/aws-ecs-taskdefinition_portmapping.go similarity index 95% rename from cloudformation/aws-ecs-taskdefinition_portmapping.go rename to cloudformation/resources/aws-ecs-taskdefinition_portmapping.go index 45ef1b3d19..8d675ee64d 100644 --- a/cloudformation/aws-ecs-taskdefinition_portmapping.go +++ b/cloudformation/resources/aws-ecs-taskdefinition_portmapping.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSTaskDefinition_PortMapping AWS CloudFormation Resource (AWS::ECS::TaskDefinition.PortMapping) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-portmappings.html @@ -20,7 +22,7 @@ type AWSECSTaskDefinition_PortMapping struct { Protocol string `json:"Protocol,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSECSTaskDefinition_PortMapping) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSTaskDefinition_PortMapping) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSTaskDefinition_PortMapping) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-taskdefinition_repositorycredentials.go b/cloudformation/resources/aws-ecs-taskdefinition_repositorycredentials.go similarity index 93% rename from cloudformation/aws-ecs-taskdefinition_repositorycredentials.go rename to cloudformation/resources/aws-ecs-taskdefinition_repositorycredentials.go index 4a0a4df0a3..586b027582 100644 --- a/cloudformation/aws-ecs-taskdefinition_repositorycredentials.go +++ b/cloudformation/resources/aws-ecs-taskdefinition_repositorycredentials.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSTaskDefinition_RepositoryCredentials AWS CloudFormation Resource (AWS::ECS::TaskDefinition.RepositoryCredentials) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-repositorycredentials.html @@ -10,7 +12,7 @@ type AWSECSTaskDefinition_RepositoryCredentials struct { CredentialsParameter string `json:"CredentialsParameter,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSECSTaskDefinition_RepositoryCredentials) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSTaskDefinition_RepositoryCredentials) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSTaskDefinition_RepositoryCredentials) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-taskdefinition_taskdefinitionplacementconstraint.go b/cloudformation/resources/aws-ecs-taskdefinition_taskdefinitionplacementconstraint.go similarity index 94% rename from cloudformation/aws-ecs-taskdefinition_taskdefinitionplacementconstraint.go rename to cloudformation/resources/aws-ecs-taskdefinition_taskdefinitionplacementconstraint.go index 16b76a041a..9c930928bc 100644 --- a/cloudformation/aws-ecs-taskdefinition_taskdefinitionplacementconstraint.go +++ b/cloudformation/resources/aws-ecs-taskdefinition_taskdefinitionplacementconstraint.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSTaskDefinition_TaskDefinitionPlacementConstraint AWS CloudFormation Resource (AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-taskdefinitionplacementconstraint.html @@ -15,7 +17,7 @@ type AWSECSTaskDefinition_TaskDefinitionPlacementConstraint struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSECSTaskDefinition_TaskDefinitionPlacementConstraint) SetMetadata(met // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSTaskDefinition_TaskDefinitionPlacementConstraint) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSTaskDefinition_TaskDefinitionPlacementConstraint) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-taskdefinition_tmpfs.go b/cloudformation/resources/aws-ecs-taskdefinition_tmpfs.go similarity index 92% rename from cloudformation/aws-ecs-taskdefinition_tmpfs.go rename to cloudformation/resources/aws-ecs-taskdefinition_tmpfs.go index 167a216d1d..0c09f28328 100644 --- a/cloudformation/aws-ecs-taskdefinition_tmpfs.go +++ b/cloudformation/resources/aws-ecs-taskdefinition_tmpfs.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSTaskDefinition_Tmpfs AWS CloudFormation Resource (AWS::ECS::TaskDefinition.Tmpfs) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-tmpfs.html @@ -20,7 +22,7 @@ type AWSECSTaskDefinition_Tmpfs struct { Size int `json:"Size,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSECSTaskDefinition_Tmpfs) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSTaskDefinition_Tmpfs) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSTaskDefinition_Tmpfs) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-taskdefinition_ulimit.go b/cloudformation/resources/aws-ecs-taskdefinition_ulimit.go similarity index 93% rename from cloudformation/aws-ecs-taskdefinition_ulimit.go rename to cloudformation/resources/aws-ecs-taskdefinition_ulimit.go index 64642dcb6c..50d8e7a895 100644 --- a/cloudformation/aws-ecs-taskdefinition_ulimit.go +++ b/cloudformation/resources/aws-ecs-taskdefinition_ulimit.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSTaskDefinition_Ulimit AWS CloudFormation Resource (AWS::ECS::TaskDefinition.Ulimit) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-ulimit.html @@ -20,7 +22,7 @@ type AWSECSTaskDefinition_Ulimit struct { SoftLimit int `json:"SoftLimit"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSECSTaskDefinition_Ulimit) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSTaskDefinition_Ulimit) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSTaskDefinition_Ulimit) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-taskdefinition_volume.go b/cloudformation/resources/aws-ecs-taskdefinition_volume.go similarity index 93% rename from cloudformation/aws-ecs-taskdefinition_volume.go rename to cloudformation/resources/aws-ecs-taskdefinition_volume.go index 586e57a915..dd3b09ead3 100644 --- a/cloudformation/aws-ecs-taskdefinition_volume.go +++ b/cloudformation/resources/aws-ecs-taskdefinition_volume.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSTaskDefinition_Volume AWS CloudFormation Resource (AWS::ECS::TaskDefinition.Volume) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes.html @@ -20,7 +22,7 @@ type AWSECSTaskDefinition_Volume struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSECSTaskDefinition_Volume) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSTaskDefinition_Volume) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSTaskDefinition_Volume) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ecs-taskdefinition_volumefrom.go b/cloudformation/resources/aws-ecs-taskdefinition_volumefrom.go similarity index 94% rename from cloudformation/aws-ecs-taskdefinition_volumefrom.go rename to cloudformation/resources/aws-ecs-taskdefinition_volumefrom.go index 01b056b0ec..dc38e454a0 100644 --- a/cloudformation/aws-ecs-taskdefinition_volumefrom.go +++ b/cloudformation/resources/aws-ecs-taskdefinition_volumefrom.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSECSTaskDefinition_VolumeFrom AWS CloudFormation Resource (AWS::ECS::TaskDefinition.VolumeFrom) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-volumesfrom.html @@ -15,7 +17,7 @@ type AWSECSTaskDefinition_VolumeFrom struct { SourceContainer string `json:"SourceContainer,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSECSTaskDefinition_VolumeFrom) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSECSTaskDefinition_VolumeFrom) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSECSTaskDefinition_VolumeFrom) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-efs-filesystem.go b/cloudformation/resources/aws-efs-filesystem.go similarity index 92% rename from cloudformation/aws-efs-filesystem.go rename to cloudformation/resources/aws-efs-filesystem.go index 4972a035f1..2ba1806800 100644 --- a/cloudformation/aws-efs-filesystem.go +++ b/cloudformation/resources/aws-efs-filesystem.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEFSFileSystem AWS CloudFormation Resource (AWS::EFS::FileSystem) @@ -41,7 +42,7 @@ type AWSEFSFileSystem struct { ThroughputMode string `json:"ThroughputMode,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -81,7 +82,7 @@ func (r *AWSEFSFileSystem) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEFSFileSystem) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEFSFileSystem) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -92,9 +93,9 @@ func (r AWSEFSFileSystem) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-efs-filesystem_elasticfilesystemtag.go b/cloudformation/resources/aws-efs-filesystem_elasticfilesystemtag.go similarity index 94% rename from cloudformation/aws-efs-filesystem_elasticfilesystemtag.go rename to cloudformation/resources/aws-efs-filesystem_elasticfilesystemtag.go index 662220ab4d..796e401ea8 100644 --- a/cloudformation/aws-efs-filesystem_elasticfilesystemtag.go +++ b/cloudformation/resources/aws-efs-filesystem_elasticfilesystemtag.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEFSFileSystem_ElasticFileSystemTag AWS CloudFormation Resource (AWS::EFS::FileSystem.ElasticFileSystemTag) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-filesystemtags.html @@ -15,7 +17,7 @@ type AWSEFSFileSystem_ElasticFileSystemTag struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEFSFileSystem_ElasticFileSystemTag) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEFSFileSystem_ElasticFileSystemTag) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEFSFileSystem_ElasticFileSystemTag) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-efs-mounttarget.go b/cloudformation/resources/aws-efs-mounttarget.go similarity index 91% rename from cloudformation/aws-efs-mounttarget.go rename to cloudformation/resources/aws-efs-mounttarget.go index c19577a105..545a517413 100644 --- a/cloudformation/aws-efs-mounttarget.go +++ b/cloudformation/resources/aws-efs-mounttarget.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEFSMountTarget AWS CloudFormation Resource (AWS::EFS::MountTarget) @@ -31,7 +32,7 @@ type AWSEFSMountTarget struct { SubnetId string `json:"SubnetId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSEFSMountTarget) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEFSMountTarget) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEFSMountTarget) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSEFSMountTarget) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-eks-cluster.go b/cloudformation/resources/aws-eks-cluster.go similarity index 91% rename from cloudformation/aws-eks-cluster.go rename to cloudformation/resources/aws-eks-cluster.go index 5e001d796e..a627c55f65 100644 --- a/cloudformation/aws-eks-cluster.go +++ b/cloudformation/resources/aws-eks-cluster.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEKSCluster AWS CloudFormation Resource (AWS::EKS::Cluster) @@ -31,7 +32,7 @@ type AWSEKSCluster struct { Version string `json:"Version,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSEKSCluster) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEKSCluster) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEKSCluster) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSEKSCluster) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-eks-cluster_resourcesvpcconfig.go b/cloudformation/resources/aws-eks-cluster_resourcesvpcconfig.go similarity index 94% rename from cloudformation/aws-eks-cluster_resourcesvpcconfig.go rename to cloudformation/resources/aws-eks-cluster_resourcesvpcconfig.go index d9a1e94162..d05d2aa0b4 100644 --- a/cloudformation/aws-eks-cluster_resourcesvpcconfig.go +++ b/cloudformation/resources/aws-eks-cluster_resourcesvpcconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEKSCluster_ResourcesVpcConfig AWS CloudFormation Resource (AWS::EKS::Cluster.ResourcesVpcConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html @@ -15,7 +17,7 @@ type AWSEKSCluster_ResourcesVpcConfig struct { SubnetIds []string `json:"SubnetIds,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEKSCluster_ResourcesVpcConfig) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEKSCluster_ResourcesVpcConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEKSCluster_ResourcesVpcConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticache-cachecluster.go b/cloudformation/resources/aws-elasticache-cachecluster.go similarity index 95% rename from cloudformation/aws-elasticache-cachecluster.go rename to cloudformation/resources/aws-elasticache-cachecluster.go index cab438dcd7..6c52a514d4 100644 --- a/cloudformation/aws-elasticache-cachecluster.go +++ b/cloudformation/resources/aws-elasticache-cachecluster.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSElastiCacheCacheCluster AWS CloudFormation Resource (AWS::ElastiCache::CacheCluster) @@ -116,7 +117,7 @@ type AWSElastiCacheCacheCluster struct { VpcSecurityGroupIds []string `json:"VpcSecurityGroupIds,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -156,7 +157,7 @@ func (r *AWSElastiCacheCacheCluster) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElastiCacheCacheCluster) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElastiCacheCacheCluster) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -167,9 +168,9 @@ func (r AWSElastiCacheCacheCluster) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-elasticache-parametergroup.go b/cloudformation/resources/aws-elasticache-parametergroup.go similarity index 92% rename from cloudformation/aws-elasticache-parametergroup.go rename to cloudformation/resources/aws-elasticache-parametergroup.go index fe9055f4be..1590d40a21 100644 --- a/cloudformation/aws-elasticache-parametergroup.go +++ b/cloudformation/resources/aws-elasticache-parametergroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSElastiCacheParameterGroup AWS CloudFormation Resource (AWS::ElastiCache::ParameterGroup) @@ -26,7 +27,7 @@ type AWSElastiCacheParameterGroup struct { Properties map[string]string `json:"Properties,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSElastiCacheParameterGroup) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElastiCacheParameterGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElastiCacheParameterGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSElastiCacheParameterGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-elasticache-replicationgroup.go b/cloudformation/resources/aws-elasticache-replicationgroup.go similarity index 97% rename from cloudformation/aws-elasticache-replicationgroup.go rename to cloudformation/resources/aws-elasticache-replicationgroup.go index fe419e29cb..58100d8698 100644 --- a/cloudformation/aws-elasticache-replicationgroup.go +++ b/cloudformation/resources/aws-elasticache-replicationgroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSElastiCacheReplicationGroup AWS CloudFormation Resource (AWS::ElastiCache::ReplicationGroup) @@ -156,7 +157,7 @@ type AWSElastiCacheReplicationGroup struct { TransitEncryptionEnabled bool `json:"TransitEncryptionEnabled,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -196,7 +197,7 @@ func (r *AWSElastiCacheReplicationGroup) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElastiCacheReplicationGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElastiCacheReplicationGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -207,9 +208,9 @@ func (r AWSElastiCacheReplicationGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-elasticache-replicationgroup_nodegroupconfiguration.go b/cloudformation/resources/aws-elasticache-replicationgroup_nodegroupconfiguration.go similarity index 95% rename from cloudformation/aws-elasticache-replicationgroup_nodegroupconfiguration.go rename to cloudformation/resources/aws-elasticache-replicationgroup_nodegroupconfiguration.go index fc8cc817b8..6445e4f5ea 100644 --- a/cloudformation/aws-elasticache-replicationgroup_nodegroupconfiguration.go +++ b/cloudformation/resources/aws-elasticache-replicationgroup_nodegroupconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElastiCacheReplicationGroup_NodeGroupConfiguration AWS CloudFormation Resource (AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html @@ -30,7 +32,7 @@ type AWSElastiCacheReplicationGroup_NodeGroupConfiguration struct { Slots string `json:"Slots,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSElastiCacheReplicationGroup_NodeGroupConfiguration) SetMetadata(meta // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElastiCacheReplicationGroup_NodeGroupConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElastiCacheReplicationGroup_NodeGroupConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticache-securitygroup.go b/cloudformation/resources/aws-elasticache-securitygroup.go similarity index 90% rename from cloudformation/aws-elasticache-securitygroup.go rename to cloudformation/resources/aws-elasticache-securitygroup.go index c82ec2de68..16f0646cc0 100644 --- a/cloudformation/aws-elasticache-securitygroup.go +++ b/cloudformation/resources/aws-elasticache-securitygroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSElastiCacheSecurityGroup AWS CloudFormation Resource (AWS::ElastiCache::SecurityGroup) @@ -16,7 +17,7 @@ type AWSElastiCacheSecurityGroup struct { Description string `json:"Description,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -56,7 +57,7 @@ func (r *AWSElastiCacheSecurityGroup) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElastiCacheSecurityGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElastiCacheSecurityGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -67,9 +68,9 @@ func (r AWSElastiCacheSecurityGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-elasticache-securitygroupingress.go b/cloudformation/resources/aws-elasticache-securitygroupingress.go similarity index 92% rename from cloudformation/aws-elasticache-securitygroupingress.go rename to cloudformation/resources/aws-elasticache-securitygroupingress.go index fed8920be2..ec9118c433 100644 --- a/cloudformation/aws-elasticache-securitygroupingress.go +++ b/cloudformation/resources/aws-elasticache-securitygroupingress.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSElastiCacheSecurityGroupIngress AWS CloudFormation Resource (AWS::ElastiCache::SecurityGroupIngress) @@ -26,7 +27,7 @@ type AWSElastiCacheSecurityGroupIngress struct { EC2SecurityGroupOwnerId string `json:"EC2SecurityGroupOwnerId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSElastiCacheSecurityGroupIngress) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElastiCacheSecurityGroupIngress) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElastiCacheSecurityGroupIngress) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSElastiCacheSecurityGroupIngress) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-elasticache-subnetgroup.go b/cloudformation/resources/aws-elasticache-subnetgroup.go similarity index 91% rename from cloudformation/aws-elasticache-subnetgroup.go rename to cloudformation/resources/aws-elasticache-subnetgroup.go index 5d37489662..4cb47283fe 100644 --- a/cloudformation/aws-elasticache-subnetgroup.go +++ b/cloudformation/resources/aws-elasticache-subnetgroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSElastiCacheSubnetGroup AWS CloudFormation Resource (AWS::ElastiCache::SubnetGroup) @@ -26,7 +27,7 @@ type AWSElastiCacheSubnetGroup struct { SubnetIds []string `json:"SubnetIds,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSElastiCacheSubnetGroup) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElastiCacheSubnetGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElastiCacheSubnetGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSElastiCacheSubnetGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-elasticbeanstalk-application.go b/cloudformation/resources/aws-elasticbeanstalk-application.go similarity index 92% rename from cloudformation/aws-elasticbeanstalk-application.go rename to cloudformation/resources/aws-elasticbeanstalk-application.go index 744ec6646d..e293d33841 100644 --- a/cloudformation/aws-elasticbeanstalk-application.go +++ b/cloudformation/resources/aws-elasticbeanstalk-application.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSElasticBeanstalkApplication AWS CloudFormation Resource (AWS::ElasticBeanstalk::Application) @@ -26,7 +27,7 @@ type AWSElasticBeanstalkApplication struct { ResourceLifecycleConfig *AWSElasticBeanstalkApplication_ApplicationResourceLifecycleConfig `json:"ResourceLifecycleConfig,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSElasticBeanstalkApplication) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticBeanstalkApplication) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticBeanstalkApplication) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSElasticBeanstalkApplication) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-elasticbeanstalk-application_applicationresourcelifecycleconfig.go b/cloudformation/resources/aws-elasticbeanstalk-application_applicationresourcelifecycleconfig.go similarity index 94% rename from cloudformation/aws-elasticbeanstalk-application_applicationresourcelifecycleconfig.go rename to cloudformation/resources/aws-elasticbeanstalk-application_applicationresourcelifecycleconfig.go index 184b16e7fe..2f72e097c8 100644 --- a/cloudformation/aws-elasticbeanstalk-application_applicationresourcelifecycleconfig.go +++ b/cloudformation/resources/aws-elasticbeanstalk-application_applicationresourcelifecycleconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticBeanstalkApplication_ApplicationResourceLifecycleConfig AWS CloudFormation Resource (AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationresourcelifecycleconfig.html @@ -15,7 +17,7 @@ type AWSElasticBeanstalkApplication_ApplicationResourceLifecycleConfig struct { VersionLifecycleConfig *AWSElasticBeanstalkApplication_ApplicationVersionLifecycleConfig `json:"VersionLifecycleConfig,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSElasticBeanstalkApplication_ApplicationResourceLifecycleConfig) SetM // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticBeanstalkApplication_ApplicationResourceLifecycleConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticBeanstalkApplication_ApplicationResourceLifecycleConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticbeanstalk-application_applicationversionlifecycleconfig.go b/cloudformation/resources/aws-elasticbeanstalk-application_applicationversionlifecycleconfig.go similarity index 94% rename from cloudformation/aws-elasticbeanstalk-application_applicationversionlifecycleconfig.go rename to cloudformation/resources/aws-elasticbeanstalk-application_applicationversionlifecycleconfig.go index b919f6b0c5..40d6f8ae48 100644 --- a/cloudformation/aws-elasticbeanstalk-application_applicationversionlifecycleconfig.go +++ b/cloudformation/resources/aws-elasticbeanstalk-application_applicationversionlifecycleconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticBeanstalkApplication_ApplicationVersionLifecycleConfig AWS CloudFormation Resource (AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationversionlifecycleconfig.html @@ -15,7 +17,7 @@ type AWSElasticBeanstalkApplication_ApplicationVersionLifecycleConfig struct { MaxCountRule *AWSElasticBeanstalkApplication_MaxCountRule `json:"MaxCountRule,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSElasticBeanstalkApplication_ApplicationVersionLifecycleConfig) SetMe // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticBeanstalkApplication_ApplicationVersionLifecycleConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticBeanstalkApplication_ApplicationVersionLifecycleConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticbeanstalk-application_maxagerule.go b/cloudformation/resources/aws-elasticbeanstalk-application_maxagerule.go similarity index 95% rename from cloudformation/aws-elasticbeanstalk-application_maxagerule.go rename to cloudformation/resources/aws-elasticbeanstalk-application_maxagerule.go index 02291c91d9..84ec829c46 100644 --- a/cloudformation/aws-elasticbeanstalk-application_maxagerule.go +++ b/cloudformation/resources/aws-elasticbeanstalk-application_maxagerule.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticBeanstalkApplication_MaxAgeRule AWS CloudFormation Resource (AWS::ElasticBeanstalk::Application.MaxAgeRule) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxagerule.html @@ -20,7 +22,7 @@ type AWSElasticBeanstalkApplication_MaxAgeRule struct { MaxAgeInDays int `json:"MaxAgeInDays,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSElasticBeanstalkApplication_MaxAgeRule) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticBeanstalkApplication_MaxAgeRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticBeanstalkApplication_MaxAgeRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticbeanstalk-application_maxcountrule.go b/cloudformation/resources/aws-elasticbeanstalk-application_maxcountrule.go similarity index 95% rename from cloudformation/aws-elasticbeanstalk-application_maxcountrule.go rename to cloudformation/resources/aws-elasticbeanstalk-application_maxcountrule.go index 07da974072..9e626b1d18 100644 --- a/cloudformation/aws-elasticbeanstalk-application_maxcountrule.go +++ b/cloudformation/resources/aws-elasticbeanstalk-application_maxcountrule.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticBeanstalkApplication_MaxCountRule AWS CloudFormation Resource (AWS::ElasticBeanstalk::Application.MaxCountRule) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxcountrule.html @@ -20,7 +22,7 @@ type AWSElasticBeanstalkApplication_MaxCountRule struct { MaxCount int `json:"MaxCount,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSElasticBeanstalkApplication_MaxCountRule) SetMetadata(metadata map[s // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticBeanstalkApplication_MaxCountRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticBeanstalkApplication_MaxCountRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticbeanstalk-applicationversion.go b/cloudformation/resources/aws-elasticbeanstalk-applicationversion.go similarity index 92% rename from cloudformation/aws-elasticbeanstalk-applicationversion.go rename to cloudformation/resources/aws-elasticbeanstalk-applicationversion.go index 7b42004ab3..297a096c88 100644 --- a/cloudformation/aws-elasticbeanstalk-applicationversion.go +++ b/cloudformation/resources/aws-elasticbeanstalk-applicationversion.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSElasticBeanstalkApplicationVersion AWS CloudFormation Resource (AWS::ElasticBeanstalk::ApplicationVersion) @@ -26,7 +27,7 @@ type AWSElasticBeanstalkApplicationVersion struct { SourceBundle *AWSElasticBeanstalkApplicationVersion_SourceBundle `json:"SourceBundle,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSElasticBeanstalkApplicationVersion) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticBeanstalkApplicationVersion) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticBeanstalkApplicationVersion) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSElasticBeanstalkApplicationVersion) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-elasticbeanstalk-applicationversion_sourcebundle.go b/cloudformation/resources/aws-elasticbeanstalk-applicationversion_sourcebundle.go similarity index 94% rename from cloudformation/aws-elasticbeanstalk-applicationversion_sourcebundle.go rename to cloudformation/resources/aws-elasticbeanstalk-applicationversion_sourcebundle.go index 9a79a614c6..d0ad5f973d 100644 --- a/cloudformation/aws-elasticbeanstalk-applicationversion_sourcebundle.go +++ b/cloudformation/resources/aws-elasticbeanstalk-applicationversion_sourcebundle.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticBeanstalkApplicationVersion_SourceBundle AWS CloudFormation Resource (AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-sourcebundle.html @@ -15,7 +17,7 @@ type AWSElasticBeanstalkApplicationVersion_SourceBundle struct { S3Key string `json:"S3Key,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSElasticBeanstalkApplicationVersion_SourceBundle) SetMetadata(metadat // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticBeanstalkApplicationVersion_SourceBundle) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticBeanstalkApplicationVersion_SourceBundle) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticbeanstalk-configurationtemplate.go b/cloudformation/resources/aws-elasticbeanstalk-configurationtemplate.go similarity index 94% rename from cloudformation/aws-elasticbeanstalk-configurationtemplate.go rename to cloudformation/resources/aws-elasticbeanstalk-configurationtemplate.go index e492d5f6aa..7350c7efc4 100644 --- a/cloudformation/aws-elasticbeanstalk-configurationtemplate.go +++ b/cloudformation/resources/aws-elasticbeanstalk-configurationtemplate.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSElasticBeanstalkConfigurationTemplate AWS CloudFormation Resource (AWS::ElasticBeanstalk::ConfigurationTemplate) @@ -46,7 +47,7 @@ type AWSElasticBeanstalkConfigurationTemplate struct { SourceConfiguration *AWSElasticBeanstalkConfigurationTemplate_SourceConfiguration `json:"SourceConfiguration,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSElasticBeanstalkConfigurationTemplate) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticBeanstalkConfigurationTemplate) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticBeanstalkConfigurationTemplate) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSElasticBeanstalkConfigurationTemplate) MarshalJSON() ([]byte, error) return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-elasticbeanstalk-configurationtemplate_configurationoptionsetting.go b/cloudformation/resources/aws-elasticbeanstalk-configurationtemplate_configurationoptionsetting.go similarity index 95% rename from cloudformation/aws-elasticbeanstalk-configurationtemplate_configurationoptionsetting.go rename to cloudformation/resources/aws-elasticbeanstalk-configurationtemplate_configurationoptionsetting.go index fd50342191..78b9fc3f9a 100644 --- a/cloudformation/aws-elasticbeanstalk-configurationtemplate_configurationoptionsetting.go +++ b/cloudformation/resources/aws-elasticbeanstalk-configurationtemplate_configurationoptionsetting.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticBeanstalkConfigurationTemplate_ConfigurationOptionSetting AWS CloudFormation Resource (AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting.html @@ -25,7 +27,7 @@ type AWSElasticBeanstalkConfigurationTemplate_ConfigurationOptionSetting struct Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSElasticBeanstalkConfigurationTemplate_ConfigurationOptionSetting) Se // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticBeanstalkConfigurationTemplate_ConfigurationOptionSetting) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticBeanstalkConfigurationTemplate_ConfigurationOptionSetting) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticbeanstalk-configurationtemplate_sourceconfiguration.go b/cloudformation/resources/aws-elasticbeanstalk-configurationtemplate_sourceconfiguration.go similarity index 94% rename from cloudformation/aws-elasticbeanstalk-configurationtemplate_sourceconfiguration.go rename to cloudformation/resources/aws-elasticbeanstalk-configurationtemplate_sourceconfiguration.go index 53f710566f..6b6f7733df 100644 --- a/cloudformation/aws-elasticbeanstalk-configurationtemplate_sourceconfiguration.go +++ b/cloudformation/resources/aws-elasticbeanstalk-configurationtemplate_sourceconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticBeanstalkConfigurationTemplate_SourceConfiguration AWS CloudFormation Resource (AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-sourceconfiguration.html @@ -15,7 +17,7 @@ type AWSElasticBeanstalkConfigurationTemplate_SourceConfiguration struct { TemplateName string `json:"TemplateName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSElasticBeanstalkConfigurationTemplate_SourceConfiguration) SetMetada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticBeanstalkConfigurationTemplate_SourceConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticBeanstalkConfigurationTemplate_SourceConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticbeanstalk-environment.go b/cloudformation/resources/aws-elasticbeanstalk-environment.go similarity index 94% rename from cloudformation/aws-elasticbeanstalk-environment.go rename to cloudformation/resources/aws-elasticbeanstalk-environment.go index 140ec80f41..38920d8bce 100644 --- a/cloudformation/aws-elasticbeanstalk-environment.go +++ b/cloudformation/resources/aws-elasticbeanstalk-environment.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSElasticBeanstalkEnvironment AWS CloudFormation Resource (AWS::ElasticBeanstalk::Environment) @@ -66,7 +67,7 @@ type AWSElasticBeanstalkEnvironment struct { VersionLabel string `json:"VersionLabel,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -106,7 +107,7 @@ func (r *AWSElasticBeanstalkEnvironment) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticBeanstalkEnvironment) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticBeanstalkEnvironment) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -117,9 +118,9 @@ func (r AWSElasticBeanstalkEnvironment) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-elasticbeanstalk-environment_optionsetting.go b/cloudformation/resources/aws-elasticbeanstalk-environment_optionsetting.go similarity index 95% rename from cloudformation/aws-elasticbeanstalk-environment_optionsetting.go rename to cloudformation/resources/aws-elasticbeanstalk-environment_optionsetting.go index da543ded72..ccf96d0da2 100644 --- a/cloudformation/aws-elasticbeanstalk-environment_optionsetting.go +++ b/cloudformation/resources/aws-elasticbeanstalk-environment_optionsetting.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticBeanstalkEnvironment_OptionSetting AWS CloudFormation Resource (AWS::ElasticBeanstalk::Environment.OptionSetting) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-option-settings.html @@ -25,7 +27,7 @@ type AWSElasticBeanstalkEnvironment_OptionSetting struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSElasticBeanstalkEnvironment_OptionSetting) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticBeanstalkEnvironment_OptionSetting) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticBeanstalkEnvironment_OptionSetting) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticbeanstalk-environment_tier.go b/cloudformation/resources/aws-elasticbeanstalk-environment_tier.go similarity index 94% rename from cloudformation/aws-elasticbeanstalk-environment_tier.go rename to cloudformation/resources/aws-elasticbeanstalk-environment_tier.go index 8ccb1b5cd7..46340dc973 100644 --- a/cloudformation/aws-elasticbeanstalk-environment_tier.go +++ b/cloudformation/resources/aws-elasticbeanstalk-environment_tier.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticBeanstalkEnvironment_Tier AWS CloudFormation Resource (AWS::ElasticBeanstalk::Environment.Tier) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment-tier.html @@ -20,7 +22,7 @@ type AWSElasticBeanstalkEnvironment_Tier struct { Version string `json:"Version,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSElasticBeanstalkEnvironment_Tier) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticBeanstalkEnvironment_Tier) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticBeanstalkEnvironment_Tier) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancing-loadbalancer.go b/cloudformation/resources/aws-elasticloadbalancing-loadbalancer.go similarity index 95% rename from cloudformation/aws-elasticloadbalancing-loadbalancer.go rename to cloudformation/resources/aws-elasticloadbalancing-loadbalancer.go index ccdc654cc7..b6882d4730 100644 --- a/cloudformation/aws-elasticloadbalancing-loadbalancer.go +++ b/cloudformation/resources/aws-elasticloadbalancing-loadbalancer.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSElasticLoadBalancingLoadBalancer AWS CloudFormation Resource (AWS::ElasticLoadBalancing::LoadBalancer) @@ -91,7 +92,7 @@ type AWSElasticLoadBalancingLoadBalancer struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -131,7 +132,7 @@ func (r *AWSElasticLoadBalancingLoadBalancer) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingLoadBalancer) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingLoadBalancer) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -142,9 +143,9 @@ func (r AWSElasticLoadBalancingLoadBalancer) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-elasticloadbalancing-loadbalancer_accessloggingpolicy.go b/cloudformation/resources/aws-elasticloadbalancing-loadbalancer_accessloggingpolicy.go similarity index 95% rename from cloudformation/aws-elasticloadbalancing-loadbalancer_accessloggingpolicy.go rename to cloudformation/resources/aws-elasticloadbalancing-loadbalancer_accessloggingpolicy.go index 0f2e91b779..ddaba61484 100644 --- a/cloudformation/aws-elasticloadbalancing-loadbalancer_accessloggingpolicy.go +++ b/cloudformation/resources/aws-elasticloadbalancing-loadbalancer_accessloggingpolicy.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingLoadBalancer_AccessLoggingPolicy AWS CloudFormation Resource (AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-accessloggingpolicy.html @@ -25,7 +27,7 @@ type AWSElasticLoadBalancingLoadBalancer_AccessLoggingPolicy struct { S3BucketPrefix string `json:"S3BucketPrefix,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSElasticLoadBalancingLoadBalancer_AccessLoggingPolicy) SetMetadata(me // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingLoadBalancer_AccessLoggingPolicy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingLoadBalancer_AccessLoggingPolicy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancing-loadbalancer_appcookiestickinesspolicy.go b/cloudformation/resources/aws-elasticloadbalancing-loadbalancer_appcookiestickinesspolicy.go similarity index 94% rename from cloudformation/aws-elasticloadbalancing-loadbalancer_appcookiestickinesspolicy.go rename to cloudformation/resources/aws-elasticloadbalancing-loadbalancer_appcookiestickinesspolicy.go index ea2762d450..b05234ca88 100644 --- a/cloudformation/aws-elasticloadbalancing-loadbalancer_appcookiestickinesspolicy.go +++ b/cloudformation/resources/aws-elasticloadbalancing-loadbalancer_appcookiestickinesspolicy.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingLoadBalancer_AppCookieStickinessPolicy AWS CloudFormation Resource (AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-AppCookieStickinessPolicy.html @@ -15,7 +17,7 @@ type AWSElasticLoadBalancingLoadBalancer_AppCookieStickinessPolicy struct { PolicyName string `json:"PolicyName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSElasticLoadBalancingLoadBalancer_AppCookieStickinessPolicy) SetMetad // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingLoadBalancer_AppCookieStickinessPolicy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingLoadBalancer_AppCookieStickinessPolicy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancing-loadbalancer_connectiondrainingpolicy.go b/cloudformation/resources/aws-elasticloadbalancing-loadbalancer_connectiondrainingpolicy.go similarity index 94% rename from cloudformation/aws-elasticloadbalancing-loadbalancer_connectiondrainingpolicy.go rename to cloudformation/resources/aws-elasticloadbalancing-loadbalancer_connectiondrainingpolicy.go index 40c5f2d0d9..132ec698c5 100644 --- a/cloudformation/aws-elasticloadbalancing-loadbalancer_connectiondrainingpolicy.go +++ b/cloudformation/resources/aws-elasticloadbalancing-loadbalancer_connectiondrainingpolicy.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingLoadBalancer_ConnectionDrainingPolicy AWS CloudFormation Resource (AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectiondrainingpolicy.html @@ -15,7 +17,7 @@ type AWSElasticLoadBalancingLoadBalancer_ConnectionDrainingPolicy struct { Timeout int `json:"Timeout,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSElasticLoadBalancingLoadBalancer_ConnectionDrainingPolicy) SetMetada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingLoadBalancer_ConnectionDrainingPolicy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingLoadBalancer_ConnectionDrainingPolicy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancing-loadbalancer_connectionsettings.go b/cloudformation/resources/aws-elasticloadbalancing-loadbalancer_connectionsettings.go similarity index 93% rename from cloudformation/aws-elasticloadbalancing-loadbalancer_connectionsettings.go rename to cloudformation/resources/aws-elasticloadbalancing-loadbalancer_connectionsettings.go index 98e69e6979..2be4b86ee8 100644 --- a/cloudformation/aws-elasticloadbalancing-loadbalancer_connectionsettings.go +++ b/cloudformation/resources/aws-elasticloadbalancing-loadbalancer_connectionsettings.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingLoadBalancer_ConnectionSettings AWS CloudFormation Resource (AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectionsettings.html @@ -10,7 +12,7 @@ type AWSElasticLoadBalancingLoadBalancer_ConnectionSettings struct { IdleTimeout int `json:"IdleTimeout"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSElasticLoadBalancingLoadBalancer_ConnectionSettings) SetMetadata(met // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingLoadBalancer_ConnectionSettings) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingLoadBalancer_ConnectionSettings) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancing-loadbalancer_healthcheck.go b/cloudformation/resources/aws-elasticloadbalancing-loadbalancer_healthcheck.go similarity index 95% rename from cloudformation/aws-elasticloadbalancing-loadbalancer_healthcheck.go rename to cloudformation/resources/aws-elasticloadbalancing-loadbalancer_healthcheck.go index 5394c91971..1ac6e50d38 100644 --- a/cloudformation/aws-elasticloadbalancing-loadbalancer_healthcheck.go +++ b/cloudformation/resources/aws-elasticloadbalancing-loadbalancer_healthcheck.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingLoadBalancer_HealthCheck AWS CloudFormation Resource (AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-health-check.html @@ -30,7 +32,7 @@ type AWSElasticLoadBalancingLoadBalancer_HealthCheck struct { UnhealthyThreshold string `json:"UnhealthyThreshold,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSElasticLoadBalancingLoadBalancer_HealthCheck) SetMetadata(metadata m // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingLoadBalancer_HealthCheck) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingLoadBalancer_HealthCheck) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancing-loadbalancer_lbcookiestickinesspolicy.go b/cloudformation/resources/aws-elasticloadbalancing-loadbalancer_lbcookiestickinesspolicy.go similarity index 94% rename from cloudformation/aws-elasticloadbalancing-loadbalancer_lbcookiestickinesspolicy.go rename to cloudformation/resources/aws-elasticloadbalancing-loadbalancer_lbcookiestickinesspolicy.go index f4c855ca15..f84e36eb1d 100644 --- a/cloudformation/aws-elasticloadbalancing-loadbalancer_lbcookiestickinesspolicy.go +++ b/cloudformation/resources/aws-elasticloadbalancing-loadbalancer_lbcookiestickinesspolicy.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingLoadBalancer_LBCookieStickinessPolicy AWS CloudFormation Resource (AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-LBCookieStickinessPolicy.html @@ -15,7 +17,7 @@ type AWSElasticLoadBalancingLoadBalancer_LBCookieStickinessPolicy struct { PolicyName string `json:"PolicyName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSElasticLoadBalancingLoadBalancer_LBCookieStickinessPolicy) SetMetada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingLoadBalancer_LBCookieStickinessPolicy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingLoadBalancer_LBCookieStickinessPolicy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancing-loadbalancer_listeners.go b/cloudformation/resources/aws-elasticloadbalancing-loadbalancer_listeners.go similarity index 95% rename from cloudformation/aws-elasticloadbalancing-loadbalancer_listeners.go rename to cloudformation/resources/aws-elasticloadbalancing-loadbalancer_listeners.go index f267d89f77..6e7286ac71 100644 --- a/cloudformation/aws-elasticloadbalancing-loadbalancer_listeners.go +++ b/cloudformation/resources/aws-elasticloadbalancing-loadbalancer_listeners.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingLoadBalancer_Listeners AWS CloudFormation Resource (AWS::ElasticLoadBalancing::LoadBalancer.Listeners) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html @@ -35,7 +37,7 @@ type AWSElasticLoadBalancingLoadBalancer_Listeners struct { SSLCertificateId string `json:"SSLCertificateId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSElasticLoadBalancingLoadBalancer_Listeners) SetMetadata(metadata map // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingLoadBalancer_Listeners) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingLoadBalancer_Listeners) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancing-loadbalancer_policies.go b/cloudformation/resources/aws-elasticloadbalancing-loadbalancer_policies.go similarity index 95% rename from cloudformation/aws-elasticloadbalancing-loadbalancer_policies.go rename to cloudformation/resources/aws-elasticloadbalancing-loadbalancer_policies.go index ff372bbd5c..2953d5be14 100644 --- a/cloudformation/aws-elasticloadbalancing-loadbalancer_policies.go +++ b/cloudformation/resources/aws-elasticloadbalancing-loadbalancer_policies.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingLoadBalancer_Policies AWS CloudFormation Resource (AWS::ElasticLoadBalancing::LoadBalancer.Policies) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-policy.html @@ -30,7 +32,7 @@ type AWSElasticLoadBalancingLoadBalancer_Policies struct { PolicyType string `json:"PolicyType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSElasticLoadBalancingLoadBalancer_Policies) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingLoadBalancer_Policies) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingLoadBalancer_Policies) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancingv2-listener.go b/cloudformation/resources/aws-elasticloadbalancingv2-listener.go similarity index 93% rename from cloudformation/aws-elasticloadbalancingv2-listener.go rename to cloudformation/resources/aws-elasticloadbalancingv2-listener.go index e940026ca3..bdf137768e 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listener.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-listener.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSElasticLoadBalancingV2Listener AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::Listener) @@ -41,7 +42,7 @@ type AWSElasticLoadBalancingV2Listener struct { SslPolicy string `json:"SslPolicy,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -81,7 +82,7 @@ func (r *AWSElasticLoadBalancingV2Listener) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2Listener) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2Listener) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -92,9 +93,9 @@ func (r AWSElasticLoadBalancingV2Listener) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-elasticloadbalancingv2-listener_action.go b/cloudformation/resources/aws-elasticloadbalancingv2-listener_action.go similarity index 96% rename from cloudformation/aws-elasticloadbalancingv2-listener_action.go rename to cloudformation/resources/aws-elasticloadbalancingv2-listener_action.go index 2ac77fe1f0..62345288ea 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listener_action.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-listener_action.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingV2Listener_Action AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::Listener.Action) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-defaultactions.html @@ -40,7 +42,7 @@ type AWSElasticLoadBalancingV2Listener_Action struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -80,6 +82,6 @@ func (r *AWSElasticLoadBalancingV2Listener_Action) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2Listener_Action) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2Listener_Action) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancingv2-listener_authenticatecognitoconfig.go b/cloudformation/resources/aws-elasticloadbalancingv2-listener_authenticatecognitoconfig.go similarity index 96% rename from cloudformation/aws-elasticloadbalancingv2-listener_authenticatecognitoconfig.go rename to cloudformation/resources/aws-elasticloadbalancingv2-listener_authenticatecognitoconfig.go index 5d05f4024e..a7b31fb256 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listener_authenticatecognitoconfig.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-listener_authenticatecognitoconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingV2Listener_AuthenticateCognitoConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticatecognitoconfig.html @@ -45,7 +47,7 @@ type AWSElasticLoadBalancingV2Listener_AuthenticateCognitoConfig struct { UserPoolDomain string `json:"UserPoolDomain,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -85,6 +87,6 @@ func (r *AWSElasticLoadBalancingV2Listener_AuthenticateCognitoConfig) SetMetadat // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2Listener_AuthenticateCognitoConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2Listener_AuthenticateCognitoConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancingv2-listener_authenticateoidcconfig.go b/cloudformation/resources/aws-elasticloadbalancingv2-listener_authenticateoidcconfig.go similarity index 97% rename from cloudformation/aws-elasticloadbalancingv2-listener_authenticateoidcconfig.go rename to cloudformation/resources/aws-elasticloadbalancingv2-listener_authenticateoidcconfig.go index 9c4f40aa77..81f702d176 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listener_authenticateoidcconfig.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-listener_authenticateoidcconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingV2Listener_AuthenticateOidcConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticateoidcconfig.html @@ -60,7 +62,7 @@ type AWSElasticLoadBalancingV2Listener_AuthenticateOidcConfig struct { UserInfoEndpoint string `json:"UserInfoEndpoint,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -100,6 +102,6 @@ func (r *AWSElasticLoadBalancingV2Listener_AuthenticateOidcConfig) SetMetadata(m // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2Listener_AuthenticateOidcConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2Listener_AuthenticateOidcConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancingv2-listener_certificate.go b/cloudformation/resources/aws-elasticloadbalancingv2-listener_certificate.go similarity index 93% rename from cloudformation/aws-elasticloadbalancingv2-listener_certificate.go rename to cloudformation/resources/aws-elasticloadbalancingv2-listener_certificate.go index a5c1c9f6ec..8eda80c4e9 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listener_certificate.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-listener_certificate.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingV2Listener_Certificate AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::Listener.Certificate) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-certificates.html @@ -10,7 +12,7 @@ type AWSElasticLoadBalancingV2Listener_Certificate struct { CertificateArn string `json:"CertificateArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSElasticLoadBalancingV2Listener_Certificate) SetMetadata(metadata map // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2Listener_Certificate) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2Listener_Certificate) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancingv2-listener_fixedresponseconfig.go b/cloudformation/resources/aws-elasticloadbalancingv2-listener_fixedresponseconfig.go similarity index 94% rename from cloudformation/aws-elasticloadbalancingv2-listener_fixedresponseconfig.go rename to cloudformation/resources/aws-elasticloadbalancingv2-listener_fixedresponseconfig.go index 72f4114455..09bc676fe2 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listener_fixedresponseconfig.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-listener_fixedresponseconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingV2Listener_FixedResponseConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-fixedresponseconfig.html @@ -20,7 +22,7 @@ type AWSElasticLoadBalancingV2Listener_FixedResponseConfig struct { StatusCode string `json:"StatusCode,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSElasticLoadBalancingV2Listener_FixedResponseConfig) SetMetadata(meta // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2Listener_FixedResponseConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2Listener_FixedResponseConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancingv2-listener_redirectconfig.go b/cloudformation/resources/aws-elasticloadbalancingv2-listener_redirectconfig.go similarity index 95% rename from cloudformation/aws-elasticloadbalancingv2-listener_redirectconfig.go rename to cloudformation/resources/aws-elasticloadbalancingv2-listener_redirectconfig.go index 515bde15b7..eaec45fba7 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listener_redirectconfig.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-listener_redirectconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingV2Listener_RedirectConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::Listener.RedirectConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-redirectconfig.html @@ -35,7 +37,7 @@ type AWSElasticLoadBalancingV2Listener_RedirectConfig struct { StatusCode string `json:"StatusCode,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSElasticLoadBalancingV2Listener_RedirectConfig) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2Listener_RedirectConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2Listener_RedirectConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancingv2-listenercertificate.go b/cloudformation/resources/aws-elasticloadbalancingv2-listenercertificate.go similarity index 92% rename from cloudformation/aws-elasticloadbalancingv2-listenercertificate.go rename to cloudformation/resources/aws-elasticloadbalancingv2-listenercertificate.go index a745ee6aa2..3e6d50edee 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listenercertificate.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-listenercertificate.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSElasticLoadBalancingV2ListenerCertificate AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerCertificate) @@ -21,7 +22,7 @@ type AWSElasticLoadBalancingV2ListenerCertificate struct { ListenerArn string `json:"ListenerArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSElasticLoadBalancingV2ListenerCertificate) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2ListenerCertificate) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2ListenerCertificate) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSElasticLoadBalancingV2ListenerCertificate) MarshalJSON() ([]byte, err return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-elasticloadbalancingv2-listenercertificate_certificate.go b/cloudformation/resources/aws-elasticloadbalancingv2-listenercertificate_certificate.go similarity index 93% rename from cloudformation/aws-elasticloadbalancingv2-listenercertificate_certificate.go rename to cloudformation/resources/aws-elasticloadbalancingv2-listenercertificate_certificate.go index ecf6233176..43ed791257 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listenercertificate_certificate.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-listenercertificate_certificate.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingV2ListenerCertificate_Certificate AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-certificates.html @@ -10,7 +12,7 @@ type AWSElasticLoadBalancingV2ListenerCertificate_Certificate struct { CertificateArn string `json:"CertificateArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSElasticLoadBalancingV2ListenerCertificate_Certificate) SetMetadata(m // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2ListenerCertificate_Certificate) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2ListenerCertificate_Certificate) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancingv2-listenerrule.go b/cloudformation/resources/aws-elasticloadbalancingv2-listenerrule.go similarity index 93% rename from cloudformation/aws-elasticloadbalancingv2-listenerrule.go rename to cloudformation/resources/aws-elasticloadbalancingv2-listenerrule.go index 717978b0f6..ab9297df69 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listenerrule.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-listenerrule.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSElasticLoadBalancingV2ListenerRule AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule) @@ -31,7 +32,7 @@ type AWSElasticLoadBalancingV2ListenerRule struct { Priority int `json:"Priority"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSElasticLoadBalancingV2ListenerRule) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2ListenerRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2ListenerRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSElasticLoadBalancingV2ListenerRule) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-elasticloadbalancingv2-listenerrule_action.go b/cloudformation/resources/aws-elasticloadbalancingv2-listenerrule_action.go similarity index 96% rename from cloudformation/aws-elasticloadbalancingv2-listenerrule_action.go rename to cloudformation/resources/aws-elasticloadbalancingv2-listenerrule_action.go index f490bd3276..eeac342448 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listenerrule_action.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-listenerrule_action.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingV2ListenerRule_Action AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule.Action) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-actions.html @@ -40,7 +42,7 @@ type AWSElasticLoadBalancingV2ListenerRule_Action struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -80,6 +82,6 @@ func (r *AWSElasticLoadBalancingV2ListenerRule_Action) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2ListenerRule_Action) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2ListenerRule_Action) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancingv2-listenerrule_authenticatecognitoconfig.go b/cloudformation/resources/aws-elasticloadbalancingv2-listenerrule_authenticatecognitoconfig.go similarity index 96% rename from cloudformation/aws-elasticloadbalancingv2-listenerrule_authenticatecognitoconfig.go rename to cloudformation/resources/aws-elasticloadbalancingv2-listenerrule_authenticatecognitoconfig.go index 02c56ce382..bb888cf959 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listenerrule_authenticatecognitoconfig.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-listenerrule_authenticatecognitoconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingV2ListenerRule_AuthenticateCognitoConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticatecognitoconfig.html @@ -45,7 +47,7 @@ type AWSElasticLoadBalancingV2ListenerRule_AuthenticateCognitoConfig struct { UserPoolDomain string `json:"UserPoolDomain,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -85,6 +87,6 @@ func (r *AWSElasticLoadBalancingV2ListenerRule_AuthenticateCognitoConfig) SetMet // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2ListenerRule_AuthenticateCognitoConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2ListenerRule_AuthenticateCognitoConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancingv2-listenerrule_authenticateoidcconfig.go b/cloudformation/resources/aws-elasticloadbalancingv2-listenerrule_authenticateoidcconfig.go similarity index 97% rename from cloudformation/aws-elasticloadbalancingv2-listenerrule_authenticateoidcconfig.go rename to cloudformation/resources/aws-elasticloadbalancingv2-listenerrule_authenticateoidcconfig.go index 616c7ca032..49a1d127ca 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listenerrule_authenticateoidcconfig.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-listenerrule_authenticateoidcconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingV2ListenerRule_AuthenticateOidcConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticateoidcconfig.html @@ -60,7 +62,7 @@ type AWSElasticLoadBalancingV2ListenerRule_AuthenticateOidcConfig struct { UserInfoEndpoint string `json:"UserInfoEndpoint,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -100,6 +102,6 @@ func (r *AWSElasticLoadBalancingV2ListenerRule_AuthenticateOidcConfig) SetMetada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2ListenerRule_AuthenticateOidcConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2ListenerRule_AuthenticateOidcConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancingv2-listenerrule_fixedresponseconfig.go b/cloudformation/resources/aws-elasticloadbalancingv2-listenerrule_fixedresponseconfig.go similarity index 94% rename from cloudformation/aws-elasticloadbalancingv2-listenerrule_fixedresponseconfig.go rename to cloudformation/resources/aws-elasticloadbalancingv2-listenerrule_fixedresponseconfig.go index 00a9830096..7443b4f4c5 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listenerrule_fixedresponseconfig.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-listenerrule_fixedresponseconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingV2ListenerRule_FixedResponseConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-fixedresponseconfig.html @@ -20,7 +22,7 @@ type AWSElasticLoadBalancingV2ListenerRule_FixedResponseConfig struct { StatusCode string `json:"StatusCode,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSElasticLoadBalancingV2ListenerRule_FixedResponseConfig) SetMetadata( // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2ListenerRule_FixedResponseConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2ListenerRule_FixedResponseConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancingv2-listenerrule_redirectconfig.go b/cloudformation/resources/aws-elasticloadbalancingv2-listenerrule_redirectconfig.go similarity index 95% rename from cloudformation/aws-elasticloadbalancingv2-listenerrule_redirectconfig.go rename to cloudformation/resources/aws-elasticloadbalancingv2-listenerrule_redirectconfig.go index 58c645a7fc..d1b769e942 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listenerrule_redirectconfig.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-listenerrule_redirectconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingV2ListenerRule_RedirectConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-redirectconfig.html @@ -35,7 +37,7 @@ type AWSElasticLoadBalancingV2ListenerRule_RedirectConfig struct { StatusCode string `json:"StatusCode,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSElasticLoadBalancingV2ListenerRule_RedirectConfig) SetMetadata(metad // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2ListenerRule_RedirectConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2ListenerRule_RedirectConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancingv2-listenerrule_rulecondition.go b/cloudformation/resources/aws-elasticloadbalancingv2-listenerrule_rulecondition.go similarity index 94% rename from cloudformation/aws-elasticloadbalancingv2-listenerrule_rulecondition.go rename to cloudformation/resources/aws-elasticloadbalancingv2-listenerrule_rulecondition.go index 4988df3ea2..3bbb283615 100644 --- a/cloudformation/aws-elasticloadbalancingv2-listenerrule_rulecondition.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-listenerrule_rulecondition.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingV2ListenerRule_RuleCondition AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-conditions.html @@ -15,7 +17,7 @@ type AWSElasticLoadBalancingV2ListenerRule_RuleCondition struct { Values []string `json:"Values,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSElasticLoadBalancingV2ListenerRule_RuleCondition) SetMetadata(metada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2ListenerRule_RuleCondition) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2ListenerRule_RuleCondition) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancingv2-loadbalancer.go b/cloudformation/resources/aws-elasticloadbalancingv2-loadbalancer.go similarity index 94% rename from cloudformation/aws-elasticloadbalancingv2-loadbalancer.go rename to cloudformation/resources/aws-elasticloadbalancingv2-loadbalancer.go index 8ba3b335de..158e24085f 100644 --- a/cloudformation/aws-elasticloadbalancingv2-loadbalancer.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-loadbalancer.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSElasticLoadBalancingV2LoadBalancer AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::LoadBalancer) @@ -56,7 +57,7 @@ type AWSElasticLoadBalancingV2LoadBalancer struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -96,7 +97,7 @@ func (r *AWSElasticLoadBalancingV2LoadBalancer) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2LoadBalancer) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2LoadBalancer) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -107,9 +108,9 @@ func (r AWSElasticLoadBalancingV2LoadBalancer) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-elasticloadbalancingv2-loadbalancer_loadbalancerattribute.go b/cloudformation/resources/aws-elasticloadbalancingv2-loadbalancer_loadbalancerattribute.go similarity index 94% rename from cloudformation/aws-elasticloadbalancingv2-loadbalancer_loadbalancerattribute.go rename to cloudformation/resources/aws-elasticloadbalancingv2-loadbalancer_loadbalancerattribute.go index 6d3af155ee..0f0bdd9648 100644 --- a/cloudformation/aws-elasticloadbalancingv2-loadbalancer_loadbalancerattribute.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-loadbalancer_loadbalancerattribute.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingV2LoadBalancer_LoadBalancerAttribute AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattributes.html @@ -15,7 +17,7 @@ type AWSElasticLoadBalancingV2LoadBalancer_LoadBalancerAttribute struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSElasticLoadBalancingV2LoadBalancer_LoadBalancerAttribute) SetMetadat // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2LoadBalancer_LoadBalancerAttribute) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2LoadBalancer_LoadBalancerAttribute) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancingv2-loadbalancer_subnetmapping.go b/cloudformation/resources/aws-elasticloadbalancingv2-loadbalancer_subnetmapping.go similarity index 94% rename from cloudformation/aws-elasticloadbalancingv2-loadbalancer_subnetmapping.go rename to cloudformation/resources/aws-elasticloadbalancingv2-loadbalancer_subnetmapping.go index 74518be7c6..7b578526e8 100644 --- a/cloudformation/aws-elasticloadbalancingv2-loadbalancer_subnetmapping.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-loadbalancer_subnetmapping.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingV2LoadBalancer_SubnetMapping AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html @@ -15,7 +17,7 @@ type AWSElasticLoadBalancingV2LoadBalancer_SubnetMapping struct { SubnetId string `json:"SubnetId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSElasticLoadBalancingV2LoadBalancer_SubnetMapping) SetMetadata(metada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2LoadBalancer_SubnetMapping) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2LoadBalancer_SubnetMapping) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancingv2-targetgroup.go b/cloudformation/resources/aws-elasticloadbalancingv2-targetgroup.go similarity index 96% rename from cloudformation/aws-elasticloadbalancingv2-targetgroup.go rename to cloudformation/resources/aws-elasticloadbalancingv2-targetgroup.go index d6dbe4b2a2..cf96dc5a4a 100644 --- a/cloudformation/aws-elasticloadbalancingv2-targetgroup.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-targetgroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSElasticLoadBalancingV2TargetGroup AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::TargetGroup) @@ -96,7 +97,7 @@ type AWSElasticLoadBalancingV2TargetGroup struct { VpcId string `json:"VpcId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -136,7 +137,7 @@ func (r *AWSElasticLoadBalancingV2TargetGroup) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2TargetGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2TargetGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -147,9 +148,9 @@ func (r AWSElasticLoadBalancingV2TargetGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-elasticloadbalancingv2-targetgroup_matcher.go b/cloudformation/resources/aws-elasticloadbalancingv2-targetgroup_matcher.go similarity index 93% rename from cloudformation/aws-elasticloadbalancingv2-targetgroup_matcher.go rename to cloudformation/resources/aws-elasticloadbalancingv2-targetgroup_matcher.go index af784226ff..51fff35e0b 100644 --- a/cloudformation/aws-elasticloadbalancingv2-targetgroup_matcher.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-targetgroup_matcher.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingV2TargetGroup_Matcher AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::TargetGroup.Matcher) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-matcher.html @@ -10,7 +12,7 @@ type AWSElasticLoadBalancingV2TargetGroup_Matcher struct { HttpCode string `json:"HttpCode,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSElasticLoadBalancingV2TargetGroup_Matcher) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2TargetGroup_Matcher) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2TargetGroup_Matcher) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancingv2-targetgroup_targetdescription.go b/cloudformation/resources/aws-elasticloadbalancingv2-targetgroup_targetdescription.go similarity index 94% rename from cloudformation/aws-elasticloadbalancingv2-targetgroup_targetdescription.go rename to cloudformation/resources/aws-elasticloadbalancingv2-targetgroup_targetdescription.go index 0107a94100..ac986c981d 100644 --- a/cloudformation/aws-elasticloadbalancingv2-targetgroup_targetdescription.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-targetgroup_targetdescription.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingV2TargetGroup_TargetDescription AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetdescription.html @@ -20,7 +22,7 @@ type AWSElasticLoadBalancingV2TargetGroup_TargetDescription struct { Port int `json:"Port,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSElasticLoadBalancingV2TargetGroup_TargetDescription) SetMetadata(met // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2TargetGroup_TargetDescription) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2TargetGroup_TargetDescription) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticloadbalancingv2-targetgroup_targetgroupattribute.go b/cloudformation/resources/aws-elasticloadbalancingv2-targetgroup_targetgroupattribute.go similarity index 94% rename from cloudformation/aws-elasticloadbalancingv2-targetgroup_targetgroupattribute.go rename to cloudformation/resources/aws-elasticloadbalancingv2-targetgroup_targetgroupattribute.go index ea9dad0db6..1048a569f1 100644 --- a/cloudformation/aws-elasticloadbalancingv2-targetgroup_targetgroupattribute.go +++ b/cloudformation/resources/aws-elasticloadbalancingv2-targetgroup_targetgroupattribute.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticLoadBalancingV2TargetGroup_TargetGroupAttribute AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetgroupattribute.html @@ -15,7 +17,7 @@ type AWSElasticLoadBalancingV2TargetGroup_TargetGroupAttribute struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSElasticLoadBalancingV2TargetGroup_TargetGroupAttribute) SetMetadata( // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticLoadBalancingV2TargetGroup_TargetGroupAttribute) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticLoadBalancingV2TargetGroup_TargetGroupAttribute) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticsearch-domain.go b/cloudformation/resources/aws-elasticsearch-domain.go similarity index 94% rename from cloudformation/aws-elasticsearch-domain.go rename to cloudformation/resources/aws-elasticsearch-domain.go index a3cc9579a9..8021426b8c 100644 --- a/cloudformation/aws-elasticsearch-domain.go +++ b/cloudformation/resources/aws-elasticsearch-domain.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSElasticsearchDomain AWS CloudFormation Resource (AWS::Elasticsearch::Domain) @@ -66,7 +67,7 @@ type AWSElasticsearchDomain struct { VPCOptions *AWSElasticsearchDomain_VPCOptions `json:"VPCOptions,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -106,7 +107,7 @@ func (r *AWSElasticsearchDomain) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticsearchDomain) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticsearchDomain) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -117,9 +118,9 @@ func (r AWSElasticsearchDomain) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-elasticsearch-domain_ebsoptions.go b/cloudformation/resources/aws-elasticsearch-domain_ebsoptions.go similarity index 95% rename from cloudformation/aws-elasticsearch-domain_ebsoptions.go rename to cloudformation/resources/aws-elasticsearch-domain_ebsoptions.go index 81d6536d17..7ab1ce4ce9 100644 --- a/cloudformation/aws-elasticsearch-domain_ebsoptions.go +++ b/cloudformation/resources/aws-elasticsearch-domain_ebsoptions.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticsearchDomain_EBSOptions AWS CloudFormation Resource (AWS::Elasticsearch::Domain.EBSOptions) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html @@ -25,7 +27,7 @@ type AWSElasticsearchDomain_EBSOptions struct { VolumeType string `json:"VolumeType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSElasticsearchDomain_EBSOptions) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticsearchDomain_EBSOptions) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticsearchDomain_EBSOptions) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticsearch-domain_elasticsearchclusterconfig.go b/cloudformation/resources/aws-elasticsearch-domain_elasticsearchclusterconfig.go similarity index 96% rename from cloudformation/aws-elasticsearch-domain_elasticsearchclusterconfig.go rename to cloudformation/resources/aws-elasticsearch-domain_elasticsearchclusterconfig.go index 590c118b3e..83f5f151a3 100644 --- a/cloudformation/aws-elasticsearch-domain_elasticsearchclusterconfig.go +++ b/cloudformation/resources/aws-elasticsearch-domain_elasticsearchclusterconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticsearchDomain_ElasticsearchClusterConfig AWS CloudFormation Resource (AWS::Elasticsearch::Domain.ElasticsearchClusterConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html @@ -35,7 +37,7 @@ type AWSElasticsearchDomain_ElasticsearchClusterConfig struct { ZoneAwarenessEnabled bool `json:"ZoneAwarenessEnabled,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSElasticsearchDomain_ElasticsearchClusterConfig) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticsearchDomain_ElasticsearchClusterConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticsearchDomain_ElasticsearchClusterConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticsearch-domain_encryptionatrestoptions.go b/cloudformation/resources/aws-elasticsearch-domain_encryptionatrestoptions.go similarity index 94% rename from cloudformation/aws-elasticsearch-domain_encryptionatrestoptions.go rename to cloudformation/resources/aws-elasticsearch-domain_encryptionatrestoptions.go index 058fd97039..d82a0288f0 100644 --- a/cloudformation/aws-elasticsearch-domain_encryptionatrestoptions.go +++ b/cloudformation/resources/aws-elasticsearch-domain_encryptionatrestoptions.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticsearchDomain_EncryptionAtRestOptions AWS CloudFormation Resource (AWS::Elasticsearch::Domain.EncryptionAtRestOptions) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-encryptionatrestoptions.html @@ -15,7 +17,7 @@ type AWSElasticsearchDomain_EncryptionAtRestOptions struct { KmsKeyId string `json:"KmsKeyId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSElasticsearchDomain_EncryptionAtRestOptions) SetMetadata(metadata ma // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticsearchDomain_EncryptionAtRestOptions) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticsearchDomain_EncryptionAtRestOptions) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticsearch-domain_nodetonodeencryptionoptions.go b/cloudformation/resources/aws-elasticsearch-domain_nodetonodeencryptionoptions.go similarity index 93% rename from cloudformation/aws-elasticsearch-domain_nodetonodeencryptionoptions.go rename to cloudformation/resources/aws-elasticsearch-domain_nodetonodeencryptionoptions.go index 14aeb80f16..511ec57bc5 100644 --- a/cloudformation/aws-elasticsearch-domain_nodetonodeencryptionoptions.go +++ b/cloudformation/resources/aws-elasticsearch-domain_nodetonodeencryptionoptions.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticsearchDomain_NodeToNodeEncryptionOptions AWS CloudFormation Resource (AWS::Elasticsearch::Domain.NodeToNodeEncryptionOptions) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-nodetonodeencryptionoptions.html @@ -10,7 +12,7 @@ type AWSElasticsearchDomain_NodeToNodeEncryptionOptions struct { Enabled bool `json:"Enabled,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSElasticsearchDomain_NodeToNodeEncryptionOptions) SetMetadata(metadat // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticsearchDomain_NodeToNodeEncryptionOptions) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticsearchDomain_NodeToNodeEncryptionOptions) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticsearch-domain_snapshotoptions.go b/cloudformation/resources/aws-elasticsearch-domain_snapshotoptions.go similarity index 94% rename from cloudformation/aws-elasticsearch-domain_snapshotoptions.go rename to cloudformation/resources/aws-elasticsearch-domain_snapshotoptions.go index 3791d2ff50..619491b706 100644 --- a/cloudformation/aws-elasticsearch-domain_snapshotoptions.go +++ b/cloudformation/resources/aws-elasticsearch-domain_snapshotoptions.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticsearchDomain_SnapshotOptions AWS CloudFormation Resource (AWS::Elasticsearch::Domain.SnapshotOptions) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-snapshotoptions.html @@ -10,7 +12,7 @@ type AWSElasticsearchDomain_SnapshotOptions struct { AutomatedSnapshotStartHour int `json:"AutomatedSnapshotStartHour,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSElasticsearchDomain_SnapshotOptions) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticsearchDomain_SnapshotOptions) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticsearchDomain_SnapshotOptions) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-elasticsearch-domain_vpcoptions.go b/cloudformation/resources/aws-elasticsearch-domain_vpcoptions.go similarity index 94% rename from cloudformation/aws-elasticsearch-domain_vpcoptions.go rename to cloudformation/resources/aws-elasticsearch-domain_vpcoptions.go index 5eb160594f..bf7eb20a06 100644 --- a/cloudformation/aws-elasticsearch-domain_vpcoptions.go +++ b/cloudformation/resources/aws-elasticsearch-domain_vpcoptions.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSElasticsearchDomain_VPCOptions AWS CloudFormation Resource (AWS::Elasticsearch::Domain.VPCOptions) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-vpcoptions.html @@ -15,7 +17,7 @@ type AWSElasticsearchDomain_VPCOptions struct { SubnetIds []string `json:"SubnetIds,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSElasticsearchDomain_VPCOptions) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSElasticsearchDomain_VPCOptions) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSElasticsearchDomain_VPCOptions) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster.go b/cloudformation/resources/aws-emr-cluster.go similarity index 95% rename from cloudformation/aws-emr-cluster.go rename to cloudformation/resources/aws-emr-cluster.go index 4a3bf34a1d..5149803aec 100644 --- a/cloudformation/aws-emr-cluster.go +++ b/cloudformation/resources/aws-emr-cluster.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEMRCluster AWS CloudFormation Resource (AWS::EMR::Cluster) @@ -106,7 +107,7 @@ type AWSEMRCluster struct { VisibleToAllUsers bool `json:"VisibleToAllUsers,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -146,7 +147,7 @@ func (r *AWSEMRCluster) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -157,9 +158,9 @@ func (r AWSEMRCluster) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-emr-cluster_application.go b/cloudformation/resources/aws-emr-cluster_application.go similarity index 93% rename from cloudformation/aws-emr-cluster_application.go rename to cloudformation/resources/aws-emr-cluster_application.go index 5e24566dcd..6fa76b2a0a 100644 --- a/cloudformation/aws-emr-cluster_application.go +++ b/cloudformation/resources/aws-emr-cluster_application.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_Application AWS CloudFormation Resource (AWS::EMR::Cluster.Application) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-application.html @@ -25,7 +27,7 @@ type AWSEMRCluster_Application struct { Version string `json:"Version,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSEMRCluster_Application) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_Application) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_Application) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_autoscalingpolicy.go b/cloudformation/resources/aws-emr-cluster_autoscalingpolicy.go similarity index 94% rename from cloudformation/aws-emr-cluster_autoscalingpolicy.go rename to cloudformation/resources/aws-emr-cluster_autoscalingpolicy.go index 75da5b22fc..d232822f30 100644 --- a/cloudformation/aws-emr-cluster_autoscalingpolicy.go +++ b/cloudformation/resources/aws-emr-cluster_autoscalingpolicy.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_AutoScalingPolicy AWS CloudFormation Resource (AWS::EMR::Cluster.AutoScalingPolicy) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-autoscalingpolicy.html @@ -15,7 +17,7 @@ type AWSEMRCluster_AutoScalingPolicy struct { Rules []AWSEMRCluster_ScalingRule `json:"Rules,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEMRCluster_AutoScalingPolicy) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_AutoScalingPolicy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_AutoScalingPolicy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_bootstrapactionconfig.go b/cloudformation/resources/aws-emr-cluster_bootstrapactionconfig.go similarity index 94% rename from cloudformation/aws-emr-cluster_bootstrapactionconfig.go rename to cloudformation/resources/aws-emr-cluster_bootstrapactionconfig.go index 19593de49f..f9eef00bbb 100644 --- a/cloudformation/aws-emr-cluster_bootstrapactionconfig.go +++ b/cloudformation/resources/aws-emr-cluster_bootstrapactionconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_BootstrapActionConfig AWS CloudFormation Resource (AWS::EMR::Cluster.BootstrapActionConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-bootstrapactionconfig.html @@ -15,7 +17,7 @@ type AWSEMRCluster_BootstrapActionConfig struct { ScriptBootstrapAction *AWSEMRCluster_ScriptBootstrapActionConfig `json:"ScriptBootstrapAction,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEMRCluster_BootstrapActionConfig) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_BootstrapActionConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_BootstrapActionConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_cloudwatchalarmdefinition.go b/cloudformation/resources/aws-emr-cluster_cloudwatchalarmdefinition.go similarity index 96% rename from cloudformation/aws-emr-cluster_cloudwatchalarmdefinition.go rename to cloudformation/resources/aws-emr-cluster_cloudwatchalarmdefinition.go index 7009f1b2a8..ffda033178 100644 --- a/cloudformation/aws-emr-cluster_cloudwatchalarmdefinition.go +++ b/cloudformation/resources/aws-emr-cluster_cloudwatchalarmdefinition.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_CloudWatchAlarmDefinition AWS CloudFormation Resource (AWS::EMR::Cluster.CloudWatchAlarmDefinition) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html @@ -50,7 +52,7 @@ type AWSEMRCluster_CloudWatchAlarmDefinition struct { Unit string `json:"Unit,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -90,6 +92,6 @@ func (r *AWSEMRCluster_CloudWatchAlarmDefinition) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_CloudWatchAlarmDefinition) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_CloudWatchAlarmDefinition) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_configuration.go b/cloudformation/resources/aws-emr-cluster_configuration.go similarity index 93% rename from cloudformation/aws-emr-cluster_configuration.go rename to cloudformation/resources/aws-emr-cluster_configuration.go index 7286eea760..37a76a5834 100644 --- a/cloudformation/aws-emr-cluster_configuration.go +++ b/cloudformation/resources/aws-emr-cluster_configuration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_Configuration AWS CloudFormation Resource (AWS::EMR::Cluster.Configuration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-configuration.html @@ -20,7 +22,7 @@ type AWSEMRCluster_Configuration struct { Configurations []AWSEMRCluster_Configuration `json:"Configurations,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSEMRCluster_Configuration) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_Configuration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_Configuration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_ebsblockdeviceconfig.go b/cloudformation/resources/aws-emr-cluster_ebsblockdeviceconfig.go similarity index 94% rename from cloudformation/aws-emr-cluster_ebsblockdeviceconfig.go rename to cloudformation/resources/aws-emr-cluster_ebsblockdeviceconfig.go index 32e6236943..eb61956046 100644 --- a/cloudformation/aws-emr-cluster_ebsblockdeviceconfig.go +++ b/cloudformation/resources/aws-emr-cluster_ebsblockdeviceconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_EbsBlockDeviceConfig AWS CloudFormation Resource (AWS::EMR::Cluster.EbsBlockDeviceConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsblockdeviceconfig.html @@ -15,7 +17,7 @@ type AWSEMRCluster_EbsBlockDeviceConfig struct { VolumesPerInstance int `json:"VolumesPerInstance,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEMRCluster_EbsBlockDeviceConfig) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_EbsBlockDeviceConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_EbsBlockDeviceConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_ebsconfiguration.go b/cloudformation/resources/aws-emr-cluster_ebsconfiguration.go similarity index 94% rename from cloudformation/aws-emr-cluster_ebsconfiguration.go rename to cloudformation/resources/aws-emr-cluster_ebsconfiguration.go index 5faeca227d..a97bbfdab6 100644 --- a/cloudformation/aws-emr-cluster_ebsconfiguration.go +++ b/cloudformation/resources/aws-emr-cluster_ebsconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_EbsConfiguration AWS CloudFormation Resource (AWS::EMR::Cluster.EbsConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsconfiguration.html @@ -15,7 +17,7 @@ type AWSEMRCluster_EbsConfiguration struct { EbsOptimized bool `json:"EbsOptimized,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEMRCluster_EbsConfiguration) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_EbsConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_EbsConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_hadoopjarstepconfig.go b/cloudformation/resources/aws-emr-cluster_hadoopjarstepconfig.go similarity index 95% rename from cloudformation/aws-emr-cluster_hadoopjarstepconfig.go rename to cloudformation/resources/aws-emr-cluster_hadoopjarstepconfig.go index 7a2f950524..79d0b95b5c 100644 --- a/cloudformation/aws-emr-cluster_hadoopjarstepconfig.go +++ b/cloudformation/resources/aws-emr-cluster_hadoopjarstepconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_HadoopJarStepConfig AWS CloudFormation Resource (AWS::EMR::Cluster.HadoopJarStepConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-hadoopjarstepconfig.html @@ -25,7 +27,7 @@ type AWSEMRCluster_HadoopJarStepConfig struct { StepProperties []AWSEMRCluster_KeyValue `json:"StepProperties,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSEMRCluster_HadoopJarStepConfig) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_HadoopJarStepConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_HadoopJarStepConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_instancefleetconfig.go b/cloudformation/resources/aws-emr-cluster_instancefleetconfig.go similarity index 96% rename from cloudformation/aws-emr-cluster_instancefleetconfig.go rename to cloudformation/resources/aws-emr-cluster_instancefleetconfig.go index 3d6c0f67da..1fe1d0fa51 100644 --- a/cloudformation/aws-emr-cluster_instancefleetconfig.go +++ b/cloudformation/resources/aws-emr-cluster_instancefleetconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_InstanceFleetConfig AWS CloudFormation Resource (AWS::EMR::Cluster.InstanceFleetConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetconfig.html @@ -30,7 +32,7 @@ type AWSEMRCluster_InstanceFleetConfig struct { TargetSpotCapacity int `json:"TargetSpotCapacity,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSEMRCluster_InstanceFleetConfig) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_InstanceFleetConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_InstanceFleetConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_instancefleetprovisioningspecifications.go b/cloudformation/resources/aws-emr-cluster_instancefleetprovisioningspecifications.go similarity index 94% rename from cloudformation/aws-emr-cluster_instancefleetprovisioningspecifications.go rename to cloudformation/resources/aws-emr-cluster_instancefleetprovisioningspecifications.go index 3f7618dab7..770e4b7f92 100644 --- a/cloudformation/aws-emr-cluster_instancefleetprovisioningspecifications.go +++ b/cloudformation/resources/aws-emr-cluster_instancefleetprovisioningspecifications.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_InstanceFleetProvisioningSpecifications AWS CloudFormation Resource (AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetprovisioningspecifications.html @@ -10,7 +12,7 @@ type AWSEMRCluster_InstanceFleetProvisioningSpecifications struct { SpotSpecification *AWSEMRCluster_SpotProvisioningSpecification `json:"SpotSpecification,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEMRCluster_InstanceFleetProvisioningSpecifications) SetMetadata(meta // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_InstanceFleetProvisioningSpecifications) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_InstanceFleetProvisioningSpecifications) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_instancegroupconfig.go b/cloudformation/resources/aws-emr-cluster_instancegroupconfig.go similarity index 96% rename from cloudformation/aws-emr-cluster_instancegroupconfig.go rename to cloudformation/resources/aws-emr-cluster_instancegroupconfig.go index 92f963df91..f697e8d2cd 100644 --- a/cloudformation/aws-emr-cluster_instancegroupconfig.go +++ b/cloudformation/resources/aws-emr-cluster_instancegroupconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_InstanceGroupConfig AWS CloudFormation Resource (AWS::EMR::Cluster.InstanceGroupConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html @@ -45,7 +47,7 @@ type AWSEMRCluster_InstanceGroupConfig struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -85,6 +87,6 @@ func (r *AWSEMRCluster_InstanceGroupConfig) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_InstanceGroupConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_InstanceGroupConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_instancetypeconfig.go b/cloudformation/resources/aws-emr-cluster_instancetypeconfig.go similarity index 96% rename from cloudformation/aws-emr-cluster_instancetypeconfig.go rename to cloudformation/resources/aws-emr-cluster_instancetypeconfig.go index 958d57e75a..603d049377 100644 --- a/cloudformation/aws-emr-cluster_instancetypeconfig.go +++ b/cloudformation/resources/aws-emr-cluster_instancetypeconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_InstanceTypeConfig AWS CloudFormation Resource (AWS::EMR::Cluster.InstanceTypeConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancetypeconfig.html @@ -35,7 +37,7 @@ type AWSEMRCluster_InstanceTypeConfig struct { WeightedCapacity int `json:"WeightedCapacity,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSEMRCluster_InstanceTypeConfig) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_InstanceTypeConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_InstanceTypeConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_jobflowinstancesconfig.go b/cloudformation/resources/aws-emr-cluster_jobflowinstancesconfig.go similarity index 97% rename from cloudformation/aws-emr-cluster_jobflowinstancesconfig.go rename to cloudformation/resources/aws-emr-cluster_jobflowinstancesconfig.go index 2703eb6a2f..a85517a79f 100644 --- a/cloudformation/aws-emr-cluster_jobflowinstancesconfig.go +++ b/cloudformation/resources/aws-emr-cluster_jobflowinstancesconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_JobFlowInstancesConfig AWS CloudFormation Resource (AWS::EMR::Cluster.JobFlowInstancesConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html @@ -80,7 +82,7 @@ type AWSEMRCluster_JobFlowInstancesConfig struct { TerminationProtected bool `json:"TerminationProtected,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -120,6 +122,6 @@ func (r *AWSEMRCluster_JobFlowInstancesConfig) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_JobFlowInstancesConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_JobFlowInstancesConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_kerberosattributes.go b/cloudformation/resources/aws-emr-cluster_kerberosattributes.go similarity index 96% rename from cloudformation/aws-emr-cluster_kerberosattributes.go rename to cloudformation/resources/aws-emr-cluster_kerberosattributes.go index 57627382f8..538d2d5741 100644 --- a/cloudformation/aws-emr-cluster_kerberosattributes.go +++ b/cloudformation/resources/aws-emr-cluster_kerberosattributes.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_KerberosAttributes AWS CloudFormation Resource (AWS::EMR::Cluster.KerberosAttributes) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-kerberosattributes.html @@ -30,7 +32,7 @@ type AWSEMRCluster_KerberosAttributes struct { Realm string `json:"Realm,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSEMRCluster_KerberosAttributes) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_KerberosAttributes) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_KerberosAttributes) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_keyvalue.go b/cloudformation/resources/aws-emr-cluster_keyvalue.go similarity index 92% rename from cloudformation/aws-emr-cluster_keyvalue.go rename to cloudformation/resources/aws-emr-cluster_keyvalue.go index 9696733433..98e85c51be 100644 --- a/cloudformation/aws-emr-cluster_keyvalue.go +++ b/cloudformation/resources/aws-emr-cluster_keyvalue.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_KeyValue AWS CloudFormation Resource (AWS::EMR::Cluster.KeyValue) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-keyvalue.html @@ -15,7 +17,7 @@ type AWSEMRCluster_KeyValue struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEMRCluster_KeyValue) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_KeyValue) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_KeyValue) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_metricdimension.go b/cloudformation/resources/aws-emr-cluster_metricdimension.go similarity index 94% rename from cloudformation/aws-emr-cluster_metricdimension.go rename to cloudformation/resources/aws-emr-cluster_metricdimension.go index 97bf5ee61f..2a233446ee 100644 --- a/cloudformation/aws-emr-cluster_metricdimension.go +++ b/cloudformation/resources/aws-emr-cluster_metricdimension.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_MetricDimension AWS CloudFormation Resource (AWS::EMR::Cluster.MetricDimension) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-metricdimension.html @@ -15,7 +17,7 @@ type AWSEMRCluster_MetricDimension struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEMRCluster_MetricDimension) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_MetricDimension) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_MetricDimension) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_placementtype.go b/cloudformation/resources/aws-emr-cluster_placementtype.go similarity index 91% rename from cloudformation/aws-emr-cluster_placementtype.go rename to cloudformation/resources/aws-emr-cluster_placementtype.go index 66dbbc2897..13d9d9cb74 100644 --- a/cloudformation/aws-emr-cluster_placementtype.go +++ b/cloudformation/resources/aws-emr-cluster_placementtype.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_PlacementType AWS CloudFormation Resource (AWS::EMR::Cluster.PlacementType) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-placementtype.html @@ -10,7 +12,7 @@ type AWSEMRCluster_PlacementType struct { AvailabilityZone string `json:"AvailabilityZone,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEMRCluster_PlacementType) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_PlacementType) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_PlacementType) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_scalingaction.go b/cloudformation/resources/aws-emr-cluster_scalingaction.go similarity index 92% rename from cloudformation/aws-emr-cluster_scalingaction.go rename to cloudformation/resources/aws-emr-cluster_scalingaction.go index 2956715545..1ea768c157 100644 --- a/cloudformation/aws-emr-cluster_scalingaction.go +++ b/cloudformation/resources/aws-emr-cluster_scalingaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_ScalingAction AWS CloudFormation Resource (AWS::EMR::Cluster.ScalingAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingaction.html @@ -15,7 +17,7 @@ type AWSEMRCluster_ScalingAction struct { SimpleScalingPolicyConfiguration *AWSEMRCluster_SimpleScalingPolicyConfiguration `json:"SimpleScalingPolicyConfiguration,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEMRCluster_ScalingAction) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_ScalingAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_ScalingAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_scalingconstraints.go b/cloudformation/resources/aws-emr-cluster_scalingconstraints.go similarity index 94% rename from cloudformation/aws-emr-cluster_scalingconstraints.go rename to cloudformation/resources/aws-emr-cluster_scalingconstraints.go index fc16bb613b..908864b40a 100644 --- a/cloudformation/aws-emr-cluster_scalingconstraints.go +++ b/cloudformation/resources/aws-emr-cluster_scalingconstraints.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_ScalingConstraints AWS CloudFormation Resource (AWS::EMR::Cluster.ScalingConstraints) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingconstraints.html @@ -15,7 +17,7 @@ type AWSEMRCluster_ScalingConstraints struct { MinCapacity int `json:"MinCapacity"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEMRCluster_ScalingConstraints) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_ScalingConstraints) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_ScalingConstraints) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_scalingrule.go b/cloudformation/resources/aws-emr-cluster_scalingrule.go similarity index 93% rename from cloudformation/aws-emr-cluster_scalingrule.go rename to cloudformation/resources/aws-emr-cluster_scalingrule.go index f5d0f8a3c1..3830897f14 100644 --- a/cloudformation/aws-emr-cluster_scalingrule.go +++ b/cloudformation/resources/aws-emr-cluster_scalingrule.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_ScalingRule AWS CloudFormation Resource (AWS::EMR::Cluster.ScalingRule) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingrule.html @@ -25,7 +27,7 @@ type AWSEMRCluster_ScalingRule struct { Trigger *AWSEMRCluster_ScalingTrigger `json:"Trigger,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSEMRCluster_ScalingRule) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_ScalingRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_ScalingRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_scalingtrigger.go b/cloudformation/resources/aws-emr-cluster_scalingtrigger.go similarity index 94% rename from cloudformation/aws-emr-cluster_scalingtrigger.go rename to cloudformation/resources/aws-emr-cluster_scalingtrigger.go index 26af803e3d..8d465c6b6d 100644 --- a/cloudformation/aws-emr-cluster_scalingtrigger.go +++ b/cloudformation/resources/aws-emr-cluster_scalingtrigger.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_ScalingTrigger AWS CloudFormation Resource (AWS::EMR::Cluster.ScalingTrigger) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingtrigger.html @@ -10,7 +12,7 @@ type AWSEMRCluster_ScalingTrigger struct { CloudWatchAlarmDefinition *AWSEMRCluster_CloudWatchAlarmDefinition `json:"CloudWatchAlarmDefinition,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEMRCluster_ScalingTrigger) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_ScalingTrigger) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_ScalingTrigger) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_scriptbootstrapactionconfig.go b/cloudformation/resources/aws-emr-cluster_scriptbootstrapactionconfig.go similarity index 94% rename from cloudformation/aws-emr-cluster_scriptbootstrapactionconfig.go rename to cloudformation/resources/aws-emr-cluster_scriptbootstrapactionconfig.go index 51bc7c3bd6..3e376ca6d0 100644 --- a/cloudformation/aws-emr-cluster_scriptbootstrapactionconfig.go +++ b/cloudformation/resources/aws-emr-cluster_scriptbootstrapactionconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_ScriptBootstrapActionConfig AWS CloudFormation Resource (AWS::EMR::Cluster.ScriptBootstrapActionConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scriptbootstrapactionconfig.html @@ -15,7 +17,7 @@ type AWSEMRCluster_ScriptBootstrapActionConfig struct { Path string `json:"Path,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEMRCluster_ScriptBootstrapActionConfig) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_ScriptBootstrapActionConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_ScriptBootstrapActionConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_simplescalingpolicyconfiguration.go b/cloudformation/resources/aws-emr-cluster_simplescalingpolicyconfiguration.go similarity index 95% rename from cloudformation/aws-emr-cluster_simplescalingpolicyconfiguration.go rename to cloudformation/resources/aws-emr-cluster_simplescalingpolicyconfiguration.go index f42695c782..9f85f990db 100644 --- a/cloudformation/aws-emr-cluster_simplescalingpolicyconfiguration.go +++ b/cloudformation/resources/aws-emr-cluster_simplescalingpolicyconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_SimpleScalingPolicyConfiguration AWS CloudFormation Resource (AWS::EMR::Cluster.SimpleScalingPolicyConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-simplescalingpolicyconfiguration.html @@ -20,7 +22,7 @@ type AWSEMRCluster_SimpleScalingPolicyConfiguration struct { ScalingAdjustment int `json:"ScalingAdjustment"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSEMRCluster_SimpleScalingPolicyConfiguration) SetMetadata(metadata ma // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_SimpleScalingPolicyConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_SimpleScalingPolicyConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_spotprovisioningspecification.go b/cloudformation/resources/aws-emr-cluster_spotprovisioningspecification.go similarity index 95% rename from cloudformation/aws-emr-cluster_spotprovisioningspecification.go rename to cloudformation/resources/aws-emr-cluster_spotprovisioningspecification.go index 9bd5d3ffe9..d330dc8cc3 100644 --- a/cloudformation/aws-emr-cluster_spotprovisioningspecification.go +++ b/cloudformation/resources/aws-emr-cluster_spotprovisioningspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_SpotProvisioningSpecification AWS CloudFormation Resource (AWS::EMR::Cluster.SpotProvisioningSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-spotprovisioningspecification.html @@ -20,7 +22,7 @@ type AWSEMRCluster_SpotProvisioningSpecification struct { TimeoutDurationMinutes int `json:"TimeoutDurationMinutes"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSEMRCluster_SpotProvisioningSpecification) SetMetadata(metadata map[s // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_SpotProvisioningSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_SpotProvisioningSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_stepconfig.go b/cloudformation/resources/aws-emr-cluster_stepconfig.go similarity index 93% rename from cloudformation/aws-emr-cluster_stepconfig.go rename to cloudformation/resources/aws-emr-cluster_stepconfig.go index 257e041724..347a5a9596 100644 --- a/cloudformation/aws-emr-cluster_stepconfig.go +++ b/cloudformation/resources/aws-emr-cluster_stepconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_StepConfig AWS CloudFormation Resource (AWS::EMR::Cluster.StepConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-stepconfig.html @@ -20,7 +22,7 @@ type AWSEMRCluster_StepConfig struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSEMRCluster_StepConfig) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_StepConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_StepConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-cluster_volumespecification.go b/cloudformation/resources/aws-emr-cluster_volumespecification.go similarity index 95% rename from cloudformation/aws-emr-cluster_volumespecification.go rename to cloudformation/resources/aws-emr-cluster_volumespecification.go index db3b932f0f..bf68f7aebc 100644 --- a/cloudformation/aws-emr-cluster_volumespecification.go +++ b/cloudformation/resources/aws-emr-cluster_volumespecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRCluster_VolumeSpecification AWS CloudFormation Resource (AWS::EMR::Cluster.VolumeSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-volumespecification.html @@ -20,7 +22,7 @@ type AWSEMRCluster_VolumeSpecification struct { VolumeType string `json:"VolumeType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSEMRCluster_VolumeSpecification) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRCluster_VolumeSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRCluster_VolumeSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-instancefleetconfig.go b/cloudformation/resources/aws-emr-instancefleetconfig.go similarity index 93% rename from cloudformation/aws-emr-instancefleetconfig.go rename to cloudformation/resources/aws-emr-instancefleetconfig.go index b192ecb824..f4147960c2 100644 --- a/cloudformation/aws-emr-instancefleetconfig.go +++ b/cloudformation/resources/aws-emr-instancefleetconfig.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEMRInstanceFleetConfig AWS CloudFormation Resource (AWS::EMR::InstanceFleetConfig) @@ -46,7 +47,7 @@ type AWSEMRInstanceFleetConfig struct { TargetSpotCapacity int `json:"TargetSpotCapacity,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSEMRInstanceFleetConfig) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRInstanceFleetConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRInstanceFleetConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSEMRInstanceFleetConfig) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-emr-instancefleetconfig_configuration.go b/cloudformation/resources/aws-emr-instancefleetconfig_configuration.go similarity index 95% rename from cloudformation/aws-emr-instancefleetconfig_configuration.go rename to cloudformation/resources/aws-emr-instancefleetconfig_configuration.go index d792d6cebd..3767ae58db 100644 --- a/cloudformation/aws-emr-instancefleetconfig_configuration.go +++ b/cloudformation/resources/aws-emr-instancefleetconfig_configuration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRInstanceFleetConfig_Configuration AWS CloudFormation Resource (AWS::EMR::InstanceFleetConfig.Configuration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-configuration.html @@ -20,7 +22,7 @@ type AWSEMRInstanceFleetConfig_Configuration struct { Configurations []AWSEMRInstanceFleetConfig_Configuration `json:"Configurations,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSEMRInstanceFleetConfig_Configuration) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRInstanceFleetConfig_Configuration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRInstanceFleetConfig_Configuration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-instancefleetconfig_ebsblockdeviceconfig.go b/cloudformation/resources/aws-emr-instancefleetconfig_ebsblockdeviceconfig.go similarity index 94% rename from cloudformation/aws-emr-instancefleetconfig_ebsblockdeviceconfig.go rename to cloudformation/resources/aws-emr-instancefleetconfig_ebsblockdeviceconfig.go index 8126d00273..0ba7c6f19a 100644 --- a/cloudformation/aws-emr-instancefleetconfig_ebsblockdeviceconfig.go +++ b/cloudformation/resources/aws-emr-instancefleetconfig_ebsblockdeviceconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRInstanceFleetConfig_EbsBlockDeviceConfig AWS CloudFormation Resource (AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ebsblockdeviceconfig.html @@ -15,7 +17,7 @@ type AWSEMRInstanceFleetConfig_EbsBlockDeviceConfig struct { VolumesPerInstance int `json:"VolumesPerInstance,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEMRInstanceFleetConfig_EbsBlockDeviceConfig) SetMetadata(metadata ma // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRInstanceFleetConfig_EbsBlockDeviceConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRInstanceFleetConfig_EbsBlockDeviceConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-instancefleetconfig_ebsconfiguration.go b/cloudformation/resources/aws-emr-instancefleetconfig_ebsconfiguration.go similarity index 94% rename from cloudformation/aws-emr-instancefleetconfig_ebsconfiguration.go rename to cloudformation/resources/aws-emr-instancefleetconfig_ebsconfiguration.go index c1ce7bf219..5c384d460c 100644 --- a/cloudformation/aws-emr-instancefleetconfig_ebsconfiguration.go +++ b/cloudformation/resources/aws-emr-instancefleetconfig_ebsconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRInstanceFleetConfig_EbsConfiguration AWS CloudFormation Resource (AWS::EMR::InstanceFleetConfig.EbsConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ebsconfiguration.html @@ -15,7 +17,7 @@ type AWSEMRInstanceFleetConfig_EbsConfiguration struct { EbsOptimized bool `json:"EbsOptimized,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEMRInstanceFleetConfig_EbsConfiguration) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRInstanceFleetConfig_EbsConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRInstanceFleetConfig_EbsConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-instancefleetconfig_instancefleetprovisioningspecifications.go b/cloudformation/resources/aws-emr-instancefleetconfig_instancefleetprovisioningspecifications.go similarity index 93% rename from cloudformation/aws-emr-instancefleetconfig_instancefleetprovisioningspecifications.go rename to cloudformation/resources/aws-emr-instancefleetconfig_instancefleetprovisioningspecifications.go index efe7b56c7e..1119a78d64 100644 --- a/cloudformation/aws-emr-instancefleetconfig_instancefleetprovisioningspecifications.go +++ b/cloudformation/resources/aws-emr-instancefleetconfig_instancefleetprovisioningspecifications.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRInstanceFleetConfig_InstanceFleetProvisioningSpecifications AWS CloudFormation Resource (AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancefleetprovisioningspecifications.html @@ -10,7 +12,7 @@ type AWSEMRInstanceFleetConfig_InstanceFleetProvisioningSpecifications struct { SpotSpecification *AWSEMRInstanceFleetConfig_SpotProvisioningSpecification `json:"SpotSpecification,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEMRInstanceFleetConfig_InstanceFleetProvisioningSpecifications) SetM // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRInstanceFleetConfig_InstanceFleetProvisioningSpecifications) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRInstanceFleetConfig_InstanceFleetProvisioningSpecifications) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-instancefleetconfig_instancetypeconfig.go b/cloudformation/resources/aws-emr-instancefleetconfig_instancetypeconfig.go similarity index 96% rename from cloudformation/aws-emr-instancefleetconfig_instancetypeconfig.go rename to cloudformation/resources/aws-emr-instancefleetconfig_instancetypeconfig.go index faa934a34a..16110dc1dd 100644 --- a/cloudformation/aws-emr-instancefleetconfig_instancetypeconfig.go +++ b/cloudformation/resources/aws-emr-instancefleetconfig_instancetypeconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRInstanceFleetConfig_InstanceTypeConfig AWS CloudFormation Resource (AWS::EMR::InstanceFleetConfig.InstanceTypeConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancetypeconfig.html @@ -35,7 +37,7 @@ type AWSEMRInstanceFleetConfig_InstanceTypeConfig struct { WeightedCapacity int `json:"WeightedCapacity,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSEMRInstanceFleetConfig_InstanceTypeConfig) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRInstanceFleetConfig_InstanceTypeConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRInstanceFleetConfig_InstanceTypeConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-instancefleetconfig_spotprovisioningspecification.go b/cloudformation/resources/aws-emr-instancefleetconfig_spotprovisioningspecification.go similarity index 95% rename from cloudformation/aws-emr-instancefleetconfig_spotprovisioningspecification.go rename to cloudformation/resources/aws-emr-instancefleetconfig_spotprovisioningspecification.go index d527e81e35..514876da26 100644 --- a/cloudformation/aws-emr-instancefleetconfig_spotprovisioningspecification.go +++ b/cloudformation/resources/aws-emr-instancefleetconfig_spotprovisioningspecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRInstanceFleetConfig_SpotProvisioningSpecification AWS CloudFormation Resource (AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-spotprovisioningspecification.html @@ -20,7 +22,7 @@ type AWSEMRInstanceFleetConfig_SpotProvisioningSpecification struct { TimeoutDurationMinutes int `json:"TimeoutDurationMinutes"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSEMRInstanceFleetConfig_SpotProvisioningSpecification) SetMetadata(me // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRInstanceFleetConfig_SpotProvisioningSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRInstanceFleetConfig_SpotProvisioningSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-instancefleetconfig_volumespecification.go b/cloudformation/resources/aws-emr-instancefleetconfig_volumespecification.go similarity index 95% rename from cloudformation/aws-emr-instancefleetconfig_volumespecification.go rename to cloudformation/resources/aws-emr-instancefleetconfig_volumespecification.go index ffef7190bd..8ec59ae6fb 100644 --- a/cloudformation/aws-emr-instancefleetconfig_volumespecification.go +++ b/cloudformation/resources/aws-emr-instancefleetconfig_volumespecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRInstanceFleetConfig_VolumeSpecification AWS CloudFormation Resource (AWS::EMR::InstanceFleetConfig.VolumeSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-volumespecification.html @@ -20,7 +22,7 @@ type AWSEMRInstanceFleetConfig_VolumeSpecification struct { VolumeType string `json:"VolumeType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSEMRInstanceFleetConfig_VolumeSpecification) SetMetadata(metadata map // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRInstanceFleetConfig_VolumeSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRInstanceFleetConfig_VolumeSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-instancegroupconfig.go b/cloudformation/resources/aws-emr-instancegroupconfig.go similarity index 93% rename from cloudformation/aws-emr-instancegroupconfig.go rename to cloudformation/resources/aws-emr-instancegroupconfig.go index 1f60f628a2..3e28ec68e7 100644 --- a/cloudformation/aws-emr-instancegroupconfig.go +++ b/cloudformation/resources/aws-emr-instancegroupconfig.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEMRInstanceGroupConfig AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig) @@ -61,7 +62,7 @@ type AWSEMRInstanceGroupConfig struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -101,7 +102,7 @@ func (r *AWSEMRInstanceGroupConfig) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRInstanceGroupConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRInstanceGroupConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -112,9 +113,9 @@ func (r AWSEMRInstanceGroupConfig) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-emr-instancegroupconfig_autoscalingpolicy.go b/cloudformation/resources/aws-emr-instancegroupconfig_autoscalingpolicy.go similarity index 94% rename from cloudformation/aws-emr-instancegroupconfig_autoscalingpolicy.go rename to cloudformation/resources/aws-emr-instancegroupconfig_autoscalingpolicy.go index 5f9b5bcead..9df52b40d0 100644 --- a/cloudformation/aws-emr-instancegroupconfig_autoscalingpolicy.go +++ b/cloudformation/resources/aws-emr-instancegroupconfig_autoscalingpolicy.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRInstanceGroupConfig_AutoScalingPolicy AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.AutoScalingPolicy) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-autoscalingpolicy.html @@ -15,7 +17,7 @@ type AWSEMRInstanceGroupConfig_AutoScalingPolicy struct { Rules []AWSEMRInstanceGroupConfig_ScalingRule `json:"Rules,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEMRInstanceGroupConfig_AutoScalingPolicy) SetMetadata(metadata map[s // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRInstanceGroupConfig_AutoScalingPolicy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRInstanceGroupConfig_AutoScalingPolicy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-instancegroupconfig_cloudwatchalarmdefinition.go b/cloudformation/resources/aws-emr-instancegroupconfig_cloudwatchalarmdefinition.go similarity index 96% rename from cloudformation/aws-emr-instancegroupconfig_cloudwatchalarmdefinition.go rename to cloudformation/resources/aws-emr-instancegroupconfig_cloudwatchalarmdefinition.go index daa09a6a47..879f3a4971 100644 --- a/cloudformation/aws-emr-instancegroupconfig_cloudwatchalarmdefinition.go +++ b/cloudformation/resources/aws-emr-instancegroupconfig_cloudwatchalarmdefinition.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRInstanceGroupConfig_CloudWatchAlarmDefinition AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html @@ -50,7 +52,7 @@ type AWSEMRInstanceGroupConfig_CloudWatchAlarmDefinition struct { Unit string `json:"Unit,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -90,6 +92,6 @@ func (r *AWSEMRInstanceGroupConfig_CloudWatchAlarmDefinition) SetMetadata(metada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRInstanceGroupConfig_CloudWatchAlarmDefinition) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRInstanceGroupConfig_CloudWatchAlarmDefinition) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-instancegroupconfig_configuration.go b/cloudformation/resources/aws-emr-instancegroupconfig_configuration.go similarity index 95% rename from cloudformation/aws-emr-instancegroupconfig_configuration.go rename to cloudformation/resources/aws-emr-instancegroupconfig_configuration.go index 68fd7394bf..4491b56285 100644 --- a/cloudformation/aws-emr-instancegroupconfig_configuration.go +++ b/cloudformation/resources/aws-emr-instancegroupconfig_configuration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRInstanceGroupConfig_Configuration AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.Configuration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-configuration.html @@ -20,7 +22,7 @@ type AWSEMRInstanceGroupConfig_Configuration struct { Configurations []AWSEMRInstanceGroupConfig_Configuration `json:"Configurations,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSEMRInstanceGroupConfig_Configuration) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRInstanceGroupConfig_Configuration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRInstanceGroupConfig_Configuration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-instancegroupconfig_ebsblockdeviceconfig.go b/cloudformation/resources/aws-emr-instancegroupconfig_ebsblockdeviceconfig.go similarity index 94% rename from cloudformation/aws-emr-instancegroupconfig_ebsblockdeviceconfig.go rename to cloudformation/resources/aws-emr-instancegroupconfig_ebsblockdeviceconfig.go index 48835933f5..5d82d739b6 100644 --- a/cloudformation/aws-emr-instancegroupconfig_ebsblockdeviceconfig.go +++ b/cloudformation/resources/aws-emr-instancegroupconfig_ebsblockdeviceconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRInstanceGroupConfig_EbsBlockDeviceConfig AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig.html @@ -15,7 +17,7 @@ type AWSEMRInstanceGroupConfig_EbsBlockDeviceConfig struct { VolumesPerInstance int `json:"VolumesPerInstance,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEMRInstanceGroupConfig_EbsBlockDeviceConfig) SetMetadata(metadata ma // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRInstanceGroupConfig_EbsBlockDeviceConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRInstanceGroupConfig_EbsBlockDeviceConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-instancegroupconfig_ebsconfiguration.go b/cloudformation/resources/aws-emr-instancegroupconfig_ebsconfiguration.go similarity index 94% rename from cloudformation/aws-emr-instancegroupconfig_ebsconfiguration.go rename to cloudformation/resources/aws-emr-instancegroupconfig_ebsconfiguration.go index b684903301..11ba62ff48 100644 --- a/cloudformation/aws-emr-instancegroupconfig_ebsconfiguration.go +++ b/cloudformation/resources/aws-emr-instancegroupconfig_ebsconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRInstanceGroupConfig_EbsConfiguration AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.EbsConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration.html @@ -15,7 +17,7 @@ type AWSEMRInstanceGroupConfig_EbsConfiguration struct { EbsOptimized bool `json:"EbsOptimized,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEMRInstanceGroupConfig_EbsConfiguration) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRInstanceGroupConfig_EbsConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRInstanceGroupConfig_EbsConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-instancegroupconfig_metricdimension.go b/cloudformation/resources/aws-emr-instancegroupconfig_metricdimension.go similarity index 94% rename from cloudformation/aws-emr-instancegroupconfig_metricdimension.go rename to cloudformation/resources/aws-emr-instancegroupconfig_metricdimension.go index 15a6421c60..ba7770d375 100644 --- a/cloudformation/aws-emr-instancegroupconfig_metricdimension.go +++ b/cloudformation/resources/aws-emr-instancegroupconfig_metricdimension.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRInstanceGroupConfig_MetricDimension AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.MetricDimension) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-metricdimension.html @@ -15,7 +17,7 @@ type AWSEMRInstanceGroupConfig_MetricDimension struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEMRInstanceGroupConfig_MetricDimension) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRInstanceGroupConfig_MetricDimension) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRInstanceGroupConfig_MetricDimension) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-instancegroupconfig_scalingaction.go b/cloudformation/resources/aws-emr-instancegroupconfig_scalingaction.go similarity index 94% rename from cloudformation/aws-emr-instancegroupconfig_scalingaction.go rename to cloudformation/resources/aws-emr-instancegroupconfig_scalingaction.go index 431cd1135c..283c16b9a0 100644 --- a/cloudformation/aws-emr-instancegroupconfig_scalingaction.go +++ b/cloudformation/resources/aws-emr-instancegroupconfig_scalingaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRInstanceGroupConfig_ScalingAction AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.ScalingAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingaction.html @@ -15,7 +17,7 @@ type AWSEMRInstanceGroupConfig_ScalingAction struct { SimpleScalingPolicyConfiguration *AWSEMRInstanceGroupConfig_SimpleScalingPolicyConfiguration `json:"SimpleScalingPolicyConfiguration,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEMRInstanceGroupConfig_ScalingAction) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRInstanceGroupConfig_ScalingAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRInstanceGroupConfig_ScalingAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-instancegroupconfig_scalingconstraints.go b/cloudformation/resources/aws-emr-instancegroupconfig_scalingconstraints.go similarity index 94% rename from cloudformation/aws-emr-instancegroupconfig_scalingconstraints.go rename to cloudformation/resources/aws-emr-instancegroupconfig_scalingconstraints.go index ee6929d209..5ba9e1173b 100644 --- a/cloudformation/aws-emr-instancegroupconfig_scalingconstraints.go +++ b/cloudformation/resources/aws-emr-instancegroupconfig_scalingconstraints.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRInstanceGroupConfig_ScalingConstraints AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.ScalingConstraints) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingconstraints.html @@ -15,7 +17,7 @@ type AWSEMRInstanceGroupConfig_ScalingConstraints struct { MinCapacity int `json:"MinCapacity"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEMRInstanceGroupConfig_ScalingConstraints) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRInstanceGroupConfig_ScalingConstraints) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRInstanceGroupConfig_ScalingConstraints) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-instancegroupconfig_scalingrule.go b/cloudformation/resources/aws-emr-instancegroupconfig_scalingrule.go similarity index 95% rename from cloudformation/aws-emr-instancegroupconfig_scalingrule.go rename to cloudformation/resources/aws-emr-instancegroupconfig_scalingrule.go index b06934faf3..b270701520 100644 --- a/cloudformation/aws-emr-instancegroupconfig_scalingrule.go +++ b/cloudformation/resources/aws-emr-instancegroupconfig_scalingrule.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRInstanceGroupConfig_ScalingRule AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.ScalingRule) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingrule.html @@ -25,7 +27,7 @@ type AWSEMRInstanceGroupConfig_ScalingRule struct { Trigger *AWSEMRInstanceGroupConfig_ScalingTrigger `json:"Trigger,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSEMRInstanceGroupConfig_ScalingRule) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRInstanceGroupConfig_ScalingRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRInstanceGroupConfig_ScalingRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-instancegroupconfig_scalingtrigger.go b/cloudformation/resources/aws-emr-instancegroupconfig_scalingtrigger.go similarity index 94% rename from cloudformation/aws-emr-instancegroupconfig_scalingtrigger.go rename to cloudformation/resources/aws-emr-instancegroupconfig_scalingtrigger.go index ce97caac11..bd06f6b0a6 100644 --- a/cloudformation/aws-emr-instancegroupconfig_scalingtrigger.go +++ b/cloudformation/resources/aws-emr-instancegroupconfig_scalingtrigger.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRInstanceGroupConfig_ScalingTrigger AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.ScalingTrigger) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingtrigger.html @@ -10,7 +12,7 @@ type AWSEMRInstanceGroupConfig_ScalingTrigger struct { CloudWatchAlarmDefinition *AWSEMRInstanceGroupConfig_CloudWatchAlarmDefinition `json:"CloudWatchAlarmDefinition,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEMRInstanceGroupConfig_ScalingTrigger) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRInstanceGroupConfig_ScalingTrigger) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRInstanceGroupConfig_ScalingTrigger) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-instancegroupconfig_simplescalingpolicyconfiguration.go b/cloudformation/resources/aws-emr-instancegroupconfig_simplescalingpolicyconfiguration.go similarity index 95% rename from cloudformation/aws-emr-instancegroupconfig_simplescalingpolicyconfiguration.go rename to cloudformation/resources/aws-emr-instancegroupconfig_simplescalingpolicyconfiguration.go index 45aed2341a..62741e3d47 100644 --- a/cloudformation/aws-emr-instancegroupconfig_simplescalingpolicyconfiguration.go +++ b/cloudformation/resources/aws-emr-instancegroupconfig_simplescalingpolicyconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRInstanceGroupConfig_SimpleScalingPolicyConfiguration AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-simplescalingpolicyconfiguration.html @@ -20,7 +22,7 @@ type AWSEMRInstanceGroupConfig_SimpleScalingPolicyConfiguration struct { ScalingAdjustment int `json:"ScalingAdjustment"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSEMRInstanceGroupConfig_SimpleScalingPolicyConfiguration) SetMetadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRInstanceGroupConfig_SimpleScalingPolicyConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRInstanceGroupConfig_SimpleScalingPolicyConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-instancegroupconfig_volumespecification.go b/cloudformation/resources/aws-emr-instancegroupconfig_volumespecification.go similarity index 95% rename from cloudformation/aws-emr-instancegroupconfig_volumespecification.go rename to cloudformation/resources/aws-emr-instancegroupconfig_volumespecification.go index b7ada352b4..7be246ff1d 100644 --- a/cloudformation/aws-emr-instancegroupconfig_volumespecification.go +++ b/cloudformation/resources/aws-emr-instancegroupconfig_volumespecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRInstanceGroupConfig_VolumeSpecification AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.VolumeSpecification) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig-volumespecification.html @@ -20,7 +22,7 @@ type AWSEMRInstanceGroupConfig_VolumeSpecification struct { VolumeType string `json:"VolumeType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSEMRInstanceGroupConfig_VolumeSpecification) SetMetadata(metadata map // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRInstanceGroupConfig_VolumeSpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRInstanceGroupConfig_VolumeSpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-securityconfiguration.go b/cloudformation/resources/aws-emr-securityconfiguration.go similarity index 90% rename from cloudformation/aws-emr-securityconfiguration.go rename to cloudformation/resources/aws-emr-securityconfiguration.go index 1f601d6d4f..d840718d0a 100644 --- a/cloudformation/aws-emr-securityconfiguration.go +++ b/cloudformation/resources/aws-emr-securityconfiguration.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEMRSecurityConfiguration AWS CloudFormation Resource (AWS::EMR::SecurityConfiguration) @@ -21,7 +22,7 @@ type AWSEMRSecurityConfiguration struct { SecurityConfiguration interface{} `json:"SecurityConfiguration,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSEMRSecurityConfiguration) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRSecurityConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRSecurityConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSEMRSecurityConfiguration) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-emr-step.go b/cloudformation/resources/aws-emr-step.go similarity index 91% rename from cloudformation/aws-emr-step.go rename to cloudformation/resources/aws-emr-step.go index ed17284c41..1a49586d82 100644 --- a/cloudformation/aws-emr-step.go +++ b/cloudformation/resources/aws-emr-step.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEMRStep AWS CloudFormation Resource (AWS::EMR::Step) @@ -31,7 +32,7 @@ type AWSEMRStep struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSEMRStep) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRStep) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRStep) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSEMRStep) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-emr-step_hadoopjarstepconfig.go b/cloudformation/resources/aws-emr-step_hadoopjarstepconfig.go similarity index 95% rename from cloudformation/aws-emr-step_hadoopjarstepconfig.go rename to cloudformation/resources/aws-emr-step_hadoopjarstepconfig.go index c9368a4730..8fe8ccad0a 100644 --- a/cloudformation/aws-emr-step_hadoopjarstepconfig.go +++ b/cloudformation/resources/aws-emr-step_hadoopjarstepconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRStep_HadoopJarStepConfig AWS CloudFormation Resource (AWS::EMR::Step.HadoopJarStepConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-hadoopjarstepconfig.html @@ -25,7 +27,7 @@ type AWSEMRStep_HadoopJarStepConfig struct { StepProperties []AWSEMRStep_KeyValue `json:"StepProperties,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSEMRStep_HadoopJarStepConfig) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRStep_HadoopJarStepConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRStep_HadoopJarStepConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-emr-step_keyvalue.go b/cloudformation/resources/aws-emr-step_keyvalue.go similarity index 92% rename from cloudformation/aws-emr-step_keyvalue.go rename to cloudformation/resources/aws-emr-step_keyvalue.go index d5bc67dc84..ea4a2df028 100644 --- a/cloudformation/aws-emr-step_keyvalue.go +++ b/cloudformation/resources/aws-emr-step_keyvalue.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEMRStep_KeyValue AWS CloudFormation Resource (AWS::EMR::Step.KeyValue) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-keyvalue.html @@ -15,7 +17,7 @@ type AWSEMRStep_KeyValue struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEMRStep_KeyValue) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEMRStep_KeyValue) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEMRStep_KeyValue) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-events-eventbuspolicy.go b/cloudformation/resources/aws-events-eventbuspolicy.go similarity index 91% rename from cloudformation/aws-events-eventbuspolicy.go rename to cloudformation/resources/aws-events-eventbuspolicy.go index cbeac45700..f6c1c69ffe 100644 --- a/cloudformation/aws-events-eventbuspolicy.go +++ b/cloudformation/resources/aws-events-eventbuspolicy.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEventsEventBusPolicy AWS CloudFormation Resource (AWS::Events::EventBusPolicy) @@ -31,7 +32,7 @@ type AWSEventsEventBusPolicy struct { StatementId string `json:"StatementId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSEventsEventBusPolicy) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEventsEventBusPolicy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEventsEventBusPolicy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSEventsEventBusPolicy) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-events-eventbuspolicy_condition.go b/cloudformation/resources/aws-events-eventbuspolicy_condition.go similarity index 94% rename from cloudformation/aws-events-eventbuspolicy_condition.go rename to cloudformation/resources/aws-events-eventbuspolicy_condition.go index 56530f50a2..4d0e90f5d9 100644 --- a/cloudformation/aws-events-eventbuspolicy_condition.go +++ b/cloudformation/resources/aws-events-eventbuspolicy_condition.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEventsEventBusPolicy_Condition AWS CloudFormation Resource (AWS::Events::EventBusPolicy.Condition) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-eventbuspolicy-condition.html @@ -20,7 +22,7 @@ type AWSEventsEventBusPolicy_Condition struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSEventsEventBusPolicy_Condition) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEventsEventBusPolicy_Condition) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEventsEventBusPolicy_Condition) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-events-rule.go b/cloudformation/resources/aws-events-rule.go similarity index 92% rename from cloudformation/aws-events-rule.go rename to cloudformation/resources/aws-events-rule.go index a2d1d50ef5..53fd085b3c 100644 --- a/cloudformation/aws-events-rule.go +++ b/cloudformation/resources/aws-events-rule.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSEventsRule AWS CloudFormation Resource (AWS::Events::Rule) @@ -46,7 +47,7 @@ type AWSEventsRule struct { Targets []AWSEventsRule_Target `json:"Targets,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSEventsRule) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEventsRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEventsRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSEventsRule) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-events-rule_ecsparameters.go b/cloudformation/resources/aws-events-rule_ecsparameters.go similarity index 92% rename from cloudformation/aws-events-rule_ecsparameters.go rename to cloudformation/resources/aws-events-rule_ecsparameters.go index ec5197bb66..b70c1d3721 100644 --- a/cloudformation/aws-events-rule_ecsparameters.go +++ b/cloudformation/resources/aws-events-rule_ecsparameters.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEventsRule_EcsParameters AWS CloudFormation Resource (AWS::Events::Rule.EcsParameters) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html @@ -15,7 +17,7 @@ type AWSEventsRule_EcsParameters struct { TaskDefinitionArn string `json:"TaskDefinitionArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEventsRule_EcsParameters) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEventsRule_EcsParameters) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEventsRule_EcsParameters) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-events-rule_inputtransformer.go b/cloudformation/resources/aws-events-rule_inputtransformer.go similarity index 94% rename from cloudformation/aws-events-rule_inputtransformer.go rename to cloudformation/resources/aws-events-rule_inputtransformer.go index 5e15aa1b3f..8791d3487a 100644 --- a/cloudformation/aws-events-rule_inputtransformer.go +++ b/cloudformation/resources/aws-events-rule_inputtransformer.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEventsRule_InputTransformer AWS CloudFormation Resource (AWS::Events::Rule.InputTransformer) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html @@ -15,7 +17,7 @@ type AWSEventsRule_InputTransformer struct { InputTemplate string `json:"InputTemplate,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEventsRule_InputTransformer) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEventsRule_InputTransformer) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEventsRule_InputTransformer) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-events-rule_kinesisparameters.go b/cloudformation/resources/aws-events-rule_kinesisparameters.go similarity index 94% rename from cloudformation/aws-events-rule_kinesisparameters.go rename to cloudformation/resources/aws-events-rule_kinesisparameters.go index 8505543a7c..5c25feaa7c 100644 --- a/cloudformation/aws-events-rule_kinesisparameters.go +++ b/cloudformation/resources/aws-events-rule_kinesisparameters.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEventsRule_KinesisParameters AWS CloudFormation Resource (AWS::Events::Rule.KinesisParameters) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-kinesisparameters.html @@ -10,7 +12,7 @@ type AWSEventsRule_KinesisParameters struct { PartitionKeyPath string `json:"PartitionKeyPath,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEventsRule_KinesisParameters) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEventsRule_KinesisParameters) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEventsRule_KinesisParameters) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-events-rule_runcommandparameters.go b/cloudformation/resources/aws-events-rule_runcommandparameters.go similarity index 94% rename from cloudformation/aws-events-rule_runcommandparameters.go rename to cloudformation/resources/aws-events-rule_runcommandparameters.go index c5a467d9e0..31820681ff 100644 --- a/cloudformation/aws-events-rule_runcommandparameters.go +++ b/cloudformation/resources/aws-events-rule_runcommandparameters.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEventsRule_RunCommandParameters AWS CloudFormation Resource (AWS::Events::Rule.RunCommandParameters) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandparameters.html @@ -10,7 +12,7 @@ type AWSEventsRule_RunCommandParameters struct { RunCommandTargets []AWSEventsRule_RunCommandTarget `json:"RunCommandTargets,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEventsRule_RunCommandParameters) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEventsRule_RunCommandParameters) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEventsRule_RunCommandParameters) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-events-rule_runcommandtarget.go b/cloudformation/resources/aws-events-rule_runcommandtarget.go similarity index 94% rename from cloudformation/aws-events-rule_runcommandtarget.go rename to cloudformation/resources/aws-events-rule_runcommandtarget.go index 2e74ceab0b..b8e606a22c 100644 --- a/cloudformation/aws-events-rule_runcommandtarget.go +++ b/cloudformation/resources/aws-events-rule_runcommandtarget.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEventsRule_RunCommandTarget AWS CloudFormation Resource (AWS::Events::Rule.RunCommandTarget) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandtarget.html @@ -15,7 +17,7 @@ type AWSEventsRule_RunCommandTarget struct { Values []string `json:"Values,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSEventsRule_RunCommandTarget) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEventsRule_RunCommandTarget) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEventsRule_RunCommandTarget) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-events-rule_sqsparameters.go b/cloudformation/resources/aws-events-rule_sqsparameters.go similarity index 91% rename from cloudformation/aws-events-rule_sqsparameters.go rename to cloudformation/resources/aws-events-rule_sqsparameters.go index c7423130e0..4f3bff955a 100644 --- a/cloudformation/aws-events-rule_sqsparameters.go +++ b/cloudformation/resources/aws-events-rule_sqsparameters.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEventsRule_SqsParameters AWS CloudFormation Resource (AWS::Events::Rule.SqsParameters) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-sqsparameters.html @@ -10,7 +12,7 @@ type AWSEventsRule_SqsParameters struct { MessageGroupId string `json:"MessageGroupId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSEventsRule_SqsParameters) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEventsRule_SqsParameters) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEventsRule_SqsParameters) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-events-rule_target.go b/cloudformation/resources/aws-events-rule_target.go similarity index 95% rename from cloudformation/aws-events-rule_target.go rename to cloudformation/resources/aws-events-rule_target.go index 8cab1826fd..a683346533 100644 --- a/cloudformation/aws-events-rule_target.go +++ b/cloudformation/resources/aws-events-rule_target.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSEventsRule_Target AWS CloudFormation Resource (AWS::Events::Rule.Target) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html @@ -55,7 +57,7 @@ type AWSEventsRule_Target struct { SqsParameters *AWSEventsRule_SqsParameters `json:"SqsParameters,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -95,6 +97,6 @@ func (r *AWSEventsRule_Target) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSEventsRule_Target) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSEventsRule_Target) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-fsx-filesystem.go b/cloudformation/resources/aws-fsx-filesystem.go similarity index 93% rename from cloudformation/aws-fsx-filesystem.go rename to cloudformation/resources/aws-fsx-filesystem.go index 8fdc2d2aeb..499333b311 100644 --- a/cloudformation/aws-fsx-filesystem.go +++ b/cloudformation/resources/aws-fsx-filesystem.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSFSxFileSystem AWS CloudFormation Resource (AWS::FSx::FileSystem) @@ -56,7 +57,7 @@ type AWSFSxFileSystem struct { WindowsConfiguration *AWSFSxFileSystem_WindowsConfiguration `json:"WindowsConfiguration,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -96,7 +97,7 @@ func (r *AWSFSxFileSystem) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSFSxFileSystem) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSFSxFileSystem) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -107,9 +108,9 @@ func (r AWSFSxFileSystem) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-fsx-filesystem_lustreconfiguration.go b/cloudformation/resources/aws-fsx-filesystem_lustreconfiguration.go similarity index 95% rename from cloudformation/aws-fsx-filesystem_lustreconfiguration.go rename to cloudformation/resources/aws-fsx-filesystem_lustreconfiguration.go index 9b904af355..af02473a88 100644 --- a/cloudformation/aws-fsx-filesystem_lustreconfiguration.go +++ b/cloudformation/resources/aws-fsx-filesystem_lustreconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSFSxFileSystem_LustreConfiguration AWS CloudFormation Resource (AWS::FSx::FileSystem.LustreConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html @@ -25,7 +27,7 @@ type AWSFSxFileSystem_LustreConfiguration struct { WeeklyMaintenanceStartTime string `json:"WeeklyMaintenanceStartTime,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSFSxFileSystem_LustreConfiguration) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSFSxFileSystem_LustreConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSFSxFileSystem_LustreConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-fsx-filesystem_tagentry.go b/cloudformation/resources/aws-fsx-filesystem_tagentry.go similarity index 92% rename from cloudformation/aws-fsx-filesystem_tagentry.go rename to cloudformation/resources/aws-fsx-filesystem_tagentry.go index 74bfcfd91e..85dbefa427 100644 --- a/cloudformation/aws-fsx-filesystem_tagentry.go +++ b/cloudformation/resources/aws-fsx-filesystem_tagentry.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSFSxFileSystem_TagEntry AWS CloudFormation Resource (AWS::FSx::FileSystem.TagEntry) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-tagentry.html @@ -15,7 +17,7 @@ type AWSFSxFileSystem_TagEntry struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSFSxFileSystem_TagEntry) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSFSxFileSystem_TagEntry) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSFSxFileSystem_TagEntry) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-fsx-filesystem_windowsconfiguration.go b/cloudformation/resources/aws-fsx-filesystem_windowsconfiguration.go similarity index 96% rename from cloudformation/aws-fsx-filesystem_windowsconfiguration.go rename to cloudformation/resources/aws-fsx-filesystem_windowsconfiguration.go index d5b2fa42ee..985c4f100b 100644 --- a/cloudformation/aws-fsx-filesystem_windowsconfiguration.go +++ b/cloudformation/resources/aws-fsx-filesystem_windowsconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSFSxFileSystem_WindowsConfiguration AWS CloudFormation Resource (AWS::FSx::FileSystem.WindowsConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html @@ -35,7 +37,7 @@ type AWSFSxFileSystem_WindowsConfiguration struct { WeeklyMaintenanceStartTime string `json:"WeeklyMaintenanceStartTime,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSFSxFileSystem_WindowsConfiguration) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSFSxFileSystem_WindowsConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSFSxFileSystem_WindowsConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-gamelift-alias.go b/cloudformation/resources/aws-gamelift-alias.go similarity index 91% rename from cloudformation/aws-gamelift-alias.go rename to cloudformation/resources/aws-gamelift-alias.go index 3dbbc54c6c..2b5ae0f710 100644 --- a/cloudformation/aws-gamelift-alias.go +++ b/cloudformation/resources/aws-gamelift-alias.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSGameLiftAlias AWS CloudFormation Resource (AWS::GameLift::Alias) @@ -26,7 +27,7 @@ type AWSGameLiftAlias struct { RoutingStrategy *AWSGameLiftAlias_RoutingStrategy `json:"RoutingStrategy,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSGameLiftAlias) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGameLiftAlias) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGameLiftAlias) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSGameLiftAlias) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-gamelift-alias_routingstrategy.go b/cloudformation/resources/aws-gamelift-alias_routingstrategy.go similarity index 94% rename from cloudformation/aws-gamelift-alias_routingstrategy.go rename to cloudformation/resources/aws-gamelift-alias_routingstrategy.go index 9608261838..55ca0ab4e3 100644 --- a/cloudformation/aws-gamelift-alias_routingstrategy.go +++ b/cloudformation/resources/aws-gamelift-alias_routingstrategy.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGameLiftAlias_RoutingStrategy AWS CloudFormation Resource (AWS::GameLift::Alias.RoutingStrategy) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-alias-routingstrategy.html @@ -20,7 +22,7 @@ type AWSGameLiftAlias_RoutingStrategy struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSGameLiftAlias_RoutingStrategy) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGameLiftAlias_RoutingStrategy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGameLiftAlias_RoutingStrategy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-gamelift-build.go b/cloudformation/resources/aws-gamelift-build.go similarity index 90% rename from cloudformation/aws-gamelift-build.go rename to cloudformation/resources/aws-gamelift-build.go index f602ebddc9..a34a30b32a 100644 --- a/cloudformation/aws-gamelift-build.go +++ b/cloudformation/resources/aws-gamelift-build.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSGameLiftBuild AWS CloudFormation Resource (AWS::GameLift::Build) @@ -26,7 +27,7 @@ type AWSGameLiftBuild struct { Version string `json:"Version,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSGameLiftBuild) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGameLiftBuild) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGameLiftBuild) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSGameLiftBuild) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-gamelift-build_s3location.go b/cloudformation/resources/aws-gamelift-build_s3location.go similarity index 92% rename from cloudformation/aws-gamelift-build_s3location.go rename to cloudformation/resources/aws-gamelift-build_s3location.go index c04524e00b..0fc587f4bf 100644 --- a/cloudformation/aws-gamelift-build_s3location.go +++ b/cloudformation/resources/aws-gamelift-build_s3location.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGameLiftBuild_S3Location AWS CloudFormation Resource (AWS::GameLift::Build.S3Location) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-build-storagelocation.html @@ -20,7 +22,7 @@ type AWSGameLiftBuild_S3Location struct { RoleArn string `json:"RoleArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSGameLiftBuild_S3Location) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGameLiftBuild_S3Location) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGameLiftBuild_S3Location) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-gamelift-fleet.go b/cloudformation/resources/aws-gamelift-fleet.go similarity index 93% rename from cloudformation/aws-gamelift-fleet.go rename to cloudformation/resources/aws-gamelift-fleet.go index 4f6f22e3a8..98f81f62ea 100644 --- a/cloudformation/aws-gamelift-fleet.go +++ b/cloudformation/resources/aws-gamelift-fleet.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSGameLiftFleet AWS CloudFormation Resource (AWS::GameLift::Fleet) @@ -66,7 +67,7 @@ type AWSGameLiftFleet struct { ServerLaunchPath string `json:"ServerLaunchPath,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -106,7 +107,7 @@ func (r *AWSGameLiftFleet) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGameLiftFleet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGameLiftFleet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -117,9 +118,9 @@ func (r AWSGameLiftFleet) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-gamelift-fleet_ippermission.go b/cloudformation/resources/aws-gamelift-fleet_ippermission.go similarity index 95% rename from cloudformation/aws-gamelift-fleet_ippermission.go rename to cloudformation/resources/aws-gamelift-fleet_ippermission.go index 539b3dc6e0..df50834bc6 100644 --- a/cloudformation/aws-gamelift-fleet_ippermission.go +++ b/cloudformation/resources/aws-gamelift-fleet_ippermission.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGameLiftFleet_IpPermission AWS CloudFormation Resource (AWS::GameLift::Fleet.IpPermission) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-ec2inboundpermission.html @@ -25,7 +27,7 @@ type AWSGameLiftFleet_IpPermission struct { ToPort int `json:"ToPort"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSGameLiftFleet_IpPermission) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGameLiftFleet_IpPermission) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGameLiftFleet_IpPermission) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-classifier.go b/cloudformation/resources/aws-glue-classifier.go similarity index 91% rename from cloudformation/aws-glue-classifier.go rename to cloudformation/resources/aws-glue-classifier.go index 35641955c0..4ea871bbfa 100644 --- a/cloudformation/aws-glue-classifier.go +++ b/cloudformation/resources/aws-glue-classifier.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSGlueClassifier AWS CloudFormation Resource (AWS::Glue::Classifier) @@ -26,7 +27,7 @@ type AWSGlueClassifier struct { XMLClassifier *AWSGlueClassifier_XMLClassifier `json:"XMLClassifier,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSGlueClassifier) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueClassifier) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueClassifier) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSGlueClassifier) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-glue-classifier_grokclassifier.go b/cloudformation/resources/aws-glue-classifier_grokclassifier.go similarity index 95% rename from cloudformation/aws-glue-classifier_grokclassifier.go rename to cloudformation/resources/aws-glue-classifier_grokclassifier.go index 4fcaebbb3b..58b8012743 100644 --- a/cloudformation/aws-glue-classifier_grokclassifier.go +++ b/cloudformation/resources/aws-glue-classifier_grokclassifier.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueClassifier_GrokClassifier AWS CloudFormation Resource (AWS::Glue::Classifier.GrokClassifier) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-grokclassifier.html @@ -25,7 +27,7 @@ type AWSGlueClassifier_GrokClassifier struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSGlueClassifier_GrokClassifier) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueClassifier_GrokClassifier) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueClassifier_GrokClassifier) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-classifier_jsonclassifier.go b/cloudformation/resources/aws-glue-classifier_jsonclassifier.go similarity index 94% rename from cloudformation/aws-glue-classifier_jsonclassifier.go rename to cloudformation/resources/aws-glue-classifier_jsonclassifier.go index 7624825330..124c14c400 100644 --- a/cloudformation/aws-glue-classifier_jsonclassifier.go +++ b/cloudformation/resources/aws-glue-classifier_jsonclassifier.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueClassifier_JsonClassifier AWS CloudFormation Resource (AWS::Glue::Classifier.JsonClassifier) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-jsonclassifier.html @@ -15,7 +17,7 @@ type AWSGlueClassifier_JsonClassifier struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSGlueClassifier_JsonClassifier) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueClassifier_JsonClassifier) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueClassifier_JsonClassifier) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-classifier_xmlclassifier.go b/cloudformation/resources/aws-glue-classifier_xmlclassifier.go similarity index 95% rename from cloudformation/aws-glue-classifier_xmlclassifier.go rename to cloudformation/resources/aws-glue-classifier_xmlclassifier.go index 7e6d4d4759..fd4b8cc4ea 100644 --- a/cloudformation/aws-glue-classifier_xmlclassifier.go +++ b/cloudformation/resources/aws-glue-classifier_xmlclassifier.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueClassifier_XMLClassifier AWS CloudFormation Resource (AWS::Glue::Classifier.XMLClassifier) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-xmlclassifier.html @@ -20,7 +22,7 @@ type AWSGlueClassifier_XMLClassifier struct { RowTag string `json:"RowTag,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSGlueClassifier_XMLClassifier) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueClassifier_XMLClassifier) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueClassifier_XMLClassifier) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-connection.go b/cloudformation/resources/aws-glue-connection.go similarity index 90% rename from cloudformation/aws-glue-connection.go rename to cloudformation/resources/aws-glue-connection.go index b3dea513c3..3b056cbc33 100644 --- a/cloudformation/aws-glue-connection.go +++ b/cloudformation/resources/aws-glue-connection.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSGlueConnection AWS CloudFormation Resource (AWS::Glue::Connection) @@ -21,7 +22,7 @@ type AWSGlueConnection struct { ConnectionInput *AWSGlueConnection_ConnectionInput `json:"ConnectionInput,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSGlueConnection) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueConnection) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueConnection) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSGlueConnection) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-glue-connection_connectioninput.go b/cloudformation/resources/aws-glue-connection_connectioninput.go similarity index 96% rename from cloudformation/aws-glue-connection_connectioninput.go rename to cloudformation/resources/aws-glue-connection_connectioninput.go index c2096be3d3..6618763523 100644 --- a/cloudformation/aws-glue-connection_connectioninput.go +++ b/cloudformation/resources/aws-glue-connection_connectioninput.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueConnection_ConnectionInput AWS CloudFormation Resource (AWS::Glue::Connection.ConnectionInput) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html @@ -35,7 +37,7 @@ type AWSGlueConnection_ConnectionInput struct { PhysicalConnectionRequirements *AWSGlueConnection_PhysicalConnectionRequirements `json:"PhysicalConnectionRequirements,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSGlueConnection_ConnectionInput) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueConnection_ConnectionInput) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueConnection_ConnectionInput) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-connection_physicalconnectionrequirements.go b/cloudformation/resources/aws-glue-connection_physicalconnectionrequirements.go similarity index 95% rename from cloudformation/aws-glue-connection_physicalconnectionrequirements.go rename to cloudformation/resources/aws-glue-connection_physicalconnectionrequirements.go index 98045af908..5db3a2c126 100644 --- a/cloudformation/aws-glue-connection_physicalconnectionrequirements.go +++ b/cloudformation/resources/aws-glue-connection_physicalconnectionrequirements.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueConnection_PhysicalConnectionRequirements AWS CloudFormation Resource (AWS::Glue::Connection.PhysicalConnectionRequirements) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-physicalconnectionrequirements.html @@ -20,7 +22,7 @@ type AWSGlueConnection_PhysicalConnectionRequirements struct { SubnetId string `json:"SubnetId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSGlueConnection_PhysicalConnectionRequirements) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueConnection_PhysicalConnectionRequirements) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueConnection_PhysicalConnectionRequirements) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-crawler.go b/cloudformation/resources/aws-glue-crawler.go similarity index 93% rename from cloudformation/aws-glue-crawler.go rename to cloudformation/resources/aws-glue-crawler.go index 87ea664695..ccc55d9e07 100644 --- a/cloudformation/aws-glue-crawler.go +++ b/cloudformation/resources/aws-glue-crawler.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSGlueCrawler AWS CloudFormation Resource (AWS::Glue::Crawler) @@ -61,7 +62,7 @@ type AWSGlueCrawler struct { Targets *AWSGlueCrawler_Targets `json:"Targets,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -101,7 +102,7 @@ func (r *AWSGlueCrawler) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueCrawler) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueCrawler) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -112,9 +113,9 @@ func (r AWSGlueCrawler) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-glue-crawler_jdbctarget.go b/cloudformation/resources/aws-glue-crawler_jdbctarget.go similarity index 92% rename from cloudformation/aws-glue-crawler_jdbctarget.go rename to cloudformation/resources/aws-glue-crawler_jdbctarget.go index 002f4eaa1f..1e73cb9d97 100644 --- a/cloudformation/aws-glue-crawler_jdbctarget.go +++ b/cloudformation/resources/aws-glue-crawler_jdbctarget.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueCrawler_JdbcTarget AWS CloudFormation Resource (AWS::Glue::Crawler.JdbcTarget) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-jdbctarget.html @@ -20,7 +22,7 @@ type AWSGlueCrawler_JdbcTarget struct { Path string `json:"Path,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSGlueCrawler_JdbcTarget) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueCrawler_JdbcTarget) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueCrawler_JdbcTarget) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-crawler_s3target.go b/cloudformation/resources/aws-glue-crawler_s3target.go similarity index 92% rename from cloudformation/aws-glue-crawler_s3target.go rename to cloudformation/resources/aws-glue-crawler_s3target.go index d622789b97..5b9a51c594 100644 --- a/cloudformation/aws-glue-crawler_s3target.go +++ b/cloudformation/resources/aws-glue-crawler_s3target.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueCrawler_S3Target AWS CloudFormation Resource (AWS::Glue::Crawler.S3Target) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-s3target.html @@ -15,7 +17,7 @@ type AWSGlueCrawler_S3Target struct { Path string `json:"Path,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSGlueCrawler_S3Target) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueCrawler_S3Target) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueCrawler_S3Target) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-crawler_schedule.go b/cloudformation/resources/aws-glue-crawler_schedule.go similarity index 91% rename from cloudformation/aws-glue-crawler_schedule.go rename to cloudformation/resources/aws-glue-crawler_schedule.go index 1d6fc473f9..b4b4cb8a01 100644 --- a/cloudformation/aws-glue-crawler_schedule.go +++ b/cloudformation/resources/aws-glue-crawler_schedule.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueCrawler_Schedule AWS CloudFormation Resource (AWS::Glue::Crawler.Schedule) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-schedule.html @@ -10,7 +12,7 @@ type AWSGlueCrawler_Schedule struct { ScheduleExpression string `json:"ScheduleExpression,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSGlueCrawler_Schedule) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueCrawler_Schedule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueCrawler_Schedule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-crawler_schemachangepolicy.go b/cloudformation/resources/aws-glue-crawler_schemachangepolicy.go similarity index 94% rename from cloudformation/aws-glue-crawler_schemachangepolicy.go rename to cloudformation/resources/aws-glue-crawler_schemachangepolicy.go index e66a43beb3..2f9ee18133 100644 --- a/cloudformation/aws-glue-crawler_schemachangepolicy.go +++ b/cloudformation/resources/aws-glue-crawler_schemachangepolicy.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueCrawler_SchemaChangePolicy AWS CloudFormation Resource (AWS::Glue::Crawler.SchemaChangePolicy) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-schemachangepolicy.html @@ -15,7 +17,7 @@ type AWSGlueCrawler_SchemaChangePolicy struct { UpdateBehavior string `json:"UpdateBehavior,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSGlueCrawler_SchemaChangePolicy) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueCrawler_SchemaChangePolicy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueCrawler_SchemaChangePolicy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-crawler_targets.go b/cloudformation/resources/aws-glue-crawler_targets.go similarity index 92% rename from cloudformation/aws-glue-crawler_targets.go rename to cloudformation/resources/aws-glue-crawler_targets.go index 61600df62b..eb192f9c2a 100644 --- a/cloudformation/aws-glue-crawler_targets.go +++ b/cloudformation/resources/aws-glue-crawler_targets.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueCrawler_Targets AWS CloudFormation Resource (AWS::Glue::Crawler.Targets) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-targets.html @@ -15,7 +17,7 @@ type AWSGlueCrawler_Targets struct { S3Targets []AWSGlueCrawler_S3Target `json:"S3Targets,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSGlueCrawler_Targets) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueCrawler_Targets) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueCrawler_Targets) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-database.go b/cloudformation/resources/aws-glue-database.go similarity index 90% rename from cloudformation/aws-glue-database.go rename to cloudformation/resources/aws-glue-database.go index b8ce722c28..bf69aede6c 100644 --- a/cloudformation/aws-glue-database.go +++ b/cloudformation/resources/aws-glue-database.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSGlueDatabase AWS CloudFormation Resource (AWS::Glue::Database) @@ -21,7 +22,7 @@ type AWSGlueDatabase struct { DatabaseInput *AWSGlueDatabase_DatabaseInput `json:"DatabaseInput,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSGlueDatabase) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueDatabase) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueDatabase) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSGlueDatabase) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-glue-database_databaseinput.go b/cloudformation/resources/aws-glue-database_databaseinput.go similarity index 95% rename from cloudformation/aws-glue-database_databaseinput.go rename to cloudformation/resources/aws-glue-database_databaseinput.go index efb9f8ca41..c8b7fc89bd 100644 --- a/cloudformation/aws-glue-database_databaseinput.go +++ b/cloudformation/resources/aws-glue-database_databaseinput.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueDatabase_DatabaseInput AWS CloudFormation Resource (AWS::Glue::Database.DatabaseInput) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseinput.html @@ -25,7 +27,7 @@ type AWSGlueDatabase_DatabaseInput struct { Parameters interface{} `json:"Parameters,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSGlueDatabase_DatabaseInput) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueDatabase_DatabaseInput) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueDatabase_DatabaseInput) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-devendpoint.go b/cloudformation/resources/aws-glue-devendpoint.go similarity index 93% rename from cloudformation/aws-glue-devendpoint.go rename to cloudformation/resources/aws-glue-devendpoint.go index a0b69a0439..db4c2a6865 100644 --- a/cloudformation/aws-glue-devendpoint.go +++ b/cloudformation/resources/aws-glue-devendpoint.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSGlueDevEndpoint AWS CloudFormation Resource (AWS::Glue::DevEndpoint) @@ -51,7 +52,7 @@ type AWSGlueDevEndpoint struct { SubnetId string `json:"SubnetId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -91,7 +92,7 @@ func (r *AWSGlueDevEndpoint) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueDevEndpoint) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueDevEndpoint) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -102,9 +103,9 @@ func (r AWSGlueDevEndpoint) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-glue-job.go b/cloudformation/resources/aws-glue-job.go similarity index 93% rename from cloudformation/aws-glue-job.go rename to cloudformation/resources/aws-glue-job.go index a71dfa8a96..0dace9b43f 100644 --- a/cloudformation/aws-glue-job.go +++ b/cloudformation/resources/aws-glue-job.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSGlueJob AWS CloudFormation Resource (AWS::Glue::Job) @@ -61,7 +62,7 @@ type AWSGlueJob struct { Role string `json:"Role,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -101,7 +102,7 @@ func (r *AWSGlueJob) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueJob) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueJob) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -112,9 +113,9 @@ func (r AWSGlueJob) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-glue-job_connectionslist.go b/cloudformation/resources/aws-glue-job_connectionslist.go similarity index 91% rename from cloudformation/aws-glue-job_connectionslist.go rename to cloudformation/resources/aws-glue-job_connectionslist.go index 590c497f37..b2949a9e3f 100644 --- a/cloudformation/aws-glue-job_connectionslist.go +++ b/cloudformation/resources/aws-glue-job_connectionslist.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueJob_ConnectionsList AWS CloudFormation Resource (AWS::Glue::Job.ConnectionsList) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-connectionslist.html @@ -10,7 +12,7 @@ type AWSGlueJob_ConnectionsList struct { Connections []string `json:"Connections,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSGlueJob_ConnectionsList) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueJob_ConnectionsList) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueJob_ConnectionsList) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-job_executionproperty.go b/cloudformation/resources/aws-glue-job_executionproperty.go similarity index 94% rename from cloudformation/aws-glue-job_executionproperty.go rename to cloudformation/resources/aws-glue-job_executionproperty.go index b7d72cd77b..8d64354158 100644 --- a/cloudformation/aws-glue-job_executionproperty.go +++ b/cloudformation/resources/aws-glue-job_executionproperty.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueJob_ExecutionProperty AWS CloudFormation Resource (AWS::Glue::Job.ExecutionProperty) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-executionproperty.html @@ -10,7 +12,7 @@ type AWSGlueJob_ExecutionProperty struct { MaxConcurrentRuns float64 `json:"MaxConcurrentRuns,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSGlueJob_ExecutionProperty) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueJob_ExecutionProperty) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueJob_ExecutionProperty) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-job_jobcommand.go b/cloudformation/resources/aws-glue-job_jobcommand.go similarity index 92% rename from cloudformation/aws-glue-job_jobcommand.go rename to cloudformation/resources/aws-glue-job_jobcommand.go index 80ce404428..db57b6e202 100644 --- a/cloudformation/aws-glue-job_jobcommand.go +++ b/cloudformation/resources/aws-glue-job_jobcommand.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueJob_JobCommand AWS CloudFormation Resource (AWS::Glue::Job.JobCommand) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-jobcommand.html @@ -15,7 +17,7 @@ type AWSGlueJob_JobCommand struct { ScriptLocation string `json:"ScriptLocation,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSGlueJob_JobCommand) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueJob_JobCommand) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueJob_JobCommand) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-partition.go b/cloudformation/resources/aws-glue-partition.go similarity index 91% rename from cloudformation/aws-glue-partition.go rename to cloudformation/resources/aws-glue-partition.go index f3b829430e..a8be49be45 100644 --- a/cloudformation/aws-glue-partition.go +++ b/cloudformation/resources/aws-glue-partition.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSGluePartition AWS CloudFormation Resource (AWS::Glue::Partition) @@ -31,7 +32,7 @@ type AWSGluePartition struct { TableName string `json:"TableName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSGluePartition) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGluePartition) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGluePartition) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSGluePartition) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-glue-partition_column.go b/cloudformation/resources/aws-glue-partition_column.go similarity index 92% rename from cloudformation/aws-glue-partition_column.go rename to cloudformation/resources/aws-glue-partition_column.go index d7f0c33a9e..24d0913f96 100644 --- a/cloudformation/aws-glue-partition_column.go +++ b/cloudformation/resources/aws-glue-partition_column.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGluePartition_Column AWS CloudFormation Resource (AWS::Glue::Partition.Column) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-column.html @@ -20,7 +22,7 @@ type AWSGluePartition_Column struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSGluePartition_Column) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGluePartition_Column) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGluePartition_Column) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-partition_order.go b/cloudformation/resources/aws-glue-partition_order.go similarity index 92% rename from cloudformation/aws-glue-partition_order.go rename to cloudformation/resources/aws-glue-partition_order.go index 6ae772e6d6..fd67aefd69 100644 --- a/cloudformation/aws-glue-partition_order.go +++ b/cloudformation/resources/aws-glue-partition_order.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGluePartition_Order AWS CloudFormation Resource (AWS::Glue::Partition.Order) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-order.html @@ -15,7 +17,7 @@ type AWSGluePartition_Order struct { SortOrder int `json:"SortOrder,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSGluePartition_Order) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGluePartition_Order) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGluePartition_Order) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-partition_partitioninput.go b/cloudformation/resources/aws-glue-partition_partitioninput.go similarity index 95% rename from cloudformation/aws-glue-partition_partitioninput.go rename to cloudformation/resources/aws-glue-partition_partitioninput.go index 7fc8992c46..eb054ed209 100644 --- a/cloudformation/aws-glue-partition_partitioninput.go +++ b/cloudformation/resources/aws-glue-partition_partitioninput.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGluePartition_PartitionInput AWS CloudFormation Resource (AWS::Glue::Partition.PartitionInput) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-partitioninput.html @@ -20,7 +22,7 @@ type AWSGluePartition_PartitionInput struct { Values []string `json:"Values,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSGluePartition_PartitionInput) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGluePartition_PartitionInput) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGluePartition_PartitionInput) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-partition_serdeinfo.go b/cloudformation/resources/aws-glue-partition_serdeinfo.go similarity index 93% rename from cloudformation/aws-glue-partition_serdeinfo.go rename to cloudformation/resources/aws-glue-partition_serdeinfo.go index 73554f7bcb..3f061ed083 100644 --- a/cloudformation/aws-glue-partition_serdeinfo.go +++ b/cloudformation/resources/aws-glue-partition_serdeinfo.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGluePartition_SerdeInfo AWS CloudFormation Resource (AWS::Glue::Partition.SerdeInfo) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-serdeinfo.html @@ -20,7 +22,7 @@ type AWSGluePartition_SerdeInfo struct { SerializationLibrary string `json:"SerializationLibrary,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSGluePartition_SerdeInfo) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGluePartition_SerdeInfo) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGluePartition_SerdeInfo) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-partition_skewedinfo.go b/cloudformation/resources/aws-glue-partition_skewedinfo.go similarity index 93% rename from cloudformation/aws-glue-partition_skewedinfo.go rename to cloudformation/resources/aws-glue-partition_skewedinfo.go index 8b752bd73a..1c53b83ece 100644 --- a/cloudformation/aws-glue-partition_skewedinfo.go +++ b/cloudformation/resources/aws-glue-partition_skewedinfo.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGluePartition_SkewedInfo AWS CloudFormation Resource (AWS::Glue::Partition.SkewedInfo) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-skewedinfo.html @@ -20,7 +22,7 @@ type AWSGluePartition_SkewedInfo struct { SkewedColumnValues []string `json:"SkewedColumnValues,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSGluePartition_SkewedInfo) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGluePartition_SkewedInfo) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGluePartition_SkewedInfo) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-partition_storagedescriptor.go b/cloudformation/resources/aws-glue-partition_storagedescriptor.go similarity index 97% rename from cloudformation/aws-glue-partition_storagedescriptor.go rename to cloudformation/resources/aws-glue-partition_storagedescriptor.go index 8bf02cf666..e07276c713 100644 --- a/cloudformation/aws-glue-partition_storagedescriptor.go +++ b/cloudformation/resources/aws-glue-partition_storagedescriptor.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGluePartition_StorageDescriptor AWS CloudFormation Resource (AWS::Glue::Partition.StorageDescriptor) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html @@ -65,7 +67,7 @@ type AWSGluePartition_StorageDescriptor struct { StoredAsSubDirectories bool `json:"StoredAsSubDirectories,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -105,6 +107,6 @@ func (r *AWSGluePartition_StorageDescriptor) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGluePartition_StorageDescriptor) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGluePartition_StorageDescriptor) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-table.go b/cloudformation/resources/aws-glue-table.go similarity index 90% rename from cloudformation/aws-glue-table.go rename to cloudformation/resources/aws-glue-table.go index 2cbd626a7a..c3075539c9 100644 --- a/cloudformation/aws-glue-table.go +++ b/cloudformation/resources/aws-glue-table.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSGlueTable AWS CloudFormation Resource (AWS::Glue::Table) @@ -26,7 +27,7 @@ type AWSGlueTable struct { TableInput *AWSGlueTable_TableInput `json:"TableInput,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSGlueTable) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueTable) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueTable) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSGlueTable) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-glue-table_column.go b/cloudformation/resources/aws-glue-table_column.go similarity index 92% rename from cloudformation/aws-glue-table_column.go rename to cloudformation/resources/aws-glue-table_column.go index ff3f0e9944..d510ebb713 100644 --- a/cloudformation/aws-glue-table_column.go +++ b/cloudformation/resources/aws-glue-table_column.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueTable_Column AWS CloudFormation Resource (AWS::Glue::Table.Column) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-column.html @@ -20,7 +22,7 @@ type AWSGlueTable_Column struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSGlueTable_Column) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueTable_Column) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueTable_Column) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-table_order.go b/cloudformation/resources/aws-glue-table_order.go similarity index 92% rename from cloudformation/aws-glue-table_order.go rename to cloudformation/resources/aws-glue-table_order.go index 8a17b3f330..b9e6c82f9b 100644 --- a/cloudformation/aws-glue-table_order.go +++ b/cloudformation/resources/aws-glue-table_order.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueTable_Order AWS CloudFormation Resource (AWS::Glue::Table.Order) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-order.html @@ -15,7 +17,7 @@ type AWSGlueTable_Order struct { SortOrder int `json:"SortOrder"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSGlueTable_Order) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueTable_Order) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueTable_Order) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-table_serdeinfo.go b/cloudformation/resources/aws-glue-table_serdeinfo.go similarity index 93% rename from cloudformation/aws-glue-table_serdeinfo.go rename to cloudformation/resources/aws-glue-table_serdeinfo.go index 455d856c61..ff7cd1fb72 100644 --- a/cloudformation/aws-glue-table_serdeinfo.go +++ b/cloudformation/resources/aws-glue-table_serdeinfo.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueTable_SerdeInfo AWS CloudFormation Resource (AWS::Glue::Table.SerdeInfo) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-serdeinfo.html @@ -20,7 +22,7 @@ type AWSGlueTable_SerdeInfo struct { SerializationLibrary string `json:"SerializationLibrary,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSGlueTable_SerdeInfo) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueTable_SerdeInfo) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueTable_SerdeInfo) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-table_skewedinfo.go b/cloudformation/resources/aws-glue-table_skewedinfo.go similarity index 93% rename from cloudformation/aws-glue-table_skewedinfo.go rename to cloudformation/resources/aws-glue-table_skewedinfo.go index 8686b1bd2e..933bd6cf9c 100644 --- a/cloudformation/aws-glue-table_skewedinfo.go +++ b/cloudformation/resources/aws-glue-table_skewedinfo.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueTable_SkewedInfo AWS CloudFormation Resource (AWS::Glue::Table.SkewedInfo) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-skewedinfo.html @@ -20,7 +22,7 @@ type AWSGlueTable_SkewedInfo struct { SkewedColumnValues []string `json:"SkewedColumnValues,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSGlueTable_SkewedInfo) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueTable_SkewedInfo) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueTable_SkewedInfo) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-table_storagedescriptor.go b/cloudformation/resources/aws-glue-table_storagedescriptor.go similarity index 97% rename from cloudformation/aws-glue-table_storagedescriptor.go rename to cloudformation/resources/aws-glue-table_storagedescriptor.go index 1b0849ac7a..54a2dff8c9 100644 --- a/cloudformation/aws-glue-table_storagedescriptor.go +++ b/cloudformation/resources/aws-glue-table_storagedescriptor.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueTable_StorageDescriptor AWS CloudFormation Resource (AWS::Glue::Table.StorageDescriptor) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html @@ -65,7 +67,7 @@ type AWSGlueTable_StorageDescriptor struct { StoredAsSubDirectories bool `json:"StoredAsSubDirectories,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -105,6 +107,6 @@ func (r *AWSGlueTable_StorageDescriptor) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueTable_StorageDescriptor) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueTable_StorageDescriptor) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-table_tableinput.go b/cloudformation/resources/aws-glue-table_tableinput.go similarity index 95% rename from cloudformation/aws-glue-table_tableinput.go rename to cloudformation/resources/aws-glue-table_tableinput.go index 1595650899..1f498369ab 100644 --- a/cloudformation/aws-glue-table_tableinput.go +++ b/cloudformation/resources/aws-glue-table_tableinput.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueTable_TableInput AWS CloudFormation Resource (AWS::Glue::Table.TableInput) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html @@ -55,7 +57,7 @@ type AWSGlueTable_TableInput struct { ViewOriginalText string `json:"ViewOriginalText,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -95,6 +97,6 @@ func (r *AWSGlueTable_TableInput) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueTable_TableInput) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueTable_TableInput) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-trigger.go b/cloudformation/resources/aws-glue-trigger.go similarity index 92% rename from cloudformation/aws-glue-trigger.go rename to cloudformation/resources/aws-glue-trigger.go index 522b4ae040..23717fdc9e 100644 --- a/cloudformation/aws-glue-trigger.go +++ b/cloudformation/resources/aws-glue-trigger.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSGlueTrigger AWS CloudFormation Resource (AWS::Glue::Trigger) @@ -41,7 +42,7 @@ type AWSGlueTrigger struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -81,7 +82,7 @@ func (r *AWSGlueTrigger) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueTrigger) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueTrigger) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -92,9 +93,9 @@ func (r AWSGlueTrigger) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-glue-trigger_action.go b/cloudformation/resources/aws-glue-trigger_action.go similarity index 92% rename from cloudformation/aws-glue-trigger_action.go rename to cloudformation/resources/aws-glue-trigger_action.go index ae4583040e..20724efc87 100644 --- a/cloudformation/aws-glue-trigger_action.go +++ b/cloudformation/resources/aws-glue-trigger_action.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueTrigger_Action AWS CloudFormation Resource (AWS::Glue::Trigger.Action) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-action.html @@ -15,7 +17,7 @@ type AWSGlueTrigger_Action struct { JobName string `json:"JobName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSGlueTrigger_Action) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueTrigger_Action) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueTrigger_Action) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-trigger_condition.go b/cloudformation/resources/aws-glue-trigger_condition.go similarity index 92% rename from cloudformation/aws-glue-trigger_condition.go rename to cloudformation/resources/aws-glue-trigger_condition.go index f9c00351bf..5f5cdcdf55 100644 --- a/cloudformation/aws-glue-trigger_condition.go +++ b/cloudformation/resources/aws-glue-trigger_condition.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueTrigger_Condition AWS CloudFormation Resource (AWS::Glue::Trigger.Condition) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-condition.html @@ -20,7 +22,7 @@ type AWSGlueTrigger_Condition struct { State string `json:"State,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSGlueTrigger_Condition) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueTrigger_Condition) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueTrigger_Condition) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-glue-trigger_predicate.go b/cloudformation/resources/aws-glue-trigger_predicate.go similarity index 92% rename from cloudformation/aws-glue-trigger_predicate.go rename to cloudformation/resources/aws-glue-trigger_predicate.go index 37cb13624f..c52ca9be2d 100644 --- a/cloudformation/aws-glue-trigger_predicate.go +++ b/cloudformation/resources/aws-glue-trigger_predicate.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGlueTrigger_Predicate AWS CloudFormation Resource (AWS::Glue::Trigger.Predicate) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-predicate.html @@ -15,7 +17,7 @@ type AWSGlueTrigger_Predicate struct { Logical string `json:"Logical,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSGlueTrigger_Predicate) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGlueTrigger_Predicate) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGlueTrigger_Predicate) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-guardduty-detector.go b/cloudformation/resources/aws-guardduty-detector.go similarity index 90% rename from cloudformation/aws-guardduty-detector.go rename to cloudformation/resources/aws-guardduty-detector.go index dac04ba0cc..e825cd58e3 100644 --- a/cloudformation/aws-guardduty-detector.go +++ b/cloudformation/resources/aws-guardduty-detector.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSGuardDutyDetector AWS CloudFormation Resource (AWS::GuardDuty::Detector) @@ -21,7 +22,7 @@ type AWSGuardDutyDetector struct { FindingPublishingFrequency string `json:"FindingPublishingFrequency,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSGuardDutyDetector) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGuardDutyDetector) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGuardDutyDetector) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSGuardDutyDetector) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-guardduty-filter.go b/cloudformation/resources/aws-guardduty-filter.go similarity index 92% rename from cloudformation/aws-guardduty-filter.go rename to cloudformation/resources/aws-guardduty-filter.go index 4905642e13..bf9021cb91 100644 --- a/cloudformation/aws-guardduty-filter.go +++ b/cloudformation/resources/aws-guardduty-filter.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSGuardDutyFilter AWS CloudFormation Resource (AWS::GuardDuty::Filter) @@ -41,7 +42,7 @@ type AWSGuardDutyFilter struct { Rank int `json:"Rank"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -81,7 +82,7 @@ func (r *AWSGuardDutyFilter) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGuardDutyFilter) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGuardDutyFilter) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -92,9 +93,9 @@ func (r AWSGuardDutyFilter) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-guardduty-filter_condition.go b/cloudformation/resources/aws-guardduty-filter_condition.go similarity index 95% rename from cloudformation/aws-guardduty-filter_condition.go rename to cloudformation/resources/aws-guardduty-filter_condition.go index a3611e5c16..c59550f03a 100644 --- a/cloudformation/aws-guardduty-filter_condition.go +++ b/cloudformation/resources/aws-guardduty-filter_condition.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGuardDutyFilter_Condition AWS CloudFormation Resource (AWS::GuardDuty::Filter.Condition) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-condition.html @@ -30,7 +32,7 @@ type AWSGuardDutyFilter_Condition struct { Neq []string `json:"Neq,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSGuardDutyFilter_Condition) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGuardDutyFilter_Condition) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGuardDutyFilter_Condition) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-guardduty-filter_findingcriteria.go b/cloudformation/resources/aws-guardduty-filter_findingcriteria.go similarity index 94% rename from cloudformation/aws-guardduty-filter_findingcriteria.go rename to cloudformation/resources/aws-guardduty-filter_findingcriteria.go index 62b2b36151..0ac198335c 100644 --- a/cloudformation/aws-guardduty-filter_findingcriteria.go +++ b/cloudformation/resources/aws-guardduty-filter_findingcriteria.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSGuardDutyFilter_FindingCriteria AWS CloudFormation Resource (AWS::GuardDuty::Filter.FindingCriteria) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-findingcriteria.html @@ -15,7 +17,7 @@ type AWSGuardDutyFilter_FindingCriteria struct { ItemType *AWSGuardDutyFilter_Condition `json:"ItemType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSGuardDutyFilter_FindingCriteria) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGuardDutyFilter_FindingCriteria) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGuardDutyFilter_FindingCriteria) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-guardduty-ipset.go b/cloudformation/resources/aws-guardduty-ipset.go similarity index 91% rename from cloudformation/aws-guardduty-ipset.go rename to cloudformation/resources/aws-guardduty-ipset.go index 6c7fead858..7f4d732452 100644 --- a/cloudformation/aws-guardduty-ipset.go +++ b/cloudformation/resources/aws-guardduty-ipset.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSGuardDutyIPSet AWS CloudFormation Resource (AWS::GuardDuty::IPSet) @@ -36,7 +37,7 @@ type AWSGuardDutyIPSet struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSGuardDutyIPSet) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGuardDutyIPSet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGuardDutyIPSet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSGuardDutyIPSet) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-guardduty-master.go b/cloudformation/resources/aws-guardduty-master.go similarity index 90% rename from cloudformation/aws-guardduty-master.go rename to cloudformation/resources/aws-guardduty-master.go index 608afb6195..ef3ff5d584 100644 --- a/cloudformation/aws-guardduty-master.go +++ b/cloudformation/resources/aws-guardduty-master.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSGuardDutyMaster AWS CloudFormation Resource (AWS::GuardDuty::Master) @@ -26,7 +27,7 @@ type AWSGuardDutyMaster struct { MasterId string `json:"MasterId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSGuardDutyMaster) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGuardDutyMaster) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGuardDutyMaster) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSGuardDutyMaster) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-guardduty-member.go b/cloudformation/resources/aws-guardduty-member.go similarity index 92% rename from cloudformation/aws-guardduty-member.go rename to cloudformation/resources/aws-guardduty-member.go index 9a3b1f6fa3..3b96e440d5 100644 --- a/cloudformation/aws-guardduty-member.go +++ b/cloudformation/resources/aws-guardduty-member.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSGuardDutyMember AWS CloudFormation Resource (AWS::GuardDuty::Member) @@ -41,7 +42,7 @@ type AWSGuardDutyMember struct { Status string `json:"Status,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -81,7 +82,7 @@ func (r *AWSGuardDutyMember) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGuardDutyMember) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGuardDutyMember) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -92,9 +93,9 @@ func (r AWSGuardDutyMember) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-guardduty-threatintelset.go b/cloudformation/resources/aws-guardduty-threatintelset.go similarity index 91% rename from cloudformation/aws-guardduty-threatintelset.go rename to cloudformation/resources/aws-guardduty-threatintelset.go index 79645521d2..c9960d0683 100644 --- a/cloudformation/aws-guardduty-threatintelset.go +++ b/cloudformation/resources/aws-guardduty-threatintelset.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSGuardDutyThreatIntelSet AWS CloudFormation Resource (AWS::GuardDuty::ThreatIntelSet) @@ -36,7 +37,7 @@ type AWSGuardDutyThreatIntelSet struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSGuardDutyThreatIntelSet) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSGuardDutyThreatIntelSet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSGuardDutyThreatIntelSet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSGuardDutyThreatIntelSet) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iam-accesskey.go b/cloudformation/resources/aws-iam-accesskey.go similarity index 90% rename from cloudformation/aws-iam-accesskey.go rename to cloudformation/resources/aws-iam-accesskey.go index f1ce69838a..c608330eb2 100644 --- a/cloudformation/aws-iam-accesskey.go +++ b/cloudformation/resources/aws-iam-accesskey.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSIAMAccessKey AWS CloudFormation Resource (AWS::IAM::AccessKey) @@ -26,7 +27,7 @@ type AWSIAMAccessKey struct { UserName string `json:"UserName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSIAMAccessKey) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIAMAccessKey) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIAMAccessKey) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSIAMAccessKey) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iam-group.go b/cloudformation/resources/aws-iam-group.go similarity index 91% rename from cloudformation/aws-iam-group.go rename to cloudformation/resources/aws-iam-group.go index 8fe390cd3b..26b93da3ab 100644 --- a/cloudformation/aws-iam-group.go +++ b/cloudformation/resources/aws-iam-group.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSIAMGroup AWS CloudFormation Resource (AWS::IAM::Group) @@ -31,7 +32,7 @@ type AWSIAMGroup struct { Policies []AWSIAMGroup_Policy `json:"Policies,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSIAMGroup) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIAMGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIAMGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSIAMGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iam-group_policy.go b/cloudformation/resources/aws-iam-group_policy.go similarity index 92% rename from cloudformation/aws-iam-group_policy.go rename to cloudformation/resources/aws-iam-group_policy.go index 1bf1aa2010..02b69a3ee4 100644 --- a/cloudformation/aws-iam-group_policy.go +++ b/cloudformation/resources/aws-iam-group_policy.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIAMGroup_Policy AWS CloudFormation Resource (AWS::IAM::Group.Policy) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html @@ -15,7 +17,7 @@ type AWSIAMGroup_Policy struct { PolicyName string `json:"PolicyName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSIAMGroup_Policy) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIAMGroup_Policy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIAMGroup_Policy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iam-instanceprofile.go b/cloudformation/resources/aws-iam-instanceprofile.go similarity index 91% rename from cloudformation/aws-iam-instanceprofile.go rename to cloudformation/resources/aws-iam-instanceprofile.go index 82f67eb5d9..b70978abc7 100644 --- a/cloudformation/aws-iam-instanceprofile.go +++ b/cloudformation/resources/aws-iam-instanceprofile.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSIAMInstanceProfile AWS CloudFormation Resource (AWS::IAM::InstanceProfile) @@ -26,7 +27,7 @@ type AWSIAMInstanceProfile struct { Roles []string `json:"Roles,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSIAMInstanceProfile) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIAMInstanceProfile) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIAMInstanceProfile) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSIAMInstanceProfile) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iam-managedpolicy.go b/cloudformation/resources/aws-iam-managedpolicy.go similarity index 92% rename from cloudformation/aws-iam-managedpolicy.go rename to cloudformation/resources/aws-iam-managedpolicy.go index 5467f38fc4..d85264a687 100644 --- a/cloudformation/aws-iam-managedpolicy.go +++ b/cloudformation/resources/aws-iam-managedpolicy.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSIAMManagedPolicy AWS CloudFormation Resource (AWS::IAM::ManagedPolicy) @@ -46,7 +47,7 @@ type AWSIAMManagedPolicy struct { Users []string `json:"Users,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSIAMManagedPolicy) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIAMManagedPolicy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIAMManagedPolicy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSIAMManagedPolicy) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iam-policy.go b/cloudformation/resources/aws-iam-policy.go similarity index 91% rename from cloudformation/aws-iam-policy.go rename to cloudformation/resources/aws-iam-policy.go index 1edf73dfad..3bc9c556b2 100644 --- a/cloudformation/aws-iam-policy.go +++ b/cloudformation/resources/aws-iam-policy.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSIAMPolicy AWS CloudFormation Resource (AWS::IAM::Policy) @@ -36,7 +37,7 @@ type AWSIAMPolicy struct { Users []string `json:"Users,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSIAMPolicy) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIAMPolicy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIAMPolicy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSIAMPolicy) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iam-role.go b/cloudformation/resources/aws-iam-role.go similarity index 92% rename from cloudformation/aws-iam-role.go rename to cloudformation/resources/aws-iam-role.go index 3363bd64a9..f2406886ce 100644 --- a/cloudformation/aws-iam-role.go +++ b/cloudformation/resources/aws-iam-role.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSIAMRole AWS CloudFormation Resource (AWS::IAM::Role) @@ -46,7 +47,7 @@ type AWSIAMRole struct { RoleName string `json:"RoleName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSIAMRole) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIAMRole) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIAMRole) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSIAMRole) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iam-role_policy.go b/cloudformation/resources/aws-iam-role_policy.go similarity index 92% rename from cloudformation/aws-iam-role_policy.go rename to cloudformation/resources/aws-iam-role_policy.go index e6cf0f0377..55964fba60 100644 --- a/cloudformation/aws-iam-role_policy.go +++ b/cloudformation/resources/aws-iam-role_policy.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIAMRole_Policy AWS CloudFormation Resource (AWS::IAM::Role.Policy) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html @@ -15,7 +17,7 @@ type AWSIAMRole_Policy struct { PolicyName string `json:"PolicyName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSIAMRole_Policy) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIAMRole_Policy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIAMRole_Policy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iam-servicelinkedrole.go b/cloudformation/resources/aws-iam-servicelinkedrole.go similarity index 91% rename from cloudformation/aws-iam-servicelinkedrole.go rename to cloudformation/resources/aws-iam-servicelinkedrole.go index 1c32062557..fdc77246a3 100644 --- a/cloudformation/aws-iam-servicelinkedrole.go +++ b/cloudformation/resources/aws-iam-servicelinkedrole.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSIAMServiceLinkedRole AWS CloudFormation Resource (AWS::IAM::ServiceLinkedRole) @@ -26,7 +27,7 @@ type AWSIAMServiceLinkedRole struct { Description string `json:"Description,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSIAMServiceLinkedRole) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIAMServiceLinkedRole) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIAMServiceLinkedRole) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSIAMServiceLinkedRole) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iam-user.go b/cloudformation/resources/aws-iam-user.go similarity index 92% rename from cloudformation/aws-iam-user.go rename to cloudformation/resources/aws-iam-user.go index ebd5971e04..5a102bb2f5 100644 --- a/cloudformation/aws-iam-user.go +++ b/cloudformation/resources/aws-iam-user.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSIAMUser AWS CloudFormation Resource (AWS::IAM::User) @@ -46,7 +47,7 @@ type AWSIAMUser struct { UserName string `json:"UserName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSIAMUser) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIAMUser) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIAMUser) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSIAMUser) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iam-user_loginprofile.go b/cloudformation/resources/aws-iam-user_loginprofile.go similarity index 92% rename from cloudformation/aws-iam-user_loginprofile.go rename to cloudformation/resources/aws-iam-user_loginprofile.go index 902892ca7e..d234dd1849 100644 --- a/cloudformation/aws-iam-user_loginprofile.go +++ b/cloudformation/resources/aws-iam-user_loginprofile.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIAMUser_LoginProfile AWS CloudFormation Resource (AWS::IAM::User.LoginProfile) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user-loginprofile.html @@ -15,7 +17,7 @@ type AWSIAMUser_LoginProfile struct { PasswordResetRequired bool `json:"PasswordResetRequired,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSIAMUser_LoginProfile) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIAMUser_LoginProfile) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIAMUser_LoginProfile) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iam-user_policy.go b/cloudformation/resources/aws-iam-user_policy.go similarity index 92% rename from cloudformation/aws-iam-user_policy.go rename to cloudformation/resources/aws-iam-user_policy.go index fa25827a5a..b738f98570 100644 --- a/cloudformation/aws-iam-user_policy.go +++ b/cloudformation/resources/aws-iam-user_policy.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIAMUser_Policy AWS CloudFormation Resource (AWS::IAM::User.Policy) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html @@ -15,7 +17,7 @@ type AWSIAMUser_Policy struct { PolicyName string `json:"PolicyName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSIAMUser_Policy) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIAMUser_Policy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIAMUser_Policy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iam-usertogroupaddition.go b/cloudformation/resources/aws-iam-usertogroupaddition.go similarity index 90% rename from cloudformation/aws-iam-usertogroupaddition.go rename to cloudformation/resources/aws-iam-usertogroupaddition.go index b828ae08f2..124c2c5d84 100644 --- a/cloudformation/aws-iam-usertogroupaddition.go +++ b/cloudformation/resources/aws-iam-usertogroupaddition.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSIAMUserToGroupAddition AWS CloudFormation Resource (AWS::IAM::UserToGroupAddition) @@ -21,7 +22,7 @@ type AWSIAMUserToGroupAddition struct { Users []string `json:"Users,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSIAMUserToGroupAddition) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIAMUserToGroupAddition) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIAMUserToGroupAddition) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSIAMUserToGroupAddition) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-inspector-assessmenttarget.go b/cloudformation/resources/aws-inspector-assessmenttarget.go similarity index 92% rename from cloudformation/aws-inspector-assessmenttarget.go rename to cloudformation/resources/aws-inspector-assessmenttarget.go index af712d72ca..593b078f6a 100644 --- a/cloudformation/aws-inspector-assessmenttarget.go +++ b/cloudformation/resources/aws-inspector-assessmenttarget.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSInspectorAssessmentTarget AWS CloudFormation Resource (AWS::Inspector::AssessmentTarget) @@ -21,7 +22,7 @@ type AWSInspectorAssessmentTarget struct { ResourceGroupArn string `json:"ResourceGroupArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSInspectorAssessmentTarget) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSInspectorAssessmentTarget) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSInspectorAssessmentTarget) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSInspectorAssessmentTarget) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-inspector-assessmenttemplate.go b/cloudformation/resources/aws-inspector-assessmenttemplate.go similarity index 93% rename from cloudformation/aws-inspector-assessmenttemplate.go rename to cloudformation/resources/aws-inspector-assessmenttemplate.go index 81c556914b..0414ea334a 100644 --- a/cloudformation/aws-inspector-assessmenttemplate.go +++ b/cloudformation/resources/aws-inspector-assessmenttemplate.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSInspectorAssessmentTemplate AWS CloudFormation Resource (AWS::Inspector::AssessmentTemplate) @@ -36,7 +37,7 @@ type AWSInspectorAssessmentTemplate struct { UserAttributesForFindings []Tag `json:"UserAttributesForFindings,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSInspectorAssessmentTemplate) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSInspectorAssessmentTemplate) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSInspectorAssessmentTemplate) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSInspectorAssessmentTemplate) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-inspector-resourcegroup.go b/cloudformation/resources/aws-inspector-resourcegroup.go similarity index 90% rename from cloudformation/aws-inspector-resourcegroup.go rename to cloudformation/resources/aws-inspector-resourcegroup.go index ce2d57b3ee..c92d7867d7 100644 --- a/cloudformation/aws-inspector-resourcegroup.go +++ b/cloudformation/resources/aws-inspector-resourcegroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSInspectorResourceGroup AWS CloudFormation Resource (AWS::Inspector::ResourceGroup) @@ -16,7 +17,7 @@ type AWSInspectorResourceGroup struct { ResourceGroupTags []Tag `json:"ResourceGroupTags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -56,7 +57,7 @@ func (r *AWSInspectorResourceGroup) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSInspectorResourceGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSInspectorResourceGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -67,9 +68,9 @@ func (r AWSInspectorResourceGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iot-certificate.go b/cloudformation/resources/aws-iot-certificate.go similarity index 90% rename from cloudformation/aws-iot-certificate.go rename to cloudformation/resources/aws-iot-certificate.go index a48fba8124..be58ea3536 100644 --- a/cloudformation/aws-iot-certificate.go +++ b/cloudformation/resources/aws-iot-certificate.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSIoTCertificate AWS CloudFormation Resource (AWS::IoT::Certificate) @@ -21,7 +22,7 @@ type AWSIoTCertificate struct { Status string `json:"Status,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSIoTCertificate) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTCertificate) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTCertificate) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSIoTCertificate) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iot-policy.go b/cloudformation/resources/aws-iot-policy.go similarity index 90% rename from cloudformation/aws-iot-policy.go rename to cloudformation/resources/aws-iot-policy.go index 90eb1b332e..3fb922da76 100644 --- a/cloudformation/aws-iot-policy.go +++ b/cloudformation/resources/aws-iot-policy.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSIoTPolicy AWS CloudFormation Resource (AWS::IoT::Policy) @@ -21,7 +22,7 @@ type AWSIoTPolicy struct { PolicyName string `json:"PolicyName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSIoTPolicy) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTPolicy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTPolicy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSIoTPolicy) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iot-policyprincipalattachment.go b/cloudformation/resources/aws-iot-policyprincipalattachment.go similarity index 92% rename from cloudformation/aws-iot-policyprincipalattachment.go rename to cloudformation/resources/aws-iot-policyprincipalattachment.go index 39b22a4d8b..61a33d0d48 100644 --- a/cloudformation/aws-iot-policyprincipalattachment.go +++ b/cloudformation/resources/aws-iot-policyprincipalattachment.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSIoTPolicyPrincipalAttachment AWS CloudFormation Resource (AWS::IoT::PolicyPrincipalAttachment) @@ -21,7 +22,7 @@ type AWSIoTPolicyPrincipalAttachment struct { Principal string `json:"Principal,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSIoTPolicyPrincipalAttachment) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTPolicyPrincipalAttachment) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTPolicyPrincipalAttachment) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSIoTPolicyPrincipalAttachment) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iot-thing.go b/cloudformation/resources/aws-iot-thing.go similarity index 90% rename from cloudformation/aws-iot-thing.go rename to cloudformation/resources/aws-iot-thing.go index 26242570e0..00adbd9dc0 100644 --- a/cloudformation/aws-iot-thing.go +++ b/cloudformation/resources/aws-iot-thing.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSIoTThing AWS CloudFormation Resource (AWS::IoT::Thing) @@ -21,7 +22,7 @@ type AWSIoTThing struct { ThingName string `json:"ThingName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSIoTThing) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTThing) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTThing) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSIoTThing) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iot-thing_attributepayload.go b/cloudformation/resources/aws-iot-thing_attributepayload.go similarity index 94% rename from cloudformation/aws-iot-thing_attributepayload.go rename to cloudformation/resources/aws-iot-thing_attributepayload.go index 81eb24abb6..0717f30d1a 100644 --- a/cloudformation/aws-iot-thing_attributepayload.go +++ b/cloudformation/resources/aws-iot-thing_attributepayload.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTThing_AttributePayload AWS CloudFormation Resource (AWS::IoT::Thing.AttributePayload) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-thing-attributepayload.html @@ -10,7 +12,7 @@ type AWSIoTThing_AttributePayload struct { Attributes map[string]string `json:"Attributes,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSIoTThing_AttributePayload) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTThing_AttributePayload) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTThing_AttributePayload) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iot-thingprincipalattachment.go b/cloudformation/resources/aws-iot-thingprincipalattachment.go similarity index 92% rename from cloudformation/aws-iot-thingprincipalattachment.go rename to cloudformation/resources/aws-iot-thingprincipalattachment.go index 5ce60df325..f48c8d40cf 100644 --- a/cloudformation/aws-iot-thingprincipalattachment.go +++ b/cloudformation/resources/aws-iot-thingprincipalattachment.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSIoTThingPrincipalAttachment AWS CloudFormation Resource (AWS::IoT::ThingPrincipalAttachment) @@ -21,7 +22,7 @@ type AWSIoTThingPrincipalAttachment struct { ThingName string `json:"ThingName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSIoTThingPrincipalAttachment) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTThingPrincipalAttachment) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTThingPrincipalAttachment) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSIoTThingPrincipalAttachment) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iot-topicrule.go b/cloudformation/resources/aws-iot-topicrule.go similarity index 90% rename from cloudformation/aws-iot-topicrule.go rename to cloudformation/resources/aws-iot-topicrule.go index 94570e13e8..c9c9817fda 100644 --- a/cloudformation/aws-iot-topicrule.go +++ b/cloudformation/resources/aws-iot-topicrule.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSIoTTopicRule AWS CloudFormation Resource (AWS::IoT::TopicRule) @@ -21,7 +22,7 @@ type AWSIoTTopicRule struct { TopicRulePayload *AWSIoTTopicRule_TopicRulePayload `json:"TopicRulePayload,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSIoTTopicRule) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTTopicRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTTopicRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSIoTTopicRule) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iot-topicrule_action.go b/cloudformation/resources/aws-iot-topicrule_action.go similarity index 96% rename from cloudformation/aws-iot-topicrule_action.go rename to cloudformation/resources/aws-iot-topicrule_action.go index 0158585e41..77b7cd8c24 100644 --- a/cloudformation/aws-iot-topicrule_action.go +++ b/cloudformation/resources/aws-iot-topicrule_action.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTTopicRule_Action AWS CloudFormation Resource (AWS::IoT::TopicRule.Action) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html @@ -75,7 +77,7 @@ type AWSIoTTopicRule_Action struct { StepFunctions *AWSIoTTopicRule_StepFunctionsAction `json:"StepFunctions,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -115,6 +117,6 @@ func (r *AWSIoTTopicRule_Action) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTTopicRule_Action) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTTopicRule_Action) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iot-topicrule_cloudwatchalarmaction.go b/cloudformation/resources/aws-iot-topicrule_cloudwatchalarmaction.go similarity index 95% rename from cloudformation/aws-iot-topicrule_cloudwatchalarmaction.go rename to cloudformation/resources/aws-iot-topicrule_cloudwatchalarmaction.go index fb05cf2ea4..1031a2c36a 100644 --- a/cloudformation/aws-iot-topicrule_cloudwatchalarmaction.go +++ b/cloudformation/resources/aws-iot-topicrule_cloudwatchalarmaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTTopicRule_CloudwatchAlarmAction AWS CloudFormation Resource (AWS::IoT::TopicRule.CloudwatchAlarmAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchalarmaction.html @@ -25,7 +27,7 @@ type AWSIoTTopicRule_CloudwatchAlarmAction struct { StateValue string `json:"StateValue,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSIoTTopicRule_CloudwatchAlarmAction) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTTopicRule_CloudwatchAlarmAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTTopicRule_CloudwatchAlarmAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iot-topicrule_cloudwatchmetricaction.go b/cloudformation/resources/aws-iot-topicrule_cloudwatchmetricaction.go similarity index 96% rename from cloudformation/aws-iot-topicrule_cloudwatchmetricaction.go rename to cloudformation/resources/aws-iot-topicrule_cloudwatchmetricaction.go index 24fb286691..fedfb1f74b 100644 --- a/cloudformation/aws-iot-topicrule_cloudwatchmetricaction.go +++ b/cloudformation/resources/aws-iot-topicrule_cloudwatchmetricaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTTopicRule_CloudwatchMetricAction AWS CloudFormation Resource (AWS::IoT::TopicRule.CloudwatchMetricAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html @@ -35,7 +37,7 @@ type AWSIoTTopicRule_CloudwatchMetricAction struct { RoleArn string `json:"RoleArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSIoTTopicRule_CloudwatchMetricAction) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTTopicRule_CloudwatchMetricAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTTopicRule_CloudwatchMetricAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iot-topicrule_dynamodbaction.go b/cloudformation/resources/aws-iot-topicrule_dynamodbaction.go similarity index 96% rename from cloudformation/aws-iot-topicrule_dynamodbaction.go rename to cloudformation/resources/aws-iot-topicrule_dynamodbaction.go index c525d48bcb..4d98deb0d0 100644 --- a/cloudformation/aws-iot-topicrule_dynamodbaction.go +++ b/cloudformation/resources/aws-iot-topicrule_dynamodbaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTTopicRule_DynamoDBAction AWS CloudFormation Resource (AWS::IoT::TopicRule.DynamoDBAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html @@ -50,7 +52,7 @@ type AWSIoTTopicRule_DynamoDBAction struct { TableName string `json:"TableName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -90,6 +92,6 @@ func (r *AWSIoTTopicRule_DynamoDBAction) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTTopicRule_DynamoDBAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTTopicRule_DynamoDBAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iot-topicrule_dynamodbv2action.go b/cloudformation/resources/aws-iot-topicrule_dynamodbv2action.go similarity index 94% rename from cloudformation/aws-iot-topicrule_dynamodbv2action.go rename to cloudformation/resources/aws-iot-topicrule_dynamodbv2action.go index d3cd7a3ec7..135fde1c87 100644 --- a/cloudformation/aws-iot-topicrule_dynamodbv2action.go +++ b/cloudformation/resources/aws-iot-topicrule_dynamodbv2action.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTTopicRule_DynamoDBv2Action AWS CloudFormation Resource (AWS::IoT::TopicRule.DynamoDBv2Action) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbv2action.html @@ -15,7 +17,7 @@ type AWSIoTTopicRule_DynamoDBv2Action struct { RoleArn string `json:"RoleArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSIoTTopicRule_DynamoDBv2Action) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTTopicRule_DynamoDBv2Action) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTTopicRule_DynamoDBv2Action) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iot-topicrule_elasticsearchaction.go b/cloudformation/resources/aws-iot-topicrule_elasticsearchaction.go similarity index 95% rename from cloudformation/aws-iot-topicrule_elasticsearchaction.go rename to cloudformation/resources/aws-iot-topicrule_elasticsearchaction.go index 24f5d72bd5..d6bac187b9 100644 --- a/cloudformation/aws-iot-topicrule_elasticsearchaction.go +++ b/cloudformation/resources/aws-iot-topicrule_elasticsearchaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTTopicRule_ElasticsearchAction AWS CloudFormation Resource (AWS::IoT::TopicRule.ElasticsearchAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html @@ -30,7 +32,7 @@ type AWSIoTTopicRule_ElasticsearchAction struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSIoTTopicRule_ElasticsearchAction) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTTopicRule_ElasticsearchAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTTopicRule_ElasticsearchAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iot-topicrule_firehoseaction.go b/cloudformation/resources/aws-iot-topicrule_firehoseaction.go similarity index 95% rename from cloudformation/aws-iot-topicrule_firehoseaction.go rename to cloudformation/resources/aws-iot-topicrule_firehoseaction.go index b3ddd6ad3a..ed6409375a 100644 --- a/cloudformation/aws-iot-topicrule_firehoseaction.go +++ b/cloudformation/resources/aws-iot-topicrule_firehoseaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTTopicRule_FirehoseAction AWS CloudFormation Resource (AWS::IoT::TopicRule.FirehoseAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-firehoseaction.html @@ -20,7 +22,7 @@ type AWSIoTTopicRule_FirehoseAction struct { Separator string `json:"Separator,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSIoTTopicRule_FirehoseAction) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTTopicRule_FirehoseAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTTopicRule_FirehoseAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iot-topicrule_iotanalyticsaction.go b/cloudformation/resources/aws-iot-topicrule_iotanalyticsaction.go similarity index 94% rename from cloudformation/aws-iot-topicrule_iotanalyticsaction.go rename to cloudformation/resources/aws-iot-topicrule_iotanalyticsaction.go index 0a84f128c6..2745ba45d8 100644 --- a/cloudformation/aws-iot-topicrule_iotanalyticsaction.go +++ b/cloudformation/resources/aws-iot-topicrule_iotanalyticsaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTTopicRule_IotAnalyticsAction AWS CloudFormation Resource (AWS::IoT::TopicRule.IotAnalyticsAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotanalyticsaction.html @@ -15,7 +17,7 @@ type AWSIoTTopicRule_IotAnalyticsAction struct { RoleArn string `json:"RoleArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSIoTTopicRule_IotAnalyticsAction) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTTopicRule_IotAnalyticsAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTTopicRule_IotAnalyticsAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iot-topicrule_kinesisaction.go b/cloudformation/resources/aws-iot-topicrule_kinesisaction.go similarity index 95% rename from cloudformation/aws-iot-topicrule_kinesisaction.go rename to cloudformation/resources/aws-iot-topicrule_kinesisaction.go index d6e25c7f11..1211c11204 100644 --- a/cloudformation/aws-iot-topicrule_kinesisaction.go +++ b/cloudformation/resources/aws-iot-topicrule_kinesisaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTTopicRule_KinesisAction AWS CloudFormation Resource (AWS::IoT::TopicRule.KinesisAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kinesisaction.html @@ -20,7 +22,7 @@ type AWSIoTTopicRule_KinesisAction struct { StreamName string `json:"StreamName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSIoTTopicRule_KinesisAction) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTTopicRule_KinesisAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTTopicRule_KinesisAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iot-topicrule_lambdaaction.go b/cloudformation/resources/aws-iot-topicrule_lambdaaction.go similarity index 94% rename from cloudformation/aws-iot-topicrule_lambdaaction.go rename to cloudformation/resources/aws-iot-topicrule_lambdaaction.go index 35b7a7797d..b2c9b0d33c 100644 --- a/cloudformation/aws-iot-topicrule_lambdaaction.go +++ b/cloudformation/resources/aws-iot-topicrule_lambdaaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTTopicRule_LambdaAction AWS CloudFormation Resource (AWS::IoT::TopicRule.LambdaAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-lambdaaction.html @@ -10,7 +12,7 @@ type AWSIoTTopicRule_LambdaAction struct { FunctionArn string `json:"FunctionArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSIoTTopicRule_LambdaAction) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTTopicRule_LambdaAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTTopicRule_LambdaAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iot-topicrule_putiteminput.go b/cloudformation/resources/aws-iot-topicrule_putiteminput.go similarity index 94% rename from cloudformation/aws-iot-topicrule_putiteminput.go rename to cloudformation/resources/aws-iot-topicrule_putiteminput.go index 167799b516..089f94ef07 100644 --- a/cloudformation/aws-iot-topicrule_putiteminput.go +++ b/cloudformation/resources/aws-iot-topicrule_putiteminput.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTTopicRule_PutItemInput AWS CloudFormation Resource (AWS::IoT::TopicRule.PutItemInput) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putiteminput.html @@ -10,7 +12,7 @@ type AWSIoTTopicRule_PutItemInput struct { TableName string `json:"TableName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSIoTTopicRule_PutItemInput) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTTopicRule_PutItemInput) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTTopicRule_PutItemInput) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iot-topicrule_republishaction.go b/cloudformation/resources/aws-iot-topicrule_republishaction.go similarity index 94% rename from cloudformation/aws-iot-topicrule_republishaction.go rename to cloudformation/resources/aws-iot-topicrule_republishaction.go index 38452b0865..3adcfaaf22 100644 --- a/cloudformation/aws-iot-topicrule_republishaction.go +++ b/cloudformation/resources/aws-iot-topicrule_republishaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTTopicRule_RepublishAction AWS CloudFormation Resource (AWS::IoT::TopicRule.RepublishAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-republishaction.html @@ -15,7 +17,7 @@ type AWSIoTTopicRule_RepublishAction struct { Topic string `json:"Topic,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSIoTTopicRule_RepublishAction) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTTopicRule_RepublishAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTTopicRule_RepublishAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iot-topicrule_s3action.go b/cloudformation/resources/aws-iot-topicrule_s3action.go similarity index 92% rename from cloudformation/aws-iot-topicrule_s3action.go rename to cloudformation/resources/aws-iot-topicrule_s3action.go index d6d397d1c8..a518bc77c8 100644 --- a/cloudformation/aws-iot-topicrule_s3action.go +++ b/cloudformation/resources/aws-iot-topicrule_s3action.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTTopicRule_S3Action AWS CloudFormation Resource (AWS::IoT::TopicRule.S3Action) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-s3action.html @@ -20,7 +22,7 @@ type AWSIoTTopicRule_S3Action struct { RoleArn string `json:"RoleArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSIoTTopicRule_S3Action) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTTopicRule_S3Action) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTTopicRule_S3Action) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iot-topicrule_snsaction.go b/cloudformation/resources/aws-iot-topicrule_snsaction.go similarity index 92% rename from cloudformation/aws-iot-topicrule_snsaction.go rename to cloudformation/resources/aws-iot-topicrule_snsaction.go index c5299a9e13..7d65493f35 100644 --- a/cloudformation/aws-iot-topicrule_snsaction.go +++ b/cloudformation/resources/aws-iot-topicrule_snsaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTTopicRule_SnsAction AWS CloudFormation Resource (AWS::IoT::TopicRule.SnsAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-snsaction.html @@ -20,7 +22,7 @@ type AWSIoTTopicRule_SnsAction struct { TargetArn string `json:"TargetArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSIoTTopicRule_SnsAction) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTTopicRule_SnsAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTTopicRule_SnsAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iot-topicrule_sqsaction.go b/cloudformation/resources/aws-iot-topicrule_sqsaction.go similarity index 92% rename from cloudformation/aws-iot-topicrule_sqsaction.go rename to cloudformation/resources/aws-iot-topicrule_sqsaction.go index e285a80847..9abdd87212 100644 --- a/cloudformation/aws-iot-topicrule_sqsaction.go +++ b/cloudformation/resources/aws-iot-topicrule_sqsaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTTopicRule_SqsAction AWS CloudFormation Resource (AWS::IoT::TopicRule.SqsAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sqsaction.html @@ -20,7 +22,7 @@ type AWSIoTTopicRule_SqsAction struct { UseBase64 bool `json:"UseBase64,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSIoTTopicRule_SqsAction) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTTopicRule_SqsAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTTopicRule_SqsAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iot-topicrule_stepfunctionsaction.go b/cloudformation/resources/aws-iot-topicrule_stepfunctionsaction.go similarity index 95% rename from cloudformation/aws-iot-topicrule_stepfunctionsaction.go rename to cloudformation/resources/aws-iot-topicrule_stepfunctionsaction.go index e777a20650..0cc34c77b4 100644 --- a/cloudformation/aws-iot-topicrule_stepfunctionsaction.go +++ b/cloudformation/resources/aws-iot-topicrule_stepfunctionsaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTTopicRule_StepFunctionsAction AWS CloudFormation Resource (AWS::IoT::TopicRule.StepFunctionsAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-stepfunctionsaction.html @@ -20,7 +22,7 @@ type AWSIoTTopicRule_StepFunctionsAction struct { StateMachineName string `json:"StateMachineName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSIoTTopicRule_StepFunctionsAction) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTTopicRule_StepFunctionsAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTTopicRule_StepFunctionsAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iot-topicrule_topicrulepayload.go b/cloudformation/resources/aws-iot-topicrule_topicrulepayload.go similarity index 96% rename from cloudformation/aws-iot-topicrule_topicrulepayload.go rename to cloudformation/resources/aws-iot-topicrule_topicrulepayload.go index 4d5612b364..641456be7b 100644 --- a/cloudformation/aws-iot-topicrule_topicrulepayload.go +++ b/cloudformation/resources/aws-iot-topicrule_topicrulepayload.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTTopicRule_TopicRulePayload AWS CloudFormation Resource (AWS::IoT::TopicRule.TopicRulePayload) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html @@ -35,7 +37,7 @@ type AWSIoTTopicRule_TopicRulePayload struct { Sql string `json:"Sql,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSIoTTopicRule_TopicRulePayload) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTTopicRule_TopicRulePayload) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTTopicRule_TopicRulePayload) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iot1click-device.go b/cloudformation/resources/aws-iot1click-device.go similarity index 90% rename from cloudformation/aws-iot1click-device.go rename to cloudformation/resources/aws-iot1click-device.go index b900f766ff..3a40e3db4a 100644 --- a/cloudformation/aws-iot1click-device.go +++ b/cloudformation/resources/aws-iot1click-device.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSIoT1ClickDevice AWS CloudFormation Resource (AWS::IoT1Click::Device) @@ -21,7 +22,7 @@ type AWSIoT1ClickDevice struct { Enabled bool `json:"Enabled"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSIoT1ClickDevice) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoT1ClickDevice) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoT1ClickDevice) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSIoT1ClickDevice) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iot1click-placement.go b/cloudformation/resources/aws-iot1click-placement.go similarity index 91% rename from cloudformation/aws-iot1click-placement.go rename to cloudformation/resources/aws-iot1click-placement.go index b646c04ea0..680ea25acc 100644 --- a/cloudformation/aws-iot1click-placement.go +++ b/cloudformation/resources/aws-iot1click-placement.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSIoT1ClickPlacement AWS CloudFormation Resource (AWS::IoT1Click::Placement) @@ -31,7 +32,7 @@ type AWSIoT1ClickPlacement struct { ProjectName string `json:"ProjectName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSIoT1ClickPlacement) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoT1ClickPlacement) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoT1ClickPlacement) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSIoT1ClickPlacement) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iot1click-project.go b/cloudformation/resources/aws-iot1click-project.go similarity index 91% rename from cloudformation/aws-iot1click-project.go rename to cloudformation/resources/aws-iot1click-project.go index 0d606abe67..54bcd589e7 100644 --- a/cloudformation/aws-iot1click-project.go +++ b/cloudformation/resources/aws-iot1click-project.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSIoT1ClickProject AWS CloudFormation Resource (AWS::IoT1Click::Project) @@ -26,7 +27,7 @@ type AWSIoT1ClickProject struct { ProjectName string `json:"ProjectName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSIoT1ClickProject) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoT1ClickProject) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoT1ClickProject) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSIoT1ClickProject) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iot1click-project_devicetemplate.go b/cloudformation/resources/aws-iot1click-project_devicetemplate.go similarity index 94% rename from cloudformation/aws-iot1click-project_devicetemplate.go rename to cloudformation/resources/aws-iot1click-project_devicetemplate.go index fd22812f92..d0518b396b 100644 --- a/cloudformation/aws-iot1click-project_devicetemplate.go +++ b/cloudformation/resources/aws-iot1click-project_devicetemplate.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoT1ClickProject_DeviceTemplate AWS CloudFormation Resource (AWS::IoT1Click::Project.DeviceTemplate) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot1click-project-devicetemplate.html @@ -15,7 +17,7 @@ type AWSIoT1ClickProject_DeviceTemplate struct { DeviceType string `json:"DeviceType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSIoT1ClickProject_DeviceTemplate) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoT1ClickProject_DeviceTemplate) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoT1ClickProject_DeviceTemplate) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iot1click-project_placementtemplate.go b/cloudformation/resources/aws-iot1click-project_placementtemplate.go similarity index 94% rename from cloudformation/aws-iot1click-project_placementtemplate.go rename to cloudformation/resources/aws-iot1click-project_placementtemplate.go index 9237f317d2..c12de33588 100644 --- a/cloudformation/aws-iot1click-project_placementtemplate.go +++ b/cloudformation/resources/aws-iot1click-project_placementtemplate.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoT1ClickProject_PlacementTemplate AWS CloudFormation Resource (AWS::IoT1Click::Project.PlacementTemplate) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot1click-project-placementtemplate.html @@ -15,7 +17,7 @@ type AWSIoT1ClickProject_PlacementTemplate struct { DeviceTemplates interface{} `json:"DeviceTemplates,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSIoT1ClickProject_PlacementTemplate) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoT1ClickProject_PlacementTemplate) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoT1ClickProject_PlacementTemplate) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-channel.go b/cloudformation/resources/aws-iotanalytics-channel.go similarity index 91% rename from cloudformation/aws-iotanalytics-channel.go rename to cloudformation/resources/aws-iotanalytics-channel.go index ea3590923c..8e8fba44b6 100644 --- a/cloudformation/aws-iotanalytics-channel.go +++ b/cloudformation/resources/aws-iotanalytics-channel.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSIoTAnalyticsChannel AWS CloudFormation Resource (AWS::IoTAnalytics::Channel) @@ -26,7 +27,7 @@ type AWSIoTAnalyticsChannel struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSIoTAnalyticsChannel) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsChannel) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsChannel) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSIoTAnalyticsChannel) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iotanalytics-channel_retentionperiod.go b/cloudformation/resources/aws-iotanalytics-channel_retentionperiod.go similarity index 94% rename from cloudformation/aws-iotanalytics-channel_retentionperiod.go rename to cloudformation/resources/aws-iotanalytics-channel_retentionperiod.go index dd2cad0f29..c1a58d2b43 100644 --- a/cloudformation/aws-iotanalytics-channel_retentionperiod.go +++ b/cloudformation/resources/aws-iotanalytics-channel_retentionperiod.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsChannel_RetentionPeriod AWS CloudFormation Resource (AWS::IoTAnalytics::Channel.RetentionPeriod) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-retentionperiod.html @@ -15,7 +17,7 @@ type AWSIoTAnalyticsChannel_RetentionPeriod struct { Unlimited bool `json:"Unlimited,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSIoTAnalyticsChannel_RetentionPeriod) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsChannel_RetentionPeriod) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsChannel_RetentionPeriod) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-dataset.go b/cloudformation/resources/aws-iotanalytics-dataset.go similarity index 92% rename from cloudformation/aws-iotanalytics-dataset.go rename to cloudformation/resources/aws-iotanalytics-dataset.go index 00a85879f3..48ddf8f5ee 100644 --- a/cloudformation/aws-iotanalytics-dataset.go +++ b/cloudformation/resources/aws-iotanalytics-dataset.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSIoTAnalyticsDataset AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset) @@ -36,7 +37,7 @@ type AWSIoTAnalyticsDataset struct { Triggers []AWSIoTAnalyticsDataset_Trigger `json:"Triggers,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSIoTAnalyticsDataset) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsDataset) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsDataset) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSIoTAnalyticsDataset) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iotanalytics-dataset_action.go b/cloudformation/resources/aws-iotanalytics-dataset_action.go similarity index 95% rename from cloudformation/aws-iotanalytics-dataset_action.go rename to cloudformation/resources/aws-iotanalytics-dataset_action.go index 0267563d8e..0020cbfffb 100644 --- a/cloudformation/aws-iotanalytics-dataset_action.go +++ b/cloudformation/resources/aws-iotanalytics-dataset_action.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsDataset_Action AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.Action) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-action.html @@ -20,7 +22,7 @@ type AWSIoTAnalyticsDataset_Action struct { QueryAction *AWSIoTAnalyticsDataset_QueryAction `json:"QueryAction,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSIoTAnalyticsDataset_Action) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsDataset_Action) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsDataset_Action) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-dataset_containeraction.go b/cloudformation/resources/aws-iotanalytics-dataset_containeraction.go similarity index 95% rename from cloudformation/aws-iotanalytics-dataset_containeraction.go rename to cloudformation/resources/aws-iotanalytics-dataset_containeraction.go index 048a93092b..b8af0dfcd8 100644 --- a/cloudformation/aws-iotanalytics-dataset_containeraction.go +++ b/cloudformation/resources/aws-iotanalytics-dataset_containeraction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsDataset_ContainerAction AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.ContainerAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-containeraction.html @@ -25,7 +27,7 @@ type AWSIoTAnalyticsDataset_ContainerAction struct { Variables []AWSIoTAnalyticsDataset_Variable `json:"Variables,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSIoTAnalyticsDataset_ContainerAction) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsDataset_ContainerAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsDataset_ContainerAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-dataset_datasetcontentversionvalue.go b/cloudformation/resources/aws-iotanalytics-dataset_datasetcontentversionvalue.go similarity index 93% rename from cloudformation/aws-iotanalytics-dataset_datasetcontentversionvalue.go rename to cloudformation/resources/aws-iotanalytics-dataset_datasetcontentversionvalue.go index 852c084fff..fc450c17e0 100644 --- a/cloudformation/aws-iotanalytics-dataset_datasetcontentversionvalue.go +++ b/cloudformation/resources/aws-iotanalytics-dataset_datasetcontentversionvalue.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsDataset_DatasetContentVersionValue AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.DatasetContentVersionValue) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable-datasetcontentversionvalue.html @@ -10,7 +12,7 @@ type AWSIoTAnalyticsDataset_DatasetContentVersionValue struct { DatasetName string `json:"DatasetName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSIoTAnalyticsDataset_DatasetContentVersionValue) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsDataset_DatasetContentVersionValue) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsDataset_DatasetContentVersionValue) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-dataset_deltatime.go b/cloudformation/resources/aws-iotanalytics-dataset_deltatime.go similarity index 94% rename from cloudformation/aws-iotanalytics-dataset_deltatime.go rename to cloudformation/resources/aws-iotanalytics-dataset_deltatime.go index 0bdd3a3903..d16f585388 100644 --- a/cloudformation/aws-iotanalytics-dataset_deltatime.go +++ b/cloudformation/resources/aws-iotanalytics-dataset_deltatime.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsDataset_DeltaTime AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.DeltaTime) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-deltatime.html @@ -15,7 +17,7 @@ type AWSIoTAnalyticsDataset_DeltaTime struct { TimeExpression string `json:"TimeExpression,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSIoTAnalyticsDataset_DeltaTime) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsDataset_DeltaTime) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsDataset_DeltaTime) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-dataset_filter.go b/cloudformation/resources/aws-iotanalytics-dataset_filter.go similarity index 94% rename from cloudformation/aws-iotanalytics-dataset_filter.go rename to cloudformation/resources/aws-iotanalytics-dataset_filter.go index 9a1a034733..e95872beb1 100644 --- a/cloudformation/aws-iotanalytics-dataset_filter.go +++ b/cloudformation/resources/aws-iotanalytics-dataset_filter.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsDataset_Filter AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.Filter) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-filter.html @@ -10,7 +12,7 @@ type AWSIoTAnalyticsDataset_Filter struct { DeltaTime *AWSIoTAnalyticsDataset_DeltaTime `json:"DeltaTime,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSIoTAnalyticsDataset_Filter) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsDataset_Filter) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsDataset_Filter) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-dataset_outputfileurivalue.go b/cloudformation/resources/aws-iotanalytics-dataset_outputfileurivalue.go similarity index 93% rename from cloudformation/aws-iotanalytics-dataset_outputfileurivalue.go rename to cloudformation/resources/aws-iotanalytics-dataset_outputfileurivalue.go index 23ccd50bc0..d0add89a2a 100644 --- a/cloudformation/aws-iotanalytics-dataset_outputfileurivalue.go +++ b/cloudformation/resources/aws-iotanalytics-dataset_outputfileurivalue.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsDataset_OutputFileUriValue AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.OutputFileUriValue) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable-outputfileurivalue.html @@ -10,7 +12,7 @@ type AWSIoTAnalyticsDataset_OutputFileUriValue struct { FileName string `json:"FileName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSIoTAnalyticsDataset_OutputFileUriValue) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsDataset_OutputFileUriValue) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsDataset_OutputFileUriValue) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-dataset_queryaction.go b/cloudformation/resources/aws-iotanalytics-dataset_queryaction.go similarity index 94% rename from cloudformation/aws-iotanalytics-dataset_queryaction.go rename to cloudformation/resources/aws-iotanalytics-dataset_queryaction.go index bf769abed8..1c18496733 100644 --- a/cloudformation/aws-iotanalytics-dataset_queryaction.go +++ b/cloudformation/resources/aws-iotanalytics-dataset_queryaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsDataset_QueryAction AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.QueryAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-queryaction.html @@ -15,7 +17,7 @@ type AWSIoTAnalyticsDataset_QueryAction struct { SqlQuery string `json:"SqlQuery,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSIoTAnalyticsDataset_QueryAction) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsDataset_QueryAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsDataset_QueryAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-dataset_resourceconfiguration.go b/cloudformation/resources/aws-iotanalytics-dataset_resourceconfiguration.go similarity index 94% rename from cloudformation/aws-iotanalytics-dataset_resourceconfiguration.go rename to cloudformation/resources/aws-iotanalytics-dataset_resourceconfiguration.go index d6ca08840d..fc24b04db3 100644 --- a/cloudformation/aws-iotanalytics-dataset_resourceconfiguration.go +++ b/cloudformation/resources/aws-iotanalytics-dataset_resourceconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsDataset_ResourceConfiguration AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.ResourceConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-resourceconfiguration.html @@ -15,7 +17,7 @@ type AWSIoTAnalyticsDataset_ResourceConfiguration struct { VolumeSizeInGB int `json:"VolumeSizeInGB"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSIoTAnalyticsDataset_ResourceConfiguration) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsDataset_ResourceConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsDataset_ResourceConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-dataset_retentionperiod.go b/cloudformation/resources/aws-iotanalytics-dataset_retentionperiod.go similarity index 94% rename from cloudformation/aws-iotanalytics-dataset_retentionperiod.go rename to cloudformation/resources/aws-iotanalytics-dataset_retentionperiod.go index 99537165b4..0b530251a7 100644 --- a/cloudformation/aws-iotanalytics-dataset_retentionperiod.go +++ b/cloudformation/resources/aws-iotanalytics-dataset_retentionperiod.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsDataset_RetentionPeriod AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.RetentionPeriod) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-retentionperiod.html @@ -15,7 +17,7 @@ type AWSIoTAnalyticsDataset_RetentionPeriod struct { Unlimited bool `json:"Unlimited"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSIoTAnalyticsDataset_RetentionPeriod) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsDataset_RetentionPeriod) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsDataset_RetentionPeriod) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-dataset_schedule.go b/cloudformation/resources/aws-iotanalytics-dataset_schedule.go similarity index 94% rename from cloudformation/aws-iotanalytics-dataset_schedule.go rename to cloudformation/resources/aws-iotanalytics-dataset_schedule.go index 78501ddb88..1f43f46d6e 100644 --- a/cloudformation/aws-iotanalytics-dataset_schedule.go +++ b/cloudformation/resources/aws-iotanalytics-dataset_schedule.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsDataset_Schedule AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.Schedule) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-trigger-schedule.html @@ -10,7 +12,7 @@ type AWSIoTAnalyticsDataset_Schedule struct { ScheduleExpression string `json:"ScheduleExpression,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSIoTAnalyticsDataset_Schedule) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsDataset_Schedule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsDataset_Schedule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-dataset_trigger.go b/cloudformation/resources/aws-iotanalytics-dataset_trigger.go similarity index 94% rename from cloudformation/aws-iotanalytics-dataset_trigger.go rename to cloudformation/resources/aws-iotanalytics-dataset_trigger.go index ba0b35cf3d..ed5803a372 100644 --- a/cloudformation/aws-iotanalytics-dataset_trigger.go +++ b/cloudformation/resources/aws-iotanalytics-dataset_trigger.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsDataset_Trigger AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.Trigger) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-trigger.html @@ -15,7 +17,7 @@ type AWSIoTAnalyticsDataset_Trigger struct { TriggeringDataset *AWSIoTAnalyticsDataset_TriggeringDataset `json:"TriggeringDataset,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSIoTAnalyticsDataset_Trigger) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsDataset_Trigger) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsDataset_Trigger) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-dataset_triggeringdataset.go b/cloudformation/resources/aws-iotanalytics-dataset_triggeringdataset.go similarity index 93% rename from cloudformation/aws-iotanalytics-dataset_triggeringdataset.go rename to cloudformation/resources/aws-iotanalytics-dataset_triggeringdataset.go index dd826fb7a5..ce96e87f1c 100644 --- a/cloudformation/aws-iotanalytics-dataset_triggeringdataset.go +++ b/cloudformation/resources/aws-iotanalytics-dataset_triggeringdataset.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsDataset_TriggeringDataset AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.TriggeringDataset) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-triggeringdataset.html @@ -10,7 +12,7 @@ type AWSIoTAnalyticsDataset_TriggeringDataset struct { DatasetName string `json:"DatasetName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSIoTAnalyticsDataset_TriggeringDataset) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsDataset_TriggeringDataset) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsDataset_TriggeringDataset) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-dataset_variable.go b/cloudformation/resources/aws-iotanalytics-dataset_variable.go similarity index 96% rename from cloudformation/aws-iotanalytics-dataset_variable.go rename to cloudformation/resources/aws-iotanalytics-dataset_variable.go index 0d91213b01..b72986200e 100644 --- a/cloudformation/aws-iotanalytics-dataset_variable.go +++ b/cloudformation/resources/aws-iotanalytics-dataset_variable.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsDataset_Variable AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.Variable) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable.html @@ -30,7 +32,7 @@ type AWSIoTAnalyticsDataset_Variable struct { VariableName string `json:"VariableName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSIoTAnalyticsDataset_Variable) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsDataset_Variable) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsDataset_Variable) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-datastore.go b/cloudformation/resources/aws-iotanalytics-datastore.go similarity index 91% rename from cloudformation/aws-iotanalytics-datastore.go rename to cloudformation/resources/aws-iotanalytics-datastore.go index 2895be8571..4f33739c64 100644 --- a/cloudformation/aws-iotanalytics-datastore.go +++ b/cloudformation/resources/aws-iotanalytics-datastore.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSIoTAnalyticsDatastore AWS CloudFormation Resource (AWS::IoTAnalytics::Datastore) @@ -26,7 +27,7 @@ type AWSIoTAnalyticsDatastore struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSIoTAnalyticsDatastore) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsDatastore) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsDatastore) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSIoTAnalyticsDatastore) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iotanalytics-datastore_retentionperiod.go b/cloudformation/resources/aws-iotanalytics-datastore_retentionperiod.go similarity index 94% rename from cloudformation/aws-iotanalytics-datastore_retentionperiod.go rename to cloudformation/resources/aws-iotanalytics-datastore_retentionperiod.go index ff5b1c577d..4a1b7c0be9 100644 --- a/cloudformation/aws-iotanalytics-datastore_retentionperiod.go +++ b/cloudformation/resources/aws-iotanalytics-datastore_retentionperiod.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsDatastore_RetentionPeriod AWS CloudFormation Resource (AWS::IoTAnalytics::Datastore.RetentionPeriod) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-retentionperiod.html @@ -15,7 +17,7 @@ type AWSIoTAnalyticsDatastore_RetentionPeriod struct { Unlimited bool `json:"Unlimited,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSIoTAnalyticsDatastore_RetentionPeriod) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsDatastore_RetentionPeriod) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsDatastore_RetentionPeriod) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-pipeline.go b/cloudformation/resources/aws-iotanalytics-pipeline.go similarity index 91% rename from cloudformation/aws-iotanalytics-pipeline.go rename to cloudformation/resources/aws-iotanalytics-pipeline.go index bc10bf23ab..8b5aa2ca37 100644 --- a/cloudformation/aws-iotanalytics-pipeline.go +++ b/cloudformation/resources/aws-iotanalytics-pipeline.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSIoTAnalyticsPipeline AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline) @@ -26,7 +27,7 @@ type AWSIoTAnalyticsPipeline struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSIoTAnalyticsPipeline) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsPipeline) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsPipeline) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSIoTAnalyticsPipeline) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-iotanalytics-pipeline_activity.go b/cloudformation/resources/aws-iotanalytics-pipeline_activity.go similarity index 97% rename from cloudformation/aws-iotanalytics-pipeline_activity.go rename to cloudformation/resources/aws-iotanalytics-pipeline_activity.go index 24c8848284..84a31dc410 100644 --- a/cloudformation/aws-iotanalytics-pipeline_activity.go +++ b/cloudformation/resources/aws-iotanalytics-pipeline_activity.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsPipeline_Activity AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.Activity) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html @@ -55,7 +57,7 @@ type AWSIoTAnalyticsPipeline_Activity struct { SelectAttributes *AWSIoTAnalyticsPipeline_SelectAttributes `json:"SelectAttributes,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -95,6 +97,6 @@ func (r *AWSIoTAnalyticsPipeline_Activity) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsPipeline_Activity) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsPipeline_Activity) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-pipeline_addattributes.go b/cloudformation/resources/aws-iotanalytics-pipeline_addattributes.go similarity index 94% rename from cloudformation/aws-iotanalytics-pipeline_addattributes.go rename to cloudformation/resources/aws-iotanalytics-pipeline_addattributes.go index 65d208a8bd..5385d4378d 100644 --- a/cloudformation/aws-iotanalytics-pipeline_addattributes.go +++ b/cloudformation/resources/aws-iotanalytics-pipeline_addattributes.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsPipeline_AddAttributes AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.AddAttributes) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-addattributes.html @@ -20,7 +22,7 @@ type AWSIoTAnalyticsPipeline_AddAttributes struct { Next string `json:"Next,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSIoTAnalyticsPipeline_AddAttributes) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsPipeline_AddAttributes) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsPipeline_AddAttributes) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-pipeline_channel.go b/cloudformation/resources/aws-iotanalytics-pipeline_channel.go similarity index 94% rename from cloudformation/aws-iotanalytics-pipeline_channel.go rename to cloudformation/resources/aws-iotanalytics-pipeline_channel.go index ae38d1a432..2c99981d68 100644 --- a/cloudformation/aws-iotanalytics-pipeline_channel.go +++ b/cloudformation/resources/aws-iotanalytics-pipeline_channel.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsPipeline_Channel AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.Channel) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-channel.html @@ -20,7 +22,7 @@ type AWSIoTAnalyticsPipeline_Channel struct { Next string `json:"Next,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSIoTAnalyticsPipeline_Channel) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsPipeline_Channel) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsPipeline_Channel) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-pipeline_datastore.go b/cloudformation/resources/aws-iotanalytics-pipeline_datastore.go similarity index 94% rename from cloudformation/aws-iotanalytics-pipeline_datastore.go rename to cloudformation/resources/aws-iotanalytics-pipeline_datastore.go index f31a8bb959..1d63c09740 100644 --- a/cloudformation/aws-iotanalytics-pipeline_datastore.go +++ b/cloudformation/resources/aws-iotanalytics-pipeline_datastore.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsPipeline_Datastore AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.Datastore) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-datastore.html @@ -15,7 +17,7 @@ type AWSIoTAnalyticsPipeline_Datastore struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSIoTAnalyticsPipeline_Datastore) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsPipeline_Datastore) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsPipeline_Datastore) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-pipeline_deviceregistryenrich.go b/cloudformation/resources/aws-iotanalytics-pipeline_deviceregistryenrich.go similarity index 95% rename from cloudformation/aws-iotanalytics-pipeline_deviceregistryenrich.go rename to cloudformation/resources/aws-iotanalytics-pipeline_deviceregistryenrich.go index e30e67f7f6..d2a3075c3c 100644 --- a/cloudformation/aws-iotanalytics-pipeline_deviceregistryenrich.go +++ b/cloudformation/resources/aws-iotanalytics-pipeline_deviceregistryenrich.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsPipeline_DeviceRegistryEnrich AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.DeviceRegistryEnrich) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceregistryenrich.html @@ -30,7 +32,7 @@ type AWSIoTAnalyticsPipeline_DeviceRegistryEnrich struct { ThingName string `json:"ThingName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSIoTAnalyticsPipeline_DeviceRegistryEnrich) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsPipeline_DeviceRegistryEnrich) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsPipeline_DeviceRegistryEnrich) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-pipeline_deviceshadowenrich.go b/cloudformation/resources/aws-iotanalytics-pipeline_deviceshadowenrich.go similarity index 95% rename from cloudformation/aws-iotanalytics-pipeline_deviceshadowenrich.go rename to cloudformation/resources/aws-iotanalytics-pipeline_deviceshadowenrich.go index 5923b04e10..b43b34c9b2 100644 --- a/cloudformation/aws-iotanalytics-pipeline_deviceshadowenrich.go +++ b/cloudformation/resources/aws-iotanalytics-pipeline_deviceshadowenrich.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsPipeline_DeviceShadowEnrich AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.DeviceShadowEnrich) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceshadowenrich.html @@ -30,7 +32,7 @@ type AWSIoTAnalyticsPipeline_DeviceShadowEnrich struct { ThingName string `json:"ThingName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSIoTAnalyticsPipeline_DeviceShadowEnrich) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsPipeline_DeviceShadowEnrich) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsPipeline_DeviceShadowEnrich) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-pipeline_filter.go b/cloudformation/resources/aws-iotanalytics-pipeline_filter.go similarity index 94% rename from cloudformation/aws-iotanalytics-pipeline_filter.go rename to cloudformation/resources/aws-iotanalytics-pipeline_filter.go index ff53308a21..37d9a44b7f 100644 --- a/cloudformation/aws-iotanalytics-pipeline_filter.go +++ b/cloudformation/resources/aws-iotanalytics-pipeline_filter.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsPipeline_Filter AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.Filter) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-filter.html @@ -20,7 +22,7 @@ type AWSIoTAnalyticsPipeline_Filter struct { Next string `json:"Next,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSIoTAnalyticsPipeline_Filter) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsPipeline_Filter) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsPipeline_Filter) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-pipeline_lambda.go b/cloudformation/resources/aws-iotanalytics-pipeline_lambda.go similarity index 95% rename from cloudformation/aws-iotanalytics-pipeline_lambda.go rename to cloudformation/resources/aws-iotanalytics-pipeline_lambda.go index 293dcff6da..8e8c7a690c 100644 --- a/cloudformation/aws-iotanalytics-pipeline_lambda.go +++ b/cloudformation/resources/aws-iotanalytics-pipeline_lambda.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsPipeline_Lambda AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.Lambda) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-lambda.html @@ -25,7 +27,7 @@ type AWSIoTAnalyticsPipeline_Lambda struct { Next string `json:"Next,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSIoTAnalyticsPipeline_Lambda) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsPipeline_Lambda) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsPipeline_Lambda) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-pipeline_math.go b/cloudformation/resources/aws-iotanalytics-pipeline_math.go similarity index 95% rename from cloudformation/aws-iotanalytics-pipeline_math.go rename to cloudformation/resources/aws-iotanalytics-pipeline_math.go index a33d7a4449..d90bfb9207 100644 --- a/cloudformation/aws-iotanalytics-pipeline_math.go +++ b/cloudformation/resources/aws-iotanalytics-pipeline_math.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsPipeline_Math AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.Math) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-math.html @@ -25,7 +27,7 @@ type AWSIoTAnalyticsPipeline_Math struct { Next string `json:"Next,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSIoTAnalyticsPipeline_Math) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsPipeline_Math) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsPipeline_Math) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-pipeline_removeattributes.go b/cloudformation/resources/aws-iotanalytics-pipeline_removeattributes.go similarity index 94% rename from cloudformation/aws-iotanalytics-pipeline_removeattributes.go rename to cloudformation/resources/aws-iotanalytics-pipeline_removeattributes.go index b4b2c51c47..0cd79fba13 100644 --- a/cloudformation/aws-iotanalytics-pipeline_removeattributes.go +++ b/cloudformation/resources/aws-iotanalytics-pipeline_removeattributes.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsPipeline_RemoveAttributes AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.RemoveAttributes) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-removeattributes.html @@ -20,7 +22,7 @@ type AWSIoTAnalyticsPipeline_RemoveAttributes struct { Next string `json:"Next,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSIoTAnalyticsPipeline_RemoveAttributes) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsPipeline_RemoveAttributes) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsPipeline_RemoveAttributes) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-iotanalytics-pipeline_selectattributes.go b/cloudformation/resources/aws-iotanalytics-pipeline_selectattributes.go similarity index 94% rename from cloudformation/aws-iotanalytics-pipeline_selectattributes.go rename to cloudformation/resources/aws-iotanalytics-pipeline_selectattributes.go index d322c63467..7b684707b1 100644 --- a/cloudformation/aws-iotanalytics-pipeline_selectattributes.go +++ b/cloudformation/resources/aws-iotanalytics-pipeline_selectattributes.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSIoTAnalyticsPipeline_SelectAttributes AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.SelectAttributes) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-selectattributes.html @@ -20,7 +22,7 @@ type AWSIoTAnalyticsPipeline_SelectAttributes struct { Next string `json:"Next,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSIoTAnalyticsPipeline_SelectAttributes) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSIoTAnalyticsPipeline_SelectAttributes) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSIoTAnalyticsPipeline_SelectAttributes) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesis-stream.go b/cloudformation/resources/aws-kinesis-stream.go similarity index 91% rename from cloudformation/aws-kinesis-stream.go rename to cloudformation/resources/aws-kinesis-stream.go index 49a81cd8dd..f82115c109 100644 --- a/cloudformation/aws-kinesis-stream.go +++ b/cloudformation/resources/aws-kinesis-stream.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSKinesisStream AWS CloudFormation Resource (AWS::Kinesis::Stream) @@ -36,7 +37,7 @@ type AWSKinesisStream struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSKinesisStream) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisStream) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisStream) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSKinesisStream) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-kinesis-stream_streamencryption.go b/cloudformation/resources/aws-kinesis-stream_streamencryption.go similarity index 94% rename from cloudformation/aws-kinesis-stream_streamencryption.go rename to cloudformation/resources/aws-kinesis-stream_streamencryption.go index ba9d6dd84b..c88e48dc4f 100644 --- a/cloudformation/aws-kinesis-stream_streamencryption.go +++ b/cloudformation/resources/aws-kinesis-stream_streamencryption.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisStream_StreamEncryption AWS CloudFormation Resource (AWS::Kinesis::Stream.StreamEncryption) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-stream-streamencryption.html @@ -15,7 +17,7 @@ type AWSKinesisStream_StreamEncryption struct { KeyId string `json:"KeyId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisStream_StreamEncryption) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisStream_StreamEncryption) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisStream_StreamEncryption) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesis-streamconsumer.go b/cloudformation/resources/aws-kinesis-streamconsumer.go similarity index 90% rename from cloudformation/aws-kinesis-streamconsumer.go rename to cloudformation/resources/aws-kinesis-streamconsumer.go index 6b0592d14b..fb3ab0115c 100644 --- a/cloudformation/aws-kinesis-streamconsumer.go +++ b/cloudformation/resources/aws-kinesis-streamconsumer.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSKinesisStreamConsumer AWS CloudFormation Resource (AWS::Kinesis::StreamConsumer) @@ -21,7 +22,7 @@ type AWSKinesisStreamConsumer struct { StreamARN string `json:"StreamARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSKinesisStreamConsumer) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisStreamConsumer) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisStreamConsumer) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSKinesisStreamConsumer) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-kinesisanalytics-application.go b/cloudformation/resources/aws-kinesisanalytics-application.go similarity index 93% rename from cloudformation/aws-kinesisanalytics-application.go rename to cloudformation/resources/aws-kinesisanalytics-application.go index 6643b6430b..82c007c464 100644 --- a/cloudformation/aws-kinesisanalytics-application.go +++ b/cloudformation/resources/aws-kinesisanalytics-application.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSKinesisAnalyticsApplication AWS CloudFormation Resource (AWS::KinesisAnalytics::Application) @@ -31,7 +32,7 @@ type AWSKinesisAnalyticsApplication struct { Inputs []AWSKinesisAnalyticsApplication_Input `json:"Inputs,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSKinesisAnalyticsApplication) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplication) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplication) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSKinesisAnalyticsApplication) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-kinesisanalytics-application_csvmappingparameters.go b/cloudformation/resources/aws-kinesisanalytics-application_csvmappingparameters.go similarity index 94% rename from cloudformation/aws-kinesisanalytics-application_csvmappingparameters.go rename to cloudformation/resources/aws-kinesisanalytics-application_csvmappingparameters.go index bde37f73ff..71745a27f1 100644 --- a/cloudformation/aws-kinesisanalytics-application_csvmappingparameters.go +++ b/cloudformation/resources/aws-kinesisanalytics-application_csvmappingparameters.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplication_CSVMappingParameters AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.CSVMappingParameters) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-csvmappingparameters.html @@ -15,7 +17,7 @@ type AWSKinesisAnalyticsApplication_CSVMappingParameters struct { RecordRowDelimiter string `json:"RecordRowDelimiter,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisAnalyticsApplication_CSVMappingParameters) SetMetadata(metada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplication_CSVMappingParameters) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplication_CSVMappingParameters) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-application_input.go b/cloudformation/resources/aws-kinesisanalytics-application_input.go similarity index 96% rename from cloudformation/aws-kinesisanalytics-application_input.go rename to cloudformation/resources/aws-kinesisanalytics-application_input.go index b72c5dade7..7b7e3cdeff 100644 --- a/cloudformation/aws-kinesisanalytics-application_input.go +++ b/cloudformation/resources/aws-kinesisanalytics-application_input.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplication_Input AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.Input) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-input.html @@ -35,7 +37,7 @@ type AWSKinesisAnalyticsApplication_Input struct { NamePrefix string `json:"NamePrefix,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSKinesisAnalyticsApplication_Input) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplication_Input) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplication_Input) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-application_inputlambdaprocessor.go b/cloudformation/resources/aws-kinesisanalytics-application_inputlambdaprocessor.go similarity index 94% rename from cloudformation/aws-kinesisanalytics-application_inputlambdaprocessor.go rename to cloudformation/resources/aws-kinesisanalytics-application_inputlambdaprocessor.go index 3493fbd2a4..716969eff6 100644 --- a/cloudformation/aws-kinesisanalytics-application_inputlambdaprocessor.go +++ b/cloudformation/resources/aws-kinesisanalytics-application_inputlambdaprocessor.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplication_InputLambdaProcessor AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.InputLambdaProcessor) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputlambdaprocessor.html @@ -15,7 +17,7 @@ type AWSKinesisAnalyticsApplication_InputLambdaProcessor struct { RoleARN string `json:"RoleARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisAnalyticsApplication_InputLambdaProcessor) SetMetadata(metada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplication_InputLambdaProcessor) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplication_InputLambdaProcessor) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-application_inputparallelism.go b/cloudformation/resources/aws-kinesisanalytics-application_inputparallelism.go similarity index 93% rename from cloudformation/aws-kinesisanalytics-application_inputparallelism.go rename to cloudformation/resources/aws-kinesisanalytics-application_inputparallelism.go index 1124b4c69e..20d6c7dd58 100644 --- a/cloudformation/aws-kinesisanalytics-application_inputparallelism.go +++ b/cloudformation/resources/aws-kinesisanalytics-application_inputparallelism.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplication_InputParallelism AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.InputParallelism) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputparallelism.html @@ -10,7 +12,7 @@ type AWSKinesisAnalyticsApplication_InputParallelism struct { Count int `json:"Count,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisAnalyticsApplication_InputParallelism) SetMetadata(metadata m // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplication_InputParallelism) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplication_InputParallelism) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-application_inputprocessingconfiguration.go b/cloudformation/resources/aws-kinesisanalytics-application_inputprocessingconfiguration.go similarity index 93% rename from cloudformation/aws-kinesisanalytics-application_inputprocessingconfiguration.go rename to cloudformation/resources/aws-kinesisanalytics-application_inputprocessingconfiguration.go index 3ac8bd258b..7eaca16407 100644 --- a/cloudformation/aws-kinesisanalytics-application_inputprocessingconfiguration.go +++ b/cloudformation/resources/aws-kinesisanalytics-application_inputprocessingconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplication_InputProcessingConfiguration AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.InputProcessingConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputprocessingconfiguration.html @@ -10,7 +12,7 @@ type AWSKinesisAnalyticsApplication_InputProcessingConfiguration struct { InputLambdaProcessor *AWSKinesisAnalyticsApplication_InputLambdaProcessor `json:"InputLambdaProcessor,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisAnalyticsApplication_InputProcessingConfiguration) SetMetadat // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplication_InputProcessingConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplication_InputProcessingConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-application_inputschema.go b/cloudformation/resources/aws-kinesisanalytics-application_inputschema.go similarity index 95% rename from cloudformation/aws-kinesisanalytics-application_inputschema.go rename to cloudformation/resources/aws-kinesisanalytics-application_inputschema.go index a01febeff9..eb544fda40 100644 --- a/cloudformation/aws-kinesisanalytics-application_inputschema.go +++ b/cloudformation/resources/aws-kinesisanalytics-application_inputschema.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplication_InputSchema AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.InputSchema) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputschema.html @@ -20,7 +22,7 @@ type AWSKinesisAnalyticsApplication_InputSchema struct { RecordFormat *AWSKinesisAnalyticsApplication_RecordFormat `json:"RecordFormat,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSKinesisAnalyticsApplication_InputSchema) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplication_InputSchema) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplication_InputSchema) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-application_jsonmappingparameters.go b/cloudformation/resources/aws-kinesisanalytics-application_jsonmappingparameters.go similarity index 93% rename from cloudformation/aws-kinesisanalytics-application_jsonmappingparameters.go rename to cloudformation/resources/aws-kinesisanalytics-application_jsonmappingparameters.go index 16d72a5bbe..23588a4eea 100644 --- a/cloudformation/aws-kinesisanalytics-application_jsonmappingparameters.go +++ b/cloudformation/resources/aws-kinesisanalytics-application_jsonmappingparameters.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplication_JSONMappingParameters AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.JSONMappingParameters) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-jsonmappingparameters.html @@ -10,7 +12,7 @@ type AWSKinesisAnalyticsApplication_JSONMappingParameters struct { RecordRowPath string `json:"RecordRowPath,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisAnalyticsApplication_JSONMappingParameters) SetMetadata(metad // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplication_JSONMappingParameters) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplication_JSONMappingParameters) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-application_kinesisfirehoseinput.go b/cloudformation/resources/aws-kinesisanalytics-application_kinesisfirehoseinput.go similarity index 94% rename from cloudformation/aws-kinesisanalytics-application_kinesisfirehoseinput.go rename to cloudformation/resources/aws-kinesisanalytics-application_kinesisfirehoseinput.go index e059006423..df546286da 100644 --- a/cloudformation/aws-kinesisanalytics-application_kinesisfirehoseinput.go +++ b/cloudformation/resources/aws-kinesisanalytics-application_kinesisfirehoseinput.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplication_KinesisFirehoseInput AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.KinesisFirehoseInput) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-kinesisfirehoseinput.html @@ -15,7 +17,7 @@ type AWSKinesisAnalyticsApplication_KinesisFirehoseInput struct { RoleARN string `json:"RoleARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisAnalyticsApplication_KinesisFirehoseInput) SetMetadata(metada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplication_KinesisFirehoseInput) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplication_KinesisFirehoseInput) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-application_kinesisstreamsinput.go b/cloudformation/resources/aws-kinesisanalytics-application_kinesisstreamsinput.go similarity index 94% rename from cloudformation/aws-kinesisanalytics-application_kinesisstreamsinput.go rename to cloudformation/resources/aws-kinesisanalytics-application_kinesisstreamsinput.go index 271862bec4..06375c7c0d 100644 --- a/cloudformation/aws-kinesisanalytics-application_kinesisstreamsinput.go +++ b/cloudformation/resources/aws-kinesisanalytics-application_kinesisstreamsinput.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplication_KinesisStreamsInput AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.KinesisStreamsInput) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-kinesisstreamsinput.html @@ -15,7 +17,7 @@ type AWSKinesisAnalyticsApplication_KinesisStreamsInput struct { RoleARN string `json:"RoleARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisAnalyticsApplication_KinesisStreamsInput) SetMetadata(metadat // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplication_KinesisStreamsInput) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplication_KinesisStreamsInput) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-application_mappingparameters.go b/cloudformation/resources/aws-kinesisanalytics-application_mappingparameters.go similarity index 94% rename from cloudformation/aws-kinesisanalytics-application_mappingparameters.go rename to cloudformation/resources/aws-kinesisanalytics-application_mappingparameters.go index 25d116c4d1..e265484732 100644 --- a/cloudformation/aws-kinesisanalytics-application_mappingparameters.go +++ b/cloudformation/resources/aws-kinesisanalytics-application_mappingparameters.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplication_MappingParameters AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.MappingParameters) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-mappingparameters.html @@ -15,7 +17,7 @@ type AWSKinesisAnalyticsApplication_MappingParameters struct { JSONMappingParameters *AWSKinesisAnalyticsApplication_JSONMappingParameters `json:"JSONMappingParameters,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisAnalyticsApplication_MappingParameters) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplication_MappingParameters) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplication_MappingParameters) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-application_recordcolumn.go b/cloudformation/resources/aws-kinesisanalytics-application_recordcolumn.go similarity index 94% rename from cloudformation/aws-kinesisanalytics-application_recordcolumn.go rename to cloudformation/resources/aws-kinesisanalytics-application_recordcolumn.go index 5cc03c65e7..597dfd4386 100644 --- a/cloudformation/aws-kinesisanalytics-application_recordcolumn.go +++ b/cloudformation/resources/aws-kinesisanalytics-application_recordcolumn.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplication_RecordColumn AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.RecordColumn) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-recordcolumn.html @@ -20,7 +22,7 @@ type AWSKinesisAnalyticsApplication_RecordColumn struct { SqlType string `json:"SqlType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSKinesisAnalyticsApplication_RecordColumn) SetMetadata(metadata map[s // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplication_RecordColumn) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplication_RecordColumn) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-application_recordformat.go b/cloudformation/resources/aws-kinesisanalytics-application_recordformat.go similarity index 94% rename from cloudformation/aws-kinesisanalytics-application_recordformat.go rename to cloudformation/resources/aws-kinesisanalytics-application_recordformat.go index 5cfb720ff2..eb2b5c7e22 100644 --- a/cloudformation/aws-kinesisanalytics-application_recordformat.go +++ b/cloudformation/resources/aws-kinesisanalytics-application_recordformat.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplication_RecordFormat AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.RecordFormat) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-recordformat.html @@ -15,7 +17,7 @@ type AWSKinesisAnalyticsApplication_RecordFormat struct { RecordFormatType string `json:"RecordFormatType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisAnalyticsApplication_RecordFormat) SetMetadata(metadata map[s // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplication_RecordFormat) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplication_RecordFormat) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-applicationoutput.go b/cloudformation/resources/aws-kinesisanalytics-applicationoutput.go similarity index 92% rename from cloudformation/aws-kinesisanalytics-applicationoutput.go rename to cloudformation/resources/aws-kinesisanalytics-applicationoutput.go index 233a93ba79..9d1dfc2a22 100644 --- a/cloudformation/aws-kinesisanalytics-applicationoutput.go +++ b/cloudformation/resources/aws-kinesisanalytics-applicationoutput.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSKinesisAnalyticsApplicationOutput AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationOutput) @@ -21,7 +22,7 @@ type AWSKinesisAnalyticsApplicationOutput struct { Output *AWSKinesisAnalyticsApplicationOutput_Output `json:"Output,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSKinesisAnalyticsApplicationOutput) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplicationOutput) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplicationOutput) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSKinesisAnalyticsApplicationOutput) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-kinesisanalytics-applicationoutput_destinationschema.go b/cloudformation/resources/aws-kinesisanalytics-applicationoutput_destinationschema.go similarity index 93% rename from cloudformation/aws-kinesisanalytics-applicationoutput_destinationschema.go rename to cloudformation/resources/aws-kinesisanalytics-applicationoutput_destinationschema.go index 56c6419708..f9e5f9c08a 100644 --- a/cloudformation/aws-kinesisanalytics-applicationoutput_destinationschema.go +++ b/cloudformation/resources/aws-kinesisanalytics-applicationoutput_destinationschema.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplicationOutput_DestinationSchema AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-destinationschema.html @@ -10,7 +12,7 @@ type AWSKinesisAnalyticsApplicationOutput_DestinationSchema struct { RecordFormatType string `json:"RecordFormatType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisAnalyticsApplicationOutput_DestinationSchema) SetMetadata(met // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplicationOutput_DestinationSchema) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplicationOutput_DestinationSchema) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-applicationoutput_kinesisfirehoseoutput.go b/cloudformation/resources/aws-kinesisanalytics-applicationoutput_kinesisfirehoseoutput.go similarity index 94% rename from cloudformation/aws-kinesisanalytics-applicationoutput_kinesisfirehoseoutput.go rename to cloudformation/resources/aws-kinesisanalytics-applicationoutput_kinesisfirehoseoutput.go index 97b99f0d4c..1e2ec2f210 100644 --- a/cloudformation/aws-kinesisanalytics-applicationoutput_kinesisfirehoseoutput.go +++ b/cloudformation/resources/aws-kinesisanalytics-applicationoutput_kinesisfirehoseoutput.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplicationOutput_KinesisFirehoseOutput AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-kinesisfirehoseoutput.html @@ -15,7 +17,7 @@ type AWSKinesisAnalyticsApplicationOutput_KinesisFirehoseOutput struct { RoleARN string `json:"RoleARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisAnalyticsApplicationOutput_KinesisFirehoseOutput) SetMetadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplicationOutput_KinesisFirehoseOutput) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplicationOutput_KinesisFirehoseOutput) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-applicationoutput_kinesisstreamsoutput.go b/cloudformation/resources/aws-kinesisanalytics-applicationoutput_kinesisstreamsoutput.go similarity index 94% rename from cloudformation/aws-kinesisanalytics-applicationoutput_kinesisstreamsoutput.go rename to cloudformation/resources/aws-kinesisanalytics-applicationoutput_kinesisstreamsoutput.go index b0d12e105a..a90f38dfe7 100644 --- a/cloudformation/aws-kinesisanalytics-applicationoutput_kinesisstreamsoutput.go +++ b/cloudformation/resources/aws-kinesisanalytics-applicationoutput_kinesisstreamsoutput.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplicationOutput_KinesisStreamsOutput AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-kinesisstreamsoutput.html @@ -15,7 +17,7 @@ type AWSKinesisAnalyticsApplicationOutput_KinesisStreamsOutput struct { RoleARN string `json:"RoleARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisAnalyticsApplicationOutput_KinesisStreamsOutput) SetMetadata( // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplicationOutput_KinesisStreamsOutput) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplicationOutput_KinesisStreamsOutput) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-applicationoutput_lambdaoutput.go b/cloudformation/resources/aws-kinesisanalytics-applicationoutput_lambdaoutput.go similarity index 94% rename from cloudformation/aws-kinesisanalytics-applicationoutput_lambdaoutput.go rename to cloudformation/resources/aws-kinesisanalytics-applicationoutput_lambdaoutput.go index 98c1e66ef1..3cf74ef042 100644 --- a/cloudformation/aws-kinesisanalytics-applicationoutput_lambdaoutput.go +++ b/cloudformation/resources/aws-kinesisanalytics-applicationoutput_lambdaoutput.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplicationOutput_LambdaOutput AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-lambdaoutput.html @@ -15,7 +17,7 @@ type AWSKinesisAnalyticsApplicationOutput_LambdaOutput struct { RoleARN string `json:"RoleARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisAnalyticsApplicationOutput_LambdaOutput) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplicationOutput_LambdaOutput) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplicationOutput_LambdaOutput) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-applicationoutput_output.go b/cloudformation/resources/aws-kinesisanalytics-applicationoutput_output.go similarity index 96% rename from cloudformation/aws-kinesisanalytics-applicationoutput_output.go rename to cloudformation/resources/aws-kinesisanalytics-applicationoutput_output.go index d52efe25bd..1ee4f6b47d 100644 --- a/cloudformation/aws-kinesisanalytics-applicationoutput_output.go +++ b/cloudformation/resources/aws-kinesisanalytics-applicationoutput_output.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplicationOutput_Output AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationOutput.Output) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-output.html @@ -30,7 +32,7 @@ type AWSKinesisAnalyticsApplicationOutput_Output struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSKinesisAnalyticsApplicationOutput_Output) SetMetadata(metadata map[s // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplicationOutput_Output) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplicationOutput_Output) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource.go b/cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource.go similarity index 92% rename from cloudformation/aws-kinesisanalytics-applicationreferencedatasource.go rename to cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource.go index 9b96e3dfb2..3ed92b808b 100644 --- a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource.go +++ b/cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSKinesisAnalyticsApplicationReferenceDataSource AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationReferenceDataSource) @@ -21,7 +22,7 @@ type AWSKinesisAnalyticsApplicationReferenceDataSource struct { ReferenceDataSource *AWSKinesisAnalyticsApplicationReferenceDataSource_ReferenceDataSource `json:"ReferenceDataSource,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSKinesisAnalyticsApplicationReferenceDataSource) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplicationReferenceDataSource) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplicationReferenceDataSource) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSKinesisAnalyticsApplicationReferenceDataSource) MarshalJSON() ([]byte return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource_csvmappingparameters.go b/cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_csvmappingparameters.go similarity index 94% rename from cloudformation/aws-kinesisanalytics-applicationreferencedatasource_csvmappingparameters.go rename to cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_csvmappingparameters.go index 3dc106bcd4..671b8137d8 100644 --- a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource_csvmappingparameters.go +++ b/cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_csvmappingparameters.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplicationReferenceDataSource_CSVMappingParameters AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-csvmappingparameters.html @@ -15,7 +17,7 @@ type AWSKinesisAnalyticsApplicationReferenceDataSource_CSVMappingParameters stru RecordRowDelimiter string `json:"RecordRowDelimiter,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_CSVMappingParameters) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_CSVMappingParameters) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_CSVMappingParameters) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource_jsonmappingparameters.go b/cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_jsonmappingparameters.go similarity index 93% rename from cloudformation/aws-kinesisanalytics-applicationreferencedatasource_jsonmappingparameters.go rename to cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_jsonmappingparameters.go index 1676486824..12c8c60049 100644 --- a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource_jsonmappingparameters.go +++ b/cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_jsonmappingparameters.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplicationReferenceDataSource_JSONMappingParameters AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-jsonmappingparameters.html @@ -10,7 +12,7 @@ type AWSKinesisAnalyticsApplicationReferenceDataSource_JSONMappingParameters str RecordRowPath string `json:"RecordRowPath,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_JSONMappingParameters // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_JSONMappingParameters) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_JSONMappingParameters) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource_mappingparameters.go b/cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_mappingparameters.go similarity index 94% rename from cloudformation/aws-kinesisanalytics-applicationreferencedatasource_mappingparameters.go rename to cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_mappingparameters.go index f0a8279d94..acdfd0f5a8 100644 --- a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource_mappingparameters.go +++ b/cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_mappingparameters.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplicationReferenceDataSource_MappingParameters AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-mappingparameters.html @@ -15,7 +17,7 @@ type AWSKinesisAnalyticsApplicationReferenceDataSource_MappingParameters struct JSONMappingParameters *AWSKinesisAnalyticsApplicationReferenceDataSource_JSONMappingParameters `json:"JSONMappingParameters,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_MappingParameters) Se // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_MappingParameters) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_MappingParameters) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource_recordcolumn.go b/cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_recordcolumn.go similarity index 94% rename from cloudformation/aws-kinesisanalytics-applicationreferencedatasource_recordcolumn.go rename to cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_recordcolumn.go index 494a23e1af..0440c53dcd 100644 --- a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource_recordcolumn.go +++ b/cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_recordcolumn.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplicationReferenceDataSource_RecordColumn AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-recordcolumn.html @@ -20,7 +22,7 @@ type AWSKinesisAnalyticsApplicationReferenceDataSource_RecordColumn struct { SqlType string `json:"SqlType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_RecordColumn) SetMeta // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_RecordColumn) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_RecordColumn) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource_recordformat.go b/cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_recordformat.go similarity index 94% rename from cloudformation/aws-kinesisanalytics-applicationreferencedatasource_recordformat.go rename to cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_recordformat.go index 10ac8835c2..90e145b8a1 100644 --- a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource_recordformat.go +++ b/cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_recordformat.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplicationReferenceDataSource_RecordFormat AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-recordformat.html @@ -15,7 +17,7 @@ type AWSKinesisAnalyticsApplicationReferenceDataSource_RecordFormat struct { RecordFormatType string `json:"RecordFormatType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_RecordFormat) SetMeta // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_RecordFormat) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_RecordFormat) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource_referencedatasource.go b/cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_referencedatasource.go similarity index 95% rename from cloudformation/aws-kinesisanalytics-applicationreferencedatasource_referencedatasource.go rename to cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_referencedatasource.go index 00ad2b782d..be6028988f 100644 --- a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource_referencedatasource.go +++ b/cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_referencedatasource.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplicationReferenceDataSource_ReferenceDataSource AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-referencedatasource.html @@ -20,7 +22,7 @@ type AWSKinesisAnalyticsApplicationReferenceDataSource_ReferenceDataSource struc TableName string `json:"TableName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_ReferenceDataSource) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_ReferenceDataSource) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_ReferenceDataSource) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource_referenceschema.go b/cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_referenceschema.go similarity index 95% rename from cloudformation/aws-kinesisanalytics-applicationreferencedatasource_referenceschema.go rename to cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_referenceschema.go index a194267330..61f3d12ec5 100644 --- a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource_referenceschema.go +++ b/cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_referenceschema.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplicationReferenceDataSource_ReferenceSchema AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-referenceschema.html @@ -20,7 +22,7 @@ type AWSKinesisAnalyticsApplicationReferenceDataSource_ReferenceSchema struct { RecordFormat *AWSKinesisAnalyticsApplicationReferenceDataSource_RecordFormat `json:"RecordFormat,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_ReferenceSchema) SetM // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_ReferenceSchema) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_ReferenceSchema) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource_s3referencedatasource.go b/cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_s3referencedatasource.go similarity index 94% rename from cloudformation/aws-kinesisanalytics-applicationreferencedatasource_s3referencedatasource.go rename to cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_s3referencedatasource.go index 07e95cf7fc..21817ebb5c 100644 --- a/cloudformation/aws-kinesisanalytics-applicationreferencedatasource_s3referencedatasource.go +++ b/cloudformation/resources/aws-kinesisanalytics-applicationreferencedatasource_s3referencedatasource.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsApplicationReferenceDataSource_S3ReferenceDataSource AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-s3referencedatasource.html @@ -20,7 +22,7 @@ type AWSKinesisAnalyticsApplicationReferenceDataSource_S3ReferenceDataSource str ReferenceRoleARN string `json:"ReferenceRoleARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_S3ReferenceDataSource // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_S3ReferenceDataSource) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsApplicationReferenceDataSource_S3ReferenceDataSource) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application.go b/cloudformation/resources/aws-kinesisanalyticsv2-application.go similarity index 93% rename from cloudformation/aws-kinesisanalyticsv2-application.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application.go index b28d3f0554..59651b9e88 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSKinesisAnalyticsV2Application AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application) @@ -36,7 +37,7 @@ type AWSKinesisAnalyticsV2Application struct { ServiceExecutionRole string `json:"ServiceExecutionRole,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSKinesisAnalyticsV2Application) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSKinesisAnalyticsV2Application) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-kinesisanalyticsv2-application_applicationcodeconfiguration.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_applicationcodeconfiguration.go similarity index 94% rename from cloudformation/aws-kinesisanalyticsv2-application_applicationcodeconfiguration.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_applicationcodeconfiguration.go index 0ce4f9d04d..7e42c136a6 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_applicationcodeconfiguration.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_applicationcodeconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_ApplicationCodeConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.ApplicationCodeConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationcodeconfiguration.html @@ -15,7 +17,7 @@ type AWSKinesisAnalyticsV2Application_ApplicationCodeConfiguration struct { CodeContentType string `json:"CodeContentType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisAnalyticsV2Application_ApplicationCodeConfiguration) SetMetad // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_ApplicationCodeConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_ApplicationCodeConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_applicationconfiguration.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_applicationconfiguration.go similarity index 96% rename from cloudformation/aws-kinesisanalyticsv2-application_applicationconfiguration.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_applicationconfiguration.go index cc941aa4a4..98096dadce 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_applicationconfiguration.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_applicationconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_ApplicationConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.ApplicationConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html @@ -30,7 +32,7 @@ type AWSKinesisAnalyticsV2Application_ApplicationConfiguration struct { SqlApplicationConfiguration *AWSKinesisAnalyticsV2Application_SqlApplicationConfiguration `json:"SqlApplicationConfiguration,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSKinesisAnalyticsV2Application_ApplicationConfiguration) SetMetadata( // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_ApplicationConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_ApplicationConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_applicationsnapshotconfiguration.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_applicationsnapshotconfiguration.go similarity index 93% rename from cloudformation/aws-kinesisanalyticsv2-application_applicationsnapshotconfiguration.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_applicationsnapshotconfiguration.go index 3f2f924ae4..69ddef9968 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_applicationsnapshotconfiguration.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_applicationsnapshotconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_ApplicationSnapshotConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.ApplicationSnapshotConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationsnapshotconfiguration.html @@ -10,7 +12,7 @@ type AWSKinesisAnalyticsV2Application_ApplicationSnapshotConfiguration struct { SnapshotsEnabled bool `json:"SnapshotsEnabled"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisAnalyticsV2Application_ApplicationSnapshotConfiguration) SetM // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_ApplicationSnapshotConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_ApplicationSnapshotConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_checkpointconfiguration.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_checkpointconfiguration.go similarity index 95% rename from cloudformation/aws-kinesisanalyticsv2-application_checkpointconfiguration.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_checkpointconfiguration.go index 9f7581226e..7cb186d061 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_checkpointconfiguration.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_checkpointconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_CheckpointConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.CheckpointConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-checkpointconfiguration.html @@ -25,7 +27,7 @@ type AWSKinesisAnalyticsV2Application_CheckpointConfiguration struct { MinPauseBetweenCheckpoints int `json:"MinPauseBetweenCheckpoints,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSKinesisAnalyticsV2Application_CheckpointConfiguration) SetMetadata(m // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_CheckpointConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_CheckpointConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_codecontent.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_codecontent.go similarity index 95% rename from cloudformation/aws-kinesisanalyticsv2-application_codecontent.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_codecontent.go index bf965a45e7..28a7c0b96a 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_codecontent.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_codecontent.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_CodeContent AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.CodeContent) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-codecontent.html @@ -20,7 +22,7 @@ type AWSKinesisAnalyticsV2Application_CodeContent struct { ZipFileContent string `json:"ZipFileContent,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSKinesisAnalyticsV2Application_CodeContent) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_CodeContent) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_CodeContent) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_csvmappingparameters.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_csvmappingparameters.go similarity index 94% rename from cloudformation/aws-kinesisanalyticsv2-application_csvmappingparameters.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_csvmappingparameters.go index 8ea56e59d2..0a17637785 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_csvmappingparameters.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_csvmappingparameters.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_CSVMappingParameters AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.CSVMappingParameters) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-csvmappingparameters.html @@ -15,7 +17,7 @@ type AWSKinesisAnalyticsV2Application_CSVMappingParameters struct { RecordRowDelimiter string `json:"RecordRowDelimiter,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisAnalyticsV2Application_CSVMappingParameters) SetMetadata(meta // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_CSVMappingParameters) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_CSVMappingParameters) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_environmentproperties.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_environmentproperties.go similarity index 93% rename from cloudformation/aws-kinesisanalyticsv2-application_environmentproperties.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_environmentproperties.go index 408ce61180..9e53146c21 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_environmentproperties.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_environmentproperties.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_EnvironmentProperties AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.EnvironmentProperties) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-environmentproperties.html @@ -10,7 +12,7 @@ type AWSKinesisAnalyticsV2Application_EnvironmentProperties struct { PropertyGroups []AWSKinesisAnalyticsV2Application_PropertyGroup `json:"PropertyGroups,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisAnalyticsV2Application_EnvironmentProperties) SetMetadata(met // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_EnvironmentProperties) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_EnvironmentProperties) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_flinkapplicationconfiguration.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_flinkapplicationconfiguration.go similarity index 95% rename from cloudformation/aws-kinesisanalyticsv2-application_flinkapplicationconfiguration.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_flinkapplicationconfiguration.go index 6bea12bd31..e939c2de10 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_flinkapplicationconfiguration.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_flinkapplicationconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_FlinkApplicationConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.FlinkApplicationConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-flinkapplicationconfiguration.html @@ -20,7 +22,7 @@ type AWSKinesisAnalyticsV2Application_FlinkApplicationConfiguration struct { ParallelismConfiguration *AWSKinesisAnalyticsV2Application_ParallelismConfiguration `json:"ParallelismConfiguration,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSKinesisAnalyticsV2Application_FlinkApplicationConfiguration) SetMeta // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_FlinkApplicationConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_FlinkApplicationConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_input.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_input.go similarity index 96% rename from cloudformation/aws-kinesisanalyticsv2-application_input.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_input.go index 3a1d1f9d91..d6aa2a9a37 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_input.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_input.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_Input AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.Input) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html @@ -35,7 +37,7 @@ type AWSKinesisAnalyticsV2Application_Input struct { NamePrefix string `json:"NamePrefix,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSKinesisAnalyticsV2Application_Input) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_Input) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_Input) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_inputlambdaprocessor.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_inputlambdaprocessor.go similarity index 93% rename from cloudformation/aws-kinesisanalyticsv2-application_inputlambdaprocessor.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_inputlambdaprocessor.go index 3e72979d52..2046a96399 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_inputlambdaprocessor.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_inputlambdaprocessor.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_InputLambdaProcessor AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.InputLambdaProcessor) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputlambdaprocessor.html @@ -10,7 +12,7 @@ type AWSKinesisAnalyticsV2Application_InputLambdaProcessor struct { ResourceARN string `json:"ResourceARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisAnalyticsV2Application_InputLambdaProcessor) SetMetadata(meta // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_InputLambdaProcessor) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_InputLambdaProcessor) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_inputparallelism.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_inputparallelism.go similarity index 93% rename from cloudformation/aws-kinesisanalyticsv2-application_inputparallelism.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_inputparallelism.go index 39cc22d5db..ff75dee76a 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_inputparallelism.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_inputparallelism.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_InputParallelism AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.InputParallelism) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputparallelism.html @@ -10,7 +12,7 @@ type AWSKinesisAnalyticsV2Application_InputParallelism struct { Count int `json:"Count,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisAnalyticsV2Application_InputParallelism) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_InputParallelism) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_InputParallelism) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_inputprocessingconfiguration.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_inputprocessingconfiguration.go similarity index 93% rename from cloudformation/aws-kinesisanalyticsv2-application_inputprocessingconfiguration.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_inputprocessingconfiguration.go index 142ad1f043..a03bca62a2 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_inputprocessingconfiguration.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_inputprocessingconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_InputProcessingConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.InputProcessingConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputprocessingconfiguration.html @@ -10,7 +12,7 @@ type AWSKinesisAnalyticsV2Application_InputProcessingConfiguration struct { InputLambdaProcessor *AWSKinesisAnalyticsV2Application_InputLambdaProcessor `json:"InputLambdaProcessor,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisAnalyticsV2Application_InputProcessingConfiguration) SetMetad // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_InputProcessingConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_InputProcessingConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_inputschema.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_inputschema.go similarity index 95% rename from cloudformation/aws-kinesisanalyticsv2-application_inputschema.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_inputschema.go index 689bec4854..8354f4b5f5 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_inputschema.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_inputschema.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_InputSchema AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.InputSchema) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputschema.html @@ -20,7 +22,7 @@ type AWSKinesisAnalyticsV2Application_InputSchema struct { RecordFormat *AWSKinesisAnalyticsV2Application_RecordFormat `json:"RecordFormat,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSKinesisAnalyticsV2Application_InputSchema) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_InputSchema) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_InputSchema) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_jsonmappingparameters.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_jsonmappingparameters.go similarity index 93% rename from cloudformation/aws-kinesisanalyticsv2-application_jsonmappingparameters.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_jsonmappingparameters.go index b697af65a9..54d1a31c87 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_jsonmappingparameters.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_jsonmappingparameters.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_JSONMappingParameters AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.JSONMappingParameters) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-jsonmappingparameters.html @@ -10,7 +12,7 @@ type AWSKinesisAnalyticsV2Application_JSONMappingParameters struct { RecordRowPath string `json:"RecordRowPath,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisAnalyticsV2Application_JSONMappingParameters) SetMetadata(met // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_JSONMappingParameters) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_JSONMappingParameters) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_kinesisfirehoseinput.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_kinesisfirehoseinput.go similarity index 93% rename from cloudformation/aws-kinesisanalyticsv2-application_kinesisfirehoseinput.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_kinesisfirehoseinput.go index 380e783d25..8580958070 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_kinesisfirehoseinput.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_kinesisfirehoseinput.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_KinesisFirehoseInput AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.KinesisFirehoseInput) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-kinesisfirehoseinput.html @@ -10,7 +12,7 @@ type AWSKinesisAnalyticsV2Application_KinesisFirehoseInput struct { ResourceARN string `json:"ResourceARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisAnalyticsV2Application_KinesisFirehoseInput) SetMetadata(meta // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_KinesisFirehoseInput) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_KinesisFirehoseInput) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_kinesisstreamsinput.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_kinesisstreamsinput.go similarity index 93% rename from cloudformation/aws-kinesisanalyticsv2-application_kinesisstreamsinput.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_kinesisstreamsinput.go index ecc9436276..0780e765df 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_kinesisstreamsinput.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_kinesisstreamsinput.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_KinesisStreamsInput AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.KinesisStreamsInput) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-kinesisstreamsinput.html @@ -10,7 +12,7 @@ type AWSKinesisAnalyticsV2Application_KinesisStreamsInput struct { ResourceARN string `json:"ResourceARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisAnalyticsV2Application_KinesisStreamsInput) SetMetadata(metad // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_KinesisStreamsInput) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_KinesisStreamsInput) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_mappingparameters.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_mappingparameters.go similarity index 94% rename from cloudformation/aws-kinesisanalyticsv2-application_mappingparameters.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_mappingparameters.go index dc70e64623..4405e0069b 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_mappingparameters.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_mappingparameters.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_MappingParameters AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.MappingParameters) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-mappingparameters.html @@ -15,7 +17,7 @@ type AWSKinesisAnalyticsV2Application_MappingParameters struct { JSONMappingParameters *AWSKinesisAnalyticsV2Application_JSONMappingParameters `json:"JSONMappingParameters,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisAnalyticsV2Application_MappingParameters) SetMetadata(metadat // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_MappingParameters) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_MappingParameters) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_monitoringconfiguration.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_monitoringconfiguration.go similarity index 94% rename from cloudformation/aws-kinesisanalyticsv2-application_monitoringconfiguration.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_monitoringconfiguration.go index be2d16de36..90d4613951 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_monitoringconfiguration.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_monitoringconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_MonitoringConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.MonitoringConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-monitoringconfiguration.html @@ -20,7 +22,7 @@ type AWSKinesisAnalyticsV2Application_MonitoringConfiguration struct { MetricsLevel string `json:"MetricsLevel,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSKinesisAnalyticsV2Application_MonitoringConfiguration) SetMetadata(m // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_MonitoringConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_MonitoringConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_parallelismconfiguration.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_parallelismconfiguration.go similarity index 95% rename from cloudformation/aws-kinesisanalyticsv2-application_parallelismconfiguration.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_parallelismconfiguration.go index f763cfc1dd..09113a1f08 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_parallelismconfiguration.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_parallelismconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_ParallelismConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.ParallelismConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-parallelismconfiguration.html @@ -25,7 +27,7 @@ type AWSKinesisAnalyticsV2Application_ParallelismConfiguration struct { ParallelismPerKPU int `json:"ParallelismPerKPU,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSKinesisAnalyticsV2Application_ParallelismConfiguration) SetMetadata( // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_ParallelismConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_ParallelismConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_propertygroup.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_propertygroup.go similarity index 94% rename from cloudformation/aws-kinesisanalyticsv2-application_propertygroup.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_propertygroup.go index 6100d143ec..ce6b3f56b9 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_propertygroup.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_propertygroup.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_PropertyGroup AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.PropertyGroup) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-propertygroup.html @@ -15,7 +17,7 @@ type AWSKinesisAnalyticsV2Application_PropertyGroup struct { PropertyMap interface{} `json:"PropertyMap,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisAnalyticsV2Application_PropertyGroup) SetMetadata(metadata ma // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_PropertyGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_PropertyGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_recordcolumn.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_recordcolumn.go similarity index 94% rename from cloudformation/aws-kinesisanalyticsv2-application_recordcolumn.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_recordcolumn.go index 9631103d34..cde6267918 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_recordcolumn.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_recordcolumn.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_RecordColumn AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.RecordColumn) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordcolumn.html @@ -20,7 +22,7 @@ type AWSKinesisAnalyticsV2Application_RecordColumn struct { SqlType string `json:"SqlType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSKinesisAnalyticsV2Application_RecordColumn) SetMetadata(metadata map // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_RecordColumn) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_RecordColumn) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_recordformat.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_recordformat.go similarity index 94% rename from cloudformation/aws-kinesisanalyticsv2-application_recordformat.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_recordformat.go index 01bda0a0f9..0bb25eb317 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_recordformat.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_recordformat.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_RecordFormat AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.RecordFormat) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordformat.html @@ -15,7 +17,7 @@ type AWSKinesisAnalyticsV2Application_RecordFormat struct { RecordFormatType string `json:"RecordFormatType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisAnalyticsV2Application_RecordFormat) SetMetadata(metadata map // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_RecordFormat) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_RecordFormat) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_s3contentlocation.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_s3contentlocation.go similarity index 94% rename from cloudformation/aws-kinesisanalyticsv2-application_s3contentlocation.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_s3contentlocation.go index e8ce3bf672..1ca6d5ac87 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_s3contentlocation.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_s3contentlocation.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_S3ContentLocation AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.S3ContentLocation) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-s3contentlocation.html @@ -20,7 +22,7 @@ type AWSKinesisAnalyticsV2Application_S3ContentLocation struct { ObjectVersion string `json:"ObjectVersion,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSKinesisAnalyticsV2Application_S3ContentLocation) SetMetadata(metadat // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_S3ContentLocation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_S3ContentLocation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-application_sqlapplicationconfiguration.go b/cloudformation/resources/aws-kinesisanalyticsv2-application_sqlapplicationconfiguration.go similarity index 93% rename from cloudformation/aws-kinesisanalyticsv2-application_sqlapplicationconfiguration.go rename to cloudformation/resources/aws-kinesisanalyticsv2-application_sqlapplicationconfiguration.go index c5d3cad475..85afe0e1cd 100644 --- a/cloudformation/aws-kinesisanalyticsv2-application_sqlapplicationconfiguration.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-application_sqlapplicationconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2Application_SqlApplicationConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-sqlapplicationconfiguration.html @@ -10,7 +12,7 @@ type AWSKinesisAnalyticsV2Application_SqlApplicationConfiguration struct { Inputs []AWSKinesisAnalyticsV2Application_Input `json:"Inputs,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisAnalyticsV2Application_SqlApplicationConfiguration) SetMetada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2Application_SqlApplicationConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2Application_SqlApplicationConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.go b/cloudformation/resources/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.go similarity index 92% rename from cloudformation/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.go rename to cloudformation/resources/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.go index d17350cc14..a3d8b5dc1a 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption) @@ -21,7 +22,7 @@ type AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption struct { CloudWatchLoggingOption *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption_CloudWatchLoggingOption `json:"CloudWatchLoggingOption,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption) SetMetadata(me // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption) MarshalJSON() ( return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption_cloudwatchloggingoption.go b/cloudformation/resources/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption_cloudwatchloggingoption.go similarity index 93% rename from cloudformation/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption_cloudwatchloggingoption.go rename to cloudformation/resources/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption_cloudwatchloggingoption.go index 1eec946d6b..c51ee315f0 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption_cloudwatchloggingoption.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption_cloudwatchloggingoption.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption_CloudWatchLoggingOption AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption.CloudWatchLoggingOption) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationcloudwatchloggingoption-cloudwatchloggingoption.html @@ -10,7 +12,7 @@ type AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption_CloudWatchLoggingOp LogStreamARN string `json:"LogStreamARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption_CloudWatchLoggi // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption_CloudWatchLoggingOption) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2ApplicationCloudWatchLoggingOption_CloudWatchLoggingOption) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationoutput.go b/cloudformation/resources/aws-kinesisanalyticsv2-applicationoutput.go similarity index 92% rename from cloudformation/aws-kinesisanalyticsv2-applicationoutput.go rename to cloudformation/resources/aws-kinesisanalyticsv2-applicationoutput.go index 5ab14f41c8..935cd70c18 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationoutput.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-applicationoutput.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSKinesisAnalyticsV2ApplicationOutput AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationOutput) @@ -21,7 +22,7 @@ type AWSKinesisAnalyticsV2ApplicationOutput struct { Output *AWSKinesisAnalyticsV2ApplicationOutput_Output `json:"Output,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSKinesisAnalyticsV2ApplicationOutput) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2ApplicationOutput) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2ApplicationOutput) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSKinesisAnalyticsV2ApplicationOutput) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationoutput_destinationschema.go b/cloudformation/resources/aws-kinesisanalyticsv2-applicationoutput_destinationschema.go similarity index 93% rename from cloudformation/aws-kinesisanalyticsv2-applicationoutput_destinationschema.go rename to cloudformation/resources/aws-kinesisanalyticsv2-applicationoutput_destinationschema.go index bd1a1b18bd..e7910bfab3 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationoutput_destinationschema.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-applicationoutput_destinationschema.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2ApplicationOutput_DestinationSchema AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationOutput.DestinationSchema) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-destinationschema.html @@ -10,7 +12,7 @@ type AWSKinesisAnalyticsV2ApplicationOutput_DestinationSchema struct { RecordFormatType string `json:"RecordFormatType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisAnalyticsV2ApplicationOutput_DestinationSchema) SetMetadata(m // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2ApplicationOutput_DestinationSchema) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2ApplicationOutput_DestinationSchema) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationoutput_kinesisfirehoseoutput.go b/cloudformation/resources/aws-kinesisanalyticsv2-applicationoutput_kinesisfirehoseoutput.go similarity index 93% rename from cloudformation/aws-kinesisanalyticsv2-applicationoutput_kinesisfirehoseoutput.go rename to cloudformation/resources/aws-kinesisanalyticsv2-applicationoutput_kinesisfirehoseoutput.go index 15bc21c7ac..65f9e08baf 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationoutput_kinesisfirehoseoutput.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-applicationoutput_kinesisfirehoseoutput.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2ApplicationOutput_KinesisFirehoseOutput AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisFirehoseOutput) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-kinesisfirehoseoutput.html @@ -10,7 +12,7 @@ type AWSKinesisAnalyticsV2ApplicationOutput_KinesisFirehoseOutput struct { ResourceARN string `json:"ResourceARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisAnalyticsV2ApplicationOutput_KinesisFirehoseOutput) SetMetada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2ApplicationOutput_KinesisFirehoseOutput) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2ApplicationOutput_KinesisFirehoseOutput) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationoutput_kinesisstreamsoutput.go b/cloudformation/resources/aws-kinesisanalyticsv2-applicationoutput_kinesisstreamsoutput.go similarity index 93% rename from cloudformation/aws-kinesisanalyticsv2-applicationoutput_kinesisstreamsoutput.go rename to cloudformation/resources/aws-kinesisanalyticsv2-applicationoutput_kinesisstreamsoutput.go index 8747532d4a..376fa29390 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationoutput_kinesisstreamsoutput.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-applicationoutput_kinesisstreamsoutput.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2ApplicationOutput_KinesisStreamsOutput AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisStreamsOutput) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-kinesisstreamsoutput.html @@ -10,7 +12,7 @@ type AWSKinesisAnalyticsV2ApplicationOutput_KinesisStreamsOutput struct { ResourceARN string `json:"ResourceARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisAnalyticsV2ApplicationOutput_KinesisStreamsOutput) SetMetadat // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2ApplicationOutput_KinesisStreamsOutput) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2ApplicationOutput_KinesisStreamsOutput) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationoutput_lambdaoutput.go b/cloudformation/resources/aws-kinesisanalyticsv2-applicationoutput_lambdaoutput.go similarity index 93% rename from cloudformation/aws-kinesisanalyticsv2-applicationoutput_lambdaoutput.go rename to cloudformation/resources/aws-kinesisanalyticsv2-applicationoutput_lambdaoutput.go index f7568bd7fe..bc70bc7b46 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationoutput_lambdaoutput.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-applicationoutput_lambdaoutput.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2ApplicationOutput_LambdaOutput AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationOutput.LambdaOutput) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-lambdaoutput.html @@ -10,7 +12,7 @@ type AWSKinesisAnalyticsV2ApplicationOutput_LambdaOutput struct { ResourceARN string `json:"ResourceARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisAnalyticsV2ApplicationOutput_LambdaOutput) SetMetadata(metada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2ApplicationOutput_LambdaOutput) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2ApplicationOutput_LambdaOutput) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationoutput_output.go b/cloudformation/resources/aws-kinesisanalyticsv2-applicationoutput_output.go similarity index 96% rename from cloudformation/aws-kinesisanalyticsv2-applicationoutput_output.go rename to cloudformation/resources/aws-kinesisanalyticsv2-applicationoutput_output.go index 541265fa81..5c45e43f65 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationoutput_output.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-applicationoutput_output.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2ApplicationOutput_Output AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationOutput.Output) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html @@ -30,7 +32,7 @@ type AWSKinesisAnalyticsV2ApplicationOutput_Output struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSKinesisAnalyticsV2ApplicationOutput_Output) SetMetadata(metadata map // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2ApplicationOutput_Output) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2ApplicationOutput_Output) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource.go b/cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource.go similarity index 92% rename from cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource.go rename to cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource.go index 8aae00ccc8..e5708bd816 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSKinesisAnalyticsV2ApplicationReferenceDataSource AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource) @@ -21,7 +22,7 @@ type AWSKinesisAnalyticsV2ApplicationReferenceDataSource struct { ReferenceDataSource *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceDataSource `json:"ReferenceDataSource,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource) SetMetadata(metada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSKinesisAnalyticsV2ApplicationReferenceDataSource) MarshalJSON() ([]by return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_csvmappingparameters.go b/cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_csvmappingparameters.go similarity index 94% rename from cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_csvmappingparameters.go rename to cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_csvmappingparameters.go index 934af5914e..c2b7187b9b 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_csvmappingparameters.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_csvmappingparameters.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2ApplicationReferenceDataSource_CSVMappingParameters AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.CSVMappingParameters) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-csvmappingparameters.html @@ -15,7 +17,7 @@ type AWSKinesisAnalyticsV2ApplicationReferenceDataSource_CSVMappingParameters st RecordRowDelimiter string `json:"RecordRowDelimiter,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_CSVMappingParameter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_CSVMappingParameters) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_CSVMappingParameters) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_jsonmappingparameters.go b/cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_jsonmappingparameters.go similarity index 93% rename from cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_jsonmappingparameters.go rename to cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_jsonmappingparameters.go index bce17aa3de..c5b77ea5b9 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_jsonmappingparameters.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_jsonmappingparameters.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2ApplicationReferenceDataSource_JSONMappingParameters AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.JSONMappingParameters) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-jsonmappingparameters.html @@ -10,7 +12,7 @@ type AWSKinesisAnalyticsV2ApplicationReferenceDataSource_JSONMappingParameters s RecordRowPath string `json:"RecordRowPath,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_JSONMappingParamete // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_JSONMappingParameters) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_JSONMappingParameters) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_mappingparameters.go b/cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_mappingparameters.go similarity index 94% rename from cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_mappingparameters.go rename to cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_mappingparameters.go index ceb8fec33d..9d3d094532 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_mappingparameters.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_mappingparameters.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2ApplicationReferenceDataSource_MappingParameters AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.MappingParameters) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-mappingparameters.html @@ -15,7 +17,7 @@ type AWSKinesisAnalyticsV2ApplicationReferenceDataSource_MappingParameters struc JSONMappingParameters *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_JSONMappingParameters `json:"JSONMappingParameters,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_MappingParameters) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_MappingParameters) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_MappingParameters) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_recordcolumn.go b/cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_recordcolumn.go similarity index 94% rename from cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_recordcolumn.go rename to cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_recordcolumn.go index 8f438e30dc..81eaabe3d3 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_recordcolumn.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_recordcolumn.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordColumn AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordColumn) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn.html @@ -20,7 +22,7 @@ type AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordColumn struct { SqlType string `json:"SqlType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordColumn) SetMe // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordColumn) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordColumn) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_recordformat.go b/cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_recordformat.go similarity index 94% rename from cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_recordformat.go rename to cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_recordformat.go index 8fb613a5c0..b525ef4d71 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_recordformat.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_recordformat.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordFormat AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordFormat) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordformat.html @@ -15,7 +17,7 @@ type AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordFormat struct { RecordFormatType string `json:"RecordFormatType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordFormat) SetMe // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordFormat) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordFormat) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_referencedatasource.go b/cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_referencedatasource.go similarity index 95% rename from cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_referencedatasource.go rename to cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_referencedatasource.go index 2502cb197d..5aa5b9975f 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_referencedatasource.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_referencedatasource.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceDataSource AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceDataSource) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource.html @@ -20,7 +22,7 @@ type AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceDataSource str TableName string `json:"TableName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceDataSource // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceDataSource) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceDataSource) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_referenceschema.go b/cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_referenceschema.go similarity index 95% rename from cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_referenceschema.go rename to cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_referenceschema.go index 4e9c792c49..8f554a2c4f 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_referenceschema.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_referenceschema.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceSchema AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceSchema) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referenceschema.html @@ -20,7 +22,7 @@ type AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceSchema struct RecordFormat *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_RecordFormat `json:"RecordFormat,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceSchema) Se // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceSchema) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_ReferenceSchema) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_s3referencedatasource.go b/cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_s3referencedatasource.go similarity index 94% rename from cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_s3referencedatasource.go rename to cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_s3referencedatasource.go index ed511c8268..72f35303d2 100644 --- a/cloudformation/aws-kinesisanalyticsv2-applicationreferencedatasource_s3referencedatasource.go +++ b/cloudformation/resources/aws-kinesisanalyticsv2-applicationreferencedatasource_s3referencedatasource.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisAnalyticsV2ApplicationReferenceDataSource_S3ReferenceDataSource AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.S3ReferenceDataSource) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-s3referencedatasource.html @@ -15,7 +17,7 @@ type AWSKinesisAnalyticsV2ApplicationReferenceDataSource_S3ReferenceDataSource s FileKey string `json:"FileKey,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_S3ReferenceDataSour // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_S3ReferenceDataSource) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisAnalyticsV2ApplicationReferenceDataSource_S3ReferenceDataSource) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisfirehose-deliverystream.go b/cloudformation/resources/aws-kinesisfirehose-deliverystream.go similarity index 95% rename from cloudformation/aws-kinesisfirehose-deliverystream.go rename to cloudformation/resources/aws-kinesisfirehose-deliverystream.go index b097356839..8e01b0dcea 100644 --- a/cloudformation/aws-kinesisfirehose-deliverystream.go +++ b/cloudformation/resources/aws-kinesisfirehose-deliverystream.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSKinesisFirehoseDeliveryStream AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream) @@ -51,7 +52,7 @@ type AWSKinesisFirehoseDeliveryStream struct { SplunkDestinationConfiguration *AWSKinesisFirehoseDeliveryStream_SplunkDestinationConfiguration `json:"SplunkDestinationConfiguration,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -91,7 +92,7 @@ func (r *AWSKinesisFirehoseDeliveryStream) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisFirehoseDeliveryStream) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisFirehoseDeliveryStream) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -102,9 +103,9 @@ func (r AWSKinesisFirehoseDeliveryStream) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-kinesisfirehose-deliverystream_bufferinghints.go b/cloudformation/resources/aws-kinesisfirehose-deliverystream_bufferinghints.go similarity index 94% rename from cloudformation/aws-kinesisfirehose-deliverystream_bufferinghints.go rename to cloudformation/resources/aws-kinesisfirehose-deliverystream_bufferinghints.go index 26f4e49f7b..1815dec1be 100644 --- a/cloudformation/aws-kinesisfirehose-deliverystream_bufferinghints.go +++ b/cloudformation/resources/aws-kinesisfirehose-deliverystream_bufferinghints.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisFirehoseDeliveryStream_BufferingHints AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.BufferingHints) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-bufferinghints.html @@ -15,7 +17,7 @@ type AWSKinesisFirehoseDeliveryStream_BufferingHints struct { SizeInMBs int `json:"SizeInMBs"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisFirehoseDeliveryStream_BufferingHints) SetMetadata(metadata m // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisFirehoseDeliveryStream_BufferingHints) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisFirehoseDeliveryStream_BufferingHints) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisfirehose-deliverystream_cloudwatchloggingoptions.go b/cloudformation/resources/aws-kinesisfirehose-deliverystream_cloudwatchloggingoptions.go similarity index 94% rename from cloudformation/aws-kinesisfirehose-deliverystream_cloudwatchloggingoptions.go rename to cloudformation/resources/aws-kinesisfirehose-deliverystream_cloudwatchloggingoptions.go index 237d7bd9f3..c89b0c98b8 100644 --- a/cloudformation/aws-kinesisfirehose-deliverystream_cloudwatchloggingoptions.go +++ b/cloudformation/resources/aws-kinesisfirehose-deliverystream_cloudwatchloggingoptions.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisFirehoseDeliveryStream_CloudWatchLoggingOptions AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html @@ -20,7 +22,7 @@ type AWSKinesisFirehoseDeliveryStream_CloudWatchLoggingOptions struct { LogStreamName string `json:"LogStreamName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSKinesisFirehoseDeliveryStream_CloudWatchLoggingOptions) SetMetadata( // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisFirehoseDeliveryStream_CloudWatchLoggingOptions) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisFirehoseDeliveryStream_CloudWatchLoggingOptions) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisfirehose-deliverystream_copycommand.go b/cloudformation/resources/aws-kinesisfirehose-deliverystream_copycommand.go similarity index 95% rename from cloudformation/aws-kinesisfirehose-deliverystream_copycommand.go rename to cloudformation/resources/aws-kinesisfirehose-deliverystream_copycommand.go index 4ecc5878c1..1ab3064b98 100644 --- a/cloudformation/aws-kinesisfirehose-deliverystream_copycommand.go +++ b/cloudformation/resources/aws-kinesisfirehose-deliverystream_copycommand.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisFirehoseDeliveryStream_CopyCommand AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.CopyCommand) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-copycommand.html @@ -20,7 +22,7 @@ type AWSKinesisFirehoseDeliveryStream_CopyCommand struct { DataTableName string `json:"DataTableName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSKinesisFirehoseDeliveryStream_CopyCommand) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisFirehoseDeliveryStream_CopyCommand) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisFirehoseDeliveryStream_CopyCommand) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisfirehose-deliverystream_elasticsearchbufferinghints.go b/cloudformation/resources/aws-kinesisfirehose-deliverystream_elasticsearchbufferinghints.go similarity index 94% rename from cloudformation/aws-kinesisfirehose-deliverystream_elasticsearchbufferinghints.go rename to cloudformation/resources/aws-kinesisfirehose-deliverystream_elasticsearchbufferinghints.go index c6789b4848..1778f6d892 100644 --- a/cloudformation/aws-kinesisfirehose-deliverystream_elasticsearchbufferinghints.go +++ b/cloudformation/resources/aws-kinesisfirehose-deliverystream_elasticsearchbufferinghints.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisFirehoseDeliveryStream_ElasticsearchBufferingHints AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchbufferinghints.html @@ -15,7 +17,7 @@ type AWSKinesisFirehoseDeliveryStream_ElasticsearchBufferingHints struct { SizeInMBs int `json:"SizeInMBs"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisFirehoseDeliveryStream_ElasticsearchBufferingHints) SetMetada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisFirehoseDeliveryStream_ElasticsearchBufferingHints) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisFirehoseDeliveryStream_ElasticsearchBufferingHints) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisfirehose-deliverystream_elasticsearchdestinationconfiguration.go b/cloudformation/resources/aws-kinesisfirehose-deliverystream_elasticsearchdestinationconfiguration.go similarity index 97% rename from cloudformation/aws-kinesisfirehose-deliverystream_elasticsearchdestinationconfiguration.go rename to cloudformation/resources/aws-kinesisfirehose-deliverystream_elasticsearchdestinationconfiguration.go index 3e836eb46b..9e166e08f0 100644 --- a/cloudformation/aws-kinesisfirehose-deliverystream_elasticsearchdestinationconfiguration.go +++ b/cloudformation/resources/aws-kinesisfirehose-deliverystream_elasticsearchdestinationconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisFirehoseDeliveryStream_ElasticsearchDestinationConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.ElasticsearchDestinationConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html @@ -60,7 +62,7 @@ type AWSKinesisFirehoseDeliveryStream_ElasticsearchDestinationConfiguration stru TypeName string `json:"TypeName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -100,6 +102,6 @@ func (r *AWSKinesisFirehoseDeliveryStream_ElasticsearchDestinationConfiguration) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisFirehoseDeliveryStream_ElasticsearchDestinationConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisFirehoseDeliveryStream_ElasticsearchDestinationConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisfirehose-deliverystream_elasticsearchretryoptions.go b/cloudformation/resources/aws-kinesisfirehose-deliverystream_elasticsearchretryoptions.go similarity index 93% rename from cloudformation/aws-kinesisfirehose-deliverystream_elasticsearchretryoptions.go rename to cloudformation/resources/aws-kinesisfirehose-deliverystream_elasticsearchretryoptions.go index ba6c5714ff..1957c3b696 100644 --- a/cloudformation/aws-kinesisfirehose-deliverystream_elasticsearchretryoptions.go +++ b/cloudformation/resources/aws-kinesisfirehose-deliverystream_elasticsearchretryoptions.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisFirehoseDeliveryStream_ElasticsearchRetryOptions AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.ElasticsearchRetryOptions) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchretryoptions.html @@ -10,7 +12,7 @@ type AWSKinesisFirehoseDeliveryStream_ElasticsearchRetryOptions struct { DurationInSeconds int `json:"DurationInSeconds"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisFirehoseDeliveryStream_ElasticsearchRetryOptions) SetMetadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisFirehoseDeliveryStream_ElasticsearchRetryOptions) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisFirehoseDeliveryStream_ElasticsearchRetryOptions) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisfirehose-deliverystream_encryptionconfiguration.go b/cloudformation/resources/aws-kinesisfirehose-deliverystream_encryptionconfiguration.go similarity index 94% rename from cloudformation/aws-kinesisfirehose-deliverystream_encryptionconfiguration.go rename to cloudformation/resources/aws-kinesisfirehose-deliverystream_encryptionconfiguration.go index 1698c9651c..a161bb76b1 100644 --- a/cloudformation/aws-kinesisfirehose-deliverystream_encryptionconfiguration.go +++ b/cloudformation/resources/aws-kinesisfirehose-deliverystream_encryptionconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisFirehoseDeliveryStream_EncryptionConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.EncryptionConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-encryptionconfiguration.html @@ -15,7 +17,7 @@ type AWSKinesisFirehoseDeliveryStream_EncryptionConfiguration struct { NoEncryptionConfig string `json:"NoEncryptionConfig,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisFirehoseDeliveryStream_EncryptionConfiguration) SetMetadata(m // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisFirehoseDeliveryStream_EncryptionConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisFirehoseDeliveryStream_EncryptionConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisfirehose-deliverystream_extendeds3destinationconfiguration.go b/cloudformation/resources/aws-kinesisfirehose-deliverystream_extendeds3destinationconfiguration.go similarity index 97% rename from cloudformation/aws-kinesisfirehose-deliverystream_extendeds3destinationconfiguration.go rename to cloudformation/resources/aws-kinesisfirehose-deliverystream_extendeds3destinationconfiguration.go index 1724a7b729..99d61eee88 100644 --- a/cloudformation/aws-kinesisfirehose-deliverystream_extendeds3destinationconfiguration.go +++ b/cloudformation/resources/aws-kinesisfirehose-deliverystream_extendeds3destinationconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisFirehoseDeliveryStream_ExtendedS3DestinationConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.ExtendedS3DestinationConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html @@ -55,7 +57,7 @@ type AWSKinesisFirehoseDeliveryStream_ExtendedS3DestinationConfiguration struct S3BackupMode string `json:"S3BackupMode,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -95,6 +97,6 @@ func (r *AWSKinesisFirehoseDeliveryStream_ExtendedS3DestinationConfiguration) Se // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisFirehoseDeliveryStream_ExtendedS3DestinationConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisFirehoseDeliveryStream_ExtendedS3DestinationConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisfirehose-deliverystream_kinesisstreamsourceconfiguration.go b/cloudformation/resources/aws-kinesisfirehose-deliverystream_kinesisstreamsourceconfiguration.go similarity index 94% rename from cloudformation/aws-kinesisfirehose-deliverystream_kinesisstreamsourceconfiguration.go rename to cloudformation/resources/aws-kinesisfirehose-deliverystream_kinesisstreamsourceconfiguration.go index d215367fbf..c118bd02f0 100644 --- a/cloudformation/aws-kinesisfirehose-deliverystream_kinesisstreamsourceconfiguration.go +++ b/cloudformation/resources/aws-kinesisfirehose-deliverystream_kinesisstreamsourceconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisFirehoseDeliveryStream_KinesisStreamSourceConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.KinesisStreamSourceConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration.html @@ -15,7 +17,7 @@ type AWSKinesisFirehoseDeliveryStream_KinesisStreamSourceConfiguration struct { RoleARN string `json:"RoleARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisFirehoseDeliveryStream_KinesisStreamSourceConfiguration) SetM // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisFirehoseDeliveryStream_KinesisStreamSourceConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisFirehoseDeliveryStream_KinesisStreamSourceConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisfirehose-deliverystream_kmsencryptionconfig.go b/cloudformation/resources/aws-kinesisfirehose-deliverystream_kmsencryptionconfig.go similarity index 93% rename from cloudformation/aws-kinesisfirehose-deliverystream_kmsencryptionconfig.go rename to cloudformation/resources/aws-kinesisfirehose-deliverystream_kmsencryptionconfig.go index a9686e76c2..dc1947be88 100644 --- a/cloudformation/aws-kinesisfirehose-deliverystream_kmsencryptionconfig.go +++ b/cloudformation/resources/aws-kinesisfirehose-deliverystream_kmsencryptionconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisFirehoseDeliveryStream_KMSEncryptionConfig AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.KMSEncryptionConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kmsencryptionconfig.html @@ -10,7 +12,7 @@ type AWSKinesisFirehoseDeliveryStream_KMSEncryptionConfig struct { AWSKMSKeyARN string `json:"AWSKMSKeyARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisFirehoseDeliveryStream_KMSEncryptionConfig) SetMetadata(metad // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisFirehoseDeliveryStream_KMSEncryptionConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisFirehoseDeliveryStream_KMSEncryptionConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisfirehose-deliverystream_processingconfiguration.go b/cloudformation/resources/aws-kinesisfirehose-deliverystream_processingconfiguration.go similarity index 94% rename from cloudformation/aws-kinesisfirehose-deliverystream_processingconfiguration.go rename to cloudformation/resources/aws-kinesisfirehose-deliverystream_processingconfiguration.go index e78883d01a..3847458caf 100644 --- a/cloudformation/aws-kinesisfirehose-deliverystream_processingconfiguration.go +++ b/cloudformation/resources/aws-kinesisfirehose-deliverystream_processingconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisFirehoseDeliveryStream_ProcessingConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html @@ -15,7 +17,7 @@ type AWSKinesisFirehoseDeliveryStream_ProcessingConfiguration struct { Processors []AWSKinesisFirehoseDeliveryStream_Processor `json:"Processors,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisFirehoseDeliveryStream_ProcessingConfiguration) SetMetadata(m // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisFirehoseDeliveryStream_ProcessingConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisFirehoseDeliveryStream_ProcessingConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisfirehose-deliverystream_processor.go b/cloudformation/resources/aws-kinesisfirehose-deliverystream_processor.go similarity index 94% rename from cloudformation/aws-kinesisfirehose-deliverystream_processor.go rename to cloudformation/resources/aws-kinesisfirehose-deliverystream_processor.go index 9c49d801d1..d8015b0849 100644 --- a/cloudformation/aws-kinesisfirehose-deliverystream_processor.go +++ b/cloudformation/resources/aws-kinesisfirehose-deliverystream_processor.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisFirehoseDeliveryStream_Processor AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.Processor) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processor.html @@ -15,7 +17,7 @@ type AWSKinesisFirehoseDeliveryStream_Processor struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisFirehoseDeliveryStream_Processor) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisFirehoseDeliveryStream_Processor) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisFirehoseDeliveryStream_Processor) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisfirehose-deliverystream_processorparameter.go b/cloudformation/resources/aws-kinesisfirehose-deliverystream_processorparameter.go similarity index 94% rename from cloudformation/aws-kinesisfirehose-deliverystream_processorparameter.go rename to cloudformation/resources/aws-kinesisfirehose-deliverystream_processorparameter.go index 124602912f..24ca86a6e1 100644 --- a/cloudformation/aws-kinesisfirehose-deliverystream_processorparameter.go +++ b/cloudformation/resources/aws-kinesisfirehose-deliverystream_processorparameter.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisFirehoseDeliveryStream_ProcessorParameter AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.ProcessorParameter) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processorparameter.html @@ -15,7 +17,7 @@ type AWSKinesisFirehoseDeliveryStream_ProcessorParameter struct { ParameterValue string `json:"ParameterValue,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSKinesisFirehoseDeliveryStream_ProcessorParameter) SetMetadata(metada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisFirehoseDeliveryStream_ProcessorParameter) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisFirehoseDeliveryStream_ProcessorParameter) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisfirehose-deliverystream_redshiftdestinationconfiguration.go b/cloudformation/resources/aws-kinesisfirehose-deliverystream_redshiftdestinationconfiguration.go similarity index 96% rename from cloudformation/aws-kinesisfirehose-deliverystream_redshiftdestinationconfiguration.go rename to cloudformation/resources/aws-kinesisfirehose-deliverystream_redshiftdestinationconfiguration.go index c89e232f04..4bfe5bb816 100644 --- a/cloudformation/aws-kinesisfirehose-deliverystream_redshiftdestinationconfiguration.go +++ b/cloudformation/resources/aws-kinesisfirehose-deliverystream_redshiftdestinationconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisFirehoseDeliveryStream_RedshiftDestinationConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.RedshiftDestinationConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html @@ -45,7 +47,7 @@ type AWSKinesisFirehoseDeliveryStream_RedshiftDestinationConfiguration struct { Username string `json:"Username,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -85,6 +87,6 @@ func (r *AWSKinesisFirehoseDeliveryStream_RedshiftDestinationConfiguration) SetM // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisFirehoseDeliveryStream_RedshiftDestinationConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisFirehoseDeliveryStream_RedshiftDestinationConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisfirehose-deliverystream_s3destinationconfiguration.go b/cloudformation/resources/aws-kinesisfirehose-deliverystream_s3destinationconfiguration.go similarity index 96% rename from cloudformation/aws-kinesisfirehose-deliverystream_s3destinationconfiguration.go rename to cloudformation/resources/aws-kinesisfirehose-deliverystream_s3destinationconfiguration.go index 6a30919676..e271672229 100644 --- a/cloudformation/aws-kinesisfirehose-deliverystream_s3destinationconfiguration.go +++ b/cloudformation/resources/aws-kinesisfirehose-deliverystream_s3destinationconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisFirehoseDeliveryStream_S3DestinationConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html @@ -40,7 +42,7 @@ type AWSKinesisFirehoseDeliveryStream_S3DestinationConfiguration struct { RoleARN string `json:"RoleARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -80,6 +82,6 @@ func (r *AWSKinesisFirehoseDeliveryStream_S3DestinationConfiguration) SetMetadat // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisFirehoseDeliveryStream_S3DestinationConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisFirehoseDeliveryStream_S3DestinationConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisfirehose-deliverystream_splunkdestinationconfiguration.go b/cloudformation/resources/aws-kinesisfirehose-deliverystream_splunkdestinationconfiguration.go similarity index 96% rename from cloudformation/aws-kinesisfirehose-deliverystream_splunkdestinationconfiguration.go rename to cloudformation/resources/aws-kinesisfirehose-deliverystream_splunkdestinationconfiguration.go index e987e5e0a3..3d7e79c48a 100644 --- a/cloudformation/aws-kinesisfirehose-deliverystream_splunkdestinationconfiguration.go +++ b/cloudformation/resources/aws-kinesisfirehose-deliverystream_splunkdestinationconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisFirehoseDeliveryStream_SplunkDestinationConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.SplunkDestinationConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html @@ -50,7 +52,7 @@ type AWSKinesisFirehoseDeliveryStream_SplunkDestinationConfiguration struct { S3Configuration *AWSKinesisFirehoseDeliveryStream_S3DestinationConfiguration `json:"S3Configuration,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -90,6 +92,6 @@ func (r *AWSKinesisFirehoseDeliveryStream_SplunkDestinationConfiguration) SetMet // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisFirehoseDeliveryStream_SplunkDestinationConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisFirehoseDeliveryStream_SplunkDestinationConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kinesisfirehose-deliverystream_splunkretryoptions.go b/cloudformation/resources/aws-kinesisfirehose-deliverystream_splunkretryoptions.go similarity index 93% rename from cloudformation/aws-kinesisfirehose-deliverystream_splunkretryoptions.go rename to cloudformation/resources/aws-kinesisfirehose-deliverystream_splunkretryoptions.go index b3a4f213a8..d4a9872f0b 100644 --- a/cloudformation/aws-kinesisfirehose-deliverystream_splunkretryoptions.go +++ b/cloudformation/resources/aws-kinesisfirehose-deliverystream_splunkretryoptions.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSKinesisFirehoseDeliveryStream_SplunkRetryOptions AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.SplunkRetryOptions) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkretryoptions.html @@ -10,7 +12,7 @@ type AWSKinesisFirehoseDeliveryStream_SplunkRetryOptions struct { DurationInSeconds int `json:"DurationInSeconds"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSKinesisFirehoseDeliveryStream_SplunkRetryOptions) SetMetadata(metada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKinesisFirehoseDeliveryStream_SplunkRetryOptions) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKinesisFirehoseDeliveryStream_SplunkRetryOptions) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-kms-alias.go b/cloudformation/resources/aws-kms-alias.go similarity index 90% rename from cloudformation/aws-kms-alias.go rename to cloudformation/resources/aws-kms-alias.go index b10ffa7021..134ee859c5 100644 --- a/cloudformation/aws-kms-alias.go +++ b/cloudformation/resources/aws-kms-alias.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSKMSAlias AWS CloudFormation Resource (AWS::KMS::Alias) @@ -21,7 +22,7 @@ type AWSKMSAlias struct { TargetKeyId string `json:"TargetKeyId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSKMSAlias) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKMSAlias) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKMSAlias) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSKMSAlias) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-kms-key.go b/cloudformation/resources/aws-kms-key.go similarity index 92% rename from cloudformation/aws-kms-key.go rename to cloudformation/resources/aws-kms-key.go index a07eb8c540..f36d8dac5f 100644 --- a/cloudformation/aws-kms-key.go +++ b/cloudformation/resources/aws-kms-key.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSKMSKey AWS CloudFormation Resource (AWS::KMS::Key) @@ -46,7 +47,7 @@ type AWSKMSKey struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSKMSKey) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSKMSKey) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSKMSKey) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSKMSKey) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-lambda-alias.go b/cloudformation/resources/aws-lambda-alias.go similarity index 89% rename from cloudformation/aws-lambda-alias.go rename to cloudformation/resources/aws-lambda-alias.go index f9aa9cc455..a5f812d495 100644 --- a/cloudformation/aws-lambda-alias.go +++ b/cloudformation/resources/aws-lambda-alias.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSLambdaAlias AWS CloudFormation Resource (AWS::Lambda::Alias) @@ -36,10 +37,10 @@ type AWSLambdaAlias struct { RoutingConfig *AWSLambdaAlias_AliasRoutingConfiguration `json:"RoutingConfig,omitempty"` // _updatePolicy represents a CloudFormation UpdatePolicy - _updatePolicy *UpdatePolicy + _updatePolicy *policies.UpdatePolicy // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -79,13 +80,13 @@ func (r *AWSLambdaAlias) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSLambdaAlias) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSLambdaAlias) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } // SetUpdatePolicy applies an AWS CloudFormation UpdatePolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html -func (r *AWSLambdaAlias) SetUpdatePolicy(policy *UpdatePolicy) { +func (r *AWSLambdaAlias) SetUpdatePolicy(policy *policies.UpdatePolicy) { r._updatePolicy = policy } @@ -96,10 +97,10 @@ func (r AWSLambdaAlias) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` - UpdatePolicy *UpdatePolicy `json:"UpdatePolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdatePolicy *policies.UpdatePolicy `json:"UpdatePolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-lambda-alias_aliasroutingconfiguration.go b/cloudformation/resources/aws-lambda-alias_aliasroutingconfiguration.go similarity index 94% rename from cloudformation/aws-lambda-alias_aliasroutingconfiguration.go rename to cloudformation/resources/aws-lambda-alias_aliasroutingconfiguration.go index 2fa70e1b56..7b89f196ac 100644 --- a/cloudformation/aws-lambda-alias_aliasroutingconfiguration.go +++ b/cloudformation/resources/aws-lambda-alias_aliasroutingconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSLambdaAlias_AliasRoutingConfiguration AWS CloudFormation Resource (AWS::Lambda::Alias.AliasRoutingConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-aliasroutingconfiguration.html @@ -10,7 +12,7 @@ type AWSLambdaAlias_AliasRoutingConfiguration struct { AdditionalVersionWeights []AWSLambdaAlias_VersionWeight `json:"AdditionalVersionWeights,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSLambdaAlias_AliasRoutingConfiguration) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSLambdaAlias_AliasRoutingConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSLambdaAlias_AliasRoutingConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-lambda-alias_versionweight.go b/cloudformation/resources/aws-lambda-alias_versionweight.go similarity index 94% rename from cloudformation/aws-lambda-alias_versionweight.go rename to cloudformation/resources/aws-lambda-alias_versionweight.go index 668b399c67..aa7a0d35da 100644 --- a/cloudformation/aws-lambda-alias_versionweight.go +++ b/cloudformation/resources/aws-lambda-alias_versionweight.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSLambdaAlias_VersionWeight AWS CloudFormation Resource (AWS::Lambda::Alias.VersionWeight) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-versionweight.html @@ -15,7 +17,7 @@ type AWSLambdaAlias_VersionWeight struct { FunctionWeight float64 `json:"FunctionWeight"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSLambdaAlias_VersionWeight) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSLambdaAlias_VersionWeight) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSLambdaAlias_VersionWeight) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-lambda-eventsourcemapping.go b/cloudformation/resources/aws-lambda-eventsourcemapping.go similarity index 92% rename from cloudformation/aws-lambda-eventsourcemapping.go rename to cloudformation/resources/aws-lambda-eventsourcemapping.go index fa073225e8..5ca89eba71 100644 --- a/cloudformation/aws-lambda-eventsourcemapping.go +++ b/cloudformation/resources/aws-lambda-eventsourcemapping.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSLambdaEventSourceMapping AWS CloudFormation Resource (AWS::Lambda::EventSourceMapping) @@ -36,7 +37,7 @@ type AWSLambdaEventSourceMapping struct { StartingPosition string `json:"StartingPosition,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSLambdaEventSourceMapping) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSLambdaEventSourceMapping) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSLambdaEventSourceMapping) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSLambdaEventSourceMapping) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-lambda-function.go b/cloudformation/resources/aws-lambda-function.go similarity index 94% rename from cloudformation/aws-lambda-function.go rename to cloudformation/resources/aws-lambda-function.go index a74294c7db..6f1ad8d2b1 100644 --- a/cloudformation/aws-lambda-function.go +++ b/cloudformation/resources/aws-lambda-function.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSLambdaFunction AWS CloudFormation Resource (AWS::Lambda::Function) @@ -91,7 +92,7 @@ type AWSLambdaFunction struct { VpcConfig *AWSLambdaFunction_VpcConfig `json:"VpcConfig,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -131,7 +132,7 @@ func (r *AWSLambdaFunction) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSLambdaFunction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSLambdaFunction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -142,9 +143,9 @@ func (r AWSLambdaFunction) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-lambda-function_code.go b/cloudformation/resources/aws-lambda-function_code.go similarity index 93% rename from cloudformation/aws-lambda-function_code.go rename to cloudformation/resources/aws-lambda-function_code.go index 08e25f3e7b..d3d254b3bb 100644 --- a/cloudformation/aws-lambda-function_code.go +++ b/cloudformation/resources/aws-lambda-function_code.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSLambdaFunction_Code AWS CloudFormation Resource (AWS::Lambda::Function.Code) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html @@ -25,7 +27,7 @@ type AWSLambdaFunction_Code struct { ZipFile string `json:"ZipFile,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSLambdaFunction_Code) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSLambdaFunction_Code) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSLambdaFunction_Code) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-lambda-function_deadletterconfig.go b/cloudformation/resources/aws-lambda-function_deadletterconfig.go similarity index 93% rename from cloudformation/aws-lambda-function_deadletterconfig.go rename to cloudformation/resources/aws-lambda-function_deadletterconfig.go index 54f169c9b4..164a766014 100644 --- a/cloudformation/aws-lambda-function_deadletterconfig.go +++ b/cloudformation/resources/aws-lambda-function_deadletterconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSLambdaFunction_DeadLetterConfig AWS CloudFormation Resource (AWS::Lambda::Function.DeadLetterConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html @@ -10,7 +12,7 @@ type AWSLambdaFunction_DeadLetterConfig struct { TargetArn string `json:"TargetArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSLambdaFunction_DeadLetterConfig) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSLambdaFunction_DeadLetterConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSLambdaFunction_DeadLetterConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-lambda-function_environment.go b/cloudformation/resources/aws-lambda-function_environment.go similarity index 94% rename from cloudformation/aws-lambda-function_environment.go rename to cloudformation/resources/aws-lambda-function_environment.go index 7136e02822..bcb8ca3154 100644 --- a/cloudformation/aws-lambda-function_environment.go +++ b/cloudformation/resources/aws-lambda-function_environment.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSLambdaFunction_Environment AWS CloudFormation Resource (AWS::Lambda::Function.Environment) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html @@ -10,7 +12,7 @@ type AWSLambdaFunction_Environment struct { Variables map[string]string `json:"Variables,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSLambdaFunction_Environment) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSLambdaFunction_Environment) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSLambdaFunction_Environment) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-lambda-function_tracingconfig.go b/cloudformation/resources/aws-lambda-function_tracingconfig.go similarity index 93% rename from cloudformation/aws-lambda-function_tracingconfig.go rename to cloudformation/resources/aws-lambda-function_tracingconfig.go index f350f34942..d48b5fbc4b 100644 --- a/cloudformation/aws-lambda-function_tracingconfig.go +++ b/cloudformation/resources/aws-lambda-function_tracingconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSLambdaFunction_TracingConfig AWS CloudFormation Resource (AWS::Lambda::Function.TracingConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-tracingconfig.html @@ -10,7 +12,7 @@ type AWSLambdaFunction_TracingConfig struct { Mode string `json:"Mode,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSLambdaFunction_TracingConfig) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSLambdaFunction_TracingConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSLambdaFunction_TracingConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-lambda-function_vpcconfig.go b/cloudformation/resources/aws-lambda-function_vpcconfig.go similarity index 92% rename from cloudformation/aws-lambda-function_vpcconfig.go rename to cloudformation/resources/aws-lambda-function_vpcconfig.go index 722fc52916..c70163924a 100644 --- a/cloudformation/aws-lambda-function_vpcconfig.go +++ b/cloudformation/resources/aws-lambda-function_vpcconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSLambdaFunction_VpcConfig AWS CloudFormation Resource (AWS::Lambda::Function.VpcConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html @@ -15,7 +17,7 @@ type AWSLambdaFunction_VpcConfig struct { SubnetIds []string `json:"SubnetIds,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSLambdaFunction_VpcConfig) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSLambdaFunction_VpcConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSLambdaFunction_VpcConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-lambda-layerversion.go b/cloudformation/resources/aws-lambda-layerversion.go similarity index 92% rename from cloudformation/aws-lambda-layerversion.go rename to cloudformation/resources/aws-lambda-layerversion.go index fec7eca581..a90955741f 100644 --- a/cloudformation/aws-lambda-layerversion.go +++ b/cloudformation/resources/aws-lambda-layerversion.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSLambdaLayerVersion AWS CloudFormation Resource (AWS::Lambda::LayerVersion) @@ -36,7 +37,7 @@ type AWSLambdaLayerVersion struct { LicenseInfo string `json:"LicenseInfo,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSLambdaLayerVersion) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSLambdaLayerVersion) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSLambdaLayerVersion) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSLambdaLayerVersion) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-lambda-layerversion_content.go b/cloudformation/resources/aws-lambda-layerversion_content.go similarity index 95% rename from cloudformation/aws-lambda-layerversion_content.go rename to cloudformation/resources/aws-lambda-layerversion_content.go index 8b788425fe..d7ac6d2714 100644 --- a/cloudformation/aws-lambda-layerversion_content.go +++ b/cloudformation/resources/aws-lambda-layerversion_content.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSLambdaLayerVersion_Content AWS CloudFormation Resource (AWS::Lambda::LayerVersion.Content) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html @@ -20,7 +22,7 @@ type AWSLambdaLayerVersion_Content struct { S3ObjectVersion string `json:"S3ObjectVersion,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSLambdaLayerVersion_Content) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSLambdaLayerVersion_Content) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSLambdaLayerVersion_Content) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-lambda-layerversionpermission.go b/cloudformation/resources/aws-lambda-layerversionpermission.go similarity index 93% rename from cloudformation/aws-lambda-layerversionpermission.go rename to cloudformation/resources/aws-lambda-layerversionpermission.go index 12d871304d..6dda3582ff 100644 --- a/cloudformation/aws-lambda-layerversionpermission.go +++ b/cloudformation/resources/aws-lambda-layerversionpermission.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSLambdaLayerVersionPermission AWS CloudFormation Resource (AWS::Lambda::LayerVersionPermission) @@ -31,7 +32,7 @@ type AWSLambdaLayerVersionPermission struct { Principal string `json:"Principal,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSLambdaLayerVersionPermission) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSLambdaLayerVersionPermission) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSLambdaLayerVersionPermission) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSLambdaLayerVersionPermission) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-lambda-permission.go b/cloudformation/resources/aws-lambda-permission.go similarity index 92% rename from cloudformation/aws-lambda-permission.go rename to cloudformation/resources/aws-lambda-permission.go index 4b47cfd9e9..265e809c07 100644 --- a/cloudformation/aws-lambda-permission.go +++ b/cloudformation/resources/aws-lambda-permission.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSLambdaPermission AWS CloudFormation Resource (AWS::Lambda::Permission) @@ -41,7 +42,7 @@ type AWSLambdaPermission struct { SourceArn string `json:"SourceArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -81,7 +82,7 @@ func (r *AWSLambdaPermission) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSLambdaPermission) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSLambdaPermission) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -92,9 +93,9 @@ func (r AWSLambdaPermission) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-lambda-version.go b/cloudformation/resources/aws-lambda-version.go similarity index 90% rename from cloudformation/aws-lambda-version.go rename to cloudformation/resources/aws-lambda-version.go index c08fa10a06..7ca82468b1 100644 --- a/cloudformation/aws-lambda-version.go +++ b/cloudformation/resources/aws-lambda-version.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSLambdaVersion AWS CloudFormation Resource (AWS::Lambda::Version) @@ -26,7 +27,7 @@ type AWSLambdaVersion struct { FunctionName string `json:"FunctionName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSLambdaVersion) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSLambdaVersion) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSLambdaVersion) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSLambdaVersion) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-logs-destination.go b/cloudformation/resources/aws-logs-destination.go similarity index 91% rename from cloudformation/aws-logs-destination.go rename to cloudformation/resources/aws-logs-destination.go index 0adc3d99f1..8a7de650ce 100644 --- a/cloudformation/aws-logs-destination.go +++ b/cloudformation/resources/aws-logs-destination.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSLogsDestination AWS CloudFormation Resource (AWS::Logs::Destination) @@ -31,7 +32,7 @@ type AWSLogsDestination struct { TargetArn string `json:"TargetArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSLogsDestination) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSLogsDestination) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSLogsDestination) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSLogsDestination) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-logs-loggroup.go b/cloudformation/resources/aws-logs-loggroup.go similarity index 90% rename from cloudformation/aws-logs-loggroup.go rename to cloudformation/resources/aws-logs-loggroup.go index 79a67b7dad..1b60b4224a 100644 --- a/cloudformation/aws-logs-loggroup.go +++ b/cloudformation/resources/aws-logs-loggroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSLogsLogGroup AWS CloudFormation Resource (AWS::Logs::LogGroup) @@ -21,7 +22,7 @@ type AWSLogsLogGroup struct { RetentionInDays int `json:"RetentionInDays,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSLogsLogGroup) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSLogsLogGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSLogsLogGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSLogsLogGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-logs-logstream.go b/cloudformation/resources/aws-logs-logstream.go similarity index 90% rename from cloudformation/aws-logs-logstream.go rename to cloudformation/resources/aws-logs-logstream.go index 95a5b59bf1..cb99c54101 100644 --- a/cloudformation/aws-logs-logstream.go +++ b/cloudformation/resources/aws-logs-logstream.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSLogsLogStream AWS CloudFormation Resource (AWS::Logs::LogStream) @@ -21,7 +22,7 @@ type AWSLogsLogStream struct { LogStreamName string `json:"LogStreamName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSLogsLogStream) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSLogsLogStream) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSLogsLogStream) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSLogsLogStream) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-logs-metricfilter.go b/cloudformation/resources/aws-logs-metricfilter.go similarity index 91% rename from cloudformation/aws-logs-metricfilter.go rename to cloudformation/resources/aws-logs-metricfilter.go index 27c97db21b..c6eb426682 100644 --- a/cloudformation/aws-logs-metricfilter.go +++ b/cloudformation/resources/aws-logs-metricfilter.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSLogsMetricFilter AWS CloudFormation Resource (AWS::Logs::MetricFilter) @@ -26,7 +27,7 @@ type AWSLogsMetricFilter struct { MetricTransformations []AWSLogsMetricFilter_MetricTransformation `json:"MetricTransformations,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSLogsMetricFilter) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSLogsMetricFilter) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSLogsMetricFilter) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSLogsMetricFilter) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-logs-metricfilter_metrictransformation.go b/cloudformation/resources/aws-logs-metricfilter_metrictransformation.go similarity index 95% rename from cloudformation/aws-logs-metricfilter_metrictransformation.go rename to cloudformation/resources/aws-logs-metricfilter_metrictransformation.go index 15c41adab0..87681176b2 100644 --- a/cloudformation/aws-logs-metricfilter_metrictransformation.go +++ b/cloudformation/resources/aws-logs-metricfilter_metrictransformation.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSLogsMetricFilter_MetricTransformation AWS CloudFormation Resource (AWS::Logs::MetricFilter.MetricTransformation) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html @@ -25,7 +27,7 @@ type AWSLogsMetricFilter_MetricTransformation struct { MetricValue string `json:"MetricValue,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSLogsMetricFilter_MetricTransformation) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSLogsMetricFilter_MetricTransformation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSLogsMetricFilter_MetricTransformation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-logs-subscriptionfilter.go b/cloudformation/resources/aws-logs-subscriptionfilter.go similarity index 91% rename from cloudformation/aws-logs-subscriptionfilter.go rename to cloudformation/resources/aws-logs-subscriptionfilter.go index 14b891132b..4f2e78437a 100644 --- a/cloudformation/aws-logs-subscriptionfilter.go +++ b/cloudformation/resources/aws-logs-subscriptionfilter.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSLogsSubscriptionFilter AWS CloudFormation Resource (AWS::Logs::SubscriptionFilter) @@ -31,7 +32,7 @@ type AWSLogsSubscriptionFilter struct { RoleArn string `json:"RoleArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSLogsSubscriptionFilter) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSLogsSubscriptionFilter) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSLogsSubscriptionFilter) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSLogsSubscriptionFilter) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-neptune-dbcluster.go b/cloudformation/resources/aws-neptune-dbcluster.go similarity index 94% rename from cloudformation/aws-neptune-dbcluster.go rename to cloudformation/resources/aws-neptune-dbcluster.go index 743931ab2e..caa534bb2f 100644 --- a/cloudformation/aws-neptune-dbcluster.go +++ b/cloudformation/resources/aws-neptune-dbcluster.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSNeptuneDBCluster AWS CloudFormation Resource (AWS::Neptune::DBCluster) @@ -81,7 +82,7 @@ type AWSNeptuneDBCluster struct { VpcSecurityGroupIds []string `json:"VpcSecurityGroupIds,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -121,7 +122,7 @@ func (r *AWSNeptuneDBCluster) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSNeptuneDBCluster) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSNeptuneDBCluster) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -132,9 +133,9 @@ func (r AWSNeptuneDBCluster) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-neptune-dbclusterparametergroup.go b/cloudformation/resources/aws-neptune-dbclusterparametergroup.go similarity index 93% rename from cloudformation/aws-neptune-dbclusterparametergroup.go rename to cloudformation/resources/aws-neptune-dbclusterparametergroup.go index b534a1dd93..f65d1ec1e6 100644 --- a/cloudformation/aws-neptune-dbclusterparametergroup.go +++ b/cloudformation/resources/aws-neptune-dbclusterparametergroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSNeptuneDBClusterParameterGroup AWS CloudFormation Resource (AWS::Neptune::DBClusterParameterGroup) @@ -36,7 +37,7 @@ type AWSNeptuneDBClusterParameterGroup struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSNeptuneDBClusterParameterGroup) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSNeptuneDBClusterParameterGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSNeptuneDBClusterParameterGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSNeptuneDBClusterParameterGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-neptune-dbinstance.go b/cloudformation/resources/aws-neptune-dbinstance.go similarity index 94% rename from cloudformation/aws-neptune-dbinstance.go rename to cloudformation/resources/aws-neptune-dbinstance.go index b73ff14e09..4f2da7cf45 100644 --- a/cloudformation/aws-neptune-dbinstance.go +++ b/cloudformation/resources/aws-neptune-dbinstance.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSNeptuneDBInstance AWS CloudFormation Resource (AWS::Neptune::DBInstance) @@ -66,7 +67,7 @@ type AWSNeptuneDBInstance struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -106,7 +107,7 @@ func (r *AWSNeptuneDBInstance) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSNeptuneDBInstance) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSNeptuneDBInstance) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -117,9 +118,9 @@ func (r AWSNeptuneDBInstance) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-neptune-dbparametergroup.go b/cloudformation/resources/aws-neptune-dbparametergroup.go similarity index 91% rename from cloudformation/aws-neptune-dbparametergroup.go rename to cloudformation/resources/aws-neptune-dbparametergroup.go index 8996b71208..4558565b39 100644 --- a/cloudformation/aws-neptune-dbparametergroup.go +++ b/cloudformation/resources/aws-neptune-dbparametergroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSNeptuneDBParameterGroup AWS CloudFormation Resource (AWS::Neptune::DBParameterGroup) @@ -36,7 +37,7 @@ type AWSNeptuneDBParameterGroup struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSNeptuneDBParameterGroup) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSNeptuneDBParameterGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSNeptuneDBParameterGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSNeptuneDBParameterGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-neptune-dbsubnetgroup.go b/cloudformation/resources/aws-neptune-dbsubnetgroup.go similarity index 91% rename from cloudformation/aws-neptune-dbsubnetgroup.go rename to cloudformation/resources/aws-neptune-dbsubnetgroup.go index 579c6f484b..4a77a87cb8 100644 --- a/cloudformation/aws-neptune-dbsubnetgroup.go +++ b/cloudformation/resources/aws-neptune-dbsubnetgroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSNeptuneDBSubnetGroup AWS CloudFormation Resource (AWS::Neptune::DBSubnetGroup) @@ -31,7 +32,7 @@ type AWSNeptuneDBSubnetGroup struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSNeptuneDBSubnetGroup) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSNeptuneDBSubnetGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSNeptuneDBSubnetGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSNeptuneDBSubnetGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-opsworks-app.go b/cloudformation/resources/aws-opsworks-app.go similarity index 93% rename from cloudformation/aws-opsworks-app.go rename to cloudformation/resources/aws-opsworks-app.go index 48e775ea2d..613415c56b 100644 --- a/cloudformation/aws-opsworks-app.go +++ b/cloudformation/resources/aws-opsworks-app.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSOpsWorksApp AWS CloudFormation Resource (AWS::OpsWorks::App) @@ -71,7 +72,7 @@ type AWSOpsWorksApp struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -111,7 +112,7 @@ func (r *AWSOpsWorksApp) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksApp) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksApp) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -122,9 +123,9 @@ func (r AWSOpsWorksApp) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-opsworks-app_datasource.go b/cloudformation/resources/aws-opsworks-app_datasource.go similarity index 92% rename from cloudformation/aws-opsworks-app_datasource.go rename to cloudformation/resources/aws-opsworks-app_datasource.go index e7eb0ebed4..0da08d621f 100644 --- a/cloudformation/aws-opsworks-app_datasource.go +++ b/cloudformation/resources/aws-opsworks-app_datasource.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSOpsWorksApp_DataSource AWS CloudFormation Resource (AWS::OpsWorks::App.DataSource) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-datasource.html @@ -20,7 +22,7 @@ type AWSOpsWorksApp_DataSource struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSOpsWorksApp_DataSource) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksApp_DataSource) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksApp_DataSource) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-opsworks-app_environmentvariable.go b/cloudformation/resources/aws-opsworks-app_environmentvariable.go similarity index 94% rename from cloudformation/aws-opsworks-app_environmentvariable.go rename to cloudformation/resources/aws-opsworks-app_environmentvariable.go index d4f1fda0aa..40ff4c2553 100644 --- a/cloudformation/aws-opsworks-app_environmentvariable.go +++ b/cloudformation/resources/aws-opsworks-app_environmentvariable.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSOpsWorksApp_EnvironmentVariable AWS CloudFormation Resource (AWS::OpsWorks::App.EnvironmentVariable) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-environment.html @@ -20,7 +22,7 @@ type AWSOpsWorksApp_EnvironmentVariable struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSOpsWorksApp_EnvironmentVariable) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksApp_EnvironmentVariable) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksApp_EnvironmentVariable) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-opsworks-app_source.go b/cloudformation/resources/aws-opsworks-app_source.go similarity index 94% rename from cloudformation/aws-opsworks-app_source.go rename to cloudformation/resources/aws-opsworks-app_source.go index 2b78e2f2ae..fead4ceff2 100644 --- a/cloudformation/aws-opsworks-app_source.go +++ b/cloudformation/resources/aws-opsworks-app_source.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSOpsWorksApp_Source AWS CloudFormation Resource (AWS::OpsWorks::App.Source) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source.html @@ -35,7 +37,7 @@ type AWSOpsWorksApp_Source struct { Username string `json:"Username,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSOpsWorksApp_Source) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksApp_Source) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksApp_Source) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-opsworks-app_sslconfiguration.go b/cloudformation/resources/aws-opsworks-app_sslconfiguration.go similarity index 95% rename from cloudformation/aws-opsworks-app_sslconfiguration.go rename to cloudformation/resources/aws-opsworks-app_sslconfiguration.go index 4c3304c423..8753192fdf 100644 --- a/cloudformation/aws-opsworks-app_sslconfiguration.go +++ b/cloudformation/resources/aws-opsworks-app_sslconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSOpsWorksApp_SslConfiguration AWS CloudFormation Resource (AWS::OpsWorks::App.SslConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-sslconfiguration.html @@ -20,7 +22,7 @@ type AWSOpsWorksApp_SslConfiguration struct { PrivateKey string `json:"PrivateKey,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSOpsWorksApp_SslConfiguration) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksApp_SslConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksApp_SslConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-opsworks-elasticloadbalancerattachment.go b/cloudformation/resources/aws-opsworks-elasticloadbalancerattachment.go similarity index 92% rename from cloudformation/aws-opsworks-elasticloadbalancerattachment.go rename to cloudformation/resources/aws-opsworks-elasticloadbalancerattachment.go index 08c607417a..c900d214ee 100644 --- a/cloudformation/aws-opsworks-elasticloadbalancerattachment.go +++ b/cloudformation/resources/aws-opsworks-elasticloadbalancerattachment.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSOpsWorksElasticLoadBalancerAttachment AWS CloudFormation Resource (AWS::OpsWorks::ElasticLoadBalancerAttachment) @@ -21,7 +22,7 @@ type AWSOpsWorksElasticLoadBalancerAttachment struct { LayerId string `json:"LayerId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSOpsWorksElasticLoadBalancerAttachment) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksElasticLoadBalancerAttachment) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksElasticLoadBalancerAttachment) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSOpsWorksElasticLoadBalancerAttachment) MarshalJSON() ([]byte, error) return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-opsworks-instance.go b/cloudformation/resources/aws-opsworks-instance.go similarity index 95% rename from cloudformation/aws-opsworks-instance.go rename to cloudformation/resources/aws-opsworks-instance.go index 055fcf023f..5f72ee79d7 100644 --- a/cloudformation/aws-opsworks-instance.go +++ b/cloudformation/resources/aws-opsworks-instance.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSOpsWorksInstance AWS CloudFormation Resource (AWS::OpsWorks::Instance) @@ -116,7 +117,7 @@ type AWSOpsWorksInstance struct { Volumes []string `json:"Volumes,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -156,7 +157,7 @@ func (r *AWSOpsWorksInstance) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksInstance) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksInstance) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -167,9 +168,9 @@ func (r AWSOpsWorksInstance) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-opsworks-instance_blockdevicemapping.go b/cloudformation/resources/aws-opsworks-instance_blockdevicemapping.go similarity index 95% rename from cloudformation/aws-opsworks-instance_blockdevicemapping.go rename to cloudformation/resources/aws-opsworks-instance_blockdevicemapping.go index 5565db0dab..9517e0701d 100644 --- a/cloudformation/aws-opsworks-instance_blockdevicemapping.go +++ b/cloudformation/resources/aws-opsworks-instance_blockdevicemapping.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSOpsWorksInstance_BlockDeviceMapping AWS CloudFormation Resource (AWS::OpsWorks::Instance.BlockDeviceMapping) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-blockdevicemapping.html @@ -25,7 +27,7 @@ type AWSOpsWorksInstance_BlockDeviceMapping struct { VirtualName string `json:"VirtualName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSOpsWorksInstance_BlockDeviceMapping) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksInstance_BlockDeviceMapping) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksInstance_BlockDeviceMapping) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-opsworks-instance_ebsblockdevice.go b/cloudformation/resources/aws-opsworks-instance_ebsblockdevice.go similarity index 95% rename from cloudformation/aws-opsworks-instance_ebsblockdevice.go rename to cloudformation/resources/aws-opsworks-instance_ebsblockdevice.go index d2acb255b1..6edc31a19d 100644 --- a/cloudformation/aws-opsworks-instance_ebsblockdevice.go +++ b/cloudformation/resources/aws-opsworks-instance_ebsblockdevice.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSOpsWorksInstance_EbsBlockDevice AWS CloudFormation Resource (AWS::OpsWorks::Instance.EbsBlockDevice) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-ebsblockdevice.html @@ -30,7 +32,7 @@ type AWSOpsWorksInstance_EbsBlockDevice struct { VolumeType string `json:"VolumeType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSOpsWorksInstance_EbsBlockDevice) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksInstance_EbsBlockDevice) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksInstance_EbsBlockDevice) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-opsworks-instance_timebasedautoscaling.go b/cloudformation/resources/aws-opsworks-instance_timebasedautoscaling.go similarity index 96% rename from cloudformation/aws-opsworks-instance_timebasedautoscaling.go rename to cloudformation/resources/aws-opsworks-instance_timebasedautoscaling.go index 38de7e9b99..a7c2de8999 100644 --- a/cloudformation/aws-opsworks-instance_timebasedautoscaling.go +++ b/cloudformation/resources/aws-opsworks-instance_timebasedautoscaling.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSOpsWorksInstance_TimeBasedAutoScaling AWS CloudFormation Resource (AWS::OpsWorks::Instance.TimeBasedAutoScaling) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-timebasedautoscaling.html @@ -40,7 +42,7 @@ type AWSOpsWorksInstance_TimeBasedAutoScaling struct { Wednesday map[string]string `json:"Wednesday,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -80,6 +82,6 @@ func (r *AWSOpsWorksInstance_TimeBasedAutoScaling) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksInstance_TimeBasedAutoScaling) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksInstance_TimeBasedAutoScaling) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-opsworks-layer.go b/cloudformation/resources/aws-opsworks-layer.go similarity index 95% rename from cloudformation/aws-opsworks-layer.go rename to cloudformation/resources/aws-opsworks-layer.go index 1e4de40063..d30dadbdfc 100644 --- a/cloudformation/aws-opsworks-layer.go +++ b/cloudformation/resources/aws-opsworks-layer.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSOpsWorksLayer AWS CloudFormation Resource (AWS::OpsWorks::Layer) @@ -106,7 +107,7 @@ type AWSOpsWorksLayer struct { VolumeConfigurations []AWSOpsWorksLayer_VolumeConfiguration `json:"VolumeConfigurations,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -146,7 +147,7 @@ func (r *AWSOpsWorksLayer) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksLayer) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksLayer) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -157,9 +158,9 @@ func (r AWSOpsWorksLayer) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-opsworks-layer_autoscalingthresholds.go b/cloudformation/resources/aws-opsworks-layer_autoscalingthresholds.go similarity index 96% rename from cloudformation/aws-opsworks-layer_autoscalingthresholds.go rename to cloudformation/resources/aws-opsworks-layer_autoscalingthresholds.go index d0a6d33bf2..15798ea4b8 100644 --- a/cloudformation/aws-opsworks-layer_autoscalingthresholds.go +++ b/cloudformation/resources/aws-opsworks-layer_autoscalingthresholds.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSOpsWorksLayer_AutoScalingThresholds AWS CloudFormation Resource (AWS::OpsWorks::Layer.AutoScalingThresholds) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling-autoscalingthresholds.html @@ -35,7 +37,7 @@ type AWSOpsWorksLayer_AutoScalingThresholds struct { ThresholdsWaitTime int `json:"ThresholdsWaitTime,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSOpsWorksLayer_AutoScalingThresholds) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksLayer_AutoScalingThresholds) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksLayer_AutoScalingThresholds) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-opsworks-layer_lifecycleeventconfiguration.go b/cloudformation/resources/aws-opsworks-layer_lifecycleeventconfiguration.go similarity index 94% rename from cloudformation/aws-opsworks-layer_lifecycleeventconfiguration.go rename to cloudformation/resources/aws-opsworks-layer_lifecycleeventconfiguration.go index 14dd69c99d..203015688d 100644 --- a/cloudformation/aws-opsworks-layer_lifecycleeventconfiguration.go +++ b/cloudformation/resources/aws-opsworks-layer_lifecycleeventconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSOpsWorksLayer_LifecycleEventConfiguration AWS CloudFormation Resource (AWS::OpsWorks::Layer.LifecycleEventConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-lifecycleeventconfiguration.html @@ -10,7 +12,7 @@ type AWSOpsWorksLayer_LifecycleEventConfiguration struct { ShutdownEventConfiguration *AWSOpsWorksLayer_ShutdownEventConfiguration `json:"ShutdownEventConfiguration,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSOpsWorksLayer_LifecycleEventConfiguration) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksLayer_LifecycleEventConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksLayer_LifecycleEventConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-opsworks-layer_loadbasedautoscaling.go b/cloudformation/resources/aws-opsworks-layer_loadbasedautoscaling.go similarity index 95% rename from cloudformation/aws-opsworks-layer_loadbasedautoscaling.go rename to cloudformation/resources/aws-opsworks-layer_loadbasedautoscaling.go index 258656d99b..e09037e781 100644 --- a/cloudformation/aws-opsworks-layer_loadbasedautoscaling.go +++ b/cloudformation/resources/aws-opsworks-layer_loadbasedautoscaling.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSOpsWorksLayer_LoadBasedAutoScaling AWS CloudFormation Resource (AWS::OpsWorks::Layer.LoadBasedAutoScaling) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling.html @@ -20,7 +22,7 @@ type AWSOpsWorksLayer_LoadBasedAutoScaling struct { UpScaling *AWSOpsWorksLayer_AutoScalingThresholds `json:"UpScaling,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSOpsWorksLayer_LoadBasedAutoScaling) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksLayer_LoadBasedAutoScaling) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksLayer_LoadBasedAutoScaling) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-opsworks-layer_recipes.go b/cloudformation/resources/aws-opsworks-layer_recipes.go similarity index 94% rename from cloudformation/aws-opsworks-layer_recipes.go rename to cloudformation/resources/aws-opsworks-layer_recipes.go index 1a5fd777d3..8b84b0b94b 100644 --- a/cloudformation/aws-opsworks-layer_recipes.go +++ b/cloudformation/resources/aws-opsworks-layer_recipes.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSOpsWorksLayer_Recipes AWS CloudFormation Resource (AWS::OpsWorks::Layer.Recipes) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-recipes.html @@ -30,7 +32,7 @@ type AWSOpsWorksLayer_Recipes struct { Undeploy []string `json:"Undeploy,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSOpsWorksLayer_Recipes) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksLayer_Recipes) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksLayer_Recipes) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-opsworks-layer_shutdowneventconfiguration.go b/cloudformation/resources/aws-opsworks-layer_shutdowneventconfiguration.go similarity index 94% rename from cloudformation/aws-opsworks-layer_shutdowneventconfiguration.go rename to cloudformation/resources/aws-opsworks-layer_shutdowneventconfiguration.go index 14ebc3f782..549429301e 100644 --- a/cloudformation/aws-opsworks-layer_shutdowneventconfiguration.go +++ b/cloudformation/resources/aws-opsworks-layer_shutdowneventconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSOpsWorksLayer_ShutdownEventConfiguration AWS CloudFormation Resource (AWS::OpsWorks::Layer.ShutdownEventConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-lifecycleeventconfiguration-shutdowneventconfiguration.html @@ -15,7 +17,7 @@ type AWSOpsWorksLayer_ShutdownEventConfiguration struct { ExecutionTimeout int `json:"ExecutionTimeout,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSOpsWorksLayer_ShutdownEventConfiguration) SetMetadata(metadata map[s // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksLayer_ShutdownEventConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksLayer_ShutdownEventConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-opsworks-layer_volumeconfiguration.go b/cloudformation/resources/aws-opsworks-layer_volumeconfiguration.go similarity index 96% rename from cloudformation/aws-opsworks-layer_volumeconfiguration.go rename to cloudformation/resources/aws-opsworks-layer_volumeconfiguration.go index bcbefe59b0..f276c33046 100644 --- a/cloudformation/aws-opsworks-layer_volumeconfiguration.go +++ b/cloudformation/resources/aws-opsworks-layer_volumeconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSOpsWorksLayer_VolumeConfiguration AWS CloudFormation Resource (AWS::OpsWorks::Layer.VolumeConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-volumeconfiguration.html @@ -40,7 +42,7 @@ type AWSOpsWorksLayer_VolumeConfiguration struct { VolumeType string `json:"VolumeType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -80,6 +82,6 @@ func (r *AWSOpsWorksLayer_VolumeConfiguration) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksLayer_VolumeConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksLayer_VolumeConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-opsworks-stack.go b/cloudformation/resources/aws-opsworks-stack.go similarity index 96% rename from cloudformation/aws-opsworks-stack.go rename to cloudformation/resources/aws-opsworks-stack.go index d01dca6598..22fa4f8475 100644 --- a/cloudformation/aws-opsworks-stack.go +++ b/cloudformation/resources/aws-opsworks-stack.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSOpsWorksStack AWS CloudFormation Resource (AWS::OpsWorks::Stack) @@ -136,7 +137,7 @@ type AWSOpsWorksStack struct { VpcId string `json:"VpcId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -176,7 +177,7 @@ func (r *AWSOpsWorksStack) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksStack) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksStack) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -187,9 +188,9 @@ func (r AWSOpsWorksStack) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-opsworks-stack_chefconfiguration.go b/cloudformation/resources/aws-opsworks-stack_chefconfiguration.go similarity index 94% rename from cloudformation/aws-opsworks-stack_chefconfiguration.go rename to cloudformation/resources/aws-opsworks-stack_chefconfiguration.go index 9cd9a24e41..da7594a67a 100644 --- a/cloudformation/aws-opsworks-stack_chefconfiguration.go +++ b/cloudformation/resources/aws-opsworks-stack_chefconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSOpsWorksStack_ChefConfiguration AWS CloudFormation Resource (AWS::OpsWorks::Stack.ChefConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-chefconfiguration.html @@ -15,7 +17,7 @@ type AWSOpsWorksStack_ChefConfiguration struct { ManageBerkshelf bool `json:"ManageBerkshelf,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSOpsWorksStack_ChefConfiguration) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksStack_ChefConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksStack_ChefConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-opsworks-stack_elasticip.go b/cloudformation/resources/aws-opsworks-stack_elasticip.go similarity index 92% rename from cloudformation/aws-opsworks-stack_elasticip.go rename to cloudformation/resources/aws-opsworks-stack_elasticip.go index f0a5a08674..485160e354 100644 --- a/cloudformation/aws-opsworks-stack_elasticip.go +++ b/cloudformation/resources/aws-opsworks-stack_elasticip.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSOpsWorksStack_ElasticIp AWS CloudFormation Resource (AWS::OpsWorks::Stack.ElasticIp) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-elasticip.html @@ -15,7 +17,7 @@ type AWSOpsWorksStack_ElasticIp struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSOpsWorksStack_ElasticIp) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksStack_ElasticIp) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksStack_ElasticIp) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-opsworks-stack_rdsdbinstance.go b/cloudformation/resources/aws-opsworks-stack_rdsdbinstance.go similarity index 95% rename from cloudformation/aws-opsworks-stack_rdsdbinstance.go rename to cloudformation/resources/aws-opsworks-stack_rdsdbinstance.go index b6a1f98e03..1b01cb6479 100644 --- a/cloudformation/aws-opsworks-stack_rdsdbinstance.go +++ b/cloudformation/resources/aws-opsworks-stack_rdsdbinstance.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSOpsWorksStack_RdsDbInstance AWS CloudFormation Resource (AWS::OpsWorks::Stack.RdsDbInstance) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-rdsdbinstance.html @@ -20,7 +22,7 @@ type AWSOpsWorksStack_RdsDbInstance struct { RdsDbInstanceArn string `json:"RdsDbInstanceArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSOpsWorksStack_RdsDbInstance) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksStack_RdsDbInstance) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksStack_RdsDbInstance) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-opsworks-stack_source.go b/cloudformation/resources/aws-opsworks-stack_source.go similarity index 94% rename from cloudformation/aws-opsworks-stack_source.go rename to cloudformation/resources/aws-opsworks-stack_source.go index 53d89727e1..2a9376dfbe 100644 --- a/cloudformation/aws-opsworks-stack_source.go +++ b/cloudformation/resources/aws-opsworks-stack_source.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSOpsWorksStack_Source AWS CloudFormation Resource (AWS::OpsWorks::Stack.Source) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source.html @@ -35,7 +37,7 @@ type AWSOpsWorksStack_Source struct { Username string `json:"Username,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSOpsWorksStack_Source) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksStack_Source) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksStack_Source) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-opsworks-stack_stackconfigurationmanager.go b/cloudformation/resources/aws-opsworks-stack_stackconfigurationmanager.go similarity index 94% rename from cloudformation/aws-opsworks-stack_stackconfigurationmanager.go rename to cloudformation/resources/aws-opsworks-stack_stackconfigurationmanager.go index 97027148e0..a8b482c4b5 100644 --- a/cloudformation/aws-opsworks-stack_stackconfigurationmanager.go +++ b/cloudformation/resources/aws-opsworks-stack_stackconfigurationmanager.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSOpsWorksStack_StackConfigurationManager AWS CloudFormation Resource (AWS::OpsWorks::Stack.StackConfigurationManager) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-stackconfigmanager.html @@ -15,7 +17,7 @@ type AWSOpsWorksStack_StackConfigurationManager struct { Version string `json:"Version,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSOpsWorksStack_StackConfigurationManager) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksStack_StackConfigurationManager) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksStack_StackConfigurationManager) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-opsworks-userprofile.go b/cloudformation/resources/aws-opsworks-userprofile.go similarity index 91% rename from cloudformation/aws-opsworks-userprofile.go rename to cloudformation/resources/aws-opsworks-userprofile.go index 23b074a185..ef1a1bd4ab 100644 --- a/cloudformation/aws-opsworks-userprofile.go +++ b/cloudformation/resources/aws-opsworks-userprofile.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSOpsWorksUserProfile AWS CloudFormation Resource (AWS::OpsWorks::UserProfile) @@ -31,7 +32,7 @@ type AWSOpsWorksUserProfile struct { SshUsername string `json:"SshUsername,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSOpsWorksUserProfile) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksUserProfile) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksUserProfile) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSOpsWorksUserProfile) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-opsworks-volume.go b/cloudformation/resources/aws-opsworks-volume.go similarity index 91% rename from cloudformation/aws-opsworks-volume.go rename to cloudformation/resources/aws-opsworks-volume.go index 39a5385692..0ae5f60a8c 100644 --- a/cloudformation/aws-opsworks-volume.go +++ b/cloudformation/resources/aws-opsworks-volume.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSOpsWorksVolume AWS CloudFormation Resource (AWS::OpsWorks::Volume) @@ -31,7 +32,7 @@ type AWSOpsWorksVolume struct { StackId string `json:"StackId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSOpsWorksVolume) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksVolume) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksVolume) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSOpsWorksVolume) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-opsworkscm-server.go b/cloudformation/resources/aws-opsworkscm-server.go similarity index 95% rename from cloudformation/aws-opsworkscm-server.go rename to cloudformation/resources/aws-opsworkscm-server.go index bcdc7415d4..204e063268 100644 --- a/cloudformation/aws-opsworkscm-server.go +++ b/cloudformation/resources/aws-opsworkscm-server.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSOpsWorksCMServer AWS CloudFormation Resource (AWS::OpsWorksCM::Server) @@ -96,7 +97,7 @@ type AWSOpsWorksCMServer struct { SubnetIds []string `json:"SubnetIds,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -136,7 +137,7 @@ func (r *AWSOpsWorksCMServer) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksCMServer) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksCMServer) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -147,9 +148,9 @@ func (r AWSOpsWorksCMServer) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-opsworkscm-server_engineattribute.go b/cloudformation/resources/aws-opsworkscm-server_engineattribute.go similarity index 94% rename from cloudformation/aws-opsworkscm-server_engineattribute.go rename to cloudformation/resources/aws-opsworkscm-server_engineattribute.go index a01e708e88..89dd5877bc 100644 --- a/cloudformation/aws-opsworkscm-server_engineattribute.go +++ b/cloudformation/resources/aws-opsworkscm-server_engineattribute.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSOpsWorksCMServer_EngineAttribute AWS CloudFormation Resource (AWS::OpsWorksCM::Server.EngineAttribute) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworkscm-server-engineattribute.html @@ -15,7 +17,7 @@ type AWSOpsWorksCMServer_EngineAttribute struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSOpsWorksCMServer_EngineAttribute) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSOpsWorksCMServer_EngineAttribute) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSOpsWorksCMServer_EngineAttribute) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ram-resourceshare.go b/cloudformation/resources/aws-ram-resourceshare.go similarity index 91% rename from cloudformation/aws-ram-resourceshare.go rename to cloudformation/resources/aws-ram-resourceshare.go index 39c3a70ab2..9775ccd990 100644 --- a/cloudformation/aws-ram-resourceshare.go +++ b/cloudformation/resources/aws-ram-resourceshare.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRAMResourceShare AWS CloudFormation Resource (AWS::RAM::ResourceShare) @@ -36,7 +37,7 @@ type AWSRAMResourceShare struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSRAMResourceShare) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRAMResourceShare) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRAMResourceShare) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSRAMResourceShare) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-rds-dbcluster.go b/cloudformation/resources/aws-rds-dbcluster.go similarity index 96% rename from cloudformation/aws-rds-dbcluster.go rename to cloudformation/resources/aws-rds-dbcluster.go index 35cd942eb0..64fdac2889 100644 --- a/cloudformation/aws-rds-dbcluster.go +++ b/cloudformation/resources/aws-rds-dbcluster.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRDSDBCluster AWS CloudFormation Resource (AWS::RDS::DBCluster) @@ -141,7 +142,7 @@ type AWSRDSDBCluster struct { VpcSecurityGroupIds []string `json:"VpcSecurityGroupIds,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -181,7 +182,7 @@ func (r *AWSRDSDBCluster) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRDSDBCluster) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRDSDBCluster) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -192,9 +193,9 @@ func (r AWSRDSDBCluster) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-rds-dbcluster_scalingconfiguration.go b/cloudformation/resources/aws-rds-dbcluster_scalingconfiguration.go similarity index 95% rename from cloudformation/aws-rds-dbcluster_scalingconfiguration.go rename to cloudformation/resources/aws-rds-dbcluster_scalingconfiguration.go index 9f47a05e79..800169ed4c 100644 --- a/cloudformation/aws-rds-dbcluster_scalingconfiguration.go +++ b/cloudformation/resources/aws-rds-dbcluster_scalingconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRDSDBCluster_ScalingConfiguration AWS CloudFormation Resource (AWS::RDS::DBCluster.ScalingConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-scalingconfiguration.html @@ -25,7 +27,7 @@ type AWSRDSDBCluster_ScalingConfiguration struct { SecondsUntilAutoPause int `json:"SecondsUntilAutoPause,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSRDSDBCluster_ScalingConfiguration) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRDSDBCluster_ScalingConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRDSDBCluster_ScalingConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-rds-dbclusterparametergroup.go b/cloudformation/resources/aws-rds-dbclusterparametergroup.go similarity index 92% rename from cloudformation/aws-rds-dbclusterparametergroup.go rename to cloudformation/resources/aws-rds-dbclusterparametergroup.go index 1304e9ec65..17f321b732 100644 --- a/cloudformation/aws-rds-dbclusterparametergroup.go +++ b/cloudformation/resources/aws-rds-dbclusterparametergroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRDSDBClusterParameterGroup AWS CloudFormation Resource (AWS::RDS::DBClusterParameterGroup) @@ -31,7 +32,7 @@ type AWSRDSDBClusterParameterGroup struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSRDSDBClusterParameterGroup) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRDSDBClusterParameterGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRDSDBClusterParameterGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSRDSDBClusterParameterGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-rds-dbinstance.go b/cloudformation/resources/aws-rds-dbinstance.go similarity index 97% rename from cloudformation/aws-rds-dbinstance.go rename to cloudformation/resources/aws-rds-dbinstance.go index fbc3df03fd..1acdfd5e33 100644 --- a/cloudformation/aws-rds-dbinstance.go +++ b/cloudformation/resources/aws-rds-dbinstance.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRDSDBInstance AWS CloudFormation Resource (AWS::RDS::DBInstance) @@ -256,7 +257,7 @@ type AWSRDSDBInstance struct { VPCSecurityGroups []string `json:"VPCSecurityGroups,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -296,7 +297,7 @@ func (r *AWSRDSDBInstance) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRDSDBInstance) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRDSDBInstance) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -307,9 +308,9 @@ func (r AWSRDSDBInstance) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-rds-dbinstance_processorfeature.go b/cloudformation/resources/aws-rds-dbinstance_processorfeature.go similarity index 94% rename from cloudformation/aws-rds-dbinstance_processorfeature.go rename to cloudformation/resources/aws-rds-dbinstance_processorfeature.go index f9275f84f1..424d19b263 100644 --- a/cloudformation/aws-rds-dbinstance_processorfeature.go +++ b/cloudformation/resources/aws-rds-dbinstance_processorfeature.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRDSDBInstance_ProcessorFeature AWS CloudFormation Resource (AWS::RDS::DBInstance.ProcessorFeature) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbinstance-processorfeature.html @@ -15,7 +17,7 @@ type AWSRDSDBInstance_ProcessorFeature struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSRDSDBInstance_ProcessorFeature) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRDSDBInstance_ProcessorFeature) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRDSDBInstance_ProcessorFeature) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-rds-dbparametergroup.go b/cloudformation/resources/aws-rds-dbparametergroup.go similarity index 91% rename from cloudformation/aws-rds-dbparametergroup.go rename to cloudformation/resources/aws-rds-dbparametergroup.go index 79ea0228e0..6c9a10d6bc 100644 --- a/cloudformation/aws-rds-dbparametergroup.go +++ b/cloudformation/resources/aws-rds-dbparametergroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRDSDBParameterGroup AWS CloudFormation Resource (AWS::RDS::DBParameterGroup) @@ -31,7 +32,7 @@ type AWSRDSDBParameterGroup struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSRDSDBParameterGroup) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRDSDBParameterGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRDSDBParameterGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSRDSDBParameterGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-rds-dbsecuritygroup.go b/cloudformation/resources/aws-rds-dbsecuritygroup.go similarity index 91% rename from cloudformation/aws-rds-dbsecuritygroup.go rename to cloudformation/resources/aws-rds-dbsecuritygroup.go index 1f2d0ead4f..83ba8bf575 100644 --- a/cloudformation/aws-rds-dbsecuritygroup.go +++ b/cloudformation/resources/aws-rds-dbsecuritygroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRDSDBSecurityGroup AWS CloudFormation Resource (AWS::RDS::DBSecurityGroup) @@ -31,7 +32,7 @@ type AWSRDSDBSecurityGroup struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSRDSDBSecurityGroup) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRDSDBSecurityGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRDSDBSecurityGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSRDSDBSecurityGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-rds-dbsecuritygroup_ingress.go b/cloudformation/resources/aws-rds-dbsecuritygroup_ingress.go similarity index 95% rename from cloudformation/aws-rds-dbsecuritygroup_ingress.go rename to cloudformation/resources/aws-rds-dbsecuritygroup_ingress.go index 275c604ffc..41ece7985d 100644 --- a/cloudformation/aws-rds-dbsecuritygroup_ingress.go +++ b/cloudformation/resources/aws-rds-dbsecuritygroup_ingress.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRDSDBSecurityGroup_Ingress AWS CloudFormation Resource (AWS::RDS::DBSecurityGroup.Ingress) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-security-group-rule.html @@ -25,7 +27,7 @@ type AWSRDSDBSecurityGroup_Ingress struct { EC2SecurityGroupOwnerId string `json:"EC2SecurityGroupOwnerId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSRDSDBSecurityGroup_Ingress) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRDSDBSecurityGroup_Ingress) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRDSDBSecurityGroup_Ingress) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-rds-dbsecuritygroupingress.go b/cloudformation/resources/aws-rds-dbsecuritygroupingress.go similarity index 93% rename from cloudformation/aws-rds-dbsecuritygroupingress.go rename to cloudformation/resources/aws-rds-dbsecuritygroupingress.go index c0ab9d45c2..cea9a3b7f5 100644 --- a/cloudformation/aws-rds-dbsecuritygroupingress.go +++ b/cloudformation/resources/aws-rds-dbsecuritygroupingress.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRDSDBSecurityGroupIngress AWS CloudFormation Resource (AWS::RDS::DBSecurityGroupIngress) @@ -36,7 +37,7 @@ type AWSRDSDBSecurityGroupIngress struct { EC2SecurityGroupOwnerId string `json:"EC2SecurityGroupOwnerId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSRDSDBSecurityGroupIngress) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRDSDBSecurityGroupIngress) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRDSDBSecurityGroupIngress) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSRDSDBSecurityGroupIngress) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-rds-dbsubnetgroup.go b/cloudformation/resources/aws-rds-dbsubnetgroup.go similarity index 91% rename from cloudformation/aws-rds-dbsubnetgroup.go rename to cloudformation/resources/aws-rds-dbsubnetgroup.go index 277a96ce43..5b40ac6677 100644 --- a/cloudformation/aws-rds-dbsubnetgroup.go +++ b/cloudformation/resources/aws-rds-dbsubnetgroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRDSDBSubnetGroup AWS CloudFormation Resource (AWS::RDS::DBSubnetGroup) @@ -31,7 +32,7 @@ type AWSRDSDBSubnetGroup struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSRDSDBSubnetGroup) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRDSDBSubnetGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRDSDBSubnetGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSRDSDBSubnetGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-rds-eventsubscription.go b/cloudformation/resources/aws-rds-eventsubscription.go similarity index 92% rename from cloudformation/aws-rds-eventsubscription.go rename to cloudformation/resources/aws-rds-eventsubscription.go index 92cdd49c5e..32c1f14ecb 100644 --- a/cloudformation/aws-rds-eventsubscription.go +++ b/cloudformation/resources/aws-rds-eventsubscription.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRDSEventSubscription AWS CloudFormation Resource (AWS::RDS::EventSubscription) @@ -36,7 +37,7 @@ type AWSRDSEventSubscription struct { SourceType string `json:"SourceType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSRDSEventSubscription) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRDSEventSubscription) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRDSEventSubscription) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSRDSEventSubscription) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-rds-optiongroup.go b/cloudformation/resources/aws-rds-optiongroup.go similarity index 92% rename from cloudformation/aws-rds-optiongroup.go rename to cloudformation/resources/aws-rds-optiongroup.go index 094d56aa49..c079841fdb 100644 --- a/cloudformation/aws-rds-optiongroup.go +++ b/cloudformation/resources/aws-rds-optiongroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRDSOptionGroup AWS CloudFormation Resource (AWS::RDS::OptionGroup) @@ -36,7 +37,7 @@ type AWSRDSOptionGroup struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSRDSOptionGroup) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRDSOptionGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRDSOptionGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSRDSOptionGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-rds-optiongroup_optionconfiguration.go b/cloudformation/resources/aws-rds-optiongroup_optionconfiguration.go similarity index 96% rename from cloudformation/aws-rds-optiongroup_optionconfiguration.go rename to cloudformation/resources/aws-rds-optiongroup_optionconfiguration.go index a97e713285..f588d29051 100644 --- a/cloudformation/aws-rds-optiongroup_optionconfiguration.go +++ b/cloudformation/resources/aws-rds-optiongroup_optionconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRDSOptionGroup_OptionConfiguration AWS CloudFormation Resource (AWS::RDS::OptionGroup.OptionConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-optiongroup-optionconfigurations.html @@ -35,7 +37,7 @@ type AWSRDSOptionGroup_OptionConfiguration struct { VpcSecurityGroupMemberships []string `json:"VpcSecurityGroupMemberships,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSRDSOptionGroup_OptionConfiguration) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRDSOptionGroup_OptionConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRDSOptionGroup_OptionConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-rds-optiongroup_optionsetting.go b/cloudformation/resources/aws-rds-optiongroup_optionsetting.go similarity index 94% rename from cloudformation/aws-rds-optiongroup_optionsetting.go rename to cloudformation/resources/aws-rds-optiongroup_optionsetting.go index 9367e968ba..ddf252d3c9 100644 --- a/cloudformation/aws-rds-optiongroup_optionsetting.go +++ b/cloudformation/resources/aws-rds-optiongroup_optionsetting.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRDSOptionGroup_OptionSetting AWS CloudFormation Resource (AWS::RDS::OptionGroup.OptionSetting) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-optiongroup-optionconfigurations-optionsettings.html @@ -15,7 +17,7 @@ type AWSRDSOptionGroup_OptionSetting struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSRDSOptionGroup_OptionSetting) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRDSOptionGroup_OptionSetting) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRDSOptionGroup_OptionSetting) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-redshift-cluster.go b/cloudformation/resources/aws-redshift-cluster.go similarity index 96% rename from cloudformation/aws-redshift-cluster.go rename to cloudformation/resources/aws-redshift-cluster.go index 253fa5816e..b26acdcc9f 100644 --- a/cloudformation/aws-redshift-cluster.go +++ b/cloudformation/resources/aws-redshift-cluster.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRedshiftCluster AWS CloudFormation Resource (AWS::Redshift::Cluster) @@ -156,7 +157,7 @@ type AWSRedshiftCluster struct { VpcSecurityGroupIds []string `json:"VpcSecurityGroupIds,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -196,7 +197,7 @@ func (r *AWSRedshiftCluster) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRedshiftCluster) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRedshiftCluster) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -207,9 +208,9 @@ func (r AWSRedshiftCluster) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-redshift-cluster_loggingproperties.go b/cloudformation/resources/aws-redshift-cluster_loggingproperties.go similarity index 94% rename from cloudformation/aws-redshift-cluster_loggingproperties.go rename to cloudformation/resources/aws-redshift-cluster_loggingproperties.go index 87ed18680c..bf59006903 100644 --- a/cloudformation/aws-redshift-cluster_loggingproperties.go +++ b/cloudformation/resources/aws-redshift-cluster_loggingproperties.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRedshiftCluster_LoggingProperties AWS CloudFormation Resource (AWS::Redshift::Cluster.LoggingProperties) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-cluster-loggingproperties.html @@ -15,7 +17,7 @@ type AWSRedshiftCluster_LoggingProperties struct { S3KeyPrefix string `json:"S3KeyPrefix,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSRedshiftCluster_LoggingProperties) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRedshiftCluster_LoggingProperties) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRedshiftCluster_LoggingProperties) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-redshift-clusterparametergroup.go b/cloudformation/resources/aws-redshift-clusterparametergroup.go similarity index 93% rename from cloudformation/aws-redshift-clusterparametergroup.go rename to cloudformation/resources/aws-redshift-clusterparametergroup.go index ec9d7fcce9..946a575328 100644 --- a/cloudformation/aws-redshift-clusterparametergroup.go +++ b/cloudformation/resources/aws-redshift-clusterparametergroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRedshiftClusterParameterGroup AWS CloudFormation Resource (AWS::Redshift::ClusterParameterGroup) @@ -31,7 +32,7 @@ type AWSRedshiftClusterParameterGroup struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSRedshiftClusterParameterGroup) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRedshiftClusterParameterGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRedshiftClusterParameterGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSRedshiftClusterParameterGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-redshift-clusterparametergroup_parameter.go b/cloudformation/resources/aws-redshift-clusterparametergroup_parameter.go similarity index 94% rename from cloudformation/aws-redshift-clusterparametergroup_parameter.go rename to cloudformation/resources/aws-redshift-clusterparametergroup_parameter.go index 3011f1f818..847915edad 100644 --- a/cloudformation/aws-redshift-clusterparametergroup_parameter.go +++ b/cloudformation/resources/aws-redshift-clusterparametergroup_parameter.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRedshiftClusterParameterGroup_Parameter AWS CloudFormation Resource (AWS::Redshift::ClusterParameterGroup.Parameter) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-property-redshift-clusterparametergroup-parameter.html @@ -15,7 +17,7 @@ type AWSRedshiftClusterParameterGroup_Parameter struct { ParameterValue string `json:"ParameterValue,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSRedshiftClusterParameterGroup_Parameter) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRedshiftClusterParameterGroup_Parameter) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRedshiftClusterParameterGroup_Parameter) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-redshift-clustersecuritygroup.go b/cloudformation/resources/aws-redshift-clustersecuritygroup.go similarity index 92% rename from cloudformation/aws-redshift-clustersecuritygroup.go rename to cloudformation/resources/aws-redshift-clustersecuritygroup.go index f8cfe2391c..ec104fba5c 100644 --- a/cloudformation/aws-redshift-clustersecuritygroup.go +++ b/cloudformation/resources/aws-redshift-clustersecuritygroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRedshiftClusterSecurityGroup AWS CloudFormation Resource (AWS::Redshift::ClusterSecurityGroup) @@ -21,7 +22,7 @@ type AWSRedshiftClusterSecurityGroup struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSRedshiftClusterSecurityGroup) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRedshiftClusterSecurityGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRedshiftClusterSecurityGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSRedshiftClusterSecurityGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-redshift-clustersecuritygroupingress.go b/cloudformation/resources/aws-redshift-clustersecuritygroupingress.go similarity index 93% rename from cloudformation/aws-redshift-clustersecuritygroupingress.go rename to cloudformation/resources/aws-redshift-clustersecuritygroupingress.go index e91d198d42..81a013d407 100644 --- a/cloudformation/aws-redshift-clustersecuritygroupingress.go +++ b/cloudformation/resources/aws-redshift-clustersecuritygroupingress.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRedshiftClusterSecurityGroupIngress AWS CloudFormation Resource (AWS::Redshift::ClusterSecurityGroupIngress) @@ -31,7 +32,7 @@ type AWSRedshiftClusterSecurityGroupIngress struct { EC2SecurityGroupOwnerId string `json:"EC2SecurityGroupOwnerId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSRedshiftClusterSecurityGroupIngress) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRedshiftClusterSecurityGroupIngress) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRedshiftClusterSecurityGroupIngress) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSRedshiftClusterSecurityGroupIngress) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-redshift-clustersubnetgroup.go b/cloudformation/resources/aws-redshift-clustersubnetgroup.go similarity index 92% rename from cloudformation/aws-redshift-clustersubnetgroup.go rename to cloudformation/resources/aws-redshift-clustersubnetgroup.go index 7b52afea84..da84702078 100644 --- a/cloudformation/aws-redshift-clustersubnetgroup.go +++ b/cloudformation/resources/aws-redshift-clustersubnetgroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRedshiftClusterSubnetGroup AWS CloudFormation Resource (AWS::Redshift::ClusterSubnetGroup) @@ -26,7 +27,7 @@ type AWSRedshiftClusterSubnetGroup struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSRedshiftClusterSubnetGroup) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRedshiftClusterSubnetGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRedshiftClusterSubnetGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSRedshiftClusterSubnetGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-robomaker-fleet.go b/cloudformation/resources/aws-robomaker-fleet.go similarity index 90% rename from cloudformation/aws-robomaker-fleet.go rename to cloudformation/resources/aws-robomaker-fleet.go index af60d368b5..df68fdf2fd 100644 --- a/cloudformation/aws-robomaker-fleet.go +++ b/cloudformation/resources/aws-robomaker-fleet.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRoboMakerFleet AWS CloudFormation Resource (AWS::RoboMaker::Fleet) @@ -21,7 +22,7 @@ type AWSRoboMakerFleet struct { Tags interface{} `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSRoboMakerFleet) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoboMakerFleet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoboMakerFleet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSRoboMakerFleet) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-robomaker-robot.go b/cloudformation/resources/aws-robomaker-robot.go similarity index 91% rename from cloudformation/aws-robomaker-robot.go rename to cloudformation/resources/aws-robomaker-robot.go index c8affc5492..eece848839 100644 --- a/cloudformation/aws-robomaker-robot.go +++ b/cloudformation/resources/aws-robomaker-robot.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRoboMakerRobot AWS CloudFormation Resource (AWS::RoboMaker::Robot) @@ -36,7 +37,7 @@ type AWSRoboMakerRobot struct { Tags interface{} `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSRoboMakerRobot) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoboMakerRobot) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoboMakerRobot) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSRoboMakerRobot) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-robomaker-robotapplication.go b/cloudformation/resources/aws-robomaker-robotapplication.go similarity index 93% rename from cloudformation/aws-robomaker-robotapplication.go rename to cloudformation/resources/aws-robomaker-robotapplication.go index 1ba9565146..9c239a8b0d 100644 --- a/cloudformation/aws-robomaker-robotapplication.go +++ b/cloudformation/resources/aws-robomaker-robotapplication.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRoboMakerRobotApplication AWS CloudFormation Resource (AWS::RoboMaker::RobotApplication) @@ -36,7 +37,7 @@ type AWSRoboMakerRobotApplication struct { Tags interface{} `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSRoboMakerRobotApplication) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoboMakerRobotApplication) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoboMakerRobotApplication) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSRoboMakerRobotApplication) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-robomaker-robotapplication_robotsoftwaresuite.go b/cloudformation/resources/aws-robomaker-robotapplication_robotsoftwaresuite.go similarity index 94% rename from cloudformation/aws-robomaker-robotapplication_robotsoftwaresuite.go rename to cloudformation/resources/aws-robomaker-robotapplication_robotsoftwaresuite.go index 4d21b29d6b..cdf44c7b46 100644 --- a/cloudformation/aws-robomaker-robotapplication_robotsoftwaresuite.go +++ b/cloudformation/resources/aws-robomaker-robotapplication_robotsoftwaresuite.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRoboMakerRobotApplication_RobotSoftwareSuite AWS CloudFormation Resource (AWS::RoboMaker::RobotApplication.RobotSoftwareSuite) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-robotsoftwaresuite.html @@ -15,7 +17,7 @@ type AWSRoboMakerRobotApplication_RobotSoftwareSuite struct { Version string `json:"Version,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSRoboMakerRobotApplication_RobotSoftwareSuite) SetMetadata(metadata m // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoboMakerRobotApplication_RobotSoftwareSuite) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoboMakerRobotApplication_RobotSoftwareSuite) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-robomaker-robotapplication_sourceconfig.go b/cloudformation/resources/aws-robomaker-robotapplication_sourceconfig.go similarity index 94% rename from cloudformation/aws-robomaker-robotapplication_sourceconfig.go rename to cloudformation/resources/aws-robomaker-robotapplication_sourceconfig.go index 84375d29f7..dc0088ffcf 100644 --- a/cloudformation/aws-robomaker-robotapplication_sourceconfig.go +++ b/cloudformation/resources/aws-robomaker-robotapplication_sourceconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRoboMakerRobotApplication_SourceConfig AWS CloudFormation Resource (AWS::RoboMaker::RobotApplication.SourceConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-sourceconfig.html @@ -20,7 +22,7 @@ type AWSRoboMakerRobotApplication_SourceConfig struct { S3Key string `json:"S3Key,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSRoboMakerRobotApplication_SourceConfig) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoboMakerRobotApplication_SourceConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoboMakerRobotApplication_SourceConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-robomaker-robotapplicationversion.go b/cloudformation/resources/aws-robomaker-robotapplicationversion.go similarity index 92% rename from cloudformation/aws-robomaker-robotapplicationversion.go rename to cloudformation/resources/aws-robomaker-robotapplicationversion.go index b5ecfecf2e..c81f0e3780 100644 --- a/cloudformation/aws-robomaker-robotapplicationversion.go +++ b/cloudformation/resources/aws-robomaker-robotapplicationversion.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRoboMakerRobotApplicationVersion AWS CloudFormation Resource (AWS::RoboMaker::RobotApplicationVersion) @@ -21,7 +22,7 @@ type AWSRoboMakerRobotApplicationVersion struct { CurrentRevisionId string `json:"CurrentRevisionId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSRoboMakerRobotApplicationVersion) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoboMakerRobotApplicationVersion) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoboMakerRobotApplicationVersion) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSRoboMakerRobotApplicationVersion) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-robomaker-simulationapplication.go b/cloudformation/resources/aws-robomaker-simulationapplication.go similarity index 94% rename from cloudformation/aws-robomaker-simulationapplication.go rename to cloudformation/resources/aws-robomaker-simulationapplication.go index f44936e6ac..3e04ebcea6 100644 --- a/cloudformation/aws-robomaker-simulationapplication.go +++ b/cloudformation/resources/aws-robomaker-simulationapplication.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRoboMakerSimulationApplication AWS CloudFormation Resource (AWS::RoboMaker::SimulationApplication) @@ -46,7 +47,7 @@ type AWSRoboMakerSimulationApplication struct { Tags interface{} `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSRoboMakerSimulationApplication) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoboMakerSimulationApplication) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoboMakerSimulationApplication) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSRoboMakerSimulationApplication) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-robomaker-simulationapplication_renderingengine.go b/cloudformation/resources/aws-robomaker-simulationapplication_renderingengine.go similarity index 94% rename from cloudformation/aws-robomaker-simulationapplication_renderingengine.go rename to cloudformation/resources/aws-robomaker-simulationapplication_renderingengine.go index 29f9aee0a4..875f77a232 100644 --- a/cloudformation/aws-robomaker-simulationapplication_renderingengine.go +++ b/cloudformation/resources/aws-robomaker-simulationapplication_renderingengine.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRoboMakerSimulationApplication_RenderingEngine AWS CloudFormation Resource (AWS::RoboMaker::SimulationApplication.RenderingEngine) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-renderingengine.html @@ -15,7 +17,7 @@ type AWSRoboMakerSimulationApplication_RenderingEngine struct { Version string `json:"Version,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSRoboMakerSimulationApplication_RenderingEngine) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoboMakerSimulationApplication_RenderingEngine) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoboMakerSimulationApplication_RenderingEngine) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-robomaker-simulationapplication_robotsoftwaresuite.go b/cloudformation/resources/aws-robomaker-simulationapplication_robotsoftwaresuite.go similarity index 94% rename from cloudformation/aws-robomaker-simulationapplication_robotsoftwaresuite.go rename to cloudformation/resources/aws-robomaker-simulationapplication_robotsoftwaresuite.go index 7bc329e68e..33d562be41 100644 --- a/cloudformation/aws-robomaker-simulationapplication_robotsoftwaresuite.go +++ b/cloudformation/resources/aws-robomaker-simulationapplication_robotsoftwaresuite.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRoboMakerSimulationApplication_RobotSoftwareSuite AWS CloudFormation Resource (AWS::RoboMaker::SimulationApplication.RobotSoftwareSuite) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-robotsoftwaresuite.html @@ -15,7 +17,7 @@ type AWSRoboMakerSimulationApplication_RobotSoftwareSuite struct { Version string `json:"Version,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSRoboMakerSimulationApplication_RobotSoftwareSuite) SetMetadata(metad // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoboMakerSimulationApplication_RobotSoftwareSuite) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoboMakerSimulationApplication_RobotSoftwareSuite) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-robomaker-simulationapplication_simulationsoftwaresuite.go b/cloudformation/resources/aws-robomaker-simulationapplication_simulationsoftwaresuite.go similarity index 94% rename from cloudformation/aws-robomaker-simulationapplication_simulationsoftwaresuite.go rename to cloudformation/resources/aws-robomaker-simulationapplication_simulationsoftwaresuite.go index 5788a50f85..c0a30bac32 100644 --- a/cloudformation/aws-robomaker-simulationapplication_simulationsoftwaresuite.go +++ b/cloudformation/resources/aws-robomaker-simulationapplication_simulationsoftwaresuite.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRoboMakerSimulationApplication_SimulationSoftwareSuite AWS CloudFormation Resource (AWS::RoboMaker::SimulationApplication.SimulationSoftwareSuite) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-simulationsoftwaresuite.html @@ -15,7 +17,7 @@ type AWSRoboMakerSimulationApplication_SimulationSoftwareSuite struct { Version string `json:"Version,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSRoboMakerSimulationApplication_SimulationSoftwareSuite) SetMetadata( // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoboMakerSimulationApplication_SimulationSoftwareSuite) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoboMakerSimulationApplication_SimulationSoftwareSuite) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-robomaker-simulationapplication_sourceconfig.go b/cloudformation/resources/aws-robomaker-simulationapplication_sourceconfig.go similarity index 94% rename from cloudformation/aws-robomaker-simulationapplication_sourceconfig.go rename to cloudformation/resources/aws-robomaker-simulationapplication_sourceconfig.go index a480571186..6d07050ce5 100644 --- a/cloudformation/aws-robomaker-simulationapplication_sourceconfig.go +++ b/cloudformation/resources/aws-robomaker-simulationapplication_sourceconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRoboMakerSimulationApplication_SourceConfig AWS CloudFormation Resource (AWS::RoboMaker::SimulationApplication.SourceConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-sourceconfig.html @@ -20,7 +22,7 @@ type AWSRoboMakerSimulationApplication_SourceConfig struct { S3Key string `json:"S3Key,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSRoboMakerSimulationApplication_SourceConfig) SetMetadata(metadata ma // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoboMakerSimulationApplication_SourceConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoboMakerSimulationApplication_SourceConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-robomaker-simulationapplicationversion.go b/cloudformation/resources/aws-robomaker-simulationapplicationversion.go similarity index 92% rename from cloudformation/aws-robomaker-simulationapplicationversion.go rename to cloudformation/resources/aws-robomaker-simulationapplicationversion.go index c433182ee9..589a33c981 100644 --- a/cloudformation/aws-robomaker-simulationapplicationversion.go +++ b/cloudformation/resources/aws-robomaker-simulationapplicationversion.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRoboMakerSimulationApplicationVersion AWS CloudFormation Resource (AWS::RoboMaker::SimulationApplicationVersion) @@ -21,7 +22,7 @@ type AWSRoboMakerSimulationApplicationVersion struct { CurrentRevisionId string `json:"CurrentRevisionId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSRoboMakerSimulationApplicationVersion) SetMetadata(metadata map[stri // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoboMakerSimulationApplicationVersion) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoboMakerSimulationApplicationVersion) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSRoboMakerSimulationApplicationVersion) MarshalJSON() ([]byte, error) return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-route53-healthcheck.go b/cloudformation/resources/aws-route53-healthcheck.go similarity index 90% rename from cloudformation/aws-route53-healthcheck.go rename to cloudformation/resources/aws-route53-healthcheck.go index fb7c520c76..b15d46c552 100644 --- a/cloudformation/aws-route53-healthcheck.go +++ b/cloudformation/resources/aws-route53-healthcheck.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRoute53HealthCheck AWS CloudFormation Resource (AWS::Route53::HealthCheck) @@ -21,7 +22,7 @@ type AWSRoute53HealthCheck struct { HealthCheckTags []AWSRoute53HealthCheck_HealthCheckTag `json:"HealthCheckTags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSRoute53HealthCheck) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoute53HealthCheck) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoute53HealthCheck) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSRoute53HealthCheck) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-route53-healthcheck_alarmidentifier.go b/cloudformation/resources/aws-route53-healthcheck_alarmidentifier.go similarity index 94% rename from cloudformation/aws-route53-healthcheck_alarmidentifier.go rename to cloudformation/resources/aws-route53-healthcheck_alarmidentifier.go index d581ab8770..ec69afb943 100644 --- a/cloudformation/aws-route53-healthcheck_alarmidentifier.go +++ b/cloudformation/resources/aws-route53-healthcheck_alarmidentifier.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRoute53HealthCheck_AlarmIdentifier AWS CloudFormation Resource (AWS::Route53::HealthCheck.AlarmIdentifier) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-alarmidentifier.html @@ -15,7 +17,7 @@ type AWSRoute53HealthCheck_AlarmIdentifier struct { Region string `json:"Region,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSRoute53HealthCheck_AlarmIdentifier) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoute53HealthCheck_AlarmIdentifier) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoute53HealthCheck_AlarmIdentifier) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-route53-healthcheck_healthcheckconfig.go b/cloudformation/resources/aws-route53-healthcheck_healthcheckconfig.go similarity index 97% rename from cloudformation/aws-route53-healthcheck_healthcheckconfig.go rename to cloudformation/resources/aws-route53-healthcheck_healthcheckconfig.go index 5e83705a70..c0c8abe432 100644 --- a/cloudformation/aws-route53-healthcheck_healthcheckconfig.go +++ b/cloudformation/resources/aws-route53-healthcheck_healthcheckconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRoute53HealthCheck_HealthCheckConfig AWS CloudFormation Resource (AWS::Route53::HealthCheck.HealthCheckConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html @@ -85,7 +87,7 @@ type AWSRoute53HealthCheck_HealthCheckConfig struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -125,6 +127,6 @@ func (r *AWSRoute53HealthCheck_HealthCheckConfig) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoute53HealthCheck_HealthCheckConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoute53HealthCheck_HealthCheckConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-route53-healthcheck_healthchecktag.go b/cloudformation/resources/aws-route53-healthcheck_healthchecktag.go similarity index 94% rename from cloudformation/aws-route53-healthcheck_healthchecktag.go rename to cloudformation/resources/aws-route53-healthcheck_healthchecktag.go index fba6f5d0b2..51641e3b1b 100644 --- a/cloudformation/aws-route53-healthcheck_healthchecktag.go +++ b/cloudformation/resources/aws-route53-healthcheck_healthchecktag.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRoute53HealthCheck_HealthCheckTag AWS CloudFormation Resource (AWS::Route53::HealthCheck.HealthCheckTag) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthchecktag.html @@ -15,7 +17,7 @@ type AWSRoute53HealthCheck_HealthCheckTag struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSRoute53HealthCheck_HealthCheckTag) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoute53HealthCheck_HealthCheckTag) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoute53HealthCheck_HealthCheckTag) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-route53-hostedzone.go b/cloudformation/resources/aws-route53-hostedzone.go similarity index 92% rename from cloudformation/aws-route53-hostedzone.go rename to cloudformation/resources/aws-route53-hostedzone.go index 7312abf381..c0144afa59 100644 --- a/cloudformation/aws-route53-hostedzone.go +++ b/cloudformation/resources/aws-route53-hostedzone.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRoute53HostedZone AWS CloudFormation Resource (AWS::Route53::HostedZone) @@ -36,7 +37,7 @@ type AWSRoute53HostedZone struct { VPCs []AWSRoute53HostedZone_VPC `json:"VPCs,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSRoute53HostedZone) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoute53HostedZone) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoute53HostedZone) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSRoute53HostedZone) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-route53-hostedzone_hostedzoneconfig.go b/cloudformation/resources/aws-route53-hostedzone_hostedzoneconfig.go similarity index 93% rename from cloudformation/aws-route53-hostedzone_hostedzoneconfig.go rename to cloudformation/resources/aws-route53-hostedzone_hostedzoneconfig.go index 7db063d365..fe499ebd7a 100644 --- a/cloudformation/aws-route53-hostedzone_hostedzoneconfig.go +++ b/cloudformation/resources/aws-route53-hostedzone_hostedzoneconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRoute53HostedZone_HostedZoneConfig AWS CloudFormation Resource (AWS::Route53::HostedZone.HostedZoneConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzoneconfig.html @@ -10,7 +12,7 @@ type AWSRoute53HostedZone_HostedZoneConfig struct { Comment string `json:"Comment,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSRoute53HostedZone_HostedZoneConfig) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoute53HostedZone_HostedZoneConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoute53HostedZone_HostedZoneConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-route53-hostedzone_hostedzonetag.go b/cloudformation/resources/aws-route53-hostedzone_hostedzonetag.go similarity index 94% rename from cloudformation/aws-route53-hostedzone_hostedzonetag.go rename to cloudformation/resources/aws-route53-hostedzone_hostedzonetag.go index b97f536771..94e88d1e33 100644 --- a/cloudformation/aws-route53-hostedzone_hostedzonetag.go +++ b/cloudformation/resources/aws-route53-hostedzone_hostedzonetag.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRoute53HostedZone_HostedZoneTag AWS CloudFormation Resource (AWS::Route53::HostedZone.HostedZoneTag) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzonetags.html @@ -15,7 +17,7 @@ type AWSRoute53HostedZone_HostedZoneTag struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSRoute53HostedZone_HostedZoneTag) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoute53HostedZone_HostedZoneTag) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoute53HostedZone_HostedZoneTag) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-route53-hostedzone_queryloggingconfig.go b/cloudformation/resources/aws-route53-hostedzone_queryloggingconfig.go similarity index 94% rename from cloudformation/aws-route53-hostedzone_queryloggingconfig.go rename to cloudformation/resources/aws-route53-hostedzone_queryloggingconfig.go index d0b6e7e944..093d341266 100644 --- a/cloudformation/aws-route53-hostedzone_queryloggingconfig.go +++ b/cloudformation/resources/aws-route53-hostedzone_queryloggingconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRoute53HostedZone_QueryLoggingConfig AWS CloudFormation Resource (AWS::Route53::HostedZone.QueryLoggingConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-queryloggingconfig.html @@ -10,7 +12,7 @@ type AWSRoute53HostedZone_QueryLoggingConfig struct { CloudWatchLogsLogGroupArn string `json:"CloudWatchLogsLogGroupArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSRoute53HostedZone_QueryLoggingConfig) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoute53HostedZone_QueryLoggingConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoute53HostedZone_QueryLoggingConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-route53-hostedzone_vpc.go b/cloudformation/resources/aws-route53-hostedzone_vpc.go similarity index 92% rename from cloudformation/aws-route53-hostedzone_vpc.go rename to cloudformation/resources/aws-route53-hostedzone_vpc.go index 38c4bea360..bdd1978e91 100644 --- a/cloudformation/aws-route53-hostedzone_vpc.go +++ b/cloudformation/resources/aws-route53-hostedzone_vpc.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRoute53HostedZone_VPC AWS CloudFormation Resource (AWS::Route53::HostedZone.VPC) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone-hostedzonevpcs.html @@ -15,7 +17,7 @@ type AWSRoute53HostedZone_VPC struct { VPCRegion string `json:"VPCRegion,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSRoute53HostedZone_VPC) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoute53HostedZone_VPC) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoute53HostedZone_VPC) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-route53-recordset.go b/cloudformation/resources/aws-route53-recordset.go similarity index 94% rename from cloudformation/aws-route53-recordset.go rename to cloudformation/resources/aws-route53-recordset.go index 4d84880c6f..e3f7d8262b 100644 --- a/cloudformation/aws-route53-recordset.go +++ b/cloudformation/resources/aws-route53-recordset.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRoute53RecordSet AWS CloudFormation Resource (AWS::Route53::RecordSet) @@ -86,7 +87,7 @@ type AWSRoute53RecordSet struct { Weight int `json:"Weight,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -126,7 +127,7 @@ func (r *AWSRoute53RecordSet) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoute53RecordSet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoute53RecordSet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -137,9 +138,9 @@ func (r AWSRoute53RecordSet) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-route53-recordset_aliastarget.go b/cloudformation/resources/aws-route53-recordset_aliastarget.go similarity index 95% rename from cloudformation/aws-route53-recordset_aliastarget.go rename to cloudformation/resources/aws-route53-recordset_aliastarget.go index df417907ee..0a63f4a96c 100644 --- a/cloudformation/aws-route53-recordset_aliastarget.go +++ b/cloudformation/resources/aws-route53-recordset_aliastarget.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRoute53RecordSet_AliasTarget AWS CloudFormation Resource (AWS::Route53::RecordSet.AliasTarget) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html @@ -20,7 +22,7 @@ type AWSRoute53RecordSet_AliasTarget struct { HostedZoneId string `json:"HostedZoneId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSRoute53RecordSet_AliasTarget) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoute53RecordSet_AliasTarget) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoute53RecordSet_AliasTarget) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-route53-recordset_geolocation.go b/cloudformation/resources/aws-route53-recordset_geolocation.go similarity index 95% rename from cloudformation/aws-route53-recordset_geolocation.go rename to cloudformation/resources/aws-route53-recordset_geolocation.go index 2e7e1be4ff..61105b031f 100644 --- a/cloudformation/aws-route53-recordset_geolocation.go +++ b/cloudformation/resources/aws-route53-recordset_geolocation.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRoute53RecordSet_GeoLocation AWS CloudFormation Resource (AWS::Route53::RecordSet.GeoLocation) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation.html @@ -20,7 +22,7 @@ type AWSRoute53RecordSet_GeoLocation struct { SubdivisionCode string `json:"SubdivisionCode,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSRoute53RecordSet_GeoLocation) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoute53RecordSet_GeoLocation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoute53RecordSet_GeoLocation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-route53-recordsetgroup.go b/cloudformation/resources/aws-route53-recordsetgroup.go similarity index 91% rename from cloudformation/aws-route53-recordsetgroup.go rename to cloudformation/resources/aws-route53-recordsetgroup.go index 4bdee1f816..118204c497 100644 --- a/cloudformation/aws-route53-recordsetgroup.go +++ b/cloudformation/resources/aws-route53-recordsetgroup.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRoute53RecordSetGroup AWS CloudFormation Resource (AWS::Route53::RecordSetGroup) @@ -31,7 +32,7 @@ type AWSRoute53RecordSetGroup struct { RecordSets []AWSRoute53RecordSetGroup_RecordSet `json:"RecordSets,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSRoute53RecordSetGroup) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoute53RecordSetGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoute53RecordSetGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSRoute53RecordSetGroup) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-route53-recordsetgroup_aliastarget.go b/cloudformation/resources/aws-route53-recordsetgroup_aliastarget.go similarity index 94% rename from cloudformation/aws-route53-recordsetgroup_aliastarget.go rename to cloudformation/resources/aws-route53-recordsetgroup_aliastarget.go index 96a576f871..f1f0530a33 100644 --- a/cloudformation/aws-route53-recordsetgroup_aliastarget.go +++ b/cloudformation/resources/aws-route53-recordsetgroup_aliastarget.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRoute53RecordSetGroup_AliasTarget AWS CloudFormation Resource (AWS::Route53::RecordSetGroup.AliasTarget) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html @@ -20,7 +22,7 @@ type AWSRoute53RecordSetGroup_AliasTarget struct { HostedZoneId string `json:"HostedZoneId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSRoute53RecordSetGroup_AliasTarget) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoute53RecordSetGroup_AliasTarget) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoute53RecordSetGroup_AliasTarget) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-route53-recordsetgroup_geolocation.go b/cloudformation/resources/aws-route53-recordsetgroup_geolocation.go similarity index 95% rename from cloudformation/aws-route53-recordsetgroup_geolocation.go rename to cloudformation/resources/aws-route53-recordsetgroup_geolocation.go index cc96c0cb27..6f8397b3e1 100644 --- a/cloudformation/aws-route53-recordsetgroup_geolocation.go +++ b/cloudformation/resources/aws-route53-recordsetgroup_geolocation.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRoute53RecordSetGroup_GeoLocation AWS CloudFormation Resource (AWS::Route53::RecordSetGroup.GeoLocation) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation.html @@ -20,7 +22,7 @@ type AWSRoute53RecordSetGroup_GeoLocation struct { SubdivisionCode string `json:"SubdivisionCode,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSRoute53RecordSetGroup_GeoLocation) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoute53RecordSetGroup_GeoLocation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoute53RecordSetGroup_GeoLocation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-route53-recordsetgroup_recordset.go b/cloudformation/resources/aws-route53-recordsetgroup_recordset.go similarity index 97% rename from cloudformation/aws-route53-recordsetgroup_recordset.go rename to cloudformation/resources/aws-route53-recordsetgroup_recordset.go index c6d2e840aa..e579874beb 100644 --- a/cloudformation/aws-route53-recordsetgroup_recordset.go +++ b/cloudformation/resources/aws-route53-recordsetgroup_recordset.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRoute53RecordSetGroup_RecordSet AWS CloudFormation Resource (AWS::Route53::RecordSetGroup.RecordSet) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html @@ -80,7 +82,7 @@ type AWSRoute53RecordSetGroup_RecordSet struct { Weight int `json:"Weight,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -120,6 +122,6 @@ func (r *AWSRoute53RecordSetGroup_RecordSet) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoute53RecordSetGroup_RecordSet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoute53RecordSetGroup_RecordSet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-route53resolver-resolverendpoint.go b/cloudformation/resources/aws-route53resolver-resolverendpoint.go similarity index 93% rename from cloudformation/aws-route53resolver-resolverendpoint.go rename to cloudformation/resources/aws-route53resolver-resolverendpoint.go index 2021b488f0..b1a525f40d 100644 --- a/cloudformation/aws-route53resolver-resolverendpoint.go +++ b/cloudformation/resources/aws-route53resolver-resolverendpoint.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRoute53ResolverResolverEndpoint AWS CloudFormation Resource (AWS::Route53Resolver::ResolverEndpoint) @@ -36,7 +37,7 @@ type AWSRoute53ResolverResolverEndpoint struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSRoute53ResolverResolverEndpoint) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoute53ResolverResolverEndpoint) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoute53ResolverResolverEndpoint) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSRoute53ResolverResolverEndpoint) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-route53resolver-resolverendpoint_ipaddressrequest.go b/cloudformation/resources/aws-route53resolver-resolverendpoint_ipaddressrequest.go similarity index 94% rename from cloudformation/aws-route53resolver-resolverendpoint_ipaddressrequest.go rename to cloudformation/resources/aws-route53resolver-resolverendpoint_ipaddressrequest.go index 825b07ea44..0e750d9cf2 100644 --- a/cloudformation/aws-route53resolver-resolverendpoint_ipaddressrequest.go +++ b/cloudformation/resources/aws-route53resolver-resolverendpoint_ipaddressrequest.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRoute53ResolverResolverEndpoint_IpAddressRequest AWS CloudFormation Resource (AWS::Route53Resolver::ResolverEndpoint.IpAddressRequest) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53resolver-resolverendpoint-ipaddressrequest.html @@ -15,7 +17,7 @@ type AWSRoute53ResolverResolverEndpoint_IpAddressRequest struct { SubnetId string `json:"SubnetId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSRoute53ResolverResolverEndpoint_IpAddressRequest) SetMetadata(metada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoute53ResolverResolverEndpoint_IpAddressRequest) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoute53ResolverResolverEndpoint_IpAddressRequest) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-route53resolver-resolverrule.go b/cloudformation/resources/aws-route53resolver-resolverrule.go similarity index 93% rename from cloudformation/aws-route53resolver-resolverrule.go rename to cloudformation/resources/aws-route53resolver-resolverrule.go index d16ee98472..ac3cc9a7cc 100644 --- a/cloudformation/aws-route53resolver-resolverrule.go +++ b/cloudformation/resources/aws-route53resolver-resolverrule.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRoute53ResolverResolverRule AWS CloudFormation Resource (AWS::Route53Resolver::ResolverRule) @@ -41,7 +42,7 @@ type AWSRoute53ResolverResolverRule struct { TargetIps []AWSRoute53ResolverResolverRule_TargetAddress `json:"TargetIps,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -81,7 +82,7 @@ func (r *AWSRoute53ResolverResolverRule) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoute53ResolverResolverRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoute53ResolverResolverRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -92,9 +93,9 @@ func (r AWSRoute53ResolverResolverRule) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-route53resolver-resolverrule_targetaddress.go b/cloudformation/resources/aws-route53resolver-resolverrule_targetaddress.go similarity index 94% rename from cloudformation/aws-route53resolver-resolverrule_targetaddress.go rename to cloudformation/resources/aws-route53resolver-resolverrule_targetaddress.go index a293555155..2aecab4ba5 100644 --- a/cloudformation/aws-route53resolver-resolverrule_targetaddress.go +++ b/cloudformation/resources/aws-route53resolver-resolverrule_targetaddress.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSRoute53ResolverResolverRule_TargetAddress AWS CloudFormation Resource (AWS::Route53Resolver::ResolverRule.TargetAddress) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53resolver-resolverrule-targetaddress.html @@ -15,7 +17,7 @@ type AWSRoute53ResolverResolverRule_TargetAddress struct { Port string `json:"Port,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSRoute53ResolverResolverRule_TargetAddress) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoute53ResolverResolverRule_TargetAddress) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoute53ResolverResolverRule_TargetAddress) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-route53resolver-resolverruleassociation.go b/cloudformation/resources/aws-route53resolver-resolverruleassociation.go similarity index 92% rename from cloudformation/aws-route53resolver-resolverruleassociation.go rename to cloudformation/resources/aws-route53resolver-resolverruleassociation.go index 42d8b5b4f3..322d8e8f6c 100644 --- a/cloudformation/aws-route53resolver-resolverruleassociation.go +++ b/cloudformation/resources/aws-route53resolver-resolverruleassociation.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSRoute53ResolverResolverRuleAssociation AWS CloudFormation Resource (AWS::Route53Resolver::ResolverRuleAssociation) @@ -26,7 +27,7 @@ type AWSRoute53ResolverResolverRuleAssociation struct { VPCId string `json:"VPCId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSRoute53ResolverResolverRuleAssociation) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSRoute53ResolverResolverRuleAssociation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSRoute53ResolverResolverRuleAssociation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSRoute53ResolverResolverRuleAssociation) MarshalJSON() ([]byte, error) return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-s3-bucket.go b/cloudformation/resources/aws-s3-bucket.go similarity index 95% rename from cloudformation/aws-s3-bucket.go rename to cloudformation/resources/aws-s3-bucket.go index aea0e9cc01..8867aca004 100644 --- a/cloudformation/aws-s3-bucket.go +++ b/cloudformation/resources/aws-s3-bucket.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSS3Bucket AWS CloudFormation Resource (AWS::S3::Bucket) @@ -91,7 +92,7 @@ type AWSS3Bucket struct { WebsiteConfiguration *AWSS3Bucket_WebsiteConfiguration `json:"WebsiteConfiguration,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -131,7 +132,7 @@ func (r *AWSS3Bucket) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -142,9 +143,9 @@ func (r AWSS3Bucket) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-s3-bucket_abortincompletemultipartupload.go b/cloudformation/resources/aws-s3-bucket_abortincompletemultipartupload.go similarity index 93% rename from cloudformation/aws-s3-bucket_abortincompletemultipartupload.go rename to cloudformation/resources/aws-s3-bucket_abortincompletemultipartupload.go index 4ea3b3e20f..6077f88640 100644 --- a/cloudformation/aws-s3-bucket_abortincompletemultipartupload.go +++ b/cloudformation/resources/aws-s3-bucket_abortincompletemultipartupload.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_AbortIncompleteMultipartUpload AWS CloudFormation Resource (AWS::S3::Bucket.AbortIncompleteMultipartUpload) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-abortincompletemultipartupload.html @@ -10,7 +12,7 @@ type AWSS3Bucket_AbortIncompleteMultipartUpload struct { DaysAfterInitiation int `json:"DaysAfterInitiation"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSS3Bucket_AbortIncompleteMultipartUpload) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_AbortIncompleteMultipartUpload) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_AbortIncompleteMultipartUpload) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_accelerateconfiguration.go b/cloudformation/resources/aws-s3-bucket_accelerateconfiguration.go similarity index 94% rename from cloudformation/aws-s3-bucket_accelerateconfiguration.go rename to cloudformation/resources/aws-s3-bucket_accelerateconfiguration.go index f2ee5b55a9..7295cc2d74 100644 --- a/cloudformation/aws-s3-bucket_accelerateconfiguration.go +++ b/cloudformation/resources/aws-s3-bucket_accelerateconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_AccelerateConfiguration AWS CloudFormation Resource (AWS::S3::Bucket.AccelerateConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accelerateconfiguration.html @@ -10,7 +12,7 @@ type AWSS3Bucket_AccelerateConfiguration struct { AccelerationStatus string `json:"AccelerationStatus,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSS3Bucket_AccelerateConfiguration) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_AccelerateConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_AccelerateConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_accesscontroltranslation.go b/cloudformation/resources/aws-s3-bucket_accesscontroltranslation.go similarity index 93% rename from cloudformation/aws-s3-bucket_accesscontroltranslation.go rename to cloudformation/resources/aws-s3-bucket_accesscontroltranslation.go index 92f1784890..5b06e2928d 100644 --- a/cloudformation/aws-s3-bucket_accesscontroltranslation.go +++ b/cloudformation/resources/aws-s3-bucket_accesscontroltranslation.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_AccessControlTranslation AWS CloudFormation Resource (AWS::S3::Bucket.AccessControlTranslation) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accesscontroltranslation.html @@ -10,7 +12,7 @@ type AWSS3Bucket_AccessControlTranslation struct { Owner string `json:"Owner,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSS3Bucket_AccessControlTranslation) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_AccessControlTranslation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_AccessControlTranslation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_analyticsconfiguration.go b/cloudformation/resources/aws-s3-bucket_analyticsconfiguration.go similarity index 95% rename from cloudformation/aws-s3-bucket_analyticsconfiguration.go rename to cloudformation/resources/aws-s3-bucket_analyticsconfiguration.go index 7d65f1001c..435a904758 100644 --- a/cloudformation/aws-s3-bucket_analyticsconfiguration.go +++ b/cloudformation/resources/aws-s3-bucket_analyticsconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_AnalyticsConfiguration AWS CloudFormation Resource (AWS::S3::Bucket.AnalyticsConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-analyticsconfiguration.html @@ -25,7 +27,7 @@ type AWSS3Bucket_AnalyticsConfiguration struct { TagFilters []AWSS3Bucket_TagFilter `json:"TagFilters,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSS3Bucket_AnalyticsConfiguration) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_AnalyticsConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_AnalyticsConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_bucketencryption.go b/cloudformation/resources/aws-s3-bucket_bucketencryption.go similarity index 94% rename from cloudformation/aws-s3-bucket_bucketencryption.go rename to cloudformation/resources/aws-s3-bucket_bucketencryption.go index 1ede240b0b..b299f76dd2 100644 --- a/cloudformation/aws-s3-bucket_bucketencryption.go +++ b/cloudformation/resources/aws-s3-bucket_bucketencryption.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_BucketEncryption AWS CloudFormation Resource (AWS::S3::Bucket.BucketEncryption) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-bucketencryption.html @@ -10,7 +12,7 @@ type AWSS3Bucket_BucketEncryption struct { ServerSideEncryptionConfiguration []AWSS3Bucket_ServerSideEncryptionRule `json:"ServerSideEncryptionConfiguration,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSS3Bucket_BucketEncryption) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_BucketEncryption) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_BucketEncryption) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_corsconfiguration.go b/cloudformation/resources/aws-s3-bucket_corsconfiguration.go similarity index 93% rename from cloudformation/aws-s3-bucket_corsconfiguration.go rename to cloudformation/resources/aws-s3-bucket_corsconfiguration.go index ec8a67800b..20303d36d0 100644 --- a/cloudformation/aws-s3-bucket_corsconfiguration.go +++ b/cloudformation/resources/aws-s3-bucket_corsconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_CorsConfiguration AWS CloudFormation Resource (AWS::S3::Bucket.CorsConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors.html @@ -10,7 +12,7 @@ type AWSS3Bucket_CorsConfiguration struct { CorsRules []AWSS3Bucket_CorsRule `json:"CorsRules,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSS3Bucket_CorsConfiguration) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_CorsConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_CorsConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_corsrule.go b/cloudformation/resources/aws-s3-bucket_corsrule.go similarity index 94% rename from cloudformation/aws-s3-bucket_corsrule.go rename to cloudformation/resources/aws-s3-bucket_corsrule.go index d56098abb7..59e6978d0c 100644 --- a/cloudformation/aws-s3-bucket_corsrule.go +++ b/cloudformation/resources/aws-s3-bucket_corsrule.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_CorsRule AWS CloudFormation Resource (AWS::S3::Bucket.CorsRule) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors-corsrule.html @@ -35,7 +37,7 @@ type AWSS3Bucket_CorsRule struct { MaxAge int `json:"MaxAge,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSS3Bucket_CorsRule) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_CorsRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_CorsRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_dataexport.go b/cloudformation/resources/aws-s3-bucket_dataexport.go similarity index 92% rename from cloudformation/aws-s3-bucket_dataexport.go rename to cloudformation/resources/aws-s3-bucket_dataexport.go index b2a8e4b2ea..0c66bb1c20 100644 --- a/cloudformation/aws-s3-bucket_dataexport.go +++ b/cloudformation/resources/aws-s3-bucket_dataexport.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_DataExport AWS CloudFormation Resource (AWS::S3::Bucket.DataExport) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-dataexport.html @@ -15,7 +17,7 @@ type AWSS3Bucket_DataExport struct { OutputSchemaVersion string `json:"OutputSchemaVersion,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSS3Bucket_DataExport) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_DataExport) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_DataExport) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_destination.go b/cloudformation/resources/aws-s3-bucket_destination.go similarity index 93% rename from cloudformation/aws-s3-bucket_destination.go rename to cloudformation/resources/aws-s3-bucket_destination.go index ddf15616d6..dd4bae7055 100644 --- a/cloudformation/aws-s3-bucket_destination.go +++ b/cloudformation/resources/aws-s3-bucket_destination.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_Destination AWS CloudFormation Resource (AWS::S3::Bucket.Destination) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html @@ -25,7 +27,7 @@ type AWSS3Bucket_Destination struct { Prefix string `json:"Prefix,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSS3Bucket_Destination) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_Destination) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_Destination) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_encryptionconfiguration.go b/cloudformation/resources/aws-s3-bucket_encryptionconfiguration.go similarity index 94% rename from cloudformation/aws-s3-bucket_encryptionconfiguration.go rename to cloudformation/resources/aws-s3-bucket_encryptionconfiguration.go index 7351923686..46db6fbd4c 100644 --- a/cloudformation/aws-s3-bucket_encryptionconfiguration.go +++ b/cloudformation/resources/aws-s3-bucket_encryptionconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_EncryptionConfiguration AWS CloudFormation Resource (AWS::S3::Bucket.EncryptionConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-encryptionconfiguration.html @@ -10,7 +12,7 @@ type AWSS3Bucket_EncryptionConfiguration struct { ReplicaKmsKeyID string `json:"ReplicaKmsKeyID,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSS3Bucket_EncryptionConfiguration) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_EncryptionConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_EncryptionConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_filterrule.go b/cloudformation/resources/aws-s3-bucket_filterrule.go similarity index 92% rename from cloudformation/aws-s3-bucket_filterrule.go rename to cloudformation/resources/aws-s3-bucket_filterrule.go index 495dc0c03d..bdd6f30e48 100644 --- a/cloudformation/aws-s3-bucket_filterrule.go +++ b/cloudformation/resources/aws-s3-bucket_filterrule.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_FilterRule AWS CloudFormation Resource (AWS::S3::Bucket.FilterRule) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key-rules.html @@ -15,7 +17,7 @@ type AWSS3Bucket_FilterRule struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSS3Bucket_FilterRule) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_FilterRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_FilterRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_inventoryconfiguration.go b/cloudformation/resources/aws-s3-bucket_inventoryconfiguration.go similarity index 96% rename from cloudformation/aws-s3-bucket_inventoryconfiguration.go rename to cloudformation/resources/aws-s3-bucket_inventoryconfiguration.go index b3a497c03b..6507897bde 100644 --- a/cloudformation/aws-s3-bucket_inventoryconfiguration.go +++ b/cloudformation/resources/aws-s3-bucket_inventoryconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_InventoryConfiguration AWS CloudFormation Resource (AWS::S3::Bucket.InventoryConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html @@ -40,7 +42,7 @@ type AWSS3Bucket_InventoryConfiguration struct { ScheduleFrequency string `json:"ScheduleFrequency,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -80,6 +82,6 @@ func (r *AWSS3Bucket_InventoryConfiguration) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_InventoryConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_InventoryConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_lambdaconfiguration.go b/cloudformation/resources/aws-s3-bucket_lambdaconfiguration.go similarity index 95% rename from cloudformation/aws-s3-bucket_lambdaconfiguration.go rename to cloudformation/resources/aws-s3-bucket_lambdaconfiguration.go index 9ed1dd3afb..1719ca1402 100644 --- a/cloudformation/aws-s3-bucket_lambdaconfiguration.go +++ b/cloudformation/resources/aws-s3-bucket_lambdaconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_LambdaConfiguration AWS CloudFormation Resource (AWS::S3::Bucket.LambdaConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-lambdaconfig.html @@ -20,7 +22,7 @@ type AWSS3Bucket_LambdaConfiguration struct { Function string `json:"Function,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSS3Bucket_LambdaConfiguration) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_LambdaConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_LambdaConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_lifecycleconfiguration.go b/cloudformation/resources/aws-s3-bucket_lifecycleconfiguration.go similarity index 93% rename from cloudformation/aws-s3-bucket_lifecycleconfiguration.go rename to cloudformation/resources/aws-s3-bucket_lifecycleconfiguration.go index 5c13c4621d..7337402581 100644 --- a/cloudformation/aws-s3-bucket_lifecycleconfiguration.go +++ b/cloudformation/resources/aws-s3-bucket_lifecycleconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_LifecycleConfiguration AWS CloudFormation Resource (AWS::S3::Bucket.LifecycleConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig.html @@ -10,7 +12,7 @@ type AWSS3Bucket_LifecycleConfiguration struct { Rules []AWSS3Bucket_Rule `json:"Rules,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSS3Bucket_LifecycleConfiguration) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_LifecycleConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_LifecycleConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_loggingconfiguration.go b/cloudformation/resources/aws-s3-bucket_loggingconfiguration.go similarity index 94% rename from cloudformation/aws-s3-bucket_loggingconfiguration.go rename to cloudformation/resources/aws-s3-bucket_loggingconfiguration.go index 87b4f774a4..2d5796f6c6 100644 --- a/cloudformation/aws-s3-bucket_loggingconfiguration.go +++ b/cloudformation/resources/aws-s3-bucket_loggingconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_LoggingConfiguration AWS CloudFormation Resource (AWS::S3::Bucket.LoggingConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-loggingconfig.html @@ -15,7 +17,7 @@ type AWSS3Bucket_LoggingConfiguration struct { LogFilePrefix string `json:"LogFilePrefix,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSS3Bucket_LoggingConfiguration) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_LoggingConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_LoggingConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_metricsconfiguration.go b/cloudformation/resources/aws-s3-bucket_metricsconfiguration.go similarity index 95% rename from cloudformation/aws-s3-bucket_metricsconfiguration.go rename to cloudformation/resources/aws-s3-bucket_metricsconfiguration.go index 8c2d13978c..6bfc4b9471 100644 --- a/cloudformation/aws-s3-bucket_metricsconfiguration.go +++ b/cloudformation/resources/aws-s3-bucket_metricsconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_MetricsConfiguration AWS CloudFormation Resource (AWS::S3::Bucket.MetricsConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html @@ -20,7 +22,7 @@ type AWSS3Bucket_MetricsConfiguration struct { TagFilters []AWSS3Bucket_TagFilter `json:"TagFilters,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSS3Bucket_MetricsConfiguration) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_MetricsConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_MetricsConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_noncurrentversiontransition.go b/cloudformation/resources/aws-s3-bucket_noncurrentversiontransition.go similarity index 94% rename from cloudformation/aws-s3-bucket_noncurrentversiontransition.go rename to cloudformation/resources/aws-s3-bucket_noncurrentversiontransition.go index d9d7b4d9d9..c226423abc 100644 --- a/cloudformation/aws-s3-bucket_noncurrentversiontransition.go +++ b/cloudformation/resources/aws-s3-bucket_noncurrentversiontransition.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_NoncurrentVersionTransition AWS CloudFormation Resource (AWS::S3::Bucket.NoncurrentVersionTransition) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-noncurrentversiontransition.html @@ -15,7 +17,7 @@ type AWSS3Bucket_NoncurrentVersionTransition struct { TransitionInDays int `json:"TransitionInDays"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSS3Bucket_NoncurrentVersionTransition) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_NoncurrentVersionTransition) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_NoncurrentVersionTransition) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_notificationconfiguration.go b/cloudformation/resources/aws-s3-bucket_notificationconfiguration.go similarity index 95% rename from cloudformation/aws-s3-bucket_notificationconfiguration.go rename to cloudformation/resources/aws-s3-bucket_notificationconfiguration.go index 8284eda5d1..8c7b896fa3 100644 --- a/cloudformation/aws-s3-bucket_notificationconfiguration.go +++ b/cloudformation/resources/aws-s3-bucket_notificationconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_NotificationConfiguration AWS CloudFormation Resource (AWS::S3::Bucket.NotificationConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig.html @@ -20,7 +22,7 @@ type AWSS3Bucket_NotificationConfiguration struct { TopicConfigurations []AWSS3Bucket_TopicConfiguration `json:"TopicConfigurations,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSS3Bucket_NotificationConfiguration) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_NotificationConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_NotificationConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_notificationfilter.go b/cloudformation/resources/aws-s3-bucket_notificationfilter.go similarity index 94% rename from cloudformation/aws-s3-bucket_notificationfilter.go rename to cloudformation/resources/aws-s3-bucket_notificationfilter.go index 371af70fb9..d51fe40d0b 100644 --- a/cloudformation/aws-s3-bucket_notificationfilter.go +++ b/cloudformation/resources/aws-s3-bucket_notificationfilter.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_NotificationFilter AWS CloudFormation Resource (AWS::S3::Bucket.NotificationFilter) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html @@ -10,7 +12,7 @@ type AWSS3Bucket_NotificationFilter struct { S3Key *AWSS3Bucket_S3KeyFilter `json:"S3Key,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSS3Bucket_NotificationFilter) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_NotificationFilter) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_NotificationFilter) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_publicaccessblockconfiguration.go b/cloudformation/resources/aws-s3-bucket_publicaccessblockconfiguration.go similarity index 95% rename from cloudformation/aws-s3-bucket_publicaccessblockconfiguration.go rename to cloudformation/resources/aws-s3-bucket_publicaccessblockconfiguration.go index f231f34008..1de87b70e1 100644 --- a/cloudformation/aws-s3-bucket_publicaccessblockconfiguration.go +++ b/cloudformation/resources/aws-s3-bucket_publicaccessblockconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_PublicAccessBlockConfiguration AWS CloudFormation Resource (AWS::S3::Bucket.PublicAccessBlockConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-publicaccessblockconfiguration.html @@ -25,7 +27,7 @@ type AWSS3Bucket_PublicAccessBlockConfiguration struct { RestrictPublicBuckets bool `json:"RestrictPublicBuckets,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSS3Bucket_PublicAccessBlockConfiguration) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_PublicAccessBlockConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_PublicAccessBlockConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_queueconfiguration.go b/cloudformation/resources/aws-s3-bucket_queueconfiguration.go similarity index 95% rename from cloudformation/aws-s3-bucket_queueconfiguration.go rename to cloudformation/resources/aws-s3-bucket_queueconfiguration.go index 2491bf44bc..6557d25329 100644 --- a/cloudformation/aws-s3-bucket_queueconfiguration.go +++ b/cloudformation/resources/aws-s3-bucket_queueconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_QueueConfiguration AWS CloudFormation Resource (AWS::S3::Bucket.QueueConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-queueconfig.html @@ -20,7 +22,7 @@ type AWSS3Bucket_QueueConfiguration struct { Queue string `json:"Queue,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSS3Bucket_QueueConfiguration) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_QueueConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_QueueConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_redirectallrequeststo.go b/cloudformation/resources/aws-s3-bucket_redirectallrequeststo.go similarity index 94% rename from cloudformation/aws-s3-bucket_redirectallrequeststo.go rename to cloudformation/resources/aws-s3-bucket_redirectallrequeststo.go index 8366a0e133..65c2709e0e 100644 --- a/cloudformation/aws-s3-bucket_redirectallrequeststo.go +++ b/cloudformation/resources/aws-s3-bucket_redirectallrequeststo.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_RedirectAllRequestsTo AWS CloudFormation Resource (AWS::S3::Bucket.RedirectAllRequestsTo) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-redirectallrequeststo.html @@ -15,7 +17,7 @@ type AWSS3Bucket_RedirectAllRequestsTo struct { Protocol string `json:"Protocol,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSS3Bucket_RedirectAllRequestsTo) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_RedirectAllRequestsTo) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_RedirectAllRequestsTo) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_redirectrule.go b/cloudformation/resources/aws-s3-bucket_redirectrule.go similarity index 94% rename from cloudformation/aws-s3-bucket_redirectrule.go rename to cloudformation/resources/aws-s3-bucket_redirectrule.go index 00ddbf8655..df151e192b 100644 --- a/cloudformation/aws-s3-bucket_redirectrule.go +++ b/cloudformation/resources/aws-s3-bucket_redirectrule.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_RedirectRule AWS CloudFormation Resource (AWS::S3::Bucket.RedirectRule) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-redirectrule.html @@ -30,7 +32,7 @@ type AWSS3Bucket_RedirectRule struct { ReplaceKeyWith string `json:"ReplaceKeyWith,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSS3Bucket_RedirectRule) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_RedirectRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_RedirectRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_replicationconfiguration.go b/cloudformation/resources/aws-s3-bucket_replicationconfiguration.go similarity index 94% rename from cloudformation/aws-s3-bucket_replicationconfiguration.go rename to cloudformation/resources/aws-s3-bucket_replicationconfiguration.go index ebe1630389..e80fc905d9 100644 --- a/cloudformation/aws-s3-bucket_replicationconfiguration.go +++ b/cloudformation/resources/aws-s3-bucket_replicationconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_ReplicationConfiguration AWS CloudFormation Resource (AWS::S3::Bucket.ReplicationConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration.html @@ -15,7 +17,7 @@ type AWSS3Bucket_ReplicationConfiguration struct { Rules []AWSS3Bucket_ReplicationRule `json:"Rules,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSS3Bucket_ReplicationConfiguration) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_ReplicationConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_ReplicationConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_replicationdestination.go b/cloudformation/resources/aws-s3-bucket_replicationdestination.go similarity index 96% rename from cloudformation/aws-s3-bucket_replicationdestination.go rename to cloudformation/resources/aws-s3-bucket_replicationdestination.go index b38ea55d1f..604d60c7eb 100644 --- a/cloudformation/aws-s3-bucket_replicationdestination.go +++ b/cloudformation/resources/aws-s3-bucket_replicationdestination.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_ReplicationDestination AWS CloudFormation Resource (AWS::S3::Bucket.ReplicationDestination) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html @@ -30,7 +32,7 @@ type AWSS3Bucket_ReplicationDestination struct { StorageClass string `json:"StorageClass,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSS3Bucket_ReplicationDestination) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_ReplicationDestination) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_ReplicationDestination) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_replicationrule.go b/cloudformation/resources/aws-s3-bucket_replicationrule.go similarity index 94% rename from cloudformation/aws-s3-bucket_replicationrule.go rename to cloudformation/resources/aws-s3-bucket_replicationrule.go index 76c8a8dae5..0dafe054a3 100644 --- a/cloudformation/aws-s3-bucket_replicationrule.go +++ b/cloudformation/resources/aws-s3-bucket_replicationrule.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_ReplicationRule AWS CloudFormation Resource (AWS::S3::Bucket.ReplicationRule) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html @@ -30,7 +32,7 @@ type AWSS3Bucket_ReplicationRule struct { Status string `json:"Status,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSS3Bucket_ReplicationRule) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_ReplicationRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_ReplicationRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_routingrule.go b/cloudformation/resources/aws-s3-bucket_routingrule.go similarity index 92% rename from cloudformation/aws-s3-bucket_routingrule.go rename to cloudformation/resources/aws-s3-bucket_routingrule.go index 685b2f591f..1f601f6780 100644 --- a/cloudformation/aws-s3-bucket_routingrule.go +++ b/cloudformation/resources/aws-s3-bucket_routingrule.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_RoutingRule AWS CloudFormation Resource (AWS::S3::Bucket.RoutingRule) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html @@ -15,7 +17,7 @@ type AWSS3Bucket_RoutingRule struct { RoutingRuleCondition *AWSS3Bucket_RoutingRuleCondition `json:"RoutingRuleCondition,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSS3Bucket_RoutingRule) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_RoutingRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_RoutingRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_routingrulecondition.go b/cloudformation/resources/aws-s3-bucket_routingrulecondition.go similarity index 94% rename from cloudformation/aws-s3-bucket_routingrulecondition.go rename to cloudformation/resources/aws-s3-bucket_routingrulecondition.go index fd1e98cdf2..bc75ca27a1 100644 --- a/cloudformation/aws-s3-bucket_routingrulecondition.go +++ b/cloudformation/resources/aws-s3-bucket_routingrulecondition.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_RoutingRuleCondition AWS CloudFormation Resource (AWS::S3::Bucket.RoutingRuleCondition) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-routingrulecondition.html @@ -15,7 +17,7 @@ type AWSS3Bucket_RoutingRuleCondition struct { KeyPrefixEquals string `json:"KeyPrefixEquals,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSS3Bucket_RoutingRuleCondition) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_RoutingRuleCondition) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_RoutingRuleCondition) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_rule.go b/cloudformation/resources/aws-s3-bucket_rule.go similarity index 96% rename from cloudformation/aws-s3-bucket_rule.go rename to cloudformation/resources/aws-s3-bucket_rule.go index ce6f54ed0e..7de8894252 100644 --- a/cloudformation/aws-s3-bucket_rule.go +++ b/cloudformation/resources/aws-s3-bucket_rule.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_Rule AWS CloudFormation Resource (AWS::S3::Bucket.Rule) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html @@ -65,7 +67,7 @@ type AWSS3Bucket_Rule struct { Transitions []AWSS3Bucket_Transition `json:"Transitions,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -105,6 +107,6 @@ func (r *AWSS3Bucket_Rule) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_Rule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_Rule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_s3keyfilter.go b/cloudformation/resources/aws-s3-bucket_s3keyfilter.go similarity index 91% rename from cloudformation/aws-s3-bucket_s3keyfilter.go rename to cloudformation/resources/aws-s3-bucket_s3keyfilter.go index 589ce845ab..dbe2cd27e1 100644 --- a/cloudformation/aws-s3-bucket_s3keyfilter.go +++ b/cloudformation/resources/aws-s3-bucket_s3keyfilter.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_S3KeyFilter AWS CloudFormation Resource (AWS::S3::Bucket.S3KeyFilter) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key.html @@ -10,7 +12,7 @@ type AWSS3Bucket_S3KeyFilter struct { Rules []AWSS3Bucket_FilterRule `json:"Rules,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSS3Bucket_S3KeyFilter) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_S3KeyFilter) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_S3KeyFilter) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_serversideencryptionbydefault.go b/cloudformation/resources/aws-s3-bucket_serversideencryptionbydefault.go similarity index 94% rename from cloudformation/aws-s3-bucket_serversideencryptionbydefault.go rename to cloudformation/resources/aws-s3-bucket_serversideencryptionbydefault.go index bcba2f2fc7..62e4b8ea02 100644 --- a/cloudformation/aws-s3-bucket_serversideencryptionbydefault.go +++ b/cloudformation/resources/aws-s3-bucket_serversideencryptionbydefault.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_ServerSideEncryptionByDefault AWS CloudFormation Resource (AWS::S3::Bucket.ServerSideEncryptionByDefault) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionbydefault.html @@ -15,7 +17,7 @@ type AWSS3Bucket_ServerSideEncryptionByDefault struct { SSEAlgorithm string `json:"SSEAlgorithm,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSS3Bucket_ServerSideEncryptionByDefault) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_ServerSideEncryptionByDefault) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_ServerSideEncryptionByDefault) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_serversideencryptionrule.go b/cloudformation/resources/aws-s3-bucket_serversideencryptionrule.go similarity index 94% rename from cloudformation/aws-s3-bucket_serversideencryptionrule.go rename to cloudformation/resources/aws-s3-bucket_serversideencryptionrule.go index 31260cdc82..9efd60fb6f 100644 --- a/cloudformation/aws-s3-bucket_serversideencryptionrule.go +++ b/cloudformation/resources/aws-s3-bucket_serversideencryptionrule.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_ServerSideEncryptionRule AWS CloudFormation Resource (AWS::S3::Bucket.ServerSideEncryptionRule) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html @@ -10,7 +12,7 @@ type AWSS3Bucket_ServerSideEncryptionRule struct { ServerSideEncryptionByDefault *AWSS3Bucket_ServerSideEncryptionByDefault `json:"ServerSideEncryptionByDefault,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSS3Bucket_ServerSideEncryptionRule) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_ServerSideEncryptionRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_ServerSideEncryptionRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_sourceselectioncriteria.go b/cloudformation/resources/aws-s3-bucket_sourceselectioncriteria.go similarity index 94% rename from cloudformation/aws-s3-bucket_sourceselectioncriteria.go rename to cloudformation/resources/aws-s3-bucket_sourceselectioncriteria.go index 8fcd7caede..2676f12722 100644 --- a/cloudformation/aws-s3-bucket_sourceselectioncriteria.go +++ b/cloudformation/resources/aws-s3-bucket_sourceselectioncriteria.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_SourceSelectionCriteria AWS CloudFormation Resource (AWS::S3::Bucket.SourceSelectionCriteria) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-sourceselectioncriteria.html @@ -10,7 +12,7 @@ type AWSS3Bucket_SourceSelectionCriteria struct { SseKmsEncryptedObjects *AWSS3Bucket_SseKmsEncryptedObjects `json:"SseKmsEncryptedObjects,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSS3Bucket_SourceSelectionCriteria) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_SourceSelectionCriteria) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_SourceSelectionCriteria) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_ssekmsencryptedobjects.go b/cloudformation/resources/aws-s3-bucket_ssekmsencryptedobjects.go similarity index 93% rename from cloudformation/aws-s3-bucket_ssekmsencryptedobjects.go rename to cloudformation/resources/aws-s3-bucket_ssekmsencryptedobjects.go index e3e2eb6169..1fb3701b3e 100644 --- a/cloudformation/aws-s3-bucket_ssekmsencryptedobjects.go +++ b/cloudformation/resources/aws-s3-bucket_ssekmsencryptedobjects.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_SseKmsEncryptedObjects AWS CloudFormation Resource (AWS::S3::Bucket.SseKmsEncryptedObjects) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ssekmsencryptedobjects.html @@ -10,7 +12,7 @@ type AWSS3Bucket_SseKmsEncryptedObjects struct { Status string `json:"Status,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSS3Bucket_SseKmsEncryptedObjects) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_SseKmsEncryptedObjects) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_SseKmsEncryptedObjects) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_storageclassanalysis.go b/cloudformation/resources/aws-s3-bucket_storageclassanalysis.go similarity index 94% rename from cloudformation/aws-s3-bucket_storageclassanalysis.go rename to cloudformation/resources/aws-s3-bucket_storageclassanalysis.go index 08dcc9079d..faca023ca4 100644 --- a/cloudformation/aws-s3-bucket_storageclassanalysis.go +++ b/cloudformation/resources/aws-s3-bucket_storageclassanalysis.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_StorageClassAnalysis AWS CloudFormation Resource (AWS::S3::Bucket.StorageClassAnalysis) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-storageclassanalysis.html @@ -10,7 +12,7 @@ type AWSS3Bucket_StorageClassAnalysis struct { DataExport *AWSS3Bucket_DataExport `json:"DataExport,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSS3Bucket_StorageClassAnalysis) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_StorageClassAnalysis) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_StorageClassAnalysis) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_tagfilter.go b/cloudformation/resources/aws-s3-bucket_tagfilter.go similarity index 92% rename from cloudformation/aws-s3-bucket_tagfilter.go rename to cloudformation/resources/aws-s3-bucket_tagfilter.go index 8f3cf99429..2c1abb9608 100644 --- a/cloudformation/aws-s3-bucket_tagfilter.go +++ b/cloudformation/resources/aws-s3-bucket_tagfilter.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_TagFilter AWS CloudFormation Resource (AWS::S3::Bucket.TagFilter) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html @@ -15,7 +17,7 @@ type AWSS3Bucket_TagFilter struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSS3Bucket_TagFilter) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_TagFilter) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_TagFilter) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_topicconfiguration.go b/cloudformation/resources/aws-s3-bucket_topicconfiguration.go similarity index 95% rename from cloudformation/aws-s3-bucket_topicconfiguration.go rename to cloudformation/resources/aws-s3-bucket_topicconfiguration.go index d878aa84fc..cc2f9a9ab0 100644 --- a/cloudformation/aws-s3-bucket_topicconfiguration.go +++ b/cloudformation/resources/aws-s3-bucket_topicconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_TopicConfiguration AWS CloudFormation Resource (AWS::S3::Bucket.TopicConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-topicconfig.html @@ -20,7 +22,7 @@ type AWSS3Bucket_TopicConfiguration struct { Topic string `json:"Topic,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSS3Bucket_TopicConfiguration) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_TopicConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_TopicConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_transition.go b/cloudformation/resources/aws-s3-bucket_transition.go similarity index 93% rename from cloudformation/aws-s3-bucket_transition.go rename to cloudformation/resources/aws-s3-bucket_transition.go index 4b2ccb51dd..92bb956b33 100644 --- a/cloudformation/aws-s3-bucket_transition.go +++ b/cloudformation/resources/aws-s3-bucket_transition.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_Transition AWS CloudFormation Resource (AWS::S3::Bucket.Transition) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-transition.html @@ -20,7 +22,7 @@ type AWSS3Bucket_Transition struct { TransitionInDays int `json:"TransitionInDays,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSS3Bucket_Transition) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_Transition) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_Transition) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_versioningconfiguration.go b/cloudformation/resources/aws-s3-bucket_versioningconfiguration.go similarity index 93% rename from cloudformation/aws-s3-bucket_versioningconfiguration.go rename to cloudformation/resources/aws-s3-bucket_versioningconfiguration.go index 0170c91fef..d57d9e697a 100644 --- a/cloudformation/aws-s3-bucket_versioningconfiguration.go +++ b/cloudformation/resources/aws-s3-bucket_versioningconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_VersioningConfiguration AWS CloudFormation Resource (AWS::S3::Bucket.VersioningConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-versioningconfig.html @@ -10,7 +12,7 @@ type AWSS3Bucket_VersioningConfiguration struct { Status string `json:"Status,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSS3Bucket_VersioningConfiguration) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_VersioningConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_VersioningConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucket_websiteconfiguration.go b/cloudformation/resources/aws-s3-bucket_websiteconfiguration.go similarity index 95% rename from cloudformation/aws-s3-bucket_websiteconfiguration.go rename to cloudformation/resources/aws-s3-bucket_websiteconfiguration.go index 5a64f1c463..8fd98e87cb 100644 --- a/cloudformation/aws-s3-bucket_websiteconfiguration.go +++ b/cloudformation/resources/aws-s3-bucket_websiteconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSS3Bucket_WebsiteConfiguration AWS CloudFormation Resource (AWS::S3::Bucket.WebsiteConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration.html @@ -25,7 +27,7 @@ type AWSS3Bucket_WebsiteConfiguration struct { RoutingRules []AWSS3Bucket_RoutingRule `json:"RoutingRules,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSS3Bucket_WebsiteConfiguration) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3Bucket_WebsiteConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3Bucket_WebsiteConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-s3-bucketpolicy.go b/cloudformation/resources/aws-s3-bucketpolicy.go similarity index 90% rename from cloudformation/aws-s3-bucketpolicy.go rename to cloudformation/resources/aws-s3-bucketpolicy.go index cb04f4b972..1b244e35b2 100644 --- a/cloudformation/aws-s3-bucketpolicy.go +++ b/cloudformation/resources/aws-s3-bucketpolicy.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSS3BucketPolicy AWS CloudFormation Resource (AWS::S3::BucketPolicy) @@ -21,7 +22,7 @@ type AWSS3BucketPolicy struct { PolicyDocument interface{} `json:"PolicyDocument,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSS3BucketPolicy) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSS3BucketPolicy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSS3BucketPolicy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSS3BucketPolicy) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-sagemaker-endpoint.go b/cloudformation/resources/aws-sagemaker-endpoint.go similarity index 91% rename from cloudformation/aws-sagemaker-endpoint.go rename to cloudformation/resources/aws-sagemaker-endpoint.go index d1b1e0e31d..72286e6b02 100644 --- a/cloudformation/aws-sagemaker-endpoint.go +++ b/cloudformation/resources/aws-sagemaker-endpoint.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSageMakerEndpoint AWS CloudFormation Resource (AWS::SageMaker::Endpoint) @@ -26,7 +27,7 @@ type AWSSageMakerEndpoint struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSSageMakerEndpoint) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSageMakerEndpoint) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSageMakerEndpoint) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSSageMakerEndpoint) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-sagemaker-endpointconfig.go b/cloudformation/resources/aws-sagemaker-endpointconfig.go similarity index 91% rename from cloudformation/aws-sagemaker-endpointconfig.go rename to cloudformation/resources/aws-sagemaker-endpointconfig.go index d8269fab9d..85bf9ad5e4 100644 --- a/cloudformation/aws-sagemaker-endpointconfig.go +++ b/cloudformation/resources/aws-sagemaker-endpointconfig.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSageMakerEndpointConfig AWS CloudFormation Resource (AWS::SageMaker::EndpointConfig) @@ -31,7 +32,7 @@ type AWSSageMakerEndpointConfig struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSSageMakerEndpointConfig) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSageMakerEndpointConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSageMakerEndpointConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSSageMakerEndpointConfig) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-sagemaker-endpointconfig_productionvariant.go b/cloudformation/resources/aws-sagemaker-endpointconfig_productionvariant.go similarity index 96% rename from cloudformation/aws-sagemaker-endpointconfig_productionvariant.go rename to cloudformation/resources/aws-sagemaker-endpointconfig_productionvariant.go index 386ed63627..e9dd724d0f 100644 --- a/cloudformation/aws-sagemaker-endpointconfig_productionvariant.go +++ b/cloudformation/resources/aws-sagemaker-endpointconfig_productionvariant.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSageMakerEndpointConfig_ProductionVariant AWS CloudFormation Resource (AWS::SageMaker::EndpointConfig.ProductionVariant) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-productionvariant.html @@ -35,7 +37,7 @@ type AWSSageMakerEndpointConfig_ProductionVariant struct { VariantName string `json:"VariantName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSSageMakerEndpointConfig_ProductionVariant) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSageMakerEndpointConfig_ProductionVariant) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSageMakerEndpointConfig_ProductionVariant) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-sagemaker-model.go b/cloudformation/resources/aws-sagemaker-model.go similarity index 92% rename from cloudformation/aws-sagemaker-model.go rename to cloudformation/resources/aws-sagemaker-model.go index 51a9905537..43dbf82f2e 100644 --- a/cloudformation/aws-sagemaker-model.go +++ b/cloudformation/resources/aws-sagemaker-model.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSageMakerModel AWS CloudFormation Resource (AWS::SageMaker::Model) @@ -41,7 +42,7 @@ type AWSSageMakerModel struct { VpcConfig *AWSSageMakerModel_VpcConfig `json:"VpcConfig,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -81,7 +82,7 @@ func (r *AWSSageMakerModel) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSageMakerModel) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSageMakerModel) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -92,9 +93,9 @@ func (r AWSSageMakerModel) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-sagemaker-model_containerdefinition.go b/cloudformation/resources/aws-sagemaker-model_containerdefinition.go similarity index 95% rename from cloudformation/aws-sagemaker-model_containerdefinition.go rename to cloudformation/resources/aws-sagemaker-model_containerdefinition.go index ae5adfe551..f854ec6a48 100644 --- a/cloudformation/aws-sagemaker-model_containerdefinition.go +++ b/cloudformation/resources/aws-sagemaker-model_containerdefinition.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSageMakerModel_ContainerDefinition AWS CloudFormation Resource (AWS::SageMaker::Model.ContainerDefinition) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition.html @@ -25,7 +27,7 @@ type AWSSageMakerModel_ContainerDefinition struct { ModelDataUrl string `json:"ModelDataUrl,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSSageMakerModel_ContainerDefinition) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSageMakerModel_ContainerDefinition) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSageMakerModel_ContainerDefinition) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-sagemaker-model_vpcconfig.go b/cloudformation/resources/aws-sagemaker-model_vpcconfig.go similarity index 92% rename from cloudformation/aws-sagemaker-model_vpcconfig.go rename to cloudformation/resources/aws-sagemaker-model_vpcconfig.go index 6bd5f44acc..d122e14991 100644 --- a/cloudformation/aws-sagemaker-model_vpcconfig.go +++ b/cloudformation/resources/aws-sagemaker-model_vpcconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSageMakerModel_VpcConfig AWS CloudFormation Resource (AWS::SageMaker::Model.VpcConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-vpcconfig.html @@ -15,7 +17,7 @@ type AWSSageMakerModel_VpcConfig struct { Subnets []string `json:"Subnets,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSSageMakerModel_VpcConfig) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSageMakerModel_VpcConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSageMakerModel_VpcConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-sagemaker-notebookinstance.go b/cloudformation/resources/aws-sagemaker-notebookinstance.go similarity index 94% rename from cloudformation/aws-sagemaker-notebookinstance.go rename to cloudformation/resources/aws-sagemaker-notebookinstance.go index 91f0cd26cc..be1c91d55e 100644 --- a/cloudformation/aws-sagemaker-notebookinstance.go +++ b/cloudformation/resources/aws-sagemaker-notebookinstance.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSageMakerNotebookInstance AWS CloudFormation Resource (AWS::SageMaker::NotebookInstance) @@ -61,7 +62,7 @@ type AWSSageMakerNotebookInstance struct { VolumeSizeInGB int `json:"VolumeSizeInGB,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -101,7 +102,7 @@ func (r *AWSSageMakerNotebookInstance) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSageMakerNotebookInstance) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSageMakerNotebookInstance) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -112,9 +113,9 @@ func (r AWSSageMakerNotebookInstance) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-sagemaker-notebookinstancelifecycleconfig.go b/cloudformation/resources/aws-sagemaker-notebookinstancelifecycleconfig.go similarity index 93% rename from cloudformation/aws-sagemaker-notebookinstancelifecycleconfig.go rename to cloudformation/resources/aws-sagemaker-notebookinstancelifecycleconfig.go index b1b6ee58ba..2a03e4802b 100644 --- a/cloudformation/aws-sagemaker-notebookinstancelifecycleconfig.go +++ b/cloudformation/resources/aws-sagemaker-notebookinstancelifecycleconfig.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSageMakerNotebookInstanceLifecycleConfig AWS CloudFormation Resource (AWS::SageMaker::NotebookInstanceLifecycleConfig) @@ -26,7 +27,7 @@ type AWSSageMakerNotebookInstanceLifecycleConfig struct { OnStart []AWSSageMakerNotebookInstanceLifecycleConfig_NotebookInstanceLifecycleHook `json:"OnStart,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSSageMakerNotebookInstanceLifecycleConfig) SetMetadata(metadata map[s // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSageMakerNotebookInstanceLifecycleConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSageMakerNotebookInstanceLifecycleConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSSageMakerNotebookInstanceLifecycleConfig) MarshalJSON() ([]byte, erro return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-sagemaker-notebookinstancelifecycleconfig_notebookinstancelifecyclehook.go b/cloudformation/resources/aws-sagemaker-notebookinstancelifecycleconfig_notebookinstancelifecyclehook.go similarity index 93% rename from cloudformation/aws-sagemaker-notebookinstancelifecycleconfig_notebookinstancelifecyclehook.go rename to cloudformation/resources/aws-sagemaker-notebookinstancelifecycleconfig_notebookinstancelifecyclehook.go index ff08196021..d2d44db350 100644 --- a/cloudformation/aws-sagemaker-notebookinstancelifecycleconfig_notebookinstancelifecyclehook.go +++ b/cloudformation/resources/aws-sagemaker-notebookinstancelifecycleconfig_notebookinstancelifecyclehook.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSageMakerNotebookInstanceLifecycleConfig_NotebookInstanceLifecycleHook AWS CloudFormation Resource (AWS::SageMaker::NotebookInstanceLifecycleConfig.NotebookInstanceLifecycleHook) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-notebookinstancelifecycleconfig-notebookinstancelifecyclehook.html @@ -10,7 +12,7 @@ type AWSSageMakerNotebookInstanceLifecycleConfig_NotebookInstanceLifecycleHook s Content string `json:"Content,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSSageMakerNotebookInstanceLifecycleConfig_NotebookInstanceLifecycleHo // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSageMakerNotebookInstanceLifecycleConfig_NotebookInstanceLifecycleHook) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSageMakerNotebookInstanceLifecycleConfig_NotebookInstanceLifecycleHook) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-sdb-domain.go b/cloudformation/resources/aws-sdb-domain.go similarity index 89% rename from cloudformation/aws-sdb-domain.go rename to cloudformation/resources/aws-sdb-domain.go index e9c45f103e..a6852328f1 100644 --- a/cloudformation/aws-sdb-domain.go +++ b/cloudformation/resources/aws-sdb-domain.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSDBDomain AWS CloudFormation Resource (AWS::SDB::Domain) @@ -16,7 +17,7 @@ type AWSSDBDomain struct { Description string `json:"Description,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -56,7 +57,7 @@ func (r *AWSSDBDomain) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSDBDomain) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSDBDomain) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -67,9 +68,9 @@ func (r AWSSDBDomain) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-secretsmanager-resourcepolicy.go b/cloudformation/resources/aws-secretsmanager-resourcepolicy.go similarity index 92% rename from cloudformation/aws-secretsmanager-resourcepolicy.go rename to cloudformation/resources/aws-secretsmanager-resourcepolicy.go index 08c58f47fe..43d4b0e2a6 100644 --- a/cloudformation/aws-secretsmanager-resourcepolicy.go +++ b/cloudformation/resources/aws-secretsmanager-resourcepolicy.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSecretsManagerResourcePolicy AWS CloudFormation Resource (AWS::SecretsManager::ResourcePolicy) @@ -21,7 +22,7 @@ type AWSSecretsManagerResourcePolicy struct { SecretId string `json:"SecretId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSSecretsManagerResourcePolicy) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSecretsManagerResourcePolicy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSecretsManagerResourcePolicy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSSecretsManagerResourcePolicy) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-secretsmanager-rotationschedule.go b/cloudformation/resources/aws-secretsmanager-rotationschedule.go similarity index 92% rename from cloudformation/aws-secretsmanager-rotationschedule.go rename to cloudformation/resources/aws-secretsmanager-rotationschedule.go index 6c740db923..a91959f8f4 100644 --- a/cloudformation/aws-secretsmanager-rotationschedule.go +++ b/cloudformation/resources/aws-secretsmanager-rotationschedule.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSecretsManagerRotationSchedule AWS CloudFormation Resource (AWS::SecretsManager::RotationSchedule) @@ -26,7 +27,7 @@ type AWSSecretsManagerRotationSchedule struct { SecretId string `json:"SecretId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSSecretsManagerRotationSchedule) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSecretsManagerRotationSchedule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSecretsManagerRotationSchedule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSSecretsManagerRotationSchedule) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-secretsmanager-rotationschedule_rotationrules.go b/cloudformation/resources/aws-secretsmanager-rotationschedule_rotationrules.go similarity index 93% rename from cloudformation/aws-secretsmanager-rotationschedule_rotationrules.go rename to cloudformation/resources/aws-secretsmanager-rotationschedule_rotationrules.go index 19a643695c..079a407e47 100644 --- a/cloudformation/aws-secretsmanager-rotationschedule_rotationrules.go +++ b/cloudformation/resources/aws-secretsmanager-rotationschedule_rotationrules.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSecretsManagerRotationSchedule_RotationRules AWS CloudFormation Resource (AWS::SecretsManager::RotationSchedule.RotationRules) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-rotationschedule-rotationrules.html @@ -10,7 +12,7 @@ type AWSSecretsManagerRotationSchedule_RotationRules struct { AutomaticallyAfterDays int `json:"AutomaticallyAfterDays,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSSecretsManagerRotationSchedule_RotationRules) SetMetadata(metadata m // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSecretsManagerRotationSchedule_RotationRules) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSecretsManagerRotationSchedule_RotationRules) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-secretsmanager-secret.go b/cloudformation/resources/aws-secretsmanager-secret.go similarity index 92% rename from cloudformation/aws-secretsmanager-secret.go rename to cloudformation/resources/aws-secretsmanager-secret.go index 4597d6c202..84ea4da9cd 100644 --- a/cloudformation/aws-secretsmanager-secret.go +++ b/cloudformation/resources/aws-secretsmanager-secret.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSecretsManagerSecret AWS CloudFormation Resource (AWS::SecretsManager::Secret) @@ -41,7 +42,7 @@ type AWSSecretsManagerSecret struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -81,7 +82,7 @@ func (r *AWSSecretsManagerSecret) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSecretsManagerSecret) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSecretsManagerSecret) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -92,9 +93,9 @@ func (r AWSSecretsManagerSecret) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-secretsmanager-secret_generatesecretstring.go b/cloudformation/resources/aws-secretsmanager-secret_generatesecretstring.go similarity index 97% rename from cloudformation/aws-secretsmanager-secret_generatesecretstring.go rename to cloudformation/resources/aws-secretsmanager-secret_generatesecretstring.go index 1c675ac130..7e969e9af5 100644 --- a/cloudformation/aws-secretsmanager-secret_generatesecretstring.go +++ b/cloudformation/resources/aws-secretsmanager-secret_generatesecretstring.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSecretsManagerSecret_GenerateSecretString AWS CloudFormation Resource (AWS::SecretsManager::Secret.GenerateSecretString) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-secret-generatesecretstring.html @@ -55,7 +57,7 @@ type AWSSecretsManagerSecret_GenerateSecretString struct { SecretStringTemplate string `json:"SecretStringTemplate,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -95,6 +97,6 @@ func (r *AWSSecretsManagerSecret_GenerateSecretString) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSecretsManagerSecret_GenerateSecretString) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSecretsManagerSecret_GenerateSecretString) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-secretsmanager-secrettargetattachment.go b/cloudformation/resources/aws-secretsmanager-secrettargetattachment.go similarity index 92% rename from cloudformation/aws-secretsmanager-secrettargetattachment.go rename to cloudformation/resources/aws-secretsmanager-secrettargetattachment.go index 258bbb1e5b..892d4a810e 100644 --- a/cloudformation/aws-secretsmanager-secrettargetattachment.go +++ b/cloudformation/resources/aws-secretsmanager-secrettargetattachment.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSecretsManagerSecretTargetAttachment AWS CloudFormation Resource (AWS::SecretsManager::SecretTargetAttachment) @@ -26,7 +27,7 @@ type AWSSecretsManagerSecretTargetAttachment struct { TargetType string `json:"TargetType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSSecretsManagerSecretTargetAttachment) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSecretsManagerSecretTargetAttachment) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSecretsManagerSecretTargetAttachment) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSSecretsManagerSecretTargetAttachment) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-serverless-api.go b/cloudformation/resources/aws-serverless-api.go similarity index 93% rename from cloudformation/aws-serverless-api.go rename to cloudformation/resources/aws-serverless-api.go index d872f4c3e9..9ac430adfb 100644 --- a/cloudformation/aws-serverless-api.go +++ b/cloudformation/resources/aws-serverless-api.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSServerlessApi AWS CloudFormation Resource (AWS::Serverless::Api) @@ -71,7 +72,7 @@ type AWSServerlessApi struct { Variables map[string]string `json:"Variables,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -111,7 +112,7 @@ func (r *AWSServerlessApi) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessApi) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessApi) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -122,9 +123,9 @@ func (r AWSServerlessApi) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-serverless-api_auth.go b/cloudformation/resources/aws-serverless-api_auth.go similarity index 90% rename from cloudformation/aws-serverless-api_auth.go rename to cloudformation/resources/aws-serverless-api_auth.go index 0a3c10b2db..f1591eb75b 100644 --- a/cloudformation/aws-serverless-api_auth.go +++ b/cloudformation/resources/aws-serverless-api_auth.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessApi_Auth AWS CloudFormation Resource (AWS::Serverless::Api.Auth) // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api-auth-object @@ -7,7 +9,7 @@ type AWSServerlessApi_Auth struct { // Authorizers AWS CloudFormation Property // Required: false // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api-auth-object - Authorizers string `json:"Authorizers,omitempty"` + Authorizers interface{} `json:"Authorizers,omitempty"` // DefaultAuthorizer AWS CloudFormation Property // Required: false @@ -15,7 +17,7 @@ type AWSServerlessApi_Auth struct { DefaultAuthorizer string `json:"DefaultAuthorizer,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSServerlessApi_Auth) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessApi_Auth) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessApi_Auth) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-api_s3location.go b/cloudformation/resources/aws-serverless-api_s3location.go similarity index 92% rename from cloudformation/aws-serverless-api_s3location.go rename to cloudformation/resources/aws-serverless-api_s3location.go index b731048fe3..3da2767907 100644 --- a/cloudformation/aws-serverless-api_s3location.go +++ b/cloudformation/resources/aws-serverless-api_s3location.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessApi_S3Location AWS CloudFormation Resource (AWS::Serverless::Api.S3Location) // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object @@ -20,7 +22,7 @@ type AWSServerlessApi_S3Location struct { Version int `json:"Version"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSServerlessApi_S3Location) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessApi_S3Location) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessApi_S3Location) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-application.go b/cloudformation/resources/aws-serverless-application.go similarity index 91% rename from cloudformation/aws-serverless-application.go rename to cloudformation/resources/aws-serverless-application.go index d211ea935b..dc36bd875c 100644 --- a/cloudformation/aws-serverless-application.go +++ b/cloudformation/resources/aws-serverless-application.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSServerlessApplication AWS CloudFormation Resource (AWS::Serverless::Application) @@ -36,7 +37,7 @@ type AWSServerlessApplication struct { TimeoutInMinutes int `json:"TimeoutInMinutes,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSServerlessApplication) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessApplication) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessApplication) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSServerlessApplication) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-serverless-application_applicationlocation.go b/cloudformation/resources/aws-serverless-application_applicationlocation.go similarity index 94% rename from cloudformation/aws-serverless-application_applicationlocation.go rename to cloudformation/resources/aws-serverless-application_applicationlocation.go index 8c34b278b3..8a3ee7d03a 100644 --- a/cloudformation/aws-serverless-application_applicationlocation.go +++ b/cloudformation/resources/aws-serverless-application_applicationlocation.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessApplication_ApplicationLocation AWS CloudFormation Resource (AWS::Serverless::Application.ApplicationLocation) // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication @@ -15,7 +17,7 @@ type AWSServerlessApplication_ApplicationLocation struct { SemanticVersion string `json:"SemanticVersion,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSServerlessApplication_ApplicationLocation) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessApplication_ApplicationLocation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessApplication_ApplicationLocation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-function.go b/cloudformation/resources/aws-serverless-function.go similarity index 95% rename from cloudformation/aws-serverless-function.go rename to cloudformation/resources/aws-serverless-function.go index a2eacadb34..5b8a442ac7 100644 --- a/cloudformation/aws-serverless-function.go +++ b/cloudformation/resources/aws-serverless-function.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSServerlessFunction AWS CloudFormation Resource (AWS::Serverless::Function) @@ -111,7 +112,7 @@ type AWSServerlessFunction struct { VpcConfig *AWSServerlessFunction_VpcConfig `json:"VpcConfig,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -151,7 +152,7 @@ func (r *AWSServerlessFunction) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessFunction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessFunction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -162,9 +163,9 @@ func (r AWSServerlessFunction) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-serverless-function_alexaskillevent.go b/cloudformation/resources/aws-serverless-function_alexaskillevent.go similarity index 93% rename from cloudformation/aws-serverless-function_alexaskillevent.go rename to cloudformation/resources/aws-serverless-function_alexaskillevent.go index d321d1ec23..88c50ca471 100644 --- a/cloudformation/aws-serverless-function_alexaskillevent.go +++ b/cloudformation/resources/aws-serverless-function_alexaskillevent.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessFunction_AlexaSkillEvent AWS CloudFormation Resource (AWS::Serverless::Function.AlexaSkillEvent) // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#alexaskill @@ -10,7 +12,7 @@ type AWSServerlessFunction_AlexaSkillEvent struct { Variables map[string]string `json:"Variables,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSServerlessFunction_AlexaSkillEvent) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessFunction_AlexaSkillEvent) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessFunction_AlexaSkillEvent) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-function_apievent.go b/cloudformation/resources/aws-serverless-function_apievent.go similarity index 94% rename from cloudformation/aws-serverless-function_apievent.go rename to cloudformation/resources/aws-serverless-function_apievent.go index 3678986785..82534d3e05 100644 --- a/cloudformation/aws-serverless-function_apievent.go +++ b/cloudformation/resources/aws-serverless-function_apievent.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessFunction_ApiEvent AWS CloudFormation Resource (AWS::Serverless::Function.ApiEvent) // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api @@ -20,7 +22,7 @@ type AWSServerlessFunction_ApiEvent struct { RestApiId string `json:"RestApiId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSServerlessFunction_ApiEvent) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessFunction_ApiEvent) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessFunction_ApiEvent) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-function_cloudwatcheventevent.go b/cloudformation/resources/aws-serverless-function_cloudwatcheventevent.go similarity index 94% rename from cloudformation/aws-serverless-function_cloudwatcheventevent.go rename to cloudformation/resources/aws-serverless-function_cloudwatcheventevent.go index 74cc3f590a..f7fc35c644 100644 --- a/cloudformation/aws-serverless-function_cloudwatcheventevent.go +++ b/cloudformation/resources/aws-serverless-function_cloudwatcheventevent.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessFunction_CloudWatchEventEvent AWS CloudFormation Resource (AWS::Serverless::Function.CloudWatchEventEvent) // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#cloudwatchevent @@ -20,7 +22,7 @@ type AWSServerlessFunction_CloudWatchEventEvent struct { Pattern interface{} `json:"Pattern,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSServerlessFunction_CloudWatchEventEvent) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessFunction_CloudWatchEventEvent) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessFunction_CloudWatchEventEvent) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-function_deadletterqueue.go b/cloudformation/resources/aws-serverless-function_deadletterqueue.go similarity index 94% rename from cloudformation/aws-serverless-function_deadletterqueue.go rename to cloudformation/resources/aws-serverless-function_deadletterqueue.go index e2a3eb5609..7a39da95ea 100644 --- a/cloudformation/aws-serverless-function_deadletterqueue.go +++ b/cloudformation/resources/aws-serverless-function_deadletterqueue.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessFunction_DeadLetterQueue AWS CloudFormation Resource (AWS::Serverless::Function.DeadLetterQueue) // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deadletterqueue-object @@ -15,7 +17,7 @@ type AWSServerlessFunction_DeadLetterQueue struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSServerlessFunction_DeadLetterQueue) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessFunction_DeadLetterQueue) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessFunction_DeadLetterQueue) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-function_deploymentpreference.go b/cloudformation/resources/aws-serverless-function_deploymentpreference.go similarity index 95% rename from cloudformation/aws-serverless-function_deploymentpreference.go rename to cloudformation/resources/aws-serverless-function_deploymentpreference.go index 3ebd480421..3fc1931ef3 100644 --- a/cloudformation/aws-serverless-function_deploymentpreference.go +++ b/cloudformation/resources/aws-serverless-function_deploymentpreference.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessFunction_DeploymentPreference AWS CloudFormation Resource (AWS::Serverless::Function.DeploymentPreference) // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#deploymentpreference-object @@ -30,7 +32,7 @@ type AWSServerlessFunction_DeploymentPreference struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSServerlessFunction_DeploymentPreference) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessFunction_DeploymentPreference) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessFunction_DeploymentPreference) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-function_dynamodbevent.go b/cloudformation/resources/aws-serverless-function_dynamodbevent.go similarity index 94% rename from cloudformation/aws-serverless-function_dynamodbevent.go rename to cloudformation/resources/aws-serverless-function_dynamodbevent.go index af3dfb40bd..af7933fc12 100644 --- a/cloudformation/aws-serverless-function_dynamodbevent.go +++ b/cloudformation/resources/aws-serverless-function_dynamodbevent.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessFunction_DynamoDBEvent AWS CloudFormation Resource (AWS::Serverless::Function.DynamoDBEvent) // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#dynamodb @@ -20,7 +22,7 @@ type AWSServerlessFunction_DynamoDBEvent struct { Stream string `json:"Stream,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSServerlessFunction_DynamoDBEvent) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessFunction_DynamoDBEvent) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessFunction_DynamoDBEvent) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-function_eventsource.go b/cloudformation/resources/aws-serverless-function_eventsource.go similarity index 94% rename from cloudformation/aws-serverless-function_eventsource.go rename to cloudformation/resources/aws-serverless-function_eventsource.go index d54998adea..47c13ed66a 100644 --- a/cloudformation/aws-serverless-function_eventsource.go +++ b/cloudformation/resources/aws-serverless-function_eventsource.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessFunction_EventSource AWS CloudFormation Resource (AWS::Serverless::Function.EventSource) // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#event-source-object @@ -15,7 +17,7 @@ type AWSServerlessFunction_EventSource struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSServerlessFunction_EventSource) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessFunction_EventSource) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessFunction_EventSource) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-function_functionenvironment.go b/cloudformation/resources/aws-serverless-function_functionenvironment.go similarity index 93% rename from cloudformation/aws-serverless-function_functionenvironment.go rename to cloudformation/resources/aws-serverless-function_functionenvironment.go index 9f587b64f4..a33031c337 100644 --- a/cloudformation/aws-serverless-function_functionenvironment.go +++ b/cloudformation/resources/aws-serverless-function_functionenvironment.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessFunction_FunctionEnvironment AWS CloudFormation Resource (AWS::Serverless::Function.FunctionEnvironment) // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#environment-object @@ -10,7 +12,7 @@ type AWSServerlessFunction_FunctionEnvironment struct { Variables map[string]string `json:"Variables,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSServerlessFunction_FunctionEnvironment) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessFunction_FunctionEnvironment) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessFunction_FunctionEnvironment) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-function_iampolicydocument.go b/cloudformation/resources/aws-serverless-function_iampolicydocument.go similarity index 93% rename from cloudformation/aws-serverless-function_iampolicydocument.go rename to cloudformation/resources/aws-serverless-function_iampolicydocument.go index a69a223cf9..cc2ed00063 100644 --- a/cloudformation/aws-serverless-function_iampolicydocument.go +++ b/cloudformation/resources/aws-serverless-function_iampolicydocument.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessFunction_IAMPolicyDocument AWS CloudFormation Resource (AWS::Serverless::Function.IAMPolicyDocument) // See: http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html @@ -10,7 +12,7 @@ type AWSServerlessFunction_IAMPolicyDocument struct { Statement interface{} `json:"Statement,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSServerlessFunction_IAMPolicyDocument) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessFunction_IAMPolicyDocument) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessFunction_IAMPolicyDocument) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-function_iotruleevent.go b/cloudformation/resources/aws-serverless-function_iotruleevent.go similarity index 94% rename from cloudformation/aws-serverless-function_iotruleevent.go rename to cloudformation/resources/aws-serverless-function_iotruleevent.go index 872eff9850..c76863cd29 100644 --- a/cloudformation/aws-serverless-function_iotruleevent.go +++ b/cloudformation/resources/aws-serverless-function_iotruleevent.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessFunction_IoTRuleEvent AWS CloudFormation Resource (AWS::Serverless::Function.IoTRuleEvent) // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#iotrule @@ -15,7 +17,7 @@ type AWSServerlessFunction_IoTRuleEvent struct { Sql string `json:"Sql,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSServerlessFunction_IoTRuleEvent) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessFunction_IoTRuleEvent) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessFunction_IoTRuleEvent) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-function_kinesisevent.go b/cloudformation/resources/aws-serverless-function_kinesisevent.go similarity index 94% rename from cloudformation/aws-serverless-function_kinesisevent.go rename to cloudformation/resources/aws-serverless-function_kinesisevent.go index e2752865d0..89c38c0ef8 100644 --- a/cloudformation/aws-serverless-function_kinesisevent.go +++ b/cloudformation/resources/aws-serverless-function_kinesisevent.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessFunction_KinesisEvent AWS CloudFormation Resource (AWS::Serverless::Function.KinesisEvent) // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#kinesis @@ -20,7 +22,7 @@ type AWSServerlessFunction_KinesisEvent struct { Stream string `json:"Stream,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSServerlessFunction_KinesisEvent) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessFunction_KinesisEvent) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessFunction_KinesisEvent) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-function_s3event.go b/cloudformation/resources/aws-serverless-function_s3event.go similarity index 94% rename from cloudformation/aws-serverless-function_s3event.go rename to cloudformation/resources/aws-serverless-function_s3event.go index 3794968a08..e543d11523 100644 --- a/cloudformation/aws-serverless-function_s3event.go +++ b/cloudformation/resources/aws-serverless-function_s3event.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessFunction_S3Event AWS CloudFormation Resource (AWS::Serverless::Function.S3Event) // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3 @@ -20,7 +22,7 @@ type AWSServerlessFunction_S3Event struct { Filter *AWSServerlessFunction_S3NotificationFilter `json:"Filter,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSServerlessFunction_S3Event) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessFunction_S3Event) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessFunction_S3Event) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-function_s3location.go b/cloudformation/resources/aws-serverless-function_s3location.go similarity index 94% rename from cloudformation/aws-serverless-function_s3location.go rename to cloudformation/resources/aws-serverless-function_s3location.go index 096d9d7bb7..0fb1c9b152 100644 --- a/cloudformation/aws-serverless-function_s3location.go +++ b/cloudformation/resources/aws-serverless-function_s3location.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessFunction_S3Location AWS CloudFormation Resource (AWS::Serverless::Function.S3Location) // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3-location-object @@ -20,7 +22,7 @@ type AWSServerlessFunction_S3Location struct { Version int `json:"Version"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSServerlessFunction_S3Location) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessFunction_S3Location) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessFunction_S3Location) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-function_s3notificationfilter.go b/cloudformation/resources/aws-serverless-function_s3notificationfilter.go similarity index 93% rename from cloudformation/aws-serverless-function_s3notificationfilter.go rename to cloudformation/resources/aws-serverless-function_s3notificationfilter.go index 683b10bb4f..72c47fbee7 100644 --- a/cloudformation/aws-serverless-function_s3notificationfilter.go +++ b/cloudformation/resources/aws-serverless-function_s3notificationfilter.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessFunction_S3NotificationFilter AWS CloudFormation Resource (AWS::Serverless::Function.S3NotificationFilter) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html @@ -10,7 +12,7 @@ type AWSServerlessFunction_S3NotificationFilter struct { S3Key string `json:"S3Key,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSServerlessFunction_S3NotificationFilter) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessFunction_S3NotificationFilter) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessFunction_S3NotificationFilter) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-function_scheduleevent.go b/cloudformation/resources/aws-serverless-function_scheduleevent.go similarity index 94% rename from cloudformation/aws-serverless-function_scheduleevent.go rename to cloudformation/resources/aws-serverless-function_scheduleevent.go index ef41dba9c3..c3bf841717 100644 --- a/cloudformation/aws-serverless-function_scheduleevent.go +++ b/cloudformation/resources/aws-serverless-function_scheduleevent.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessFunction_ScheduleEvent AWS CloudFormation Resource (AWS::Serverless::Function.ScheduleEvent) // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#schedule @@ -15,7 +17,7 @@ type AWSServerlessFunction_ScheduleEvent struct { Schedule string `json:"Schedule,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSServerlessFunction_ScheduleEvent) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessFunction_ScheduleEvent) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessFunction_ScheduleEvent) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-function_snsevent.go b/cloudformation/resources/aws-serverless-function_snsevent.go similarity index 93% rename from cloudformation/aws-serverless-function_snsevent.go rename to cloudformation/resources/aws-serverless-function_snsevent.go index 2766fb1333..3848f66376 100644 --- a/cloudformation/aws-serverless-function_snsevent.go +++ b/cloudformation/resources/aws-serverless-function_snsevent.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessFunction_SNSEvent AWS CloudFormation Resource (AWS::Serverless::Function.SNSEvent) // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sns @@ -10,7 +12,7 @@ type AWSServerlessFunction_SNSEvent struct { Topic string `json:"Topic,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSServerlessFunction_SNSEvent) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessFunction_SNSEvent) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessFunction_SNSEvent) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-function_sqsevent.go b/cloudformation/resources/aws-serverless-function_sqsevent.go similarity index 94% rename from cloudformation/aws-serverless-function_sqsevent.go rename to cloudformation/resources/aws-serverless-function_sqsevent.go index 459e8707ef..80bb954a61 100644 --- a/cloudformation/aws-serverless-function_sqsevent.go +++ b/cloudformation/resources/aws-serverless-function_sqsevent.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessFunction_SQSEvent AWS CloudFormation Resource (AWS::Serverless::Function.SQSEvent) // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#sqs @@ -15,7 +17,7 @@ type AWSServerlessFunction_SQSEvent struct { Queue string `json:"Queue,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSServerlessFunction_SQSEvent) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessFunction_SQSEvent) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessFunction_SQSEvent) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-function_vpcconfig.go b/cloudformation/resources/aws-serverless-function_vpcconfig.go similarity index 94% rename from cloudformation/aws-serverless-function_vpcconfig.go rename to cloudformation/resources/aws-serverless-function_vpcconfig.go index 4fcd8633f3..a43051831a 100644 --- a/cloudformation/aws-serverless-function_vpcconfig.go +++ b/cloudformation/resources/aws-serverless-function_vpcconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessFunction_VpcConfig AWS CloudFormation Resource (AWS::Serverless::Function.VpcConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html @@ -15,7 +17,7 @@ type AWSServerlessFunction_VpcConfig struct { SubnetIds []string `json:"SubnetIds,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSServerlessFunction_VpcConfig) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessFunction_VpcConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessFunction_VpcConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-layerversion.go b/cloudformation/resources/aws-serverless-layerversion.go similarity index 92% rename from cloudformation/aws-serverless-layerversion.go rename to cloudformation/resources/aws-serverless-layerversion.go index 043542592a..897de19f09 100644 --- a/cloudformation/aws-serverless-layerversion.go +++ b/cloudformation/resources/aws-serverless-layerversion.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSServerlessLayerVersion AWS CloudFormation Resource (AWS::Serverless::LayerVersion) @@ -41,7 +42,7 @@ type AWSServerlessLayerVersion struct { RetentionPolicy string `json:"RetentionPolicy,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -81,7 +82,7 @@ func (r *AWSServerlessLayerVersion) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessLayerVersion) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessLayerVersion) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -92,9 +93,9 @@ func (r AWSServerlessLayerVersion) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-serverless-simpletable.go b/cloudformation/resources/aws-serverless-simpletable.go similarity index 92% rename from cloudformation/aws-serverless-simpletable.go rename to cloudformation/resources/aws-serverless-simpletable.go index 2916d0b487..6042c63646 100644 --- a/cloudformation/aws-serverless-simpletable.go +++ b/cloudformation/resources/aws-serverless-simpletable.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSServerlessSimpleTable AWS CloudFormation Resource (AWS::Serverless::SimpleTable) @@ -36,7 +37,7 @@ type AWSServerlessSimpleTable struct { Tags map[string]string `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSServerlessSimpleTable) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessSimpleTable) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessSimpleTable) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSServerlessSimpleTable) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-serverless-simpletable_primarykey.go b/cloudformation/resources/aws-serverless-simpletable_primarykey.go similarity index 94% rename from cloudformation/aws-serverless-simpletable_primarykey.go rename to cloudformation/resources/aws-serverless-simpletable_primarykey.go index 85b573fbc0..f935a4d893 100644 --- a/cloudformation/aws-serverless-simpletable_primarykey.go +++ b/cloudformation/resources/aws-serverless-simpletable_primarykey.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessSimpleTable_PrimaryKey AWS CloudFormation Resource (AWS::Serverless::SimpleTable.PrimaryKey) // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#primary-key-object @@ -15,7 +17,7 @@ type AWSServerlessSimpleTable_PrimaryKey struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSServerlessSimpleTable_PrimaryKey) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessSimpleTable_PrimaryKey) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessSimpleTable_PrimaryKey) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-simpletable_provisionedthroughput.go b/cloudformation/resources/aws-serverless-simpletable_provisionedthroughput.go similarity index 94% rename from cloudformation/aws-serverless-simpletable_provisionedthroughput.go rename to cloudformation/resources/aws-serverless-simpletable_provisionedthroughput.go index 2256ae47bf..4c29719bea 100644 --- a/cloudformation/aws-serverless-simpletable_provisionedthroughput.go +++ b/cloudformation/resources/aws-serverless-simpletable_provisionedthroughput.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessSimpleTable_ProvisionedThroughput AWS CloudFormation Resource (AWS::Serverless::SimpleTable.ProvisionedThroughput) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html @@ -15,7 +17,7 @@ type AWSServerlessSimpleTable_ProvisionedThroughput struct { WriteCapacityUnits int `json:"WriteCapacityUnits"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSServerlessSimpleTable_ProvisionedThroughput) SetMetadata(metadata ma // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessSimpleTable_ProvisionedThroughput) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessSimpleTable_ProvisionedThroughput) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-serverless-simpletable_ssespecification.go b/cloudformation/resources/aws-serverless-simpletable_ssespecification.go similarity index 93% rename from cloudformation/aws-serverless-simpletable_ssespecification.go rename to cloudformation/resources/aws-serverless-simpletable_ssespecification.go index f2055d34e9..a2f335909f 100644 --- a/cloudformation/aws-serverless-simpletable_ssespecification.go +++ b/cloudformation/resources/aws-serverless-simpletable_ssespecification.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServerlessSimpleTable_SSESpecification AWS CloudFormation Resource (AWS::Serverless::SimpleTable.SSESpecification) // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html @@ -10,7 +12,7 @@ type AWSServerlessSimpleTable_SSESpecification struct { SSEEnabled bool `json:"SSEEnabled,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSServerlessSimpleTable_SSESpecification) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServerlessSimpleTable_SSESpecification) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServerlessSimpleTable_SSESpecification) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-servicecatalog-acceptedportfolioshare.go b/cloudformation/resources/aws-servicecatalog-acceptedportfolioshare.go similarity index 92% rename from cloudformation/aws-servicecatalog-acceptedportfolioshare.go rename to cloudformation/resources/aws-servicecatalog-acceptedportfolioshare.go index aae4f8663a..bf20f3285f 100644 --- a/cloudformation/aws-servicecatalog-acceptedportfolioshare.go +++ b/cloudformation/resources/aws-servicecatalog-acceptedportfolioshare.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSServiceCatalogAcceptedPortfolioShare AWS CloudFormation Resource (AWS::ServiceCatalog::AcceptedPortfolioShare) @@ -21,7 +22,7 @@ type AWSServiceCatalogAcceptedPortfolioShare struct { PortfolioId string `json:"PortfolioId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSServiceCatalogAcceptedPortfolioShare) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceCatalogAcceptedPortfolioShare) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceCatalogAcceptedPortfolioShare) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSServiceCatalogAcceptedPortfolioShare) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-servicecatalog-cloudformationproduct.go b/cloudformation/resources/aws-servicecatalog-cloudformationproduct.go similarity index 94% rename from cloudformation/aws-servicecatalog-cloudformationproduct.go rename to cloudformation/resources/aws-servicecatalog-cloudformationproduct.go index 62fd6447cb..8ecd1b7b10 100644 --- a/cloudformation/aws-servicecatalog-cloudformationproduct.go +++ b/cloudformation/resources/aws-servicecatalog-cloudformationproduct.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSServiceCatalogCloudFormationProduct AWS CloudFormation Resource (AWS::ServiceCatalog::CloudFormationProduct) @@ -61,7 +62,7 @@ type AWSServiceCatalogCloudFormationProduct struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -101,7 +102,7 @@ func (r *AWSServiceCatalogCloudFormationProduct) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceCatalogCloudFormationProduct) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceCatalogCloudFormationProduct) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -112,9 +113,9 @@ func (r AWSServiceCatalogCloudFormationProduct) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-servicecatalog-cloudformationproduct_provisioningartifactproperties.go b/cloudformation/resources/aws-servicecatalog-cloudformationproduct_provisioningartifactproperties.go similarity index 94% rename from cloudformation/aws-servicecatalog-cloudformationproduct_provisioningartifactproperties.go rename to cloudformation/resources/aws-servicecatalog-cloudformationproduct_provisioningartifactproperties.go index 3dea66b38d..fdbcc4fb64 100644 --- a/cloudformation/aws-servicecatalog-cloudformationproduct_provisioningartifactproperties.go +++ b/cloudformation/resources/aws-servicecatalog-cloudformationproduct_provisioningartifactproperties.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServiceCatalogCloudFormationProduct_ProvisioningArtifactProperties AWS CloudFormation Resource (AWS::ServiceCatalog::CloudFormationProduct.ProvisioningArtifactProperties) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationproduct-provisioningartifactproperties.html @@ -20,7 +22,7 @@ type AWSServiceCatalogCloudFormationProduct_ProvisioningArtifactProperties struc Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSServiceCatalogCloudFormationProduct_ProvisioningArtifactProperties) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceCatalogCloudFormationProduct_ProvisioningArtifactProperties) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceCatalogCloudFormationProduct_ProvisioningArtifactProperties) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-servicecatalog-cloudformationprovisionedproduct.go b/cloudformation/resources/aws-servicecatalog-cloudformationprovisionedproduct.go similarity index 95% rename from cloudformation/aws-servicecatalog-cloudformationprovisionedproduct.go rename to cloudformation/resources/aws-servicecatalog-cloudformationprovisionedproduct.go index 367cbea4ab..32b5a24807 100644 --- a/cloudformation/aws-servicecatalog-cloudformationprovisionedproduct.go +++ b/cloudformation/resources/aws-servicecatalog-cloudformationprovisionedproduct.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSServiceCatalogCloudFormationProvisionedProduct AWS CloudFormation Resource (AWS::ServiceCatalog::CloudFormationProvisionedProduct) @@ -61,7 +62,7 @@ type AWSServiceCatalogCloudFormationProvisionedProduct struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -101,7 +102,7 @@ func (r *AWSServiceCatalogCloudFormationProvisionedProduct) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceCatalogCloudFormationProvisionedProduct) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceCatalogCloudFormationProvisionedProduct) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -112,9 +113,9 @@ func (r AWSServiceCatalogCloudFormationProvisionedProduct) MarshalJSON() ([]byte return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-servicecatalog-cloudformationprovisionedproduct_provisioningparameter.go b/cloudformation/resources/aws-servicecatalog-cloudformationprovisionedproduct_provisioningparameter.go similarity index 94% rename from cloudformation/aws-servicecatalog-cloudformationprovisionedproduct_provisioningparameter.go rename to cloudformation/resources/aws-servicecatalog-cloudformationprovisionedproduct_provisioningparameter.go index 0a25b33e2d..ec4ebe750f 100644 --- a/cloudformation/aws-servicecatalog-cloudformationprovisionedproduct_provisioningparameter.go +++ b/cloudformation/resources/aws-servicecatalog-cloudformationprovisionedproduct_provisioningparameter.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServiceCatalogCloudFormationProvisionedProduct_ProvisioningParameter AWS CloudFormation Resource (AWS::ServiceCatalog::CloudFormationProvisionedProduct.ProvisioningParameter) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningparameter.html @@ -15,7 +17,7 @@ type AWSServiceCatalogCloudFormationProvisionedProduct_ProvisioningParameter str Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSServiceCatalogCloudFormationProvisionedProduct_ProvisioningParameter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceCatalogCloudFormationProvisionedProduct_ProvisioningParameter) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceCatalogCloudFormationProvisionedProduct_ProvisioningParameter) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-servicecatalog-launchnotificationconstraint.go b/cloudformation/resources/aws-servicecatalog-launchnotificationconstraint.go similarity index 93% rename from cloudformation/aws-servicecatalog-launchnotificationconstraint.go rename to cloudformation/resources/aws-servicecatalog-launchnotificationconstraint.go index 76e320707d..de6f69d2ce 100644 --- a/cloudformation/aws-servicecatalog-launchnotificationconstraint.go +++ b/cloudformation/resources/aws-servicecatalog-launchnotificationconstraint.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSServiceCatalogLaunchNotificationConstraint AWS CloudFormation Resource (AWS::ServiceCatalog::LaunchNotificationConstraint) @@ -36,7 +37,7 @@ type AWSServiceCatalogLaunchNotificationConstraint struct { ProductId string `json:"ProductId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSServiceCatalogLaunchNotificationConstraint) SetMetadata(metadata map // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceCatalogLaunchNotificationConstraint) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceCatalogLaunchNotificationConstraint) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSServiceCatalogLaunchNotificationConstraint) MarshalJSON() ([]byte, er return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-servicecatalog-launchroleconstraint.go b/cloudformation/resources/aws-servicecatalog-launchroleconstraint.go similarity index 93% rename from cloudformation/aws-servicecatalog-launchroleconstraint.go rename to cloudformation/resources/aws-servicecatalog-launchroleconstraint.go index 5a538f4fce..e1a537dc99 100644 --- a/cloudformation/aws-servicecatalog-launchroleconstraint.go +++ b/cloudformation/resources/aws-servicecatalog-launchroleconstraint.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSServiceCatalogLaunchRoleConstraint AWS CloudFormation Resource (AWS::ServiceCatalog::LaunchRoleConstraint) @@ -36,7 +37,7 @@ type AWSServiceCatalogLaunchRoleConstraint struct { RoleArn string `json:"RoleArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSServiceCatalogLaunchRoleConstraint) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceCatalogLaunchRoleConstraint) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceCatalogLaunchRoleConstraint) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSServiceCatalogLaunchRoleConstraint) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-servicecatalog-launchtemplateconstraint.go b/cloudformation/resources/aws-servicecatalog-launchtemplateconstraint.go similarity index 93% rename from cloudformation/aws-servicecatalog-launchtemplateconstraint.go rename to cloudformation/resources/aws-servicecatalog-launchtemplateconstraint.go index 2d53029205..83417f8441 100644 --- a/cloudformation/aws-servicecatalog-launchtemplateconstraint.go +++ b/cloudformation/resources/aws-servicecatalog-launchtemplateconstraint.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSServiceCatalogLaunchTemplateConstraint AWS CloudFormation Resource (AWS::ServiceCatalog::LaunchTemplateConstraint) @@ -36,7 +37,7 @@ type AWSServiceCatalogLaunchTemplateConstraint struct { Rules string `json:"Rules,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSServiceCatalogLaunchTemplateConstraint) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceCatalogLaunchTemplateConstraint) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceCatalogLaunchTemplateConstraint) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSServiceCatalogLaunchTemplateConstraint) MarshalJSON() ([]byte, error) return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-servicecatalog-portfolio.go b/cloudformation/resources/aws-servicecatalog-portfolio.go similarity index 92% rename from cloudformation/aws-servicecatalog-portfolio.go rename to cloudformation/resources/aws-servicecatalog-portfolio.go index af691c589c..f6c3303106 100644 --- a/cloudformation/aws-servicecatalog-portfolio.go +++ b/cloudformation/resources/aws-servicecatalog-portfolio.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSServiceCatalogPortfolio AWS CloudFormation Resource (AWS::ServiceCatalog::Portfolio) @@ -36,7 +37,7 @@ type AWSServiceCatalogPortfolio struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSServiceCatalogPortfolio) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceCatalogPortfolio) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceCatalogPortfolio) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSServiceCatalogPortfolio) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-servicecatalog-portfolioprincipalassociation.go b/cloudformation/resources/aws-servicecatalog-portfolioprincipalassociation.go similarity index 93% rename from cloudformation/aws-servicecatalog-portfolioprincipalassociation.go rename to cloudformation/resources/aws-servicecatalog-portfolioprincipalassociation.go index 13568919b5..17cc206c8d 100644 --- a/cloudformation/aws-servicecatalog-portfolioprincipalassociation.go +++ b/cloudformation/resources/aws-servicecatalog-portfolioprincipalassociation.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSServiceCatalogPortfolioPrincipalAssociation AWS CloudFormation Resource (AWS::ServiceCatalog::PortfolioPrincipalAssociation) @@ -31,7 +32,7 @@ type AWSServiceCatalogPortfolioPrincipalAssociation struct { PrincipalType string `json:"PrincipalType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSServiceCatalogPortfolioPrincipalAssociation) SetMetadata(metadata ma // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceCatalogPortfolioPrincipalAssociation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceCatalogPortfolioPrincipalAssociation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSServiceCatalogPortfolioPrincipalAssociation) MarshalJSON() ([]byte, e return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-servicecatalog-portfolioproductassociation.go b/cloudformation/resources/aws-servicecatalog-portfolioproductassociation.go similarity index 93% rename from cloudformation/aws-servicecatalog-portfolioproductassociation.go rename to cloudformation/resources/aws-servicecatalog-portfolioproductassociation.go index d15349fae7..e8a405be92 100644 --- a/cloudformation/aws-servicecatalog-portfolioproductassociation.go +++ b/cloudformation/resources/aws-servicecatalog-portfolioproductassociation.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSServiceCatalogPortfolioProductAssociation AWS CloudFormation Resource (AWS::ServiceCatalog::PortfolioProductAssociation) @@ -31,7 +32,7 @@ type AWSServiceCatalogPortfolioProductAssociation struct { SourcePortfolioId string `json:"SourcePortfolioId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSServiceCatalogPortfolioProductAssociation) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceCatalogPortfolioProductAssociation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceCatalogPortfolioProductAssociation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSServiceCatalogPortfolioProductAssociation) MarshalJSON() ([]byte, err return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-servicecatalog-portfolioshare.go b/cloudformation/resources/aws-servicecatalog-portfolioshare.go similarity index 92% rename from cloudformation/aws-servicecatalog-portfolioshare.go rename to cloudformation/resources/aws-servicecatalog-portfolioshare.go index ac8b79a5b5..e4fac13842 100644 --- a/cloudformation/aws-servicecatalog-portfolioshare.go +++ b/cloudformation/resources/aws-servicecatalog-portfolioshare.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSServiceCatalogPortfolioShare AWS CloudFormation Resource (AWS::ServiceCatalog::PortfolioShare) @@ -26,7 +27,7 @@ type AWSServiceCatalogPortfolioShare struct { PortfolioId string `json:"PortfolioId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSServiceCatalogPortfolioShare) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceCatalogPortfolioShare) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceCatalogPortfolioShare) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSServiceCatalogPortfolioShare) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-servicecatalog-tagoption.go b/cloudformation/resources/aws-servicecatalog-tagoption.go similarity index 91% rename from cloudformation/aws-servicecatalog-tagoption.go rename to cloudformation/resources/aws-servicecatalog-tagoption.go index 5eb7c7356a..071e24b33e 100644 --- a/cloudformation/aws-servicecatalog-tagoption.go +++ b/cloudformation/resources/aws-servicecatalog-tagoption.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSServiceCatalogTagOption AWS CloudFormation Resource (AWS::ServiceCatalog::TagOption) @@ -26,7 +27,7 @@ type AWSServiceCatalogTagOption struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSServiceCatalogTagOption) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceCatalogTagOption) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceCatalogTagOption) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSServiceCatalogTagOption) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-servicecatalog-tagoptionassociation.go b/cloudformation/resources/aws-servicecatalog-tagoptionassociation.go similarity index 92% rename from cloudformation/aws-servicecatalog-tagoptionassociation.go rename to cloudformation/resources/aws-servicecatalog-tagoptionassociation.go index 0cd4f4bd39..d40fea746e 100644 --- a/cloudformation/aws-servicecatalog-tagoptionassociation.go +++ b/cloudformation/resources/aws-servicecatalog-tagoptionassociation.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSServiceCatalogTagOptionAssociation AWS CloudFormation Resource (AWS::ServiceCatalog::TagOptionAssociation) @@ -21,7 +22,7 @@ type AWSServiceCatalogTagOptionAssociation struct { TagOptionId string `json:"TagOptionId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSServiceCatalogTagOptionAssociation) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceCatalogTagOptionAssociation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceCatalogTagOptionAssociation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSServiceCatalogTagOptionAssociation) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-servicediscovery-httpnamespace.go b/cloudformation/resources/aws-servicediscovery-httpnamespace.go similarity index 92% rename from cloudformation/aws-servicediscovery-httpnamespace.go rename to cloudformation/resources/aws-servicediscovery-httpnamespace.go index c9d6c641d6..9e79f8b8ff 100644 --- a/cloudformation/aws-servicediscovery-httpnamespace.go +++ b/cloudformation/resources/aws-servicediscovery-httpnamespace.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSServiceDiscoveryHttpNamespace AWS CloudFormation Resource (AWS::ServiceDiscovery::HttpNamespace) @@ -21,7 +22,7 @@ type AWSServiceDiscoveryHttpNamespace struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSServiceDiscoveryHttpNamespace) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceDiscoveryHttpNamespace) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceDiscoveryHttpNamespace) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSServiceDiscoveryHttpNamespace) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-servicediscovery-instance.go b/cloudformation/resources/aws-servicediscovery-instance.go similarity index 91% rename from cloudformation/aws-servicediscovery-instance.go rename to cloudformation/resources/aws-servicediscovery-instance.go index 4bd1347614..500c736e09 100644 --- a/cloudformation/aws-servicediscovery-instance.go +++ b/cloudformation/resources/aws-servicediscovery-instance.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSServiceDiscoveryInstance AWS CloudFormation Resource (AWS::ServiceDiscovery::Instance) @@ -26,7 +27,7 @@ type AWSServiceDiscoveryInstance struct { ServiceId string `json:"ServiceId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSServiceDiscoveryInstance) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceDiscoveryInstance) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceDiscoveryInstance) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSServiceDiscoveryInstance) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-servicediscovery-privatednsnamespace.go b/cloudformation/resources/aws-servicediscovery-privatednsnamespace.go similarity index 92% rename from cloudformation/aws-servicediscovery-privatednsnamespace.go rename to cloudformation/resources/aws-servicediscovery-privatednsnamespace.go index 2bf0c53cae..d551bbb00e 100644 --- a/cloudformation/aws-servicediscovery-privatednsnamespace.go +++ b/cloudformation/resources/aws-servicediscovery-privatednsnamespace.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSServiceDiscoveryPrivateDnsNamespace AWS CloudFormation Resource (AWS::ServiceDiscovery::PrivateDnsNamespace) @@ -26,7 +27,7 @@ type AWSServiceDiscoveryPrivateDnsNamespace struct { Vpc string `json:"Vpc,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSServiceDiscoveryPrivateDnsNamespace) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceDiscoveryPrivateDnsNamespace) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceDiscoveryPrivateDnsNamespace) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSServiceDiscoveryPrivateDnsNamespace) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-servicediscovery-publicdnsnamespace.go b/cloudformation/resources/aws-servicediscovery-publicdnsnamespace.go similarity index 92% rename from cloudformation/aws-servicediscovery-publicdnsnamespace.go rename to cloudformation/resources/aws-servicediscovery-publicdnsnamespace.go index b91b2294b5..24098aa693 100644 --- a/cloudformation/aws-servicediscovery-publicdnsnamespace.go +++ b/cloudformation/resources/aws-servicediscovery-publicdnsnamespace.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSServiceDiscoveryPublicDnsNamespace AWS CloudFormation Resource (AWS::ServiceDiscovery::PublicDnsNamespace) @@ -21,7 +22,7 @@ type AWSServiceDiscoveryPublicDnsNamespace struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSServiceDiscoveryPublicDnsNamespace) SetMetadata(metadata map[string] // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceDiscoveryPublicDnsNamespace) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceDiscoveryPublicDnsNamespace) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSServiceDiscoveryPublicDnsNamespace) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-servicediscovery-service.go b/cloudformation/resources/aws-servicediscovery-service.go similarity index 92% rename from cloudformation/aws-servicediscovery-service.go rename to cloudformation/resources/aws-servicediscovery-service.go index 076d963a60..9e565b8c94 100644 --- a/cloudformation/aws-servicediscovery-service.go +++ b/cloudformation/resources/aws-servicediscovery-service.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSServiceDiscoveryService AWS CloudFormation Resource (AWS::ServiceDiscovery::Service) @@ -41,7 +42,7 @@ type AWSServiceDiscoveryService struct { NamespaceId string `json:"NamespaceId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -81,7 +82,7 @@ func (r *AWSServiceDiscoveryService) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceDiscoveryService) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceDiscoveryService) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -92,9 +93,9 @@ func (r AWSServiceDiscoveryService) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-servicediscovery-service_dnsconfig.go b/cloudformation/resources/aws-servicediscovery-service_dnsconfig.go similarity index 95% rename from cloudformation/aws-servicediscovery-service_dnsconfig.go rename to cloudformation/resources/aws-servicediscovery-service_dnsconfig.go index 43f1da9989..683573d975 100644 --- a/cloudformation/aws-servicediscovery-service_dnsconfig.go +++ b/cloudformation/resources/aws-servicediscovery-service_dnsconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServiceDiscoveryService_DnsConfig AWS CloudFormation Resource (AWS::ServiceDiscovery::Service.DnsConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsconfig.html @@ -20,7 +22,7 @@ type AWSServiceDiscoveryService_DnsConfig struct { RoutingPolicy string `json:"RoutingPolicy,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSServiceDiscoveryService_DnsConfig) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceDiscoveryService_DnsConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceDiscoveryService_DnsConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-servicediscovery-service_dnsrecord.go b/cloudformation/resources/aws-servicediscovery-service_dnsrecord.go similarity index 94% rename from cloudformation/aws-servicediscovery-service_dnsrecord.go rename to cloudformation/resources/aws-servicediscovery-service_dnsrecord.go index 1a30e8d576..25e09c1885 100644 --- a/cloudformation/aws-servicediscovery-service_dnsrecord.go +++ b/cloudformation/resources/aws-servicediscovery-service_dnsrecord.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServiceDiscoveryService_DnsRecord AWS CloudFormation Resource (AWS::ServiceDiscovery::Service.DnsRecord) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsrecord.html @@ -15,7 +17,7 @@ type AWSServiceDiscoveryService_DnsRecord struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSServiceDiscoveryService_DnsRecord) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceDiscoveryService_DnsRecord) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceDiscoveryService_DnsRecord) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-servicediscovery-service_healthcheckconfig.go b/cloudformation/resources/aws-servicediscovery-service_healthcheckconfig.go similarity index 95% rename from cloudformation/aws-servicediscovery-service_healthcheckconfig.go rename to cloudformation/resources/aws-servicediscovery-service_healthcheckconfig.go index 8980067149..8361cba5d5 100644 --- a/cloudformation/aws-servicediscovery-service_healthcheckconfig.go +++ b/cloudformation/resources/aws-servicediscovery-service_healthcheckconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServiceDiscoveryService_HealthCheckConfig AWS CloudFormation Resource (AWS::ServiceDiscovery::Service.HealthCheckConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-healthcheckconfig.html @@ -20,7 +22,7 @@ type AWSServiceDiscoveryService_HealthCheckConfig struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSServiceDiscoveryService_HealthCheckConfig) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceDiscoveryService_HealthCheckConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceDiscoveryService_HealthCheckConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-servicediscovery-service_healthcheckcustomconfig.go b/cloudformation/resources/aws-servicediscovery-service_healthcheckcustomconfig.go similarity index 93% rename from cloudformation/aws-servicediscovery-service_healthcheckcustomconfig.go rename to cloudformation/resources/aws-servicediscovery-service_healthcheckcustomconfig.go index e84a373e89..d627aa1294 100644 --- a/cloudformation/aws-servicediscovery-service_healthcheckcustomconfig.go +++ b/cloudformation/resources/aws-servicediscovery-service_healthcheckcustomconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSServiceDiscoveryService_HealthCheckCustomConfig AWS CloudFormation Resource (AWS::ServiceDiscovery::Service.HealthCheckCustomConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-healthcheckcustomconfig.html @@ -10,7 +12,7 @@ type AWSServiceDiscoveryService_HealthCheckCustomConfig struct { FailureThreshold float64 `json:"FailureThreshold,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSServiceDiscoveryService_HealthCheckCustomConfig) SetMetadata(metadat // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSServiceDiscoveryService_HealthCheckCustomConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSServiceDiscoveryService_HealthCheckCustomConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ses-configurationset.go b/cloudformation/resources/aws-ses-configurationset.go similarity index 89% rename from cloudformation/aws-ses-configurationset.go rename to cloudformation/resources/aws-ses-configurationset.go index 4330c51392..52a9c5f468 100644 --- a/cloudformation/aws-ses-configurationset.go +++ b/cloudformation/resources/aws-ses-configurationset.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSESConfigurationSet AWS CloudFormation Resource (AWS::SES::ConfigurationSet) @@ -16,7 +17,7 @@ type AWSSESConfigurationSet struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -56,7 +57,7 @@ func (r *AWSSESConfigurationSet) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSESConfigurationSet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSESConfigurationSet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -67,9 +68,9 @@ func (r AWSSESConfigurationSet) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ses-configurationseteventdestination.go b/cloudformation/resources/aws-ses-configurationseteventdestination.go similarity index 92% rename from cloudformation/aws-ses-configurationseteventdestination.go rename to cloudformation/resources/aws-ses-configurationseteventdestination.go index 7e125b2c16..b63aac8788 100644 --- a/cloudformation/aws-ses-configurationseteventdestination.go +++ b/cloudformation/resources/aws-ses-configurationseteventdestination.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSESConfigurationSetEventDestination AWS CloudFormation Resource (AWS::SES::ConfigurationSetEventDestination) @@ -21,7 +22,7 @@ type AWSSESConfigurationSetEventDestination struct { EventDestination *AWSSESConfigurationSetEventDestination_EventDestination `json:"EventDestination,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSSESConfigurationSetEventDestination) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSESConfigurationSetEventDestination) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSESConfigurationSetEventDestination) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSSESConfigurationSetEventDestination) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ses-configurationseteventdestination_cloudwatchdestination.go b/cloudformation/resources/aws-ses-configurationseteventdestination_cloudwatchdestination.go similarity index 94% rename from cloudformation/aws-ses-configurationseteventdestination_cloudwatchdestination.go rename to cloudformation/resources/aws-ses-configurationseteventdestination_cloudwatchdestination.go index 1de00d08bb..399cd02e30 100644 --- a/cloudformation/aws-ses-configurationseteventdestination_cloudwatchdestination.go +++ b/cloudformation/resources/aws-ses-configurationseteventdestination_cloudwatchdestination.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSESConfigurationSetEventDestination_CloudWatchDestination AWS CloudFormation Resource (AWS::SES::ConfigurationSetEventDestination.CloudWatchDestination) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-cloudwatchdestination.html @@ -10,7 +12,7 @@ type AWSSESConfigurationSetEventDestination_CloudWatchDestination struct { DimensionConfigurations []AWSSESConfigurationSetEventDestination_DimensionConfiguration `json:"DimensionConfigurations,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSSESConfigurationSetEventDestination_CloudWatchDestination) SetMetada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSESConfigurationSetEventDestination_CloudWatchDestination) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSESConfigurationSetEventDestination_CloudWatchDestination) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ses-configurationseteventdestination_dimensionconfiguration.go b/cloudformation/resources/aws-ses-configurationseteventdestination_dimensionconfiguration.go similarity index 95% rename from cloudformation/aws-ses-configurationseteventdestination_dimensionconfiguration.go rename to cloudformation/resources/aws-ses-configurationseteventdestination_dimensionconfiguration.go index 6d70ca9992..9305843e85 100644 --- a/cloudformation/aws-ses-configurationseteventdestination_dimensionconfiguration.go +++ b/cloudformation/resources/aws-ses-configurationseteventdestination_dimensionconfiguration.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSESConfigurationSetEventDestination_DimensionConfiguration AWS CloudFormation Resource (AWS::SES::ConfigurationSetEventDestination.DimensionConfiguration) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-dimensionconfiguration.html @@ -20,7 +22,7 @@ type AWSSESConfigurationSetEventDestination_DimensionConfiguration struct { DimensionValueSource string `json:"DimensionValueSource,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSSESConfigurationSetEventDestination_DimensionConfiguration) SetMetad // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSESConfigurationSetEventDestination_DimensionConfiguration) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSESConfigurationSetEventDestination_DimensionConfiguration) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ses-configurationseteventdestination_eventdestination.go b/cloudformation/resources/aws-ses-configurationseteventdestination_eventdestination.go similarity index 95% rename from cloudformation/aws-ses-configurationseteventdestination_eventdestination.go rename to cloudformation/resources/aws-ses-configurationseteventdestination_eventdestination.go index 0cb628abe7..a1d91a0525 100644 --- a/cloudformation/aws-ses-configurationseteventdestination_eventdestination.go +++ b/cloudformation/resources/aws-ses-configurationseteventdestination_eventdestination.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSESConfigurationSetEventDestination_EventDestination AWS CloudFormation Resource (AWS::SES::ConfigurationSetEventDestination.EventDestination) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-eventdestination.html @@ -30,7 +32,7 @@ type AWSSESConfigurationSetEventDestination_EventDestination struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSSESConfigurationSetEventDestination_EventDestination) SetMetadata(me // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSESConfigurationSetEventDestination_EventDestination) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSESConfigurationSetEventDestination_EventDestination) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ses-configurationseteventdestination_kinesisfirehosedestination.go b/cloudformation/resources/aws-ses-configurationseteventdestination_kinesisfirehosedestination.go similarity index 94% rename from cloudformation/aws-ses-configurationseteventdestination_kinesisfirehosedestination.go rename to cloudformation/resources/aws-ses-configurationseteventdestination_kinesisfirehosedestination.go index 87d33efc93..c1ce752bf5 100644 --- a/cloudformation/aws-ses-configurationseteventdestination_kinesisfirehosedestination.go +++ b/cloudformation/resources/aws-ses-configurationseteventdestination_kinesisfirehosedestination.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSESConfigurationSetEventDestination_KinesisFirehoseDestination AWS CloudFormation Resource (AWS::SES::ConfigurationSetEventDestination.KinesisFirehoseDestination) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-kinesisfirehosedestination.html @@ -15,7 +17,7 @@ type AWSSESConfigurationSetEventDestination_KinesisFirehoseDestination struct { IAMRoleARN string `json:"IAMRoleARN,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSSESConfigurationSetEventDestination_KinesisFirehoseDestination) SetM // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSESConfigurationSetEventDestination_KinesisFirehoseDestination) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSESConfigurationSetEventDestination_KinesisFirehoseDestination) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ses-receiptfilter.go b/cloudformation/resources/aws-ses-receiptfilter.go similarity index 89% rename from cloudformation/aws-ses-receiptfilter.go rename to cloudformation/resources/aws-ses-receiptfilter.go index bd3422564c..4ee107373e 100644 --- a/cloudformation/aws-ses-receiptfilter.go +++ b/cloudformation/resources/aws-ses-receiptfilter.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSESReceiptFilter AWS CloudFormation Resource (AWS::SES::ReceiptFilter) @@ -16,7 +17,7 @@ type AWSSESReceiptFilter struct { Filter *AWSSESReceiptFilter_Filter `json:"Filter,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -56,7 +57,7 @@ func (r *AWSSESReceiptFilter) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSESReceiptFilter) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSESReceiptFilter) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -67,9 +68,9 @@ func (r AWSSESReceiptFilter) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ses-receiptfilter_filter.go b/cloudformation/resources/aws-ses-receiptfilter_filter.go similarity index 92% rename from cloudformation/aws-ses-receiptfilter_filter.go rename to cloudformation/resources/aws-ses-receiptfilter_filter.go index ee7cc7e7b5..dca3ab5a63 100644 --- a/cloudformation/aws-ses-receiptfilter_filter.go +++ b/cloudformation/resources/aws-ses-receiptfilter_filter.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSESReceiptFilter_Filter AWS CloudFormation Resource (AWS::SES::ReceiptFilter.Filter) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptfilter-filter.html @@ -15,7 +17,7 @@ type AWSSESReceiptFilter_Filter struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSSESReceiptFilter_Filter) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSESReceiptFilter_Filter) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSESReceiptFilter_Filter) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ses-receiptfilter_ipfilter.go b/cloudformation/resources/aws-ses-receiptfilter_ipfilter.go similarity index 94% rename from cloudformation/aws-ses-receiptfilter_ipfilter.go rename to cloudformation/resources/aws-ses-receiptfilter_ipfilter.go index e5cc3c372b..402458ee40 100644 --- a/cloudformation/aws-ses-receiptfilter_ipfilter.go +++ b/cloudformation/resources/aws-ses-receiptfilter_ipfilter.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSESReceiptFilter_IpFilter AWS CloudFormation Resource (AWS::SES::ReceiptFilter.IpFilter) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptfilter-ipfilter.html @@ -15,7 +17,7 @@ type AWSSESReceiptFilter_IpFilter struct { Policy string `json:"Policy,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSSESReceiptFilter_IpFilter) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSESReceiptFilter_IpFilter) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSESReceiptFilter_IpFilter) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ses-receiptrule.go b/cloudformation/resources/aws-ses-receiptrule.go similarity index 90% rename from cloudformation/aws-ses-receiptrule.go rename to cloudformation/resources/aws-ses-receiptrule.go index 74ad2f2afc..a18ace1cda 100644 --- a/cloudformation/aws-ses-receiptrule.go +++ b/cloudformation/resources/aws-ses-receiptrule.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSESReceiptRule AWS CloudFormation Resource (AWS::SES::ReceiptRule) @@ -26,7 +27,7 @@ type AWSSESReceiptRule struct { RuleSetName string `json:"RuleSetName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSSESReceiptRule) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSESReceiptRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSESReceiptRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSSESReceiptRule) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ses-receiptrule_action.go b/cloudformation/resources/aws-ses-receiptrule_action.go similarity index 95% rename from cloudformation/aws-ses-receiptrule_action.go rename to cloudformation/resources/aws-ses-receiptrule_action.go index dfa6a121e1..82d94f70a7 100644 --- a/cloudformation/aws-ses-receiptrule_action.go +++ b/cloudformation/resources/aws-ses-receiptrule_action.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSESReceiptRule_Action AWS CloudFormation Resource (AWS::SES::ReceiptRule.Action) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html @@ -40,7 +42,7 @@ type AWSSESReceiptRule_Action struct { WorkmailAction *AWSSESReceiptRule_WorkmailAction `json:"WorkmailAction,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -80,6 +82,6 @@ func (r *AWSSESReceiptRule_Action) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSESReceiptRule_Action) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSESReceiptRule_Action) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ses-receiptrule_addheaderaction.go b/cloudformation/resources/aws-ses-receiptrule_addheaderaction.go similarity index 94% rename from cloudformation/aws-ses-receiptrule_addheaderaction.go rename to cloudformation/resources/aws-ses-receiptrule_addheaderaction.go index efadf981d0..552ab9b38e 100644 --- a/cloudformation/aws-ses-receiptrule_addheaderaction.go +++ b/cloudformation/resources/aws-ses-receiptrule_addheaderaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSESReceiptRule_AddHeaderAction AWS CloudFormation Resource (AWS::SES::ReceiptRule.AddHeaderAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-addheaderaction.html @@ -15,7 +17,7 @@ type AWSSESReceiptRule_AddHeaderAction struct { HeaderValue string `json:"HeaderValue,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSSESReceiptRule_AddHeaderAction) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSESReceiptRule_AddHeaderAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSESReceiptRule_AddHeaderAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ses-receiptrule_bounceaction.go b/cloudformation/resources/aws-ses-receiptrule_bounceaction.go similarity index 95% rename from cloudformation/aws-ses-receiptrule_bounceaction.go rename to cloudformation/resources/aws-ses-receiptrule_bounceaction.go index cd1f36c78e..f2738e09a7 100644 --- a/cloudformation/aws-ses-receiptrule_bounceaction.go +++ b/cloudformation/resources/aws-ses-receiptrule_bounceaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSESReceiptRule_BounceAction AWS CloudFormation Resource (AWS::SES::ReceiptRule.BounceAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-bounceaction.html @@ -30,7 +32,7 @@ type AWSSESReceiptRule_BounceAction struct { TopicArn string `json:"TopicArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSSESReceiptRule_BounceAction) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSESReceiptRule_BounceAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSESReceiptRule_BounceAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ses-receiptrule_lambdaaction.go b/cloudformation/resources/aws-ses-receiptrule_lambdaaction.go similarity index 95% rename from cloudformation/aws-ses-receiptrule_lambdaaction.go rename to cloudformation/resources/aws-ses-receiptrule_lambdaaction.go index 33a450be19..fe91177a63 100644 --- a/cloudformation/aws-ses-receiptrule_lambdaaction.go +++ b/cloudformation/resources/aws-ses-receiptrule_lambdaaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSESReceiptRule_LambdaAction AWS CloudFormation Resource (AWS::SES::ReceiptRule.LambdaAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-lambdaaction.html @@ -20,7 +22,7 @@ type AWSSESReceiptRule_LambdaAction struct { TopicArn string `json:"TopicArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSSESReceiptRule_LambdaAction) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSESReceiptRule_LambdaAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSESReceiptRule_LambdaAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ses-receiptrule_rule.go b/cloudformation/resources/aws-ses-receiptrule_rule.go similarity index 94% rename from cloudformation/aws-ses-receiptrule_rule.go rename to cloudformation/resources/aws-ses-receiptrule_rule.go index 7c13c451b5..eef76c9562 100644 --- a/cloudformation/aws-ses-receiptrule_rule.go +++ b/cloudformation/resources/aws-ses-receiptrule_rule.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSESReceiptRule_Rule AWS CloudFormation Resource (AWS::SES::ReceiptRule.Rule) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-rule.html @@ -35,7 +37,7 @@ type AWSSESReceiptRule_Rule struct { TlsPolicy string `json:"TlsPolicy,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -75,6 +77,6 @@ func (r *AWSSESReceiptRule_Rule) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSESReceiptRule_Rule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSESReceiptRule_Rule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ses-receiptrule_s3action.go b/cloudformation/resources/aws-ses-receiptrule_s3action.go similarity index 93% rename from cloudformation/aws-ses-receiptrule_s3action.go rename to cloudformation/resources/aws-ses-receiptrule_s3action.go index 48d86aa4c6..51ab0b87fa 100644 --- a/cloudformation/aws-ses-receiptrule_s3action.go +++ b/cloudformation/resources/aws-ses-receiptrule_s3action.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSESReceiptRule_S3Action AWS CloudFormation Resource (AWS::SES::ReceiptRule.S3Action) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-s3action.html @@ -25,7 +27,7 @@ type AWSSESReceiptRule_S3Action struct { TopicArn string `json:"TopicArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSSESReceiptRule_S3Action) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSESReceiptRule_S3Action) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSESReceiptRule_S3Action) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ses-receiptrule_snsaction.go b/cloudformation/resources/aws-ses-receiptrule_snsaction.go similarity index 92% rename from cloudformation/aws-ses-receiptrule_snsaction.go rename to cloudformation/resources/aws-ses-receiptrule_snsaction.go index 2b083dbb18..1a7c9df77d 100644 --- a/cloudformation/aws-ses-receiptrule_snsaction.go +++ b/cloudformation/resources/aws-ses-receiptrule_snsaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSESReceiptRule_SNSAction AWS CloudFormation Resource (AWS::SES::ReceiptRule.SNSAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-snsaction.html @@ -15,7 +17,7 @@ type AWSSESReceiptRule_SNSAction struct { TopicArn string `json:"TopicArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSSESReceiptRule_SNSAction) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSESReceiptRule_SNSAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSESReceiptRule_SNSAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ses-receiptrule_stopaction.go b/cloudformation/resources/aws-ses-receiptrule_stopaction.go similarity index 94% rename from cloudformation/aws-ses-receiptrule_stopaction.go rename to cloudformation/resources/aws-ses-receiptrule_stopaction.go index a051b62450..fd3aeaf32e 100644 --- a/cloudformation/aws-ses-receiptrule_stopaction.go +++ b/cloudformation/resources/aws-ses-receiptrule_stopaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSESReceiptRule_StopAction AWS CloudFormation Resource (AWS::SES::ReceiptRule.StopAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-stopaction.html @@ -15,7 +17,7 @@ type AWSSESReceiptRule_StopAction struct { TopicArn string `json:"TopicArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSSESReceiptRule_StopAction) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSESReceiptRule_StopAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSESReceiptRule_StopAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ses-receiptrule_workmailaction.go b/cloudformation/resources/aws-ses-receiptrule_workmailaction.go similarity index 94% rename from cloudformation/aws-ses-receiptrule_workmailaction.go rename to cloudformation/resources/aws-ses-receiptrule_workmailaction.go index 5b1496263f..16dbe6d2cb 100644 --- a/cloudformation/aws-ses-receiptrule_workmailaction.go +++ b/cloudformation/resources/aws-ses-receiptrule_workmailaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSESReceiptRule_WorkmailAction AWS CloudFormation Resource (AWS::SES::ReceiptRule.WorkmailAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-workmailaction.html @@ -15,7 +17,7 @@ type AWSSESReceiptRule_WorkmailAction struct { TopicArn string `json:"TopicArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSSESReceiptRule_WorkmailAction) SetMetadata(metadata map[string]inter // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSESReceiptRule_WorkmailAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSESReceiptRule_WorkmailAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ses-receiptruleset.go b/cloudformation/resources/aws-ses-receiptruleset.go similarity index 89% rename from cloudformation/aws-ses-receiptruleset.go rename to cloudformation/resources/aws-ses-receiptruleset.go index 28877211e5..74ce935c02 100644 --- a/cloudformation/aws-ses-receiptruleset.go +++ b/cloudformation/resources/aws-ses-receiptruleset.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSESReceiptRuleSet AWS CloudFormation Resource (AWS::SES::ReceiptRuleSet) @@ -16,7 +17,7 @@ type AWSSESReceiptRuleSet struct { RuleSetName string `json:"RuleSetName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -56,7 +57,7 @@ func (r *AWSSESReceiptRuleSet) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSESReceiptRuleSet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSESReceiptRuleSet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -67,9 +68,9 @@ func (r AWSSESReceiptRuleSet) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ses-template.go b/cloudformation/resources/aws-ses-template.go similarity index 89% rename from cloudformation/aws-ses-template.go rename to cloudformation/resources/aws-ses-template.go index c56009a1af..a124b6cc21 100644 --- a/cloudformation/aws-ses-template.go +++ b/cloudformation/resources/aws-ses-template.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSESTemplate AWS CloudFormation Resource (AWS::SES::Template) @@ -16,7 +17,7 @@ type AWSSESTemplate struct { Template *AWSSESTemplate_Template `json:"Template,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -56,7 +57,7 @@ func (r *AWSSESTemplate) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSESTemplate) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSESTemplate) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -67,9 +68,9 @@ func (r AWSSESTemplate) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ses-template_template.go b/cloudformation/resources/aws-ses-template_template.go similarity index 93% rename from cloudformation/aws-ses-template_template.go rename to cloudformation/resources/aws-ses-template_template.go index eb8c381fc7..e4e94fbfb2 100644 --- a/cloudformation/aws-ses-template_template.go +++ b/cloudformation/resources/aws-ses-template_template.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSESTemplate_Template AWS CloudFormation Resource (AWS::SES::Template.Template) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-template-template.html @@ -25,7 +27,7 @@ type AWSSESTemplate_Template struct { TextPart string `json:"TextPart,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSSESTemplate_Template) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSESTemplate_Template) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSESTemplate_Template) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-sns-subscription.go b/cloudformation/resources/aws-sns-subscription.go similarity index 92% rename from cloudformation/aws-sns-subscription.go rename to cloudformation/resources/aws-sns-subscription.go index 20f7a3f022..198e6ead46 100644 --- a/cloudformation/aws-sns-subscription.go +++ b/cloudformation/resources/aws-sns-subscription.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSNSSubscription AWS CloudFormation Resource (AWS::SNS::Subscription) @@ -46,7 +47,7 @@ type AWSSNSSubscription struct { TopicArn string `json:"TopicArn,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -86,7 +87,7 @@ func (r *AWSSNSSubscription) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSNSSubscription) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSNSSubscription) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -97,9 +98,9 @@ func (r AWSSNSSubscription) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-sns-topic.go b/cloudformation/resources/aws-sns-topic.go similarity index 91% rename from cloudformation/aws-sns-topic.go rename to cloudformation/resources/aws-sns-topic.go index 1af55bba5a..895e375bc4 100644 --- a/cloudformation/aws-sns-topic.go +++ b/cloudformation/resources/aws-sns-topic.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSNSTopic AWS CloudFormation Resource (AWS::SNS::Topic) @@ -31,7 +32,7 @@ type AWSSNSTopic struct { TopicName string `json:"TopicName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSSNSTopic) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSNSTopic) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSNSTopic) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSSNSTopic) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-sns-topic_subscription.go b/cloudformation/resources/aws-sns-topic_subscription.go similarity index 92% rename from cloudformation/aws-sns-topic_subscription.go rename to cloudformation/resources/aws-sns-topic_subscription.go index 88d1583764..11d4a84181 100644 --- a/cloudformation/aws-sns-topic_subscription.go +++ b/cloudformation/resources/aws-sns-topic_subscription.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSNSTopic_Subscription AWS CloudFormation Resource (AWS::SNS::Topic.Subscription) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-subscription.html @@ -15,7 +17,7 @@ type AWSSNSTopic_Subscription struct { Protocol string `json:"Protocol,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSSNSTopic_Subscription) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSNSTopic_Subscription) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSNSTopic_Subscription) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-sns-topicpolicy.go b/cloudformation/resources/aws-sns-topicpolicy.go similarity index 90% rename from cloudformation/aws-sns-topicpolicy.go rename to cloudformation/resources/aws-sns-topicpolicy.go index 090b7934cd..3183ede754 100644 --- a/cloudformation/aws-sns-topicpolicy.go +++ b/cloudformation/resources/aws-sns-topicpolicy.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSNSTopicPolicy AWS CloudFormation Resource (AWS::SNS::TopicPolicy) @@ -21,7 +22,7 @@ type AWSSNSTopicPolicy struct { Topics []string `json:"Topics,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSSNSTopicPolicy) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSNSTopicPolicy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSNSTopicPolicy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSSNSTopicPolicy) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-sqs-queue.go b/cloudformation/resources/aws-sqs-queue.go similarity index 94% rename from cloudformation/aws-sqs-queue.go rename to cloudformation/resources/aws-sqs-queue.go index c76fcbe1b4..24dd4cabeb 100644 --- a/cloudformation/aws-sqs-queue.go +++ b/cloudformation/resources/aws-sqs-queue.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSQSQueue AWS CloudFormation Resource (AWS::SQS::Queue) @@ -71,7 +72,7 @@ type AWSSQSQueue struct { VisibilityTimeout int `json:"VisibilityTimeout,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -111,7 +112,7 @@ func (r *AWSSQSQueue) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSQSQueue) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSQSQueue) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -122,9 +123,9 @@ func (r AWSSQSQueue) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-sqs-queuepolicy.go b/cloudformation/resources/aws-sqs-queuepolicy.go similarity index 90% rename from cloudformation/aws-sqs-queuepolicy.go rename to cloudformation/resources/aws-sqs-queuepolicy.go index 2869024a58..5c6f7641a2 100644 --- a/cloudformation/aws-sqs-queuepolicy.go +++ b/cloudformation/resources/aws-sqs-queuepolicy.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSQSQueuePolicy AWS CloudFormation Resource (AWS::SQS::QueuePolicy) @@ -21,7 +22,7 @@ type AWSSQSQueuePolicy struct { Queues []string `json:"Queues,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSSQSQueuePolicy) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSQSQueuePolicy) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSQSQueuePolicy) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSSQSQueuePolicy) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ssm-association.go b/cloudformation/resources/aws-ssm-association.go similarity index 93% rename from cloudformation/aws-ssm-association.go rename to cloudformation/resources/aws-ssm-association.go index e3b60e6337..9c3cca6f9c 100644 --- a/cloudformation/aws-ssm-association.go +++ b/cloudformation/resources/aws-ssm-association.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSSMAssociation AWS CloudFormation Resource (AWS::SSM::Association) @@ -51,7 +52,7 @@ type AWSSSMAssociation struct { Targets []AWSSSMAssociation_Target `json:"Targets,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -91,7 +92,7 @@ func (r *AWSSSMAssociation) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMAssociation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMAssociation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -102,9 +103,9 @@ func (r AWSSSMAssociation) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ssm-association_instanceassociationoutputlocation.go b/cloudformation/resources/aws-ssm-association_instanceassociationoutputlocation.go similarity index 93% rename from cloudformation/aws-ssm-association_instanceassociationoutputlocation.go rename to cloudformation/resources/aws-ssm-association_instanceassociationoutputlocation.go index 59bd5a3020..142336e17d 100644 --- a/cloudformation/aws-ssm-association_instanceassociationoutputlocation.go +++ b/cloudformation/resources/aws-ssm-association_instanceassociationoutputlocation.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSSMAssociation_InstanceAssociationOutputLocation AWS CloudFormation Resource (AWS::SSM::Association.InstanceAssociationOutputLocation) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-instanceassociationoutputlocation.html @@ -10,7 +12,7 @@ type AWSSSMAssociation_InstanceAssociationOutputLocation struct { S3Location *AWSSSMAssociation_S3OutputLocation `json:"S3Location,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSSSMAssociation_InstanceAssociationOutputLocation) SetMetadata(metada // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMAssociation_InstanceAssociationOutputLocation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMAssociation_InstanceAssociationOutputLocation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ssm-association_parametervalues.go b/cloudformation/resources/aws-ssm-association_parametervalues.go similarity index 94% rename from cloudformation/aws-ssm-association_parametervalues.go rename to cloudformation/resources/aws-ssm-association_parametervalues.go index 55d1a54956..cf94a0242c 100644 --- a/cloudformation/aws-ssm-association_parametervalues.go +++ b/cloudformation/resources/aws-ssm-association_parametervalues.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSSMAssociation_ParameterValues AWS CloudFormation Resource (AWS::SSM::Association.ParameterValues) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-parametervalues.html @@ -10,7 +12,7 @@ type AWSSSMAssociation_ParameterValues struct { ParameterValues []string `json:"ParameterValues,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSSSMAssociation_ParameterValues) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMAssociation_ParameterValues) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMAssociation_ParameterValues) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ssm-association_s3outputlocation.go b/cloudformation/resources/aws-ssm-association_s3outputlocation.go similarity index 94% rename from cloudformation/aws-ssm-association_s3outputlocation.go rename to cloudformation/resources/aws-ssm-association_s3outputlocation.go index 86f03884ef..be65d76e94 100644 --- a/cloudformation/aws-ssm-association_s3outputlocation.go +++ b/cloudformation/resources/aws-ssm-association_s3outputlocation.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSSMAssociation_S3OutputLocation AWS CloudFormation Resource (AWS::SSM::Association.S3OutputLocation) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-s3outputlocation.html @@ -15,7 +17,7 @@ type AWSSSMAssociation_S3OutputLocation struct { OutputS3KeyPrefix string `json:"OutputS3KeyPrefix,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSSSMAssociation_S3OutputLocation) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMAssociation_S3OutputLocation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMAssociation_S3OutputLocation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ssm-association_target.go b/cloudformation/resources/aws-ssm-association_target.go similarity index 92% rename from cloudformation/aws-ssm-association_target.go rename to cloudformation/resources/aws-ssm-association_target.go index ed25174d88..b29d7fc090 100644 --- a/cloudformation/aws-ssm-association_target.go +++ b/cloudformation/resources/aws-ssm-association_target.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSSMAssociation_Target AWS CloudFormation Resource (AWS::SSM::Association.Target) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-target.html @@ -15,7 +17,7 @@ type AWSSSMAssociation_Target struct { Values []string `json:"Values,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSSSMAssociation_Target) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMAssociation_Target) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMAssociation_Target) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ssm-document.go b/cloudformation/resources/aws-ssm-document.go similarity index 90% rename from cloudformation/aws-ssm-document.go rename to cloudformation/resources/aws-ssm-document.go index 66d57ebfb3..9433f57c8d 100644 --- a/cloudformation/aws-ssm-document.go +++ b/cloudformation/resources/aws-ssm-document.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSSMDocument AWS CloudFormation Resource (AWS::SSM::Document) @@ -26,7 +27,7 @@ type AWSSSMDocument struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSSSMDocument) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMDocument) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMDocument) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSSSMDocument) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ssm-maintenancewindow.go b/cloudformation/resources/aws-ssm-maintenancewindow.go similarity index 93% rename from cloudformation/aws-ssm-maintenancewindow.go rename to cloudformation/resources/aws-ssm-maintenancewindow.go index d030524cbf..a21cd415ad 100644 --- a/cloudformation/aws-ssm-maintenancewindow.go +++ b/cloudformation/resources/aws-ssm-maintenancewindow.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSSMMaintenanceWindow AWS CloudFormation Resource (AWS::SSM::MaintenanceWindow) @@ -61,7 +62,7 @@ type AWSSSMMaintenanceWindow struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -101,7 +102,7 @@ func (r *AWSSSMMaintenanceWindow) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMMaintenanceWindow) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMMaintenanceWindow) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -112,9 +113,9 @@ func (r AWSSSMMaintenanceWindow) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ssm-maintenancewindowtask.go b/cloudformation/resources/aws-ssm-maintenancewindowtask.go similarity index 94% rename from cloudformation/aws-ssm-maintenancewindowtask.go rename to cloudformation/resources/aws-ssm-maintenancewindowtask.go index df30e4bc3e..dfd7dfd518 100644 --- a/cloudformation/aws-ssm-maintenancewindowtask.go +++ b/cloudformation/resources/aws-ssm-maintenancewindowtask.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSSMMaintenanceWindowTask AWS CloudFormation Resource (AWS::SSM::MaintenanceWindowTask) @@ -76,7 +77,7 @@ type AWSSSMMaintenanceWindowTask struct { WindowId string `json:"WindowId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -116,7 +117,7 @@ func (r *AWSSSMMaintenanceWindowTask) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMMaintenanceWindowTask) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMMaintenanceWindowTask) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -127,9 +128,9 @@ func (r AWSSSMMaintenanceWindowTask) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ssm-maintenancewindowtask_logginginfo.go b/cloudformation/resources/aws-ssm-maintenancewindowtask_logginginfo.go similarity index 94% rename from cloudformation/aws-ssm-maintenancewindowtask_logginginfo.go rename to cloudformation/resources/aws-ssm-maintenancewindowtask_logginginfo.go index 5137e43ae0..501537dcb3 100644 --- a/cloudformation/aws-ssm-maintenancewindowtask_logginginfo.go +++ b/cloudformation/resources/aws-ssm-maintenancewindowtask_logginginfo.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSSMMaintenanceWindowTask_LoggingInfo AWS CloudFormation Resource (AWS::SSM::MaintenanceWindowTask.LoggingInfo) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-logginginfo.html @@ -20,7 +22,7 @@ type AWSSSMMaintenanceWindowTask_LoggingInfo struct { S3Prefix string `json:"S3Prefix,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSSSMMaintenanceWindowTask_LoggingInfo) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMMaintenanceWindowTask_LoggingInfo) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMMaintenanceWindowTask_LoggingInfo) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ssm-maintenancewindowtask_maintenancewindowautomationparameters.go b/cloudformation/resources/aws-ssm-maintenancewindowtask_maintenancewindowautomationparameters.go similarity index 94% rename from cloudformation/aws-ssm-maintenancewindowtask_maintenancewindowautomationparameters.go rename to cloudformation/resources/aws-ssm-maintenancewindowtask_maintenancewindowautomationparameters.go index 2082d5c593..a86cb510ef 100644 --- a/cloudformation/aws-ssm-maintenancewindowtask_maintenancewindowautomationparameters.go +++ b/cloudformation/resources/aws-ssm-maintenancewindowtask_maintenancewindowautomationparameters.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSSMMaintenanceWindowTask_MaintenanceWindowAutomationParameters AWS CloudFormation Resource (AWS::SSM::MaintenanceWindowTask.MaintenanceWindowAutomationParameters) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowautomationparameters.html @@ -15,7 +17,7 @@ type AWSSSMMaintenanceWindowTask_MaintenanceWindowAutomationParameters struct { Parameters interface{} `json:"Parameters,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSSSMMaintenanceWindowTask_MaintenanceWindowAutomationParameters) SetM // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMMaintenanceWindowTask_MaintenanceWindowAutomationParameters) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMMaintenanceWindowTask_MaintenanceWindowAutomationParameters) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ssm-maintenancewindowtask_maintenancewindowlambdaparameters.go b/cloudformation/resources/aws-ssm-maintenancewindowtask_maintenancewindowlambdaparameters.go similarity index 94% rename from cloudformation/aws-ssm-maintenancewindowtask_maintenancewindowlambdaparameters.go rename to cloudformation/resources/aws-ssm-maintenancewindowtask_maintenancewindowlambdaparameters.go index 2d9a858f25..892389e7ff 100644 --- a/cloudformation/aws-ssm-maintenancewindowtask_maintenancewindowlambdaparameters.go +++ b/cloudformation/resources/aws-ssm-maintenancewindowtask_maintenancewindowlambdaparameters.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSSMMaintenanceWindowTask_MaintenanceWindowLambdaParameters AWS CloudFormation Resource (AWS::SSM::MaintenanceWindowTask.MaintenanceWindowLambdaParameters) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowlambdaparameters.html @@ -20,7 +22,7 @@ type AWSSSMMaintenanceWindowTask_MaintenanceWindowLambdaParameters struct { Qualifier string `json:"Qualifier,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSSSMMaintenanceWindowTask_MaintenanceWindowLambdaParameters) SetMetad // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMMaintenanceWindowTask_MaintenanceWindowLambdaParameters) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMMaintenanceWindowTask_MaintenanceWindowLambdaParameters) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ssm-maintenancewindowtask_maintenancewindowruncommandparameters.go b/cloudformation/resources/aws-ssm-maintenancewindowtask_maintenancewindowruncommandparameters.go similarity index 96% rename from cloudformation/aws-ssm-maintenancewindowtask_maintenancewindowruncommandparameters.go rename to cloudformation/resources/aws-ssm-maintenancewindowtask_maintenancewindowruncommandparameters.go index 7c62318148..4c0943549d 100644 --- a/cloudformation/aws-ssm-maintenancewindowtask_maintenancewindowruncommandparameters.go +++ b/cloudformation/resources/aws-ssm-maintenancewindowtask_maintenancewindowruncommandparameters.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSSMMaintenanceWindowTask_MaintenanceWindowRunCommandParameters AWS CloudFormation Resource (AWS::SSM::MaintenanceWindowTask.MaintenanceWindowRunCommandParameters) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowruncommandparameters.html @@ -50,7 +52,7 @@ type AWSSSMMaintenanceWindowTask_MaintenanceWindowRunCommandParameters struct { TimeoutSeconds int `json:"TimeoutSeconds,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -90,6 +92,6 @@ func (r *AWSSSMMaintenanceWindowTask_MaintenanceWindowRunCommandParameters) SetM // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMMaintenanceWindowTask_MaintenanceWindowRunCommandParameters) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMMaintenanceWindowTask_MaintenanceWindowRunCommandParameters) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ssm-maintenancewindowtask_maintenancewindowstepfunctionsparameters.go b/cloudformation/resources/aws-ssm-maintenancewindowtask_maintenancewindowstepfunctionsparameters.go similarity index 94% rename from cloudformation/aws-ssm-maintenancewindowtask_maintenancewindowstepfunctionsparameters.go rename to cloudformation/resources/aws-ssm-maintenancewindowtask_maintenancewindowstepfunctionsparameters.go index c3dce13530..2938d1c747 100644 --- a/cloudformation/aws-ssm-maintenancewindowtask_maintenancewindowstepfunctionsparameters.go +++ b/cloudformation/resources/aws-ssm-maintenancewindowtask_maintenancewindowstepfunctionsparameters.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSSMMaintenanceWindowTask_MaintenanceWindowStepFunctionsParameters AWS CloudFormation Resource (AWS::SSM::MaintenanceWindowTask.MaintenanceWindowStepFunctionsParameters) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowstepfunctionsparameters.html @@ -15,7 +17,7 @@ type AWSSSMMaintenanceWindowTask_MaintenanceWindowStepFunctionsParameters struct Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSSSMMaintenanceWindowTask_MaintenanceWindowStepFunctionsParameters) S // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMMaintenanceWindowTask_MaintenanceWindowStepFunctionsParameters) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMMaintenanceWindowTask_MaintenanceWindowStepFunctionsParameters) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ssm-maintenancewindowtask_notificationconfig.go b/cloudformation/resources/aws-ssm-maintenancewindowtask_notificationconfig.go similarity index 95% rename from cloudformation/aws-ssm-maintenancewindowtask_notificationconfig.go rename to cloudformation/resources/aws-ssm-maintenancewindowtask_notificationconfig.go index 4adcf9667c..9e2627e91d 100644 --- a/cloudformation/aws-ssm-maintenancewindowtask_notificationconfig.go +++ b/cloudformation/resources/aws-ssm-maintenancewindowtask_notificationconfig.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSSMMaintenanceWindowTask_NotificationConfig AWS CloudFormation Resource (AWS::SSM::MaintenanceWindowTask.NotificationConfig) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-notificationconfig.html @@ -20,7 +22,7 @@ type AWSSSMMaintenanceWindowTask_NotificationConfig struct { NotificationType string `json:"NotificationType,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSSSMMaintenanceWindowTask_NotificationConfig) SetMetadata(metadata ma // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMMaintenanceWindowTask_NotificationConfig) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMMaintenanceWindowTask_NotificationConfig) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ssm-maintenancewindowtask_target.go b/cloudformation/resources/aws-ssm-maintenancewindowtask_target.go similarity index 94% rename from cloudformation/aws-ssm-maintenancewindowtask_target.go rename to cloudformation/resources/aws-ssm-maintenancewindowtask_target.go index 3661ad3e79..e704da0f20 100644 --- a/cloudformation/aws-ssm-maintenancewindowtask_target.go +++ b/cloudformation/resources/aws-ssm-maintenancewindowtask_target.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSSMMaintenanceWindowTask_Target AWS CloudFormation Resource (AWS::SSM::MaintenanceWindowTask.Target) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-target.html @@ -15,7 +17,7 @@ type AWSSSMMaintenanceWindowTask_Target struct { Values []string `json:"Values,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSSSMMaintenanceWindowTask_Target) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMMaintenanceWindowTask_Target) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMMaintenanceWindowTask_Target) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ssm-maintenancewindowtask_taskinvocationparameters.go b/cloudformation/resources/aws-ssm-maintenancewindowtask_taskinvocationparameters.go similarity index 96% rename from cloudformation/aws-ssm-maintenancewindowtask_taskinvocationparameters.go rename to cloudformation/resources/aws-ssm-maintenancewindowtask_taskinvocationparameters.go index c648e0c2fa..77b7bdad6f 100644 --- a/cloudformation/aws-ssm-maintenancewindowtask_taskinvocationparameters.go +++ b/cloudformation/resources/aws-ssm-maintenancewindowtask_taskinvocationparameters.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSSMMaintenanceWindowTask_TaskInvocationParameters AWS CloudFormation Resource (AWS::SSM::MaintenanceWindowTask.TaskInvocationParameters) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-taskinvocationparameters.html @@ -25,7 +27,7 @@ type AWSSSMMaintenanceWindowTask_TaskInvocationParameters struct { MaintenanceWindowStepFunctionsParameters *AWSSSMMaintenanceWindowTask_MaintenanceWindowStepFunctionsParameters `json:"MaintenanceWindowStepFunctionsParameters,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSSSMMaintenanceWindowTask_TaskInvocationParameters) SetMetadata(metad // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMMaintenanceWindowTask_TaskInvocationParameters) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMMaintenanceWindowTask_TaskInvocationParameters) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ssm-parameter.go b/cloudformation/resources/aws-ssm-parameter.go similarity index 91% rename from cloudformation/aws-ssm-parameter.go rename to cloudformation/resources/aws-ssm-parameter.go index 343b8f2813..5eac30d5ea 100644 --- a/cloudformation/aws-ssm-parameter.go +++ b/cloudformation/resources/aws-ssm-parameter.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSSMParameter AWS CloudFormation Resource (AWS::SSM::Parameter) @@ -36,7 +37,7 @@ type AWSSSMParameter struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -76,7 +77,7 @@ func (r *AWSSSMParameter) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMParameter) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMParameter) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -87,9 +88,9 @@ func (r AWSSSMParameter) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ssm-patchbaseline.go b/cloudformation/resources/aws-ssm-patchbaseline.go similarity index 94% rename from cloudformation/aws-ssm-patchbaseline.go rename to cloudformation/resources/aws-ssm-patchbaseline.go index 7db3895c24..4deed76a91 100644 --- a/cloudformation/aws-ssm-patchbaseline.go +++ b/cloudformation/resources/aws-ssm-patchbaseline.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSSMPatchBaseline AWS CloudFormation Resource (AWS::SSM::PatchBaseline) @@ -76,7 +77,7 @@ type AWSSSMPatchBaseline struct { Tags []Tag `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -116,7 +117,7 @@ func (r *AWSSSMPatchBaseline) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMPatchBaseline) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMPatchBaseline) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -127,9 +128,9 @@ func (r AWSSSMPatchBaseline) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-ssm-patchbaseline_patchfilter.go b/cloudformation/resources/aws-ssm-patchbaseline_patchfilter.go similarity index 94% rename from cloudformation/aws-ssm-patchbaseline_patchfilter.go rename to cloudformation/resources/aws-ssm-patchbaseline_patchfilter.go index f5de378b3d..0b90c52882 100644 --- a/cloudformation/aws-ssm-patchbaseline_patchfilter.go +++ b/cloudformation/resources/aws-ssm-patchbaseline_patchfilter.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSSMPatchBaseline_PatchFilter AWS CloudFormation Resource (AWS::SSM::PatchBaseline.PatchFilter) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchfilter.html @@ -15,7 +17,7 @@ type AWSSSMPatchBaseline_PatchFilter struct { Values []string `json:"Values,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSSSMPatchBaseline_PatchFilter) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMPatchBaseline_PatchFilter) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMPatchBaseline_PatchFilter) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ssm-patchbaseline_patchfiltergroup.go b/cloudformation/resources/aws-ssm-patchbaseline_patchfiltergroup.go similarity index 94% rename from cloudformation/aws-ssm-patchbaseline_patchfiltergroup.go rename to cloudformation/resources/aws-ssm-patchbaseline_patchfiltergroup.go index 5902964fed..d9836b92d1 100644 --- a/cloudformation/aws-ssm-patchbaseline_patchfiltergroup.go +++ b/cloudformation/resources/aws-ssm-patchbaseline_patchfiltergroup.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSSMPatchBaseline_PatchFilterGroup AWS CloudFormation Resource (AWS::SSM::PatchBaseline.PatchFilterGroup) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchfiltergroup.html @@ -10,7 +12,7 @@ type AWSSSMPatchBaseline_PatchFilterGroup struct { PatchFilters []AWSSSMPatchBaseline_PatchFilter `json:"PatchFilters,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSSSMPatchBaseline_PatchFilterGroup) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMPatchBaseline_PatchFilterGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMPatchBaseline_PatchFilterGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ssm-patchbaseline_patchsource.go b/cloudformation/resources/aws-ssm-patchbaseline_patchsource.go similarity index 95% rename from cloudformation/aws-ssm-patchbaseline_patchsource.go rename to cloudformation/resources/aws-ssm-patchbaseline_patchsource.go index 308b78c6c9..53359b3af6 100644 --- a/cloudformation/aws-ssm-patchbaseline_patchsource.go +++ b/cloudformation/resources/aws-ssm-patchbaseline_patchsource.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSSMPatchBaseline_PatchSource AWS CloudFormation Resource (AWS::SSM::PatchBaseline.PatchSource) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchsource.html @@ -20,7 +22,7 @@ type AWSSSMPatchBaseline_PatchSource struct { Products []string `json:"Products,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSSSMPatchBaseline_PatchSource) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMPatchBaseline_PatchSource) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMPatchBaseline_PatchSource) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ssm-patchbaseline_rule.go b/cloudformation/resources/aws-ssm-patchbaseline_rule.go similarity index 93% rename from cloudformation/aws-ssm-patchbaseline_rule.go rename to cloudformation/resources/aws-ssm-patchbaseline_rule.go index e634b77a9e..6aba67190b 100644 --- a/cloudformation/aws-ssm-patchbaseline_rule.go +++ b/cloudformation/resources/aws-ssm-patchbaseline_rule.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSSMPatchBaseline_Rule AWS CloudFormation Resource (AWS::SSM::PatchBaseline.Rule) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rule.html @@ -25,7 +27,7 @@ type AWSSSMPatchBaseline_Rule struct { PatchFilterGroup *AWSSSMPatchBaseline_PatchFilterGroup `json:"PatchFilterGroup,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSSSMPatchBaseline_Rule) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMPatchBaseline_Rule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMPatchBaseline_Rule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ssm-patchbaseline_rulegroup.go b/cloudformation/resources/aws-ssm-patchbaseline_rulegroup.go similarity index 94% rename from cloudformation/aws-ssm-patchbaseline_rulegroup.go rename to cloudformation/resources/aws-ssm-patchbaseline_rulegroup.go index 0c3c2d72aa..e257fe1d88 100644 --- a/cloudformation/aws-ssm-patchbaseline_rulegroup.go +++ b/cloudformation/resources/aws-ssm-patchbaseline_rulegroup.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSSSMPatchBaseline_RuleGroup AWS CloudFormation Resource (AWS::SSM::PatchBaseline.RuleGroup) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rulegroup.html @@ -10,7 +12,7 @@ type AWSSSMPatchBaseline_RuleGroup struct { PatchRules []AWSSSMPatchBaseline_Rule `json:"PatchRules,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSSSMPatchBaseline_RuleGroup) SetMetadata(metadata map[string]interfac // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMPatchBaseline_RuleGroup) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMPatchBaseline_RuleGroup) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-ssm-resourcedatasync.go b/cloudformation/resources/aws-ssm-resourcedatasync.go similarity index 92% rename from cloudformation/aws-ssm-resourcedatasync.go rename to cloudformation/resources/aws-ssm-resourcedatasync.go index 2745130340..e0298610dd 100644 --- a/cloudformation/aws-ssm-resourcedatasync.go +++ b/cloudformation/resources/aws-ssm-resourcedatasync.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSSSMResourceDataSync AWS CloudFormation Resource (AWS::SSM::ResourceDataSync) @@ -41,7 +42,7 @@ type AWSSSMResourceDataSync struct { SyncName string `json:"SyncName,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -81,7 +82,7 @@ func (r *AWSSSMResourceDataSync) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSSSMResourceDataSync) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSSSMResourceDataSync) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -92,9 +93,9 @@ func (r AWSSSMResourceDataSync) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-stepfunctions-activity.go b/cloudformation/resources/aws-stepfunctions-activity.go similarity index 90% rename from cloudformation/aws-stepfunctions-activity.go rename to cloudformation/resources/aws-stepfunctions-activity.go index 0d9402cc01..1d22112f6f 100644 --- a/cloudformation/aws-stepfunctions-activity.go +++ b/cloudformation/resources/aws-stepfunctions-activity.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSStepFunctionsActivity AWS CloudFormation Resource (AWS::StepFunctions::Activity) @@ -21,7 +22,7 @@ type AWSStepFunctionsActivity struct { Tags []AWSStepFunctionsActivity_TagsEntry `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSStepFunctionsActivity) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSStepFunctionsActivity) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSStepFunctionsActivity) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSStepFunctionsActivity) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-stepfunctions-activity_tagsentry.go b/cloudformation/resources/aws-stepfunctions-activity_tagsentry.go similarity index 94% rename from cloudformation/aws-stepfunctions-activity_tagsentry.go rename to cloudformation/resources/aws-stepfunctions-activity_tagsentry.go index bc4731497f..5c368d8688 100644 --- a/cloudformation/aws-stepfunctions-activity_tagsentry.go +++ b/cloudformation/resources/aws-stepfunctions-activity_tagsentry.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSStepFunctionsActivity_TagsEntry AWS CloudFormation Resource (AWS::StepFunctions::Activity.TagsEntry) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-activity-tagsentry.html @@ -15,7 +17,7 @@ type AWSStepFunctionsActivity_TagsEntry struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSStepFunctionsActivity_TagsEntry) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSStepFunctionsActivity_TagsEntry) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSStepFunctionsActivity_TagsEntry) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-stepfunctions-statemachine.go b/cloudformation/resources/aws-stepfunctions-statemachine.go similarity index 93% rename from cloudformation/aws-stepfunctions-statemachine.go rename to cloudformation/resources/aws-stepfunctions-statemachine.go index 748ef1a84f..a235497702 100644 --- a/cloudformation/aws-stepfunctions-statemachine.go +++ b/cloudformation/resources/aws-stepfunctions-statemachine.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSStepFunctionsStateMachine AWS CloudFormation Resource (AWS::StepFunctions::StateMachine) @@ -31,7 +32,7 @@ type AWSStepFunctionsStateMachine struct { Tags []AWSStepFunctionsStateMachine_TagsEntry `json:"Tags,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSStepFunctionsStateMachine) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSStepFunctionsStateMachine) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSStepFunctionsStateMachine) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSStepFunctionsStateMachine) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-stepfunctions-statemachine_tagsentry.go b/cloudformation/resources/aws-stepfunctions-statemachine_tagsentry.go similarity index 94% rename from cloudformation/aws-stepfunctions-statemachine_tagsentry.go rename to cloudformation/resources/aws-stepfunctions-statemachine_tagsentry.go index b35546c921..c8e0771a88 100644 --- a/cloudformation/aws-stepfunctions-statemachine_tagsentry.go +++ b/cloudformation/resources/aws-stepfunctions-statemachine_tagsentry.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSStepFunctionsStateMachine_TagsEntry AWS CloudFormation Resource (AWS::StepFunctions::StateMachine.TagsEntry) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-tagsentry.html @@ -15,7 +17,7 @@ type AWSStepFunctionsStateMachine_TagsEntry struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSStepFunctionsStateMachine_TagsEntry) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSStepFunctionsStateMachine_TagsEntry) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSStepFunctionsStateMachine_TagsEntry) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-waf-bytematchset.go b/cloudformation/resources/aws-waf-bytematchset.go similarity index 90% rename from cloudformation/aws-waf-bytematchset.go rename to cloudformation/resources/aws-waf-bytematchset.go index ba7938db10..f03799f51c 100644 --- a/cloudformation/aws-waf-bytematchset.go +++ b/cloudformation/resources/aws-waf-bytematchset.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSWAFByteMatchSet AWS CloudFormation Resource (AWS::WAF::ByteMatchSet) @@ -21,7 +22,7 @@ type AWSWAFByteMatchSet struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSWAFByteMatchSet) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFByteMatchSet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFByteMatchSet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSWAFByteMatchSet) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-waf-bytematchset_bytematchtuple.go b/cloudformation/resources/aws-waf-bytematchset_bytematchtuple.go similarity index 95% rename from cloudformation/aws-waf-bytematchset_bytematchtuple.go rename to cloudformation/resources/aws-waf-bytematchset_bytematchtuple.go index 0a52c252bf..2a8e6ef670 100644 --- a/cloudformation/aws-waf-bytematchset_bytematchtuple.go +++ b/cloudformation/resources/aws-waf-bytematchset_bytematchtuple.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFByteMatchSet_ByteMatchTuple AWS CloudFormation Resource (AWS::WAF::ByteMatchSet.ByteMatchTuple) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples.html @@ -30,7 +32,7 @@ type AWSWAFByteMatchSet_ByteMatchTuple struct { TextTransformation string `json:"TextTransformation,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSWAFByteMatchSet_ByteMatchTuple) SetMetadata(metadata map[string]inte // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFByteMatchSet_ByteMatchTuple) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFByteMatchSet_ByteMatchTuple) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-waf-bytematchset_fieldtomatch.go b/cloudformation/resources/aws-waf-bytematchset_fieldtomatch.go similarity index 94% rename from cloudformation/aws-waf-bytematchset_fieldtomatch.go rename to cloudformation/resources/aws-waf-bytematchset_fieldtomatch.go index a60b0a0e4c..53893e8d02 100644 --- a/cloudformation/aws-waf-bytematchset_fieldtomatch.go +++ b/cloudformation/resources/aws-waf-bytematchset_fieldtomatch.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFByteMatchSet_FieldToMatch AWS CloudFormation Resource (AWS::WAF::ByteMatchSet.FieldToMatch) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples-fieldtomatch.html @@ -15,7 +17,7 @@ type AWSWAFByteMatchSet_FieldToMatch struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSWAFByteMatchSet_FieldToMatch) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFByteMatchSet_FieldToMatch) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFByteMatchSet_FieldToMatch) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-waf-ipset.go b/cloudformation/resources/aws-waf-ipset.go similarity index 90% rename from cloudformation/aws-waf-ipset.go rename to cloudformation/resources/aws-waf-ipset.go index 99145793c9..9810026662 100644 --- a/cloudformation/aws-waf-ipset.go +++ b/cloudformation/resources/aws-waf-ipset.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSWAFIPSet AWS CloudFormation Resource (AWS::WAF::IPSet) @@ -21,7 +22,7 @@ type AWSWAFIPSet struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSWAFIPSet) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFIPSet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFIPSet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSWAFIPSet) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-waf-ipset_ipsetdescriptor.go b/cloudformation/resources/aws-waf-ipset_ipsetdescriptor.go similarity index 92% rename from cloudformation/aws-waf-ipset_ipsetdescriptor.go rename to cloudformation/resources/aws-waf-ipset_ipsetdescriptor.go index fa999010b5..3b9b8342ed 100644 --- a/cloudformation/aws-waf-ipset_ipsetdescriptor.go +++ b/cloudformation/resources/aws-waf-ipset_ipsetdescriptor.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFIPSet_IPSetDescriptor AWS CloudFormation Resource (AWS::WAF::IPSet.IPSetDescriptor) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-ipset-ipsetdescriptors.html @@ -15,7 +17,7 @@ type AWSWAFIPSet_IPSetDescriptor struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSWAFIPSet_IPSetDescriptor) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFIPSet_IPSetDescriptor) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFIPSet_IPSetDescriptor) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-waf-rule.go b/cloudformation/resources/aws-waf-rule.go similarity index 90% rename from cloudformation/aws-waf-rule.go rename to cloudformation/resources/aws-waf-rule.go index e792dca1ee..9376841b2d 100644 --- a/cloudformation/aws-waf-rule.go +++ b/cloudformation/resources/aws-waf-rule.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSWAFRule AWS CloudFormation Resource (AWS::WAF::Rule) @@ -26,7 +27,7 @@ type AWSWAFRule struct { Predicates []AWSWAFRule_Predicate `json:"Predicates,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSWAFRule) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSWAFRule) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-waf-rule_predicate.go b/cloudformation/resources/aws-waf-rule_predicate.go similarity index 92% rename from cloudformation/aws-waf-rule_predicate.go rename to cloudformation/resources/aws-waf-rule_predicate.go index 727df726c2..6d98134fcd 100644 --- a/cloudformation/aws-waf-rule_predicate.go +++ b/cloudformation/resources/aws-waf-rule_predicate.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFRule_Predicate AWS CloudFormation Resource (AWS::WAF::Rule.Predicate) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-rule-predicates.html @@ -20,7 +22,7 @@ type AWSWAFRule_Predicate struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSWAFRule_Predicate) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFRule_Predicate) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFRule_Predicate) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-waf-sizeconstraintset.go b/cloudformation/resources/aws-waf-sizeconstraintset.go similarity index 90% rename from cloudformation/aws-waf-sizeconstraintset.go rename to cloudformation/resources/aws-waf-sizeconstraintset.go index 55d1d0da9f..66c77756fc 100644 --- a/cloudformation/aws-waf-sizeconstraintset.go +++ b/cloudformation/resources/aws-waf-sizeconstraintset.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSWAFSizeConstraintSet AWS CloudFormation Resource (AWS::WAF::SizeConstraintSet) @@ -21,7 +22,7 @@ type AWSWAFSizeConstraintSet struct { SizeConstraints []AWSWAFSizeConstraintSet_SizeConstraint `json:"SizeConstraints,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSWAFSizeConstraintSet) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFSizeConstraintSet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFSizeConstraintSet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSWAFSizeConstraintSet) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-waf-sizeconstraintset_fieldtomatch.go b/cloudformation/resources/aws-waf-sizeconstraintset_fieldtomatch.go similarity index 94% rename from cloudformation/aws-waf-sizeconstraintset_fieldtomatch.go rename to cloudformation/resources/aws-waf-sizeconstraintset_fieldtomatch.go index ab8a017192..dbcd8441d3 100644 --- a/cloudformation/aws-waf-sizeconstraintset_fieldtomatch.go +++ b/cloudformation/resources/aws-waf-sizeconstraintset_fieldtomatch.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFSizeConstraintSet_FieldToMatch AWS CloudFormation Resource (AWS::WAF::SizeConstraintSet.FieldToMatch) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint-fieldtomatch.html @@ -15,7 +17,7 @@ type AWSWAFSizeConstraintSet_FieldToMatch struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSWAFSizeConstraintSet_FieldToMatch) SetMetadata(metadata map[string]i // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFSizeConstraintSet_FieldToMatch) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFSizeConstraintSet_FieldToMatch) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-waf-sizeconstraintset_sizeconstraint.go b/cloudformation/resources/aws-waf-sizeconstraintset_sizeconstraint.go similarity index 95% rename from cloudformation/aws-waf-sizeconstraintset_sizeconstraint.go rename to cloudformation/resources/aws-waf-sizeconstraintset_sizeconstraint.go index c40204828b..6a7c0839ad 100644 --- a/cloudformation/aws-waf-sizeconstraintset_sizeconstraint.go +++ b/cloudformation/resources/aws-waf-sizeconstraintset_sizeconstraint.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFSizeConstraintSet_SizeConstraint AWS CloudFormation Resource (AWS::WAF::SizeConstraintSet.SizeConstraint) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint.html @@ -25,7 +27,7 @@ type AWSWAFSizeConstraintSet_SizeConstraint struct { TextTransformation string `json:"TextTransformation,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSWAFSizeConstraintSet_SizeConstraint) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFSizeConstraintSet_SizeConstraint) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFSizeConstraintSet_SizeConstraint) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-waf-sqlinjectionmatchset.go b/cloudformation/resources/aws-waf-sqlinjectionmatchset.go similarity index 90% rename from cloudformation/aws-waf-sqlinjectionmatchset.go rename to cloudformation/resources/aws-waf-sqlinjectionmatchset.go index 5a40bdd5f6..ec7639e5fb 100644 --- a/cloudformation/aws-waf-sqlinjectionmatchset.go +++ b/cloudformation/resources/aws-waf-sqlinjectionmatchset.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSWAFSqlInjectionMatchSet AWS CloudFormation Resource (AWS::WAF::SqlInjectionMatchSet) @@ -21,7 +22,7 @@ type AWSWAFSqlInjectionMatchSet struct { SqlInjectionMatchTuples []AWSWAFSqlInjectionMatchSet_SqlInjectionMatchTuple `json:"SqlInjectionMatchTuples,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSWAFSqlInjectionMatchSet) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFSqlInjectionMatchSet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFSqlInjectionMatchSet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSWAFSqlInjectionMatchSet) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-waf-sqlinjectionmatchset_fieldtomatch.go b/cloudformation/resources/aws-waf-sqlinjectionmatchset_fieldtomatch.go similarity index 94% rename from cloudformation/aws-waf-sqlinjectionmatchset_fieldtomatch.go rename to cloudformation/resources/aws-waf-sqlinjectionmatchset_fieldtomatch.go index e8fa0f765e..3f9e5741ee 100644 --- a/cloudformation/aws-waf-sqlinjectionmatchset_fieldtomatch.go +++ b/cloudformation/resources/aws-waf-sqlinjectionmatchset_fieldtomatch.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFSqlInjectionMatchSet_FieldToMatch AWS CloudFormation Resource (AWS::WAF::SqlInjectionMatchSet.FieldToMatch) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples-fieldtomatch.html @@ -15,7 +17,7 @@ type AWSWAFSqlInjectionMatchSet_FieldToMatch struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSWAFSqlInjectionMatchSet_FieldToMatch) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFSqlInjectionMatchSet_FieldToMatch) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFSqlInjectionMatchSet_FieldToMatch) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-waf-sqlinjectionmatchset_sqlinjectionmatchtuple.go b/cloudformation/resources/aws-waf-sqlinjectionmatchset_sqlinjectionmatchtuple.go similarity index 94% rename from cloudformation/aws-waf-sqlinjectionmatchset_sqlinjectionmatchtuple.go rename to cloudformation/resources/aws-waf-sqlinjectionmatchset_sqlinjectionmatchtuple.go index 27235477da..53efafd640 100644 --- a/cloudformation/aws-waf-sqlinjectionmatchset_sqlinjectionmatchtuple.go +++ b/cloudformation/resources/aws-waf-sqlinjectionmatchset_sqlinjectionmatchtuple.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFSqlInjectionMatchSet_SqlInjectionMatchTuple AWS CloudFormation Resource (AWS::WAF::SqlInjectionMatchSet.SqlInjectionMatchTuple) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sqlinjectionmatchset-sqlinjectionmatchtuples.html @@ -15,7 +17,7 @@ type AWSWAFSqlInjectionMatchSet_SqlInjectionMatchTuple struct { TextTransformation string `json:"TextTransformation,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSWAFSqlInjectionMatchSet_SqlInjectionMatchTuple) SetMetadata(metadata // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFSqlInjectionMatchSet_SqlInjectionMatchTuple) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFSqlInjectionMatchSet_SqlInjectionMatchTuple) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-waf-webacl.go b/cloudformation/resources/aws-waf-webacl.go similarity index 91% rename from cloudformation/aws-waf-webacl.go rename to cloudformation/resources/aws-waf-webacl.go index 2a52bb77ff..089424e9a9 100644 --- a/cloudformation/aws-waf-webacl.go +++ b/cloudformation/resources/aws-waf-webacl.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSWAFWebACL AWS CloudFormation Resource (AWS::WAF::WebACL) @@ -31,7 +32,7 @@ type AWSWAFWebACL struct { Rules []AWSWAFWebACL_ActivatedRule `json:"Rules,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSWAFWebACL) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFWebACL) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFWebACL) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSWAFWebACL) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-waf-webacl_activatedrule.go b/cloudformation/resources/aws-waf-webacl_activatedrule.go similarity index 92% rename from cloudformation/aws-waf-webacl_activatedrule.go rename to cloudformation/resources/aws-waf-webacl_activatedrule.go index 2d1af9e6d1..86231ea544 100644 --- a/cloudformation/aws-waf-webacl_activatedrule.go +++ b/cloudformation/resources/aws-waf-webacl_activatedrule.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFWebACL_ActivatedRule AWS CloudFormation Resource (AWS::WAF::WebACL.ActivatedRule) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-webacl-rules.html @@ -20,7 +22,7 @@ type AWSWAFWebACL_ActivatedRule struct { RuleId string `json:"RuleId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSWAFWebACL_ActivatedRule) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFWebACL_ActivatedRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFWebACL_ActivatedRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-waf-webacl_wafaction.go b/cloudformation/resources/aws-waf-webacl_wafaction.go similarity index 91% rename from cloudformation/aws-waf-webacl_wafaction.go rename to cloudformation/resources/aws-waf-webacl_wafaction.go index 50ec7ba237..a43ae866f1 100644 --- a/cloudformation/aws-waf-webacl_wafaction.go +++ b/cloudformation/resources/aws-waf-webacl_wafaction.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFWebACL_WafAction AWS CloudFormation Resource (AWS::WAF::WebACL.WafAction) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-webacl-action.html @@ -10,7 +12,7 @@ type AWSWAFWebACL_WafAction struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSWAFWebACL_WafAction) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFWebACL_WafAction) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFWebACL_WafAction) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-waf-xssmatchset.go b/cloudformation/resources/aws-waf-xssmatchset.go similarity index 90% rename from cloudformation/aws-waf-xssmatchset.go rename to cloudformation/resources/aws-waf-xssmatchset.go index f775dbb608..deab7ca80b 100644 --- a/cloudformation/aws-waf-xssmatchset.go +++ b/cloudformation/resources/aws-waf-xssmatchset.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSWAFXssMatchSet AWS CloudFormation Resource (AWS::WAF::XssMatchSet) @@ -21,7 +22,7 @@ type AWSWAFXssMatchSet struct { XssMatchTuples []AWSWAFXssMatchSet_XssMatchTuple `json:"XssMatchTuples,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSWAFXssMatchSet) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFXssMatchSet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFXssMatchSet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSWAFXssMatchSet) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-waf-xssmatchset_fieldtomatch.go b/cloudformation/resources/aws-waf-xssmatchset_fieldtomatch.go similarity index 94% rename from cloudformation/aws-waf-xssmatchset_fieldtomatch.go rename to cloudformation/resources/aws-waf-xssmatchset_fieldtomatch.go index 9e7abbacc7..247521be4f 100644 --- a/cloudformation/aws-waf-xssmatchset_fieldtomatch.go +++ b/cloudformation/resources/aws-waf-xssmatchset_fieldtomatch.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFXssMatchSet_FieldToMatch AWS CloudFormation Resource (AWS::WAF::XssMatchSet.FieldToMatch) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-xssmatchset-xssmatchtuple-fieldtomatch.html @@ -15,7 +17,7 @@ type AWSWAFXssMatchSet_FieldToMatch struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSWAFXssMatchSet_FieldToMatch) SetMetadata(metadata map[string]interfa // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFXssMatchSet_FieldToMatch) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFXssMatchSet_FieldToMatch) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-waf-xssmatchset_xssmatchtuple.go b/cloudformation/resources/aws-waf-xssmatchset_xssmatchtuple.go similarity index 94% rename from cloudformation/aws-waf-xssmatchset_xssmatchtuple.go rename to cloudformation/resources/aws-waf-xssmatchset_xssmatchtuple.go index e1b65a5d08..cfab9bdcdc 100644 --- a/cloudformation/aws-waf-xssmatchset_xssmatchtuple.go +++ b/cloudformation/resources/aws-waf-xssmatchset_xssmatchtuple.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFXssMatchSet_XssMatchTuple AWS CloudFormation Resource (AWS::WAF::XssMatchSet.XssMatchTuple) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-xssmatchset-xssmatchtuple.html @@ -15,7 +17,7 @@ type AWSWAFXssMatchSet_XssMatchTuple struct { TextTransformation string `json:"TextTransformation,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSWAFXssMatchSet_XssMatchTuple) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFXssMatchSet_XssMatchTuple) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFXssMatchSet_XssMatchTuple) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-wafregional-bytematchset.go b/cloudformation/resources/aws-wafregional-bytematchset.go similarity index 90% rename from cloudformation/aws-wafregional-bytematchset.go rename to cloudformation/resources/aws-wafregional-bytematchset.go index 5eca8d29c7..9f76737f02 100644 --- a/cloudformation/aws-wafregional-bytematchset.go +++ b/cloudformation/resources/aws-wafregional-bytematchset.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSWAFRegionalByteMatchSet AWS CloudFormation Resource (AWS::WAFRegional::ByteMatchSet) @@ -21,7 +22,7 @@ type AWSWAFRegionalByteMatchSet struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSWAFRegionalByteMatchSet) SetMetadata(metadata map[string]interface{} // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFRegionalByteMatchSet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFRegionalByteMatchSet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSWAFRegionalByteMatchSet) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-wafregional-bytematchset_bytematchtuple.go b/cloudformation/resources/aws-wafregional-bytematchset_bytematchtuple.go similarity index 95% rename from cloudformation/aws-wafregional-bytematchset_bytematchtuple.go rename to cloudformation/resources/aws-wafregional-bytematchset_bytematchtuple.go index f600198af7..4c96da53bc 100644 --- a/cloudformation/aws-wafregional-bytematchset_bytematchtuple.go +++ b/cloudformation/resources/aws-wafregional-bytematchset_bytematchtuple.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFRegionalByteMatchSet_ByteMatchTuple AWS CloudFormation Resource (AWS::WAFRegional::ByteMatchSet.ByteMatchTuple) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-bytematchset-bytematchtuple.html @@ -30,7 +32,7 @@ type AWSWAFRegionalByteMatchSet_ByteMatchTuple struct { TextTransformation string `json:"TextTransformation,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSWAFRegionalByteMatchSet_ByteMatchTuple) SetMetadata(metadata map[str // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFRegionalByteMatchSet_ByteMatchTuple) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFRegionalByteMatchSet_ByteMatchTuple) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-wafregional-bytematchset_fieldtomatch.go b/cloudformation/resources/aws-wafregional-bytematchset_fieldtomatch.go similarity index 94% rename from cloudformation/aws-wafregional-bytematchset_fieldtomatch.go rename to cloudformation/resources/aws-wafregional-bytematchset_fieldtomatch.go index 38c567aac5..a3b69d130a 100644 --- a/cloudformation/aws-wafregional-bytematchset_fieldtomatch.go +++ b/cloudformation/resources/aws-wafregional-bytematchset_fieldtomatch.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFRegionalByteMatchSet_FieldToMatch AWS CloudFormation Resource (AWS::WAFRegional::ByteMatchSet.FieldToMatch) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-bytematchset-fieldtomatch.html @@ -15,7 +17,7 @@ type AWSWAFRegionalByteMatchSet_FieldToMatch struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSWAFRegionalByteMatchSet_FieldToMatch) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFRegionalByteMatchSet_FieldToMatch) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFRegionalByteMatchSet_FieldToMatch) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-wafregional-ipset.go b/cloudformation/resources/aws-wafregional-ipset.go similarity index 90% rename from cloudformation/aws-wafregional-ipset.go rename to cloudformation/resources/aws-wafregional-ipset.go index fde487e499..5189928431 100644 --- a/cloudformation/aws-wafregional-ipset.go +++ b/cloudformation/resources/aws-wafregional-ipset.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSWAFRegionalIPSet AWS CloudFormation Resource (AWS::WAFRegional::IPSet) @@ -21,7 +22,7 @@ type AWSWAFRegionalIPSet struct { Name string `json:"Name,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSWAFRegionalIPSet) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFRegionalIPSet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFRegionalIPSet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSWAFRegionalIPSet) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-wafregional-ipset_ipsetdescriptor.go b/cloudformation/resources/aws-wafregional-ipset_ipsetdescriptor.go similarity index 94% rename from cloudformation/aws-wafregional-ipset_ipsetdescriptor.go rename to cloudformation/resources/aws-wafregional-ipset_ipsetdescriptor.go index 03e227ca51..57c7db9e4b 100644 --- a/cloudformation/aws-wafregional-ipset_ipsetdescriptor.go +++ b/cloudformation/resources/aws-wafregional-ipset_ipsetdescriptor.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFRegionalIPSet_IPSetDescriptor AWS CloudFormation Resource (AWS::WAFRegional::IPSet.IPSetDescriptor) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-ipset-ipsetdescriptor.html @@ -15,7 +17,7 @@ type AWSWAFRegionalIPSet_IPSetDescriptor struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSWAFRegionalIPSet_IPSetDescriptor) SetMetadata(metadata map[string]in // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFRegionalIPSet_IPSetDescriptor) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFRegionalIPSet_IPSetDescriptor) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-wafregional-rule.go b/cloudformation/resources/aws-wafregional-rule.go similarity index 90% rename from cloudformation/aws-wafregional-rule.go rename to cloudformation/resources/aws-wafregional-rule.go index 2b396f3257..845a367081 100644 --- a/cloudformation/aws-wafregional-rule.go +++ b/cloudformation/resources/aws-wafregional-rule.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSWAFRegionalRule AWS CloudFormation Resource (AWS::WAFRegional::Rule) @@ -26,7 +27,7 @@ type AWSWAFRegionalRule struct { Predicates []AWSWAFRegionalRule_Predicate `json:"Predicates,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -66,7 +67,7 @@ func (r *AWSWAFRegionalRule) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFRegionalRule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFRegionalRule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -77,9 +78,9 @@ func (r AWSWAFRegionalRule) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-wafregional-rule_predicate.go b/cloudformation/resources/aws-wafregional-rule_predicate.go similarity index 94% rename from cloudformation/aws-wafregional-rule_predicate.go rename to cloudformation/resources/aws-wafregional-rule_predicate.go index 42b32d5035..db64c5e6f1 100644 --- a/cloudformation/aws-wafregional-rule_predicate.go +++ b/cloudformation/resources/aws-wafregional-rule_predicate.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFRegionalRule_Predicate AWS CloudFormation Resource (AWS::WAFRegional::Rule.Predicate) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-rule-predicate.html @@ -20,7 +22,7 @@ type AWSWAFRegionalRule_Predicate struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSWAFRegionalRule_Predicate) SetMetadata(metadata map[string]interface // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFRegionalRule_Predicate) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFRegionalRule_Predicate) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-wafregional-sizeconstraintset.go b/cloudformation/resources/aws-wafregional-sizeconstraintset.go similarity index 92% rename from cloudformation/aws-wafregional-sizeconstraintset.go rename to cloudformation/resources/aws-wafregional-sizeconstraintset.go index 7e2bbb3d36..780d07b61f 100644 --- a/cloudformation/aws-wafregional-sizeconstraintset.go +++ b/cloudformation/resources/aws-wafregional-sizeconstraintset.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSWAFRegionalSizeConstraintSet AWS CloudFormation Resource (AWS::WAFRegional::SizeConstraintSet) @@ -21,7 +22,7 @@ type AWSWAFRegionalSizeConstraintSet struct { SizeConstraints []AWSWAFRegionalSizeConstraintSet_SizeConstraint `json:"SizeConstraints,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSWAFRegionalSizeConstraintSet) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFRegionalSizeConstraintSet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFRegionalSizeConstraintSet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSWAFRegionalSizeConstraintSet) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-wafregional-sizeconstraintset_fieldtomatch.go b/cloudformation/resources/aws-wafregional-sizeconstraintset_fieldtomatch.go similarity index 94% rename from cloudformation/aws-wafregional-sizeconstraintset_fieldtomatch.go rename to cloudformation/resources/aws-wafregional-sizeconstraintset_fieldtomatch.go index a4efc8fd5d..4f423af2d9 100644 --- a/cloudformation/aws-wafregional-sizeconstraintset_fieldtomatch.go +++ b/cloudformation/resources/aws-wafregional-sizeconstraintset_fieldtomatch.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFRegionalSizeConstraintSet_FieldToMatch AWS CloudFormation Resource (AWS::WAFRegional::SizeConstraintSet.FieldToMatch) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sizeconstraintset-fieldtomatch.html @@ -15,7 +17,7 @@ type AWSWAFRegionalSizeConstraintSet_FieldToMatch struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSWAFRegionalSizeConstraintSet_FieldToMatch) SetMetadata(metadata map[ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFRegionalSizeConstraintSet_FieldToMatch) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFRegionalSizeConstraintSet_FieldToMatch) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-wafregional-sizeconstraintset_sizeconstraint.go b/cloudformation/resources/aws-wafregional-sizeconstraintset_sizeconstraint.go similarity index 95% rename from cloudformation/aws-wafregional-sizeconstraintset_sizeconstraint.go rename to cloudformation/resources/aws-wafregional-sizeconstraintset_sizeconstraint.go index 466ca778d0..e24280ef81 100644 --- a/cloudformation/aws-wafregional-sizeconstraintset_sizeconstraint.go +++ b/cloudformation/resources/aws-wafregional-sizeconstraintset_sizeconstraint.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFRegionalSizeConstraintSet_SizeConstraint AWS CloudFormation Resource (AWS::WAFRegional::SizeConstraintSet.SizeConstraint) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sizeconstraintset-sizeconstraint.html @@ -25,7 +27,7 @@ type AWSWAFRegionalSizeConstraintSet_SizeConstraint struct { TextTransformation string `json:"TextTransformation,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -65,6 +67,6 @@ func (r *AWSWAFRegionalSizeConstraintSet_SizeConstraint) SetMetadata(metadata ma // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFRegionalSizeConstraintSet_SizeConstraint) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFRegionalSizeConstraintSet_SizeConstraint) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-wafregional-sqlinjectionmatchset.go b/cloudformation/resources/aws-wafregional-sqlinjectionmatchset.go similarity index 92% rename from cloudformation/aws-wafregional-sqlinjectionmatchset.go rename to cloudformation/resources/aws-wafregional-sqlinjectionmatchset.go index 0d2a4433f6..f93fdeeb68 100644 --- a/cloudformation/aws-wafregional-sqlinjectionmatchset.go +++ b/cloudformation/resources/aws-wafregional-sqlinjectionmatchset.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSWAFRegionalSqlInjectionMatchSet AWS CloudFormation Resource (AWS::WAFRegional::SqlInjectionMatchSet) @@ -21,7 +22,7 @@ type AWSWAFRegionalSqlInjectionMatchSet struct { SqlInjectionMatchTuples []AWSWAFRegionalSqlInjectionMatchSet_SqlInjectionMatchTuple `json:"SqlInjectionMatchTuples,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSWAFRegionalSqlInjectionMatchSet) SetMetadata(metadata map[string]int // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFRegionalSqlInjectionMatchSet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFRegionalSqlInjectionMatchSet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSWAFRegionalSqlInjectionMatchSet) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-wafregional-sqlinjectionmatchset_fieldtomatch.go b/cloudformation/resources/aws-wafregional-sqlinjectionmatchset_fieldtomatch.go similarity index 94% rename from cloudformation/aws-wafregional-sqlinjectionmatchset_fieldtomatch.go rename to cloudformation/resources/aws-wafregional-sqlinjectionmatchset_fieldtomatch.go index b562c974c6..db44ec0aff 100644 --- a/cloudformation/aws-wafregional-sqlinjectionmatchset_fieldtomatch.go +++ b/cloudformation/resources/aws-wafregional-sqlinjectionmatchset_fieldtomatch.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFRegionalSqlInjectionMatchSet_FieldToMatch AWS CloudFormation Resource (AWS::WAFRegional::SqlInjectionMatchSet.FieldToMatch) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sqlinjectionmatchset-fieldtomatch.html @@ -15,7 +17,7 @@ type AWSWAFRegionalSqlInjectionMatchSet_FieldToMatch struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSWAFRegionalSqlInjectionMatchSet_FieldToMatch) SetMetadata(metadata m // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFRegionalSqlInjectionMatchSet_FieldToMatch) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFRegionalSqlInjectionMatchSet_FieldToMatch) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-wafregional-sqlinjectionmatchset_sqlinjectionmatchtuple.go b/cloudformation/resources/aws-wafregional-sqlinjectionmatchset_sqlinjectionmatchtuple.go similarity index 94% rename from cloudformation/aws-wafregional-sqlinjectionmatchset_sqlinjectionmatchtuple.go rename to cloudformation/resources/aws-wafregional-sqlinjectionmatchset_sqlinjectionmatchtuple.go index 56b7500a62..5d719a5a18 100644 --- a/cloudformation/aws-wafregional-sqlinjectionmatchset_sqlinjectionmatchtuple.go +++ b/cloudformation/resources/aws-wafregional-sqlinjectionmatchset_sqlinjectionmatchtuple.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFRegionalSqlInjectionMatchSet_SqlInjectionMatchTuple AWS CloudFormation Resource (AWS::WAFRegional::SqlInjectionMatchSet.SqlInjectionMatchTuple) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sqlinjectionmatchset-sqlinjectionmatchtuple.html @@ -15,7 +17,7 @@ type AWSWAFRegionalSqlInjectionMatchSet_SqlInjectionMatchTuple struct { TextTransformation string `json:"TextTransformation,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSWAFRegionalSqlInjectionMatchSet_SqlInjectionMatchTuple) SetMetadata( // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFRegionalSqlInjectionMatchSet_SqlInjectionMatchTuple) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFRegionalSqlInjectionMatchSet_SqlInjectionMatchTuple) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-wafregional-webacl.go b/cloudformation/resources/aws-wafregional-webacl.go similarity index 91% rename from cloudformation/aws-wafregional-webacl.go rename to cloudformation/resources/aws-wafregional-webacl.go index f3c0b4e843..900f8f2daf 100644 --- a/cloudformation/aws-wafregional-webacl.go +++ b/cloudformation/resources/aws-wafregional-webacl.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSWAFRegionalWebACL AWS CloudFormation Resource (AWS::WAFRegional::WebACL) @@ -31,7 +32,7 @@ type AWSWAFRegionalWebACL struct { Rules []AWSWAFRegionalWebACL_Rule `json:"Rules,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -71,7 +72,7 @@ func (r *AWSWAFRegionalWebACL) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFRegionalWebACL) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFRegionalWebACL) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -82,9 +83,9 @@ func (r AWSWAFRegionalWebACL) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-wafregional-webacl_action.go b/cloudformation/resources/aws-wafregional-webacl_action.go similarity index 91% rename from cloudformation/aws-wafregional-webacl_action.go rename to cloudformation/resources/aws-wafregional-webacl_action.go index 57fe7d3a2c..8ac4388575 100644 --- a/cloudformation/aws-wafregional-webacl_action.go +++ b/cloudformation/resources/aws-wafregional-webacl_action.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFRegionalWebACL_Action AWS CloudFormation Resource (AWS::WAFRegional::WebACL.Action) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-webacl-action.html @@ -10,7 +12,7 @@ type AWSWAFRegionalWebACL_Action struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -50,6 +52,6 @@ func (r *AWSWAFRegionalWebACL_Action) SetMetadata(metadata map[string]interface{ // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFRegionalWebACL_Action) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFRegionalWebACL_Action) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-wafregional-webacl_rule.go b/cloudformation/resources/aws-wafregional-webacl_rule.go similarity index 92% rename from cloudformation/aws-wafregional-webacl_rule.go rename to cloudformation/resources/aws-wafregional-webacl_rule.go index d68789c781..a08c54ca04 100644 --- a/cloudformation/aws-wafregional-webacl_rule.go +++ b/cloudformation/resources/aws-wafregional-webacl_rule.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFRegionalWebACL_Rule AWS CloudFormation Resource (AWS::WAFRegional::WebACL.Rule) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-webacl-rule.html @@ -20,7 +22,7 @@ type AWSWAFRegionalWebACL_Rule struct { RuleId string `json:"RuleId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -60,6 +62,6 @@ func (r *AWSWAFRegionalWebACL_Rule) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFRegionalWebACL_Rule) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFRegionalWebACL_Rule) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-wafregional-webaclassociation.go b/cloudformation/resources/aws-wafregional-webaclassociation.go similarity index 92% rename from cloudformation/aws-wafregional-webaclassociation.go rename to cloudformation/resources/aws-wafregional-webaclassociation.go index aff7410980..2d7801375e 100644 --- a/cloudformation/aws-wafregional-webaclassociation.go +++ b/cloudformation/resources/aws-wafregional-webaclassociation.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSWAFRegionalWebACLAssociation AWS CloudFormation Resource (AWS::WAFRegional::WebACLAssociation) @@ -21,7 +22,7 @@ type AWSWAFRegionalWebACLAssociation struct { WebACLId string `json:"WebACLId,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSWAFRegionalWebACLAssociation) SetMetadata(metadata map[string]interf // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFRegionalWebACLAssociation) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFRegionalWebACLAssociation) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSWAFRegionalWebACLAssociation) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-wafregional-xssmatchset.go b/cloudformation/resources/aws-wafregional-xssmatchset.go similarity index 90% rename from cloudformation/aws-wafregional-xssmatchset.go rename to cloudformation/resources/aws-wafregional-xssmatchset.go index 4345852ad9..937c28c04d 100644 --- a/cloudformation/aws-wafregional-xssmatchset.go +++ b/cloudformation/resources/aws-wafregional-xssmatchset.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSWAFRegionalXssMatchSet AWS CloudFormation Resource (AWS::WAFRegional::XssMatchSet) @@ -21,7 +22,7 @@ type AWSWAFRegionalXssMatchSet struct { XssMatchTuples []AWSWAFRegionalXssMatchSet_XssMatchTuple `json:"XssMatchTuples,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,7 +62,7 @@ func (r *AWSWAFRegionalXssMatchSet) SetMetadata(metadata map[string]interface{}) // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFRegionalXssMatchSet) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFRegionalXssMatchSet) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -72,9 +73,9 @@ func (r AWSWAFRegionalXssMatchSet) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-wafregional-xssmatchset_fieldtomatch.go b/cloudformation/resources/aws-wafregional-xssmatchset_fieldtomatch.go similarity index 94% rename from cloudformation/aws-wafregional-xssmatchset_fieldtomatch.go rename to cloudformation/resources/aws-wafregional-xssmatchset_fieldtomatch.go index a4cf7a1d41..a88c19df10 100644 --- a/cloudformation/aws-wafregional-xssmatchset_fieldtomatch.go +++ b/cloudformation/resources/aws-wafregional-xssmatchset_fieldtomatch.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFRegionalXssMatchSet_FieldToMatch AWS CloudFormation Resource (AWS::WAFRegional::XssMatchSet.FieldToMatch) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-xssmatchset-fieldtomatch.html @@ -15,7 +17,7 @@ type AWSWAFRegionalXssMatchSet_FieldToMatch struct { Type string `json:"Type,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSWAFRegionalXssMatchSet_FieldToMatch) SetMetadata(metadata map[string // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFRegionalXssMatchSet_FieldToMatch) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFRegionalXssMatchSet_FieldToMatch) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-wafregional-xssmatchset_xssmatchtuple.go b/cloudformation/resources/aws-wafregional-xssmatchset_xssmatchtuple.go similarity index 94% rename from cloudformation/aws-wafregional-xssmatchset_xssmatchtuple.go rename to cloudformation/resources/aws-wafregional-xssmatchset_xssmatchtuple.go index fda111fb3a..b0b6c4a185 100644 --- a/cloudformation/aws-wafregional-xssmatchset_xssmatchtuple.go +++ b/cloudformation/resources/aws-wafregional-xssmatchset_xssmatchtuple.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWAFRegionalXssMatchSet_XssMatchTuple AWS CloudFormation Resource (AWS::WAFRegional::XssMatchSet.XssMatchTuple) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-xssmatchset-xssmatchtuple.html @@ -15,7 +17,7 @@ type AWSWAFRegionalXssMatchSet_XssMatchTuple struct { TextTransformation string `json:"TextTransformation,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *AWSWAFRegionalXssMatchSet_XssMatchTuple) SetMetadata(metadata map[strin // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWAFRegionalXssMatchSet_XssMatchTuple) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWAFRegionalXssMatchSet_XssMatchTuple) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/aws-workspaces-workspace.go b/cloudformation/resources/aws-workspaces-workspace.go similarity index 93% rename from cloudformation/aws-workspaces-workspace.go rename to cloudformation/resources/aws-workspaces-workspace.go index ea3d9da975..f8a900b9c1 100644 --- a/cloudformation/aws-workspaces-workspace.go +++ b/cloudformation/resources/aws-workspaces-workspace.go @@ -1,9 +1,10 @@ -package cloudformation +package resources import ( "bytes" "encoding/json" "fmt" + "github.com/awslabs/goformation/cloudformation/policies" ) // AWSWorkSpacesWorkspace AWS CloudFormation Resource (AWS::WorkSpaces::Workspace) @@ -51,7 +52,7 @@ type AWSWorkSpacesWorkspace struct { WorkspaceProperties *AWSWorkSpacesWorkspace_WorkspaceProperties `json:"WorkspaceProperties,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -91,7 +92,7 @@ func (r *AWSWorkSpacesWorkspace) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWorkSpacesWorkspace) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWorkSpacesWorkspace) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } @@ -102,9 +103,9 @@ func (r AWSWorkSpacesWorkspace) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Type string Properties Properties - DependsOn []string `json:"DependsOn,omitempty"` - Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/cloudformation/aws-workspaces-workspace_workspaceproperties.go b/cloudformation/resources/aws-workspaces-workspace_workspaceproperties.go similarity index 95% rename from cloudformation/aws-workspaces-workspace_workspaceproperties.go rename to cloudformation/resources/aws-workspaces-workspace_workspaceproperties.go index a5e09cf9e9..6da1bbf522 100644 --- a/cloudformation/aws-workspaces-workspace_workspaceproperties.go +++ b/cloudformation/resources/aws-workspaces-workspace_workspaceproperties.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // AWSWorkSpacesWorkspace_WorkspaceProperties AWS CloudFormation Resource (AWS::WorkSpaces::Workspace.WorkspaceProperties) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspace-workspaceproperties.html @@ -30,7 +32,7 @@ type AWSWorkSpacesWorkspace_WorkspaceProperties struct { UserVolumeSizeGib int `json:"UserVolumeSizeGib,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -70,6 +72,6 @@ func (r *AWSWorkSpacesWorkspace_WorkspaceProperties) SetMetadata(metadata map[st // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *AWSWorkSpacesWorkspace_WorkspaceProperties) SetDeletionPolicy(policy DeletionPolicy) { +func (r *AWSWorkSpacesWorkspace_WorkspaceProperties) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/cloudformation/awsserverlessapi_definitionuri.go b/cloudformation/resources/awsserverlessapi_definitionuri.go similarity index 97% rename from cloudformation/awsserverlessapi_definitionuri.go rename to cloudformation/resources/awsserverlessapi_definitionuri.go index 460b621837..6ed25a14d7 100644 --- a/cloudformation/awsserverlessapi_definitionuri.go +++ b/cloudformation/resources/awsserverlessapi_definitionuri.go @@ -1,4 +1,4 @@ -package cloudformation +package resources import ( "encoding/json" diff --git a/cloudformation/awsserverlessapplication_location.go b/cloudformation/resources/awsserverlessapplication_location.go similarity index 98% rename from cloudformation/awsserverlessapplication_location.go rename to cloudformation/resources/awsserverlessapplication_location.go index b77aec81c2..38ec2a7cd3 100644 --- a/cloudformation/awsserverlessapplication_location.go +++ b/cloudformation/resources/awsserverlessapplication_location.go @@ -1,4 +1,4 @@ -package cloudformation +package resources import ( "encoding/json" diff --git a/cloudformation/awsserverlessfunction_codeuri.go b/cloudformation/resources/awsserverlessfunction_codeuri.go similarity index 98% rename from cloudformation/awsserverlessfunction_codeuri.go rename to cloudformation/resources/awsserverlessfunction_codeuri.go index 305b252102..ee412ecfdd 100644 --- a/cloudformation/awsserverlessfunction_codeuri.go +++ b/cloudformation/resources/awsserverlessfunction_codeuri.go @@ -1,4 +1,4 @@ -package cloudformation +package resources import ( "encoding/json" diff --git a/cloudformation/awsserverlessfunction_events.go b/cloudformation/resources/awsserverlessfunction_events.go similarity index 97% rename from cloudformation/awsserverlessfunction_events.go rename to cloudformation/resources/awsserverlessfunction_events.go index ac221fc498..0d68f84e4e 100644 --- a/cloudformation/awsserverlessfunction_events.go +++ b/cloudformation/resources/awsserverlessfunction_events.go @@ -1,4 +1,4 @@ -package cloudformation +package resources import ( "encoding/json" diff --git a/cloudformation/awsserverlessfunction_policies.go b/cloudformation/resources/awsserverlessfunction_policies.go similarity index 98% rename from cloudformation/awsserverlessfunction_policies.go rename to cloudformation/resources/awsserverlessfunction_policies.go index 3eae426099..d1bb976696 100644 --- a/cloudformation/awsserverlessfunction_policies.go +++ b/cloudformation/resources/awsserverlessfunction_policies.go @@ -1,4 +1,4 @@ -package cloudformation +package resources import ( "encoding/json" diff --git a/cloudformation/awsserverlessfunction_properties.go b/cloudformation/resources/awsserverlessfunction_properties.go similarity index 99% rename from cloudformation/awsserverlessfunction_properties.go rename to cloudformation/resources/awsserverlessfunction_properties.go index 4d221b84c4..2b90913cad 100644 --- a/cloudformation/awsserverlessfunction_properties.go +++ b/cloudformation/resources/awsserverlessfunction_properties.go @@ -1,4 +1,4 @@ -package cloudformation +package resources import ( "encoding/json" diff --git a/cloudformation/tag.go b/cloudformation/resources/tag.go similarity index 92% rename from cloudformation/tag.go rename to cloudformation/resources/tag.go index 5f4db95b45..9bec332ffb 100644 --- a/cloudformation/tag.go +++ b/cloudformation/resources/tag.go @@ -1,4 +1,6 @@ -package cloudformation +package resources + +import "github.com/awslabs/goformation/cloudformation/policies" // Tag AWS CloudFormation Resource (Tag) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-tag.html @@ -15,7 +17,7 @@ type Tag struct { Value string `json:"Value,omitempty"` // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -55,6 +57,6 @@ func (r *Tag) SetMetadata(metadata map[string]interface{}) { // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *Tag) SetDeletionPolicy(policy DeletionPolicy) { +func (r *Tag) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } diff --git a/example/go-to-yaml/main.go b/example/go-to-yaml/main.go index f058eeb6aa..3da9659874 100644 --- a/example/go-to-yaml/main.go +++ b/example/go-to-yaml/main.go @@ -6,6 +6,7 @@ import ( "time" "github.com/awslabs/goformation/cloudformation" + "github.com/awslabs/goformation/cloudformation/resources" ) func main() { @@ -14,12 +15,12 @@ func main() { template := cloudformation.NewTemplate() // Create an Amazon SNS topic, with a unique name based off the current timestamp - template.Resources["MyTopic"] = &cloudformation.AWSSNSTopic{ + template.Resources["MyTopic"] = &resources.AWSSNSTopic{ TopicName: "my-topic-" + strconv.FormatInt(time.Now().Unix(), 10), } // Create a subscription, connected to our topic, that forwards notifications to an email address - template.Resources["MyTopicSubscription"] = &cloudformation.AWSSNSSubscription{ + template.Resources["MyTopicSubscription"] = &resources.AWSSNSSubscription{ TopicArn: cloudformation.Ref("MyTopic"), Protocol: "email", Endpoint: "some.email@example.com", diff --git a/generate/generate.go b/generate/generate.go index 36a09362ab..4d74cfc156 100644 --- a/generate/generate.go +++ b/generate/generate.go @@ -278,7 +278,7 @@ func (rg *ResourceGenerator) generateResources(name string, resource Resource, i } // Check if the file has changed since the last time generate ran - fn := "cloudformation/" + filename(name) + fn := "cloudformation/resources/" + filename(name) current, err := ioutil.ReadFile(fn) if err != nil || bytes.Compare(formatted, current) != 0 { @@ -396,7 +396,7 @@ func generatePolymorphicProperty(name string, property Property) { } // Write the file out - if err := ioutil.WriteFile("cloudformation/"+filename(name), formatted, 0644); err != nil { + if err := ioutil.WriteFile("cloudformation/resources/"+filename(name), formatted, 0644); err != nil { fmt.Printf("Error: Failed to write JSON Schema\n%s\n", err) os.Exit(1) } diff --git a/generate/property_test.go b/generate/property_test.go index 2b055a51f2..677fe94330 100644 --- a/generate/property_test.go +++ b/generate/property_test.go @@ -3,7 +3,7 @@ package main_test import ( "encoding/json" - "github.com/awslabs/goformation/cloudformation" + "github.com/awslabs/goformation/cloudformation/resources" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) @@ -14,7 +14,7 @@ var _ = Describe("Goformation Code Generator", func() { Context("specified as a Go struct", func() { - property := &cloudformation.AWSServerlessFunction_S3Location{ + property := &resources.AWSServerlessFunction_S3Location{ Bucket: "test-bucket", Key: "test-key", Version: 123, @@ -31,13 +31,13 @@ var _ = Describe("Goformation Code Generator", func() { Context("specified as JSON", func() { property := []byte(`{"Bucket":"test-bucket","Key":"test-key","Version":123}`) - expected := &cloudformation.AWSServerlessFunction_S3Location{ + expected := &resources.AWSServerlessFunction_S3Location{ Bucket: "test-bucket", Key: "test-key", Version: 123, } - result := &cloudformation.AWSServerlessFunction_S3Location{} + result := &resources.AWSServerlessFunction_S3Location{} err := json.Unmarshal(property, result) It("should unmarshal to a Go struct successfully", func() { Expect(result).To(Equal(expected)) @@ -55,7 +55,7 @@ var _ = Describe("Goformation Code Generator", func() { Context("specified as a Go struct", func() { value := "test-primitive-value" - property := &cloudformation.AWSServerlessFunction_CodeUri{ + property := &resources.AWSServerlessFunction_CodeUri{ String: &value, } @@ -72,11 +72,11 @@ var _ = Describe("Goformation Code Generator", func() { property := []byte(`"test-primitive-value"`) value := "test-primitive-value" - expected := &cloudformation.AWSServerlessFunction_CodeUri{ + expected := &resources.AWSServerlessFunction_CodeUri{ String: &value, } - result := &cloudformation.AWSServerlessFunction_CodeUri{} + result := &resources.AWSServerlessFunction_CodeUri{} err := json.Unmarshal(property, result) It("should unmarshal to a Go struct successfully", func() { Expect(result).To(Equal(expected)) @@ -91,8 +91,8 @@ var _ = Describe("Goformation Code Generator", func() { Context("specified as a Go struct", func() { - property := &cloudformation.AWSServerlessFunction_CodeUri{ - S3Location: &cloudformation.AWSServerlessFunction_S3Location{ + property := &resources.AWSServerlessFunction_CodeUri{ + S3Location: &resources.AWSServerlessFunction_S3Location{ Bucket: "test-bucket", Key: "test-key", Version: 123, @@ -113,15 +113,15 @@ var _ = Describe("Goformation Code Generator", func() { property := []byte(`{"Bucket":"test-bucket","Key":"test-key","Version":123}`) - expected := &cloudformation.AWSServerlessFunction_CodeUri{ - S3Location: &cloudformation.AWSServerlessFunction_S3Location{ + expected := &resources.AWSServerlessFunction_CodeUri{ + S3Location: &resources.AWSServerlessFunction_S3Location{ Bucket: "test-bucket", Key: "test-key", Version: 123, }, } - result := &cloudformation.AWSServerlessFunction_CodeUri{} + result := &resources.AWSServerlessFunction_CodeUri{} err := json.Unmarshal(property, result) It("should unmarshal to a Go struct successfully", func() { Expect(result).To(Equal(expected)) diff --git a/generate/resource_test.go b/generate/resource_test.go index bf0846d5ea..f10a06be2a 100644 --- a/generate/resource_test.go +++ b/generate/resource_test.go @@ -3,8 +3,7 @@ package main_test import ( "encoding/json" - "github.com/awslabs/goformation/cloudformation" - + "github.com/awslabs/goformation/cloudformation/resources" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) @@ -18,9 +17,9 @@ var _ = Describe("Resource", func() { Context("with a simple primitive used for a polymorphic property", func() { codeuri := "s3://bucket/key" - resource := &cloudformation.AWSServerlessFunction{ + resource := &resources.AWSServerlessFunction{ Runtime: "nodejs6.10", - CodeUri: &cloudformation.AWSServerlessFunction_CodeUri{ + CodeUri: &resources.AWSServerlessFunction_CodeUri{ String: &codeuri, }, } @@ -37,10 +36,10 @@ var _ = Describe("Resource", func() { Context("with a custom type used for a polymorphic property", func() { - resource := &cloudformation.AWSServerlessFunction{ + resource := &resources.AWSServerlessFunction{ Runtime: "nodejs6.10", - CodeUri: &cloudformation.AWSServerlessFunction_CodeUri{ - S3Location: &cloudformation.AWSServerlessFunction_S3Location{ + CodeUri: &resources.AWSServerlessFunction_CodeUri{ + S3Location: &resources.AWSServerlessFunction_S3Location{ Bucket: "test-bucket", Key: "test-key", Version: 123, @@ -68,7 +67,7 @@ var _ = Describe("Resource", func() { Context("with a dependency on another resource", func() { - resource := &cloudformation.AWSEC2Instance{ + resource := &resources.AWSEC2Instance{ ImageId: "ami-0123456789", } resource.SetDependsOn([]string{"MyDependency"}) @@ -85,7 +84,7 @@ var _ = Describe("Resource", func() { Context("with a metadata attribute", func() { - resource := &cloudformation.AWSS3Bucket{ + resource := &resources.AWSS3Bucket{ BucketName: "MyBucket", } resource.SetMetadata(map[string]interface{}{"Object1": "Location1", "Object2": "Location2"}) @@ -107,12 +106,12 @@ var _ = Describe("Resource", func() { Context("with a dependency on another resource", func() { property := []byte(`{"Type":"AWS::EC2::Instance","Properties":{"ImageId":"ami-0123456789"},"DependsOn":["MyDependency"]}`) - expected := &cloudformation.AWSEC2Instance{ + expected := &resources.AWSEC2Instance{ ImageId: "ami-0123456789", } expected.SetDependsOn([]string{"MyDependency"}) - result := &cloudformation.AWSEC2Instance{} + result := &resources.AWSEC2Instance{} err := json.Unmarshal(property, result) It("should unmarshal to a Go struct successfully", func() { Expect(result).To(Equal(expected)) @@ -124,12 +123,12 @@ var _ = Describe("Resource", func() { Context("with a metadata attribute", func() { property := []byte(`{"Type":"AWS::S3::Bucket","Properties":{"BucketName":"MyBucket"},"Metadata":{"Object1":"Location1","Object2":"Location2"}}`) - expected := &cloudformation.AWSS3Bucket{ + expected := &resources.AWSS3Bucket{ BucketName: "MyBucket", } expected.SetMetadata(map[string]interface{}{"Object1": "Location1", "Object2": "Location2"}) - result := &cloudformation.AWSS3Bucket{} + result := &resources.AWSS3Bucket{} err := json.Unmarshal(property, result) It("should unmarshal to a Go struct successfully", func() { Expect(result).To(Equal(expected)) @@ -148,9 +147,9 @@ var _ = Describe("Resource", func() { Context("with a list type", func() { - subproperty := &cloudformation.AWSServerlessFunction_S3Event{ + subproperty := &resources.AWSServerlessFunction_S3Event{ Bucket: "my-bucket", - Events: &cloudformation.AWSServerlessFunction_Events{ + Events: &resources.AWSServerlessFunction_Events{ StringArray: &[]string{"s3:ObjectCreated:*", "s3:ObjectRemoved:*"}, }, } @@ -168,9 +167,9 @@ var _ = Describe("Resource", func() { Context("with a primitive type", func() { event := "s3:ObjectCreated:*" - subproperty := &cloudformation.AWSServerlessFunction_S3Event{ + subproperty := &resources.AWSServerlessFunction_S3Event{ Bucket: "my-bucket", - Events: &cloudformation.AWSServerlessFunction_Events{ + Events: &resources.AWSServerlessFunction_Events{ String: &event, }, } diff --git a/generate/templates/all.template b/generate/templates/all.template index 53a34725c5..ab189b6a97 100644 --- a/generate/templates/all.template +++ b/generate/templates/all.template @@ -2,23 +2,24 @@ package cloudformation import ( "fmt" + "github.com/awslabs/goformation/cloudformation/resources" ) // AllResources fetches an iterable map all CloudFormation and SAM resources func AllResources() map[string]Resource { return map[string]Resource{ {{range $name, $resource := .Resources}} - "{{$name}}": &{{$resource}}{},{{end}} + "{{$name}}": &resources.{{$resource}}{},{{end}} } } {{range $name, $resource := .Resources}} // GetAll{{$resource}}Resources retrieves all {{$resource}} items from an AWS CloudFormation template -func (t *Template) GetAll{{$resource}}Resources () map[string]*{{$resource}} { - results := map[string]*{{$resource}}{} +func (t *Template) GetAll{{$resource}}Resources () map[string]*resources.{{$resource}} { + results := map[string]*resources.{{$resource}}{} for name, untyped := range t.Resources { switch resource := untyped.(type) { - case *{{$resource}}: + case *resources.{{$resource}}: results[name] = resource } } @@ -27,10 +28,10 @@ func (t *Template) GetAll{{$resource}}Resources () map[string]*{{$resource}} { // Get{{$resource}}WithName retrieves all {{$resource}} items from an AWS CloudFormation template // whose logical ID matches the provided name. Returns an error if not found. -func (t *Template) Get{{$resource}}WithName (name string) (*{{$resource}}, error) { +func (t *Template) Get{{$resource}}WithName (name string) (*resources.{{$resource}}, error) { if untyped, ok := t.Resources[name]; ok { switch resource := untyped.(type) { - case *{{$resource}}: + case *resources.{{$resource}}: return resource, nil } } diff --git a/generate/templates/polymorphic-property.template b/generate/templates/polymorphic-property.template index a362d202b8..a4dafb367f 100644 --- a/generate/templates/polymorphic-property.template +++ b/generate/templates/polymorphic-property.template @@ -1,4 +1,4 @@ -package cloudformation +package resources import ( "encoding/json" diff --git a/generate/templates/resource.template b/generate/templates/resource.template index fe683178eb..3d9a31aa7b 100644 --- a/generate/templates/resource.template +++ b/generate/templates/resource.template @@ -1,11 +1,14 @@ -package cloudformation +package resources {{if not .IsCustomProperty}} import ( "encoding/json" "fmt" "bytes" + "github.com/awslabs/goformation/cloudformation/policies" ) +{{else}} +import "github.com/awslabs/goformation/cloudformation/policies" {{end}} // {{.StructName}} AWS CloudFormation Resource ({{.Name}}) @@ -18,13 +21,13 @@ type {{.StructName}} struct { {{$name}} {{if (or ($property.IsPolymorphic) ($property.IsCustomType) )}}*{{end}}{{$property.GoType $.Basename $name}} `json:"{{$name}}{{if (not (and ($property.IsNumeric) ($property.Required)))}},omitempty{{end}}"` {{end}} {{if .HasUpdatePolicy }}// _updatePolicy represents a CloudFormation UpdatePolicy - _updatePolicy *UpdatePolicy{{ end }} + _updatePolicy *policies.UpdatePolicy{{ end }} {{if .HasCreationPolicy }}// _creationPolicy represents a CloudFormation CreationPolicy - _creationPolicy *CreationPolicy + _creationPolicy *policies.CreationPolicy {{ end }} // _deletionPolicy represents a CloudFormation DeletionPolicy - _deletionPolicy DeletionPolicy + _deletionPolicy policies.DeletionPolicy // _dependsOn stores the logical ID of the resources to be created before this resource _dependsOn []string @@ -61,20 +64,20 @@ func (r *{{.StructName}}) SetMetadata(metadata map[string]interface{}) { } // SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html -func (r *{{.StructName}}) SetDeletionPolicy(policy DeletionPolicy) { +func (r *{{.StructName}}) SetDeletionPolicy(policy policies.DeletionPolicy) { r._deletionPolicy = policy } {{if .HasUpdatePolicy}} // SetUpdatePolicy applies an AWS CloudFormation UpdatePolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html -func (r *{{.StructName}}) SetUpdatePolicy(policy *UpdatePolicy) { +func (r *{{.StructName}}) SetUpdatePolicy(policy *policies.UpdatePolicy) { r._updatePolicy = policy } {{end}} {{if .HasCreationPolicy}} // SetCreationPolicy applies an AWS CloudFormation CreationPolicy to this resource // see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-creationpolicy.html -func (r *{{.StructName}}) SetCreationPolicy(policy *CreationPolicy) { +func (r *{{.StructName}}) SetCreationPolicy(policy *policies.CreationPolicy) { r._creationPolicy = policy } {{end}} @@ -88,9 +91,9 @@ func (r {{.StructName}}) MarshalJSON() ([]byte, error) { {{if .IsCustomProperty}}Properties{{else}}Properties Properties{{end}} DependsOn []string `json:"DependsOn,omitempty"` Metadata map[string]interface{} `json:"Metadata,omitempty"` - DeletionPolicy DeletionPolicy `json:"DeletionPolicy,omitempty"` - {{if .HasUpdatePolicy}}UpdatePolicy *UpdatePolicy `json:"UpdatePolicy,omitempty"`{{end}} - {{if .HasCreationPolicy}}CreationPolicy *CreationPolicy `json:"CreationPolicy,omitempty"`{{end}} + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + {{if .HasUpdatePolicy}}UpdatePolicy *policies.UpdatePolicy `json:"UpdatePolicy,omitempty"`{{end}} + {{if .HasCreationPolicy}}CreationPolicy *policies.CreationPolicy `json:"CreationPolicy,omitempty"`{{end}} }{ Type: r.AWSCloudFormationType(), Properties: (Properties)(r), diff --git a/goformation_test.go b/goformation_test.go index b3215390f3..beb6db89b5 100644 --- a/goformation_test.go +++ b/goformation_test.go @@ -3,6 +3,8 @@ package goformation_test import ( "encoding/json" + "github.com/awslabs/goformation/cloudformation/resources" + "github.com/sanathkr/yaml" "github.com/awslabs/goformation" @@ -69,18 +71,18 @@ var _ = Describe("Goformation", func() { template := cloudformation.NewTemplate() - template.Resources["MySNSTopic"] = &cloudformation.AWSSNSTopic{ + template.Resources["MySNSTopic"] = &resources.AWSSNSTopic{ DisplayName: "test-sns-topic-display-name", TopicName: "test-sns-topic-name", - Subscription: []cloudformation.AWSSNSTopic_Subscription{ - cloudformation.AWSSNSTopic_Subscription{ + Subscription: []resources.AWSSNSTopic_Subscription{ + resources.AWSSNSTopic_Subscription{ Endpoint: "test-sns-topic-subscription-endpoint", Protocol: "test-sns-topic-subscription-protocol", }, }, } - template.Resources["MyRoute53HostedZone"] = &cloudformation.AWSRoute53HostedZone{ + template.Resources["MyRoute53HostedZone"] = &resources.AWSRoute53HostedZone{ Name: "example.com", } @@ -128,18 +130,18 @@ var _ = Describe("Goformation", func() { expected := cloudformation.NewTemplate() - expected.Resources["MySNSTopic"] = &cloudformation.AWSSNSTopic{ + expected.Resources["MySNSTopic"] = &resources.AWSSNSTopic{ DisplayName: "test-sns-topic-display-name", TopicName: "test-sns-topic-name", - Subscription: []cloudformation.AWSSNSTopic_Subscription{ - cloudformation.AWSSNSTopic_Subscription{ + Subscription: []resources.AWSSNSTopic_Subscription{ + resources.AWSSNSTopic_Subscription{ Endpoint: "test-sns-topic-subscription-endpoint", Protocol: "test-sns-topic-subscription-protocol", }, }, } - expected.Resources["MyRoute53HostedZone"] = &cloudformation.AWSRoute53HostedZone{ + expected.Resources["MyRoute53HostedZone"] = &resources.AWSRoute53HostedZone{ Name: "example.com", } @@ -296,7 +298,7 @@ var _ = Describe("Goformation", func() { template := &cloudformation.Template{ Resources: cloudformation.Resources{ - "MyLambdaFunction": &cloudformation.AWSLambdaFunction{ + "MyLambdaFunction": &resources.AWSLambdaFunction{ Handler: "nodejs6.10", }, }, @@ -310,7 +312,7 @@ var _ = Describe("Goformation", func() { function, err := template.GetAWSLambdaFunctionWithName("MyLambdaFunction") It("should be able to retrieve a specific Lambda function with GetAWSLambdaFunctionWithName(template, name)", func() { Expect(err).To(BeNil()) - Expect(function).To(BeAssignableToTypeOf(&cloudformation.AWSLambdaFunction{})) + Expect(function).To(BeAssignableToTypeOf(&resources.AWSLambdaFunction{})) }) It("should have the correct Handler property", func() { @@ -325,10 +327,10 @@ var _ = Describe("Goformation", func() { template := &cloudformation.Template{ Resources: cloudformation.Resources{ - "MySAMFunction": &cloudformation.AWSServerlessFunction{ + "MySAMFunction": &resources.AWSServerlessFunction{ Handler: "nodejs6.10", - CodeUri: &cloudformation.AWSServerlessFunction_CodeUri{ - S3Location: &cloudformation.AWSServerlessFunction_S3Location{ + CodeUri: &resources.AWSServerlessFunction_CodeUri{ + S3Location: &resources.AWSServerlessFunction_S3Location{ Bucket: "test-bucket", Key: "test-key", Version: 100, @@ -357,9 +359,9 @@ var _ = Describe("Goformation", func() { codeuri := "./some-folder" template := &cloudformation.Template{ Resources: cloudformation.Resources{ - "MySAMFunction": &cloudformation.AWSServerlessFunction{ + "MySAMFunction": &resources.AWSServerlessFunction{ Handler: "nodejs6.10", - CodeUri: &cloudformation.AWSServerlessFunction_CodeUri{ + CodeUri: &resources.AWSServerlessFunction_CodeUri{ String: &codeuri, }, }, @@ -527,8 +529,8 @@ var _ = Describe("Goformation", func() { }) Context("with a SNS event source", func() { - event := cloudformation.AWSServerlessFunction_Properties{ - SNSEvent: &cloudformation.AWSServerlessFunction_SNSEvent{ + event := resources.AWSServerlessFunction_Properties{ + SNSEvent: &resources.AWSServerlessFunction_SNSEvent{ Topic: "MyTopic", }, } @@ -543,7 +545,7 @@ var _ = Describe("Goformation", func() { Context("with an SNS event source created from JSON", func() { eventString := `{"Topic":"MyTopic"}` eventJson := []byte(eventString) - event := cloudformation.AWSServerlessFunction_Properties{} + event := resources.AWSServerlessFunction_Properties{} event.UnmarshalJSON(eventJson) It("should marshal properties correctly", func() { @@ -557,10 +559,10 @@ var _ = Describe("Goformation", func() { template := &cloudformation.Template{ Resources: cloudformation.Resources{ - "TestBucket": &cloudformation.AWSS3Bucket{ + "TestBucket": &resources.AWSS3Bucket{ BucketName: "test-bucket", }, - "TestBucketPolicy": &cloudformation.AWSS3BucketPolicy{ + "TestBucketPolicy": &resources.AWSS3BucketPolicy{ Bucket: cloudformation.Ref("TestBucket"), }, }, @@ -779,7 +781,7 @@ var _ = Describe("Goformation", func() { template := &cloudformation.Template{ Resources: cloudformation.Resources{ - "TestBucket": &cloudformation.AWSS3Bucket{ + "TestBucket": &resources.AWSS3Bucket{ BucketName: cloudformation.Join("/", []string{ cloudformation.Join("-", []string{"test", "bucket"}), }), @@ -840,10 +842,10 @@ var _ = Describe("Goformation", func() { template := &cloudformation.Template{ Resources: cloudformation.Resources{ - "TestBucket": &cloudformation.AWSS3Bucket{ + "TestBucket": &resources.AWSS3Bucket{ BucketName: "test-bucket", }, - "TestBucketPolicy": &cloudformation.AWSS3BucketPolicy{ + "TestBucketPolicy": &resources.AWSS3BucketPolicy{ Bucket: cloudformation.GetAtt("TestBucket", "WebsiteURL"), }, }, diff --git a/schema/sam.go b/schema/sam.go index d55aa7b9d5..0a5ad502fc 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -38186,7 +38186,7 @@ var SamSchema = `{ "additionalProperties": false, "properties": { "Authorizers": { - "type": "string" + "type": "object" }, "DefaultAuthorizer": { "type": "string" diff --git a/schema/sam.schema.json b/schema/sam.schema.json index 33aebd4ce7..7ec7568e80 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -38183,7 +38183,7 @@ "additionalProperties": false, "properties": { "Authorizers": { - "type": "string" + "type": "object" }, "DefaultAuthorizer": { "type": "string" From 193df13bcde52c7c4c16d124ad65145f65632b66 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 10 Mar 2019 10:48:15 +0000 Subject: [PATCH 17/37] chore(release): 2.0.0 [skip ci] # [2.0.0](https://github.com/awslabs/goformation/compare/v1.4.1...v2.0.0) (2019-03-10) ### Code Refactoring * **generator:** moving resources and policies into their own packages ([#161](https://github.com/awslabs/goformation/issues/161)) ([03a0123](https://github.com/awslabs/goformation/commit/03a0123)) ### BREAKING CHANGES * **generator:** this PR refactors the auto-generated CloudFormation resources out of the cloudformation package and into a dedicated package (resources). This helps keep the auto generated files separate from others. E.g. cloudformation.AWSSnsTopic{} becomes resources.AWSSnsTopic{} --- CHANGELOG.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c55ae04ac8..355b9b634a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Semantic Versioning Changelog +# [2.0.0](https://github.com/awslabs/goformation/compare/v1.4.1...v2.0.0) (2019-03-10) + + +### Code Refactoring + +* **generator:** moving resources and policies into their own packages ([#161](https://github.com/awslabs/goformation/issues/161)) ([03a0123](https://github.com/awslabs/goformation/commit/03a0123)) + + +### BREAKING CHANGES + +* **generator:** this PR refactors the auto-generated CloudFormation resources out of the cloudformation package and into a dedicated package (resources). This helps keep the auto generated files separate from others. + +E.g. cloudformation.AWSSnsTopic{} becomes resources.AWSSnsTopic{} + ## [1.4.1](https://github.com/awslabs/goformation/compare/v1.4.0...v1.4.1) (2019-03-10) From b37af7b979a6eec4193cfb813b6d4f6bbda29c8f Mon Sep 17 00:00:00 2001 From: Paul Maddox Date: Sun, 10 Mar 2019 16:52:50 +0400 Subject: [PATCH 18/37] feat(CI): auto-generate AUTHORS.md file * feat(CI): Auto-generate AUTHORS.md file * feat(CI): auto-cut a release when CFN updates Updates the auto-generated pull requests to match the semantic-release format so that a new minor release will be automatically cut every time AWS CloudFormation publishes a new schema update * fix(CI): set GITHUB_TOKEN correctly for AUTHORS.md * feat(CI): Auto-generate AUTHORS.md file * updated Travis config to remove GitHub token envvar for authors --- .releaserc | 14 ++++---------- .travis.yml | 7 +++---- generate/create-pull-request.sh | 2 +- 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/.releaserc b/.releaserc index 331899eb8a..19596a14b7 100644 --- a/.releaserc +++ b/.releaserc @@ -7,26 +7,20 @@ "@semantic-release/changelog", { "changelogFile": "CHANGELOG.md", - "changelogTitle": "# Semantic Versioning Changelog" + "changelogTitle": "# GoFormation Versioning Changelog" } ], [ "@semantic-release/git", { "assets": [ - "CHANGELOG.md" + "CHANGELOG.md", + "AUTHORS.md" ] } ], [ - "@semantic-release/github", - { - "assets": [ - { - "path": "**" - } - ] - } + "@semantic-release/github" ] ] } diff --git a/.travis.yml b/.travis.yml index 8f33cb4bfb..d8414ce1ce 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,10 +31,9 @@ jobs: node_js: lts/* before_install: skip script: - # # Update AUTHORS.md - # - export MAINTAINER_TOKEN=${GH_TOKEN} - # - go get github.com/myii/maintainer - # - maintainer contributor + # Update AUTHORS.md + - go get github.com/myii/maintainer + - maintainer contributor # Install all dependencies required for `semantic-release` - npm install @semantic-release/changelog@3 -D diff --git a/generate/create-pull-request.sh b/generate/create-pull-request.sh index dda88d3d73..e1f3a32749 100755 --- a/generate/create-pull-request.sh +++ b/generate/create-pull-request.sh @@ -27,7 +27,7 @@ DST_BRANCH="master" # Git details (for the commit) COMMIT_NAME="AWS GoFormation" COMMIT_EMAIL="goformation@amazon.com" -COMMIT_MSG="AWS CloudFormation Update ($(date +%F))" +COMMIT_MSG="feat(schema): AWS CloudFormation Update ($(date +%F))" echo "Build Type: ${TRAVIS_EVENT_TYPE}" From 320b7769920b1863cae29ad0390d27b448d83917 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 10 Mar 2019 12:54:53 +0000 Subject: [PATCH 19/37] chore(release): 2.1.0 [skip ci] # [2.1.0](https://github.com/awslabs/goformation/compare/v2.0.0...v2.1.0) (2019-03-10) ### Features * **CI:** auto-generate AUTHORS.md file ([b37af7b](https://github.com/awslabs/goformation/commit/b37af7b)) --- AUTHORS.md | 29 +++++++++++++++++++++++++++++ CHANGELOG.md | 9 +++++++++ 2 files changed, 38 insertions(+) create mode 100644 AUTHORS.md diff --git a/AUTHORS.md b/AUTHORS.md new file mode 100644 index 0000000000..e970a4530f --- /dev/null +++ b/AUTHORS.md @@ -0,0 +1,29 @@ +# Authors + +This list is sorted by the number of commits per contributor in _descending_ order. + +Avatar|Contributor|Contributions +:-:|---|:-: +@PaulMaddox|[@PaulMaddox](https://github.com/PaulMaddox)|255 +@goformation|[@goformation](https://github.com/goformation)|40 +@pesama|[@pesama](https://github.com/pesama)|12 +@grahamjenson|[@grahamjenson](https://github.com/grahamjenson)|11 +@parsnips|[@parsnips](https://github.com/parsnips)|8 +@clareliguori|[@clareliguori](https://github.com/clareliguori)|7 +@sanathkr|[@sanathkr](https://github.com/sanathkr)|7 +@resios|[@resios](https://github.com/resios)|7 +@neoandroid|[@neoandroid](https://github.com/neoandroid)|3 +@evantorrie|[@evantorrie](https://github.com/evantorrie)|2 +@majasb|[@majasb](https://github.com/majasb)|2 +@stilvoid|[@stilvoid](https://github.com/stilvoid)|2 +@adamchainz|[@adamchainz](https://github.com/adamchainz)|1 +@billyshambrook|[@billyshambrook](https://github.com/billyshambrook)|1 +@statik|[@statik](https://github.com/statik)|1 +@lsuss|[@lsuss](https://github.com/lsuss)|1 +@rjlohan|[@rjlohan](https://github.com/rjlohan)|1 +@sam-goodwin|[@sam-goodwin](https://github.com/sam-goodwin)|1 +@manuel-trejo-rico|[@manuel-trejo-rico](https://github.com/manuel-trejo-rico)|1 + +--- + +Auto generated by a [forked version](https://github.com/myii/maintainer) of [gaocegege/maintainer](https://github.com/gaocegege/maintainer) on 2019-03-10. diff --git a/CHANGELOG.md b/CHANGELOG.md index 355b9b634a..54f4243af6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +# GoFormation Versioning Changelog + +# [2.1.0](https://github.com/awslabs/goformation/compare/v2.0.0...v2.1.0) (2019-03-10) + + +### Features + +* **CI:** auto-generate AUTHORS.md file ([b37af7b](https://github.com/awslabs/goformation/commit/b37af7b)) + # Semantic Versioning Changelog # [2.0.0](https://github.com/awslabs/goformation/compare/v1.4.1...v2.0.0) (2019-03-10) From c83945a582a9ccdda924b47a2831922434830a14 Mon Sep 17 00:00:00 2001 From: Paul Maddox Date: Sun, 10 Mar 2019 17:13:49 +0400 Subject: [PATCH 20/37] fix(CI): only run semantic-release on push-to-master (not on pull requests) (#184) * fix(CI): only run semantic-release on push-to-master (not on pull requests) * fix(CI): removed builds for older versions of Go --- .travis.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index d8414ce1ce..5e942663b4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,9 +2,7 @@ language: go matrix: include: - - go: "1.10.x" - script: go test -v ./... - - go: "1.11.x" + - go: "1.12.x" script: go test -v -mod=vendor ./... env: @@ -27,6 +25,7 @@ jobs: # Define the release stage that runs semantic-release - stage: release + if: branch = master AND type = push language: node_js node_js: lts/* before_install: skip From 4004767d21c5af9dc2522dbc42f8f625f1043983 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 10 Mar 2019 13:15:52 +0000 Subject: [PATCH 21/37] chore(release): 2.1.1 [skip ci] ## [2.1.1](https://github.com/awslabs/goformation/compare/v2.1.0...v2.1.1) (2019-03-10) ### Bug Fixes * **CI:** only run semantic-release on push-to-master (not on pull requests) ([#184](https://github.com/awslabs/goformation/issues/184)) ([c83945a](https://github.com/awslabs/goformation/commit/c83945a)) --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 54f4243af6..76688cc85e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # GoFormation Versioning Changelog +## [2.1.1](https://github.com/awslabs/goformation/compare/v2.1.0...v2.1.1) (2019-03-10) + + +### Bug Fixes + +* **CI:** only run semantic-release on push-to-master (not on pull requests) ([#184](https://github.com/awslabs/goformation/issues/184)) ([c83945a](https://github.com/awslabs/goformation/commit/c83945a)) + # [2.1.0](https://github.com/awslabs/goformation/compare/v2.0.0...v2.1.0) (2019-03-10) From d42d00a631651fc6648b1113abb30f4c14dc7cb6 Mon Sep 17 00:00:00 2001 From: Paul Maddox Date: Sun, 10 Mar 2019 17:32:08 +0400 Subject: [PATCH 22/37] fix(CI): fix broken GitHub PR integration (#185) --- .travis.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5e942663b4..bff17e39f5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,11 +10,6 @@ env: install: true -# after_success: -# # Check for updated CloudFormation resources, and submit a PR -# - test "${TRAVIS_EVENT_TYPE}" = "cron" && ./generate/create-pull-request.sh -# # - ./generate/create-pull-request.sh - jobs: include: # Define a stage that will auto-generate CloudFormation resources from the official @@ -25,7 +20,7 @@ jobs: # Define the release stage that runs semantic-release - stage: release - if: branch = master AND type = push + if: branch = master language: node_js node_js: lts/* before_install: skip From 4e4aad7db6cafc416f2be8dd2ee863d66639bdd1 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 10 Mar 2019 13:34:00 +0000 Subject: [PATCH 23/37] chore(release): 2.1.2 [skip ci] ## [2.1.2](https://github.com/awslabs/goformation/compare/v2.1.1...v2.1.2) (2019-03-10) ### Bug Fixes * **CI:** fix broken GitHub PR integration ([#185](https://github.com/awslabs/goformation/issues/185)) ([d42d00a](https://github.com/awslabs/goformation/commit/d42d00a)) --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 76688cc85e..6c805da593 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # GoFormation Versioning Changelog +## [2.1.2](https://github.com/awslabs/goformation/compare/v2.1.1...v2.1.2) (2019-03-10) + + +### Bug Fixes + +* **CI:** fix broken GitHub PR integration ([#185](https://github.com/awslabs/goformation/issues/185)) ([d42d00a](https://github.com/awslabs/goformation/commit/d42d00a)) + ## [2.1.1](https://github.com/awslabs/goformation/compare/v2.1.0...v2.1.1) (2019-03-10) From f2f5721fff471458fd4c7ed7983f1019f3b71d71 Mon Sep 17 00:00:00 2001 From: Paul Maddox Date: Sun, 10 Mar 2019 17:39:01 +0400 Subject: [PATCH 24/37] Only generate release assets on deployment --- .travis.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index bff17e39f5..06f7e79283 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,19 +24,19 @@ jobs: language: node_js node_js: lts/* before_install: skip - script: - # Update AUTHORS.md - - go get github.com/myii/maintainer - - maintainer contributor - - # Install all dependencies required for `semantic-release` - - npm install @semantic-release/changelog@3 -D - - npm install @semantic-release/exec@3 -D - - npm install @semantic-release/git@7 -D - deploy: provider: script skip_cleanup: true script: + # Install tool for updating AUTHORS.md + # Update the AUTHORS.md file + - go get github.com/myii/maintainer + - maintainer contributor + + # Install all dependencies required for `semantic-release` + - npm install @semantic-release/changelog@3 -D + - npm install @semantic-release/exec@3 -D + - npm install @semantic-release/git@7 -D + # Run `semantic-release` - npx semantic-release@15 From cd0dfda27b017bd4318047f51f4944dcaf136751 Mon Sep 17 00:00:00 2001 From: Paul Maddox Date: Sun, 10 Mar 2019 17:44:38 +0400 Subject: [PATCH 25/37] fix go builds --- .travis.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 06f7e79283..40802b11ee 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,6 @@ language: go - -matrix: - include: - - go: "1.12.x" - script: go test -v -mod=vendor ./... +go: + - 1.11.x env: - GO111MODULE=on @@ -12,6 +9,9 @@ install: true jobs: include: + - stage: test + script: go test -v -mod=vendor ./... + # Define a stage that will auto-generate CloudFormation resources from the official # AWS CloudFormation Resource Specification on a daily basis (run via a travis cron) - stage: regenerate From fdca4408fc68ef4bbef2eb08d53fdec76b499e79 Mon Sep 17 00:00:00 2001 From: Paul Maddox Date: Sun, 10 Mar 2019 17:51:37 +0400 Subject: [PATCH 26/37] fix go builds --- .travis.yml | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/.travis.yml b/.travis.yml index 40802b11ee..5779ecb91b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,16 +27,10 @@ jobs: deploy: provider: script skip_cleanup: true - script: - # Install tool for updating AUTHORS.md - # Update the AUTHORS.md file - - go get github.com/myii/maintainer - - maintainer contributor - - # Install all dependencies required for `semantic-release` - - npm install @semantic-release/changelog@3 -D - - npm install @semantic-release/exec@3 -D - - npm install @semantic-release/git@7 -D - - # Run `semantic-release` - - npx semantic-release@15 + script: >- + go get github.com/myii/maintainer && + maintainer contributor && + npm install @semantic-release/changelog@3 -D && + npm install @semantic-release/exec@3 -D && + npm install @semantic-release/git@7 -D && + npx semantic-release@15 From 3b6e359876834a9be87a5bc10e91adc6060a08a1 Mon Sep 17 00:00:00 2001 From: Graham Jenson Date: Sun, 10 Mar 2019 14:00:56 +0000 Subject: [PATCH 27/37] fix(schema): maps within YAML templates should allow unknown fields/properties * [Fix] maps shoudl allow additional properties * [Fix] this fixes the schema additional properties AND schema validation code --- generate/templates/schema-property.template | 3 ++- generate/templates/schema.template | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/generate/templates/schema-property.template b/generate/templates/schema-property.template index cd3477c92d..b11bd66d63 100644 --- a/generate/templates/schema-property.template +++ b/generate/templates/schema-property.template @@ -58,6 +58,7 @@ "type": "{{.Property.GetJSONPrimitiveType}}" } }, + "additionalProperties": true {{else}} "patternProperties": { "^[a-zA-Z0-9]+$": { @@ -68,8 +69,8 @@ {{end}} } }, - {{end}} "additionalProperties": false + {{end}} {{end}} {{if .Property.IsList}} diff --git a/generate/templates/schema.template b/generate/templates/schema.template index f7f363be49..2124143520 100644 --- a/generate/templates/schema.template +++ b/generate/templates/schema.template @@ -1,5 +1,5 @@ { - "$schema": "http://json-schema.org/draft-04/schema#", + "$id": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { From a223c2134fc71b6b8ae3318b6602b8932c5af485 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 10 Mar 2019 14:04:26 +0000 Subject: [PATCH 28/37] chore(release): 2.1.3 [skip ci] ## [2.1.3](https://github.com/awslabs/goformation/compare/v2.1.2...v2.1.3) (2019-03-10) ### Bug Fixes * **schema:** maps within YAML templates should allow unknown fields/properties ([3b6e359](https://github.com/awslabs/goformation/commit/3b6e359)) --- AUTHORS.md | 2 +- CHANGELOG.md | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/AUTHORS.md b/AUTHORS.md index e970a4530f..4fda3b5a91 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -4,7 +4,7 @@ This list is sorted by the number of commits per contributor in _descending_ ord Avatar|Contributor|Contributions :-:|---|:-: -@PaulMaddox|[@PaulMaddox](https://github.com/PaulMaddox)|255 +@PaulMaddox|[@PaulMaddox](https://github.com/PaulMaddox)|261 @goformation|[@goformation](https://github.com/goformation)|40 @pesama|[@pesama](https://github.com/pesama)|12 @grahamjenson|[@grahamjenson](https://github.com/grahamjenson)|11 diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c805da593..a53e0ab691 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # GoFormation Versioning Changelog +## [2.1.3](https://github.com/awslabs/goformation/compare/v2.1.2...v2.1.3) (2019-03-10) + + +### Bug Fixes + +* **schema:** maps within YAML templates should allow unknown fields/properties ([3b6e359](https://github.com/awslabs/goformation/commit/3b6e359)) + ## [2.1.2](https://github.com/awslabs/goformation/compare/v2.1.1...v2.1.2) (2019-03-10) From 3f1817be1603c702532504a77309b67a7e99be66 Mon Sep 17 00:00:00 2001 From: Sam Goodwin Date: Sun, 10 Mar 2019 07:09:08 -0700 Subject: [PATCH 29/37] fix(schema): fixed incorrect field type for AWS::Serverless::Application.Location (#167) --- generate/sam-2016-10-31.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/generate/sam-2016-10-31.json b/generate/sam-2016-10-31.json index 97def62583..f233be9457 100644 --- a/generate/sam-2016-10-31.json +++ b/generate/sam-2016-10-31.json @@ -236,8 +236,8 @@ "Location": { "Documentation": "https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication", "Required": true, - "PrimitiveType": "String", - "Types": ["ApplicationLocation"], + "PrimitiveTypes": [ "String" ], + "Types": [ "ApplicationLocation" ], "UpdateType": "Immutable" }, "Parameters": { @@ -803,4 +803,4 @@ } } } -} \ No newline at end of file +} From 64788292256b240182fbb2e359ac7fb574384dd6 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 10 Mar 2019 14:12:37 +0000 Subject: [PATCH 30/37] chore(release): 2.1.4 [skip ci] ## [2.1.4](https://github.com/awslabs/goformation/compare/v2.1.3...v2.1.4) (2019-03-10) ### Bug Fixes * **schema:** fixed incorrect field type for AWS::Serverless::Application.Location ([#167](https://github.com/awslabs/goformation/issues/167)) ([3f1817b](https://github.com/awslabs/goformation/commit/3f1817b)) --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a53e0ab691..dfbbb4d547 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # GoFormation Versioning Changelog +## [2.1.4](https://github.com/awslabs/goformation/compare/v2.1.3...v2.1.4) (2019-03-10) + + +### Bug Fixes + +* **schema:** fixed incorrect field type for AWS::Serverless::Application.Location ([#167](https://github.com/awslabs/goformation/issues/167)) ([3f1817b](https://github.com/awslabs/goformation/commit/3f1817b)) + ## [2.1.3](https://github.com/awslabs/goformation/compare/v2.1.2...v2.1.3) (2019-03-10) From fb9bb65a5e625c94cf9b8cf647ce3a49388a6866 Mon Sep 17 00:00:00 2001 From: Paul Maddox Date: Sun, 10 Mar 2019 18:18:53 +0400 Subject: [PATCH 31/37] only release on push --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5779ecb91b..0218c261a7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,7 @@ jobs: # Define the release stage that runs semantic-release - stage: release - if: branch = master + if: type = push language: node_js node_js: lts/* before_install: skip From e4671e399c13921428aabdec73c7f8a47be396d1 Mon Sep 17 00:00:00 2001 From: Graham Jenson Date: Sun, 10 Mar 2019 14:21:53 +0000 Subject: [PATCH 32/37] fix(parser): do not break if a non-intrinsic `Condition` statement is found in a YAML template (#169) --- intrinsics/intrinsics.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/intrinsics/intrinsics.go b/intrinsics/intrinsics.go index e77edff528..3630329d6a 100644 --- a/intrinsics/intrinsics.go +++ b/intrinsics/intrinsics.go @@ -219,8 +219,10 @@ func search(input interface{}, template interface{}, options *ProcessorOptions) if key == "Condition" { // This can lead to infinite recursion A -> B; B -> A; // pass state of the conditions that we're evaluating so we can detect cycles - // in case of cycle, return nil - return condition(key, search(val, template, options), template, options) + // in case of cycle or not found, do nothing + if con := condition(key, search(val, template, options), template, options); con != nil { + return con + } } // This is not an intrinsic function, recurse through it normally From 7afcc893dcf84c4d17ec3bba2d427914e61627f2 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 10 Mar 2019 14:25:47 +0000 Subject: [PATCH 33/37] chore(release): 2.1.5 [skip ci] ## [2.1.5](https://github.com/awslabs/goformation/compare/v2.1.4...v2.1.5) (2019-03-10) ### Bug Fixes * **parser:** do not break if a non-intrinsic `Condition` statement is found in a YAML template ([#169](https://github.com/awslabs/goformation/issues/169)) ([e4671e3](https://github.com/awslabs/goformation/commit/e4671e3)) --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index dfbbb4d547..b7374eb251 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # GoFormation Versioning Changelog +## [2.1.5](https://github.com/awslabs/goformation/compare/v2.1.4...v2.1.5) (2019-03-10) + + +### Bug Fixes + +* **parser:** do not break if a non-intrinsic `Condition` statement is found in a YAML template ([#169](https://github.com/awslabs/goformation/issues/169)) ([e4671e3](https://github.com/awslabs/goformation/commit/e4671e3)) + ## [2.1.4](https://github.com/awslabs/goformation/compare/v2.1.3...v2.1.4) (2019-03-10) From 125b2ed96c59fbb1160b7541ebb2de55190551b4 Mon Sep 17 00:00:00 2001 From: Paul Maddox Date: Sun, 10 Mar 2019 19:37:22 +0400 Subject: [PATCH 34/37] Added code of conduct --- CODE_OF_CONDUCT.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 CODE_OF_CONDUCT.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000000..a95bc6820b --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,46 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at goformation@amazon.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ \ No newline at end of file From 4561b44c586ac578cbeb6a88b8373f5a4327c396 Mon Sep 17 00:00:00 2001 From: Paul Maddox Date: Sun, 10 Mar 2019 20:56:01 +0400 Subject: [PATCH 35/37] docs: add CONTRIBUTING.md details how to contribute to the project, as well as commit guidelines --- CONTRIBUTING.md | 209 ++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 192 insertions(+), 17 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f5c85f6d96..f26de00552 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,29 +1,204 @@ # Contributing to GoFormation -Contributions to GoFormation should be made via GitHub [pull -requests](https://github.com/awslabs/goformation/pulls) and discussed using -GitHub [issues](https://github.com/awslabs/goformation/issues). +✨ Thanks for contributing to **GoFormation**! ✨ -### Before you start +As a contributor, here are the guidelines we would like you to follow: +- [Code of conduct](#code-of-conduct) +- [Submitting a Pull Request](#submitting-a-pull-request) +- [Coding rules](#coding-rules) + - [Source code](#source-code) + - [Commit message guidelines](#commit-message-guidelines) + - [Atomic commits](#atomic-commits) + - [Commit message format](#commit-message-format) + - [Revert](#revert) + - [Type](#type) + - [Subject](#subject) + - [Body](#body) + - [Footer](#footer) + - [Examples](#examples) +- [Working with the code](#working-with-the-code) + - [Set up the workspace](#set-up-the-workspace) + - [Tests](#tests) + - [Commits](#commits) + - [Generating AWS CloudFormation Resources](#generating-aws-cloudformation-resources) -If you would like to make a significant change, it's a good idea to first open -an issue to discuss it. +We also recommend that you read [How to Contribute to Open Source](https://opensource.guide/how-to-contribute). -### Making the request +## Code of conduct -1. Create a fork of the GoFormation repository [(quick link)](https://github.com/awslabs/goformation#fork-destination-box) -2. Commit your changes to your fork -3. Create a new pull request [(quick link)](https://github.com/awslabs/goformation/compare) +Help us keep **GoFormation** open and inclusive. Please read and follow our [Code of conduct](CODE_OF_CONDUCT.md). -### Testing +## Submitting a Pull Request -Any contributions should pass all tests, including those not run by our -current CI system. +Good pull requests, whether patches, improvements, or new features, are a fantastic help. They should remain focused in scope and avoid containing unrelated commits. -You may run all tests by running `go test` (requires `go` to be installed). +**Please ask first** before embarking on any significant pull requests (e.g. implementing features, refactoring code), otherwise you risk spending a lot of time working on something that the project's developers might not want to merge into the project. -## Licensing +If you have never created a pull request before, welcome 🎉 😄. [Here is a great tutorial](https://opensource.guide/how-to-contribute/#opening-a-pull-request) on how to send one :) -GoFormation is released under an [Apache 2.0](http://aws.amazon.com/apache-2-0/) license. Any code you submit will be released under that license. +Here is a summary of the steps to follow: -For significant changes, we may ask you to sign a [Contributor License Agreement (http://en.wikipedia.org/wiki/Contributor_License_Agreement). +1. [Set up the workspace](#set-up-the-workspace) +2. If you cloned a while ago, get the latest changes from upstream and update dependencies: +```bash +$ git checkout master +$ git pull upstream master +``` +3. Create a new topic branch (off the main project development branch) to contain your feature, change, or fix: +```bash +$ git checkout -b +``` +4. Make your code changes, following the [Coding rules](#coding-rules) +5. Push your topic branch up to your fork: +```bash +$ git push origin +``` +6. [Open a Pull Request](https://help.github.com/articles/creating-a-pull-request/#creating-the-pull-request) with a clear title and description. + +**Tips**: +- For ambitious tasks, open a Pull Request as soon as possible with the `[WIP]` prefix in the title, in order to get feedback and help from the community. +- [Allow GoFormation maintainers to make changes to your Pull Request branch](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork). This way, we can rebase it and make some minor changes if necessary. + +## Coding rules + +### Source code + +To ensure consistency and quality throughout the source code, all code modifications must have: +- A [test](#tests) for every possible case introduced by your code change +- [Valid commit message(s)](#commit-message-guidelines) +- Documentation for new features +- Updated documentation for modified features + +### Commit message guidelines + +#### Atomic commits + +If possible, make [atomic commits](https://en.wikipedia.org/wiki/Atomic_commit), which means: +- a commit should contain exactly one self-contained functional change +- a functional change should be contained in exactly one commit +- a commit should not create an inconsistent state (such as test errors, linting errors, partial fix, feature with documentation etc...) + +A complex feature can be broken down into multiple commits as long as each one maintains a consistent state and consists of a self-contained change. + +#### Commit message format + +Each commit message consists of a **header**, a **body** and a **footer**. The header has a special format that includes a **type**, a **scope** and a **subject**: + +```commit +(): + + + +